Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

IPS - Система предотвращения вторжений. Прикладной скрипт - файл hacked-report_kr-1.doc


IPS - Система предотвращения вторжений. Прикладной скрипт
скачать (1912.6 kb.)

Доступные файлы (4):

DumpFile01.log
hacked-report_kr-1.doc45kb.11.01.2011 05:12скачать
hacked-report_kr-1.pdf142kb.11.01.2011 05:12скачать
proj.py


hacked-report_kr-1.doc

Московский авиационный институт

(государственный TEXнический университет)


Факультет прикладной математики и физики


Кафедра вычислительной математики и программирования


Курсовой проект по курсу ѕинформационная безопасностьї


Студент: А. А. Кухтичев

Преподаватель: А. В. Крижановский


Москва, 2010


1 Задание

Реализовать IPS (Intrusion Prevention System) одним из следующих подходов: при-

кладной код на C/C++/Perl/Python/Shell в режиме реального времени обрабатывает

логи прикладного демона (Apache, Squid etc.) или сниффера (tcpdump) и блокирует

доступ реконфигурацией IPtables.

В качестве логики IPS должна реализовать один из следующих методов обнаружения

атак: DDoS - подсчет (a) числа SYN-пакетов (b) соединений от каждого клиентского

IPv4 (нужно учитывать большое число клиентов при выборе структуры данных, см.

IP sets).


1


2 Теория

2.1 IPS

Система предотвращения вторжений (англ. Intrusion Prevention System) программ-

ная или аппаратная система сетевой и компьютерной безопасности, обнаруживаю-

щая вторжения или нарушения безопасности и автоматически защищающая от них.

Системы IPS можно рассматривать как расширение Систем обнаружения вторжений

(IDS), так как задача отслеживания атак остается одинаковой. Однако, они отлича-

ются в том, что IPS должна отслеживать активность в реальном времени и быстро

реализовывать действия про предотвращению атак. Возможные меры блокировка

потоков трафика в сети, сброс соединений, выдача сигналов оператору. Также IPS

могут выполнять дефрагментацию пакетов, переупорядочивание пакетов TCP для

защиты от пакетов с измененными SEQ и ACK номерами.

Выделяют четыре классификации

1. Сетевые IPS (Network-based Intrusion Prevention, NIPS): отслеживают трафик

в компьютерной сети и блокируют подозрительные потоки данных.

2. IPS для беспроводных сетей (Wireless Intrusion Prevention Systems, WIPS): про-

веряет активность в беспроводных сетях. В частности, обнаруживает неверно

сконфигурированные точки б еспроводного доступа к сети, атаки человек по-

середине, спуфинг mac-адресов.

3. Поведенческий анализ сети (Network Behavior Analysis, NBA): анализирует се-

тевой трафик, идентифицирует нетипичные потоки, например DoS и DDoS ата-

ки.

4. Система предотвращения вторжений для отдельных компьютеров (Host-based

Intrusion Prevention, HIPS): резидентные программы, обнаруживающие подо-

зрительную активность на компьютере.


2.2 DDos

DoS-атака (от англ. Denial of Service, отказ в обслуживании) атака на вычис-

лительную систему с целью вывести еј из строя, то есть создание таких условий,

при которых легитимные (правомерные) пользователи системы не могут получить

доступ к предоставляемым системой ресурсам, либо этот доступ затруднјн. Отказ

ѕвражескойї системы может быть как самоцелью (например, сделать недоступным

популярный сайт), так и одним из шагов к овладению системой (если во внештатной

ситуации ПО выдајт какую-либо критическую информацию например, версию,

часть программного кода и т.д.).


2


Если атака выполняется одновременно с большого числа компьютеров, говорят о

DDoS-атаке (от англ. Distributed Denial of Service, распределјнная атака типа ѕот-

каз в обслуживанииї). В некоторых случаях к DDoS-атаке приводит легитимное

действие, например, размещение на популярном интернет-ресурсе ссылки на сайт,

размещјнный на не очень производительном сервере (слэшдот-эффект). Большой

наплыв пользователей приводит к превышению допустимой нагрузки на сервер и

отказу в обслуживании части из них.

Существуют различные причины, по которым может возникнуть DoS-условие:

• Ошибка в программном коде, приводящая к обращению к неиспользуемому

фрагменту адресного пространства, выполнению недопустимой инструкции или

другой необрабатываемой исключительной ситуации, когда происходит аварий-

ное завершение серверного приложения. Классическим примером является об-

ращение по нулевому (англ. null) указателю.

• Недостаточная проверка данных пользователя, приводящая к бесконечному ли-

бо длительному циклу или повышенному длительному потреблению процессор-

ных ресурсов (исчерпанию процессорных ресурсов) либо выделению большого

объјма оперативной памяти (исчерпанию памяти).

• Флуд (англ. ood) атака, связанная с большим количеством обычно бессмыс-

ленных или сформированных в неправильном формате запросов к компьютер-

ной системе или сетевому оборудованию, имеющая своей целью или приведшая

к отказу в работе системы из-за исчерпания ресурсов системы процессора,

памяти либо каналов связи.

• Атака второго рода атака, которая стремится вызвать ложное срабатывание

системы защиты и таким образом привести к недоступности ресурса.


Если атака (обычно флуд) производится одновременно с большого количества IP-

адресов, то в этом случае она называется распределјнной атакой на отказ в обслу-

живании (DDoS).

Любой компьютер, имеющий связь с внешним миром по протоколу TCP/IP, подвер-

жен таким типам флуда:


• SYN-флуд при данном виде атаки на атакуемый узел направляется боль-

шое количество SYN-пакетов по протоколу TCP (запросов на открытие соеди-

нения). При этом на атакуемом сервере через короткое время исчерпывается

количество открытых сокетов и сервер перестајт отвечать.

• UDP-флуд этот тип флуда атакует не компьютер-цель, а его канал связи.

Провайдеры резонно предполагают, что UDP более приоритетен, чем TCP.


3


Большим количеством UDP-пакетов разного размера вызывается перегрузка

канала связи, и сервер, работающий по протоколу TCP, перестајт отвечать.

• ICMP-флуд то же, но с помощью ICMP-пакетов.


Многие службы устроены так, что небольшим запросом можно вызвать большой рас-

ход вычислительных мощностей на сервере. В таком случае атакуется не канал связи

или TCP-подсистема, а непосредственно служба флудом подобных ѕбольныхї за-

просов. Например, веб-серверы подвержены HTTP-флуду: для выведения сервера

из строя может применяться как простейшее GET /, так и сложный запрос в базу

данных наподобие GET /index.php?search=<случайная строка>.

Самая крупная DDoS атака была зарегистрирована в октябре 2010 года, еј мощность

составила 120 гигабит. 120-гигабитную атаку можно сравнить с миллионом пользо-

вателей, которые осуществляют флуд различными пакетами.

Существует мнение, что специальные средства для обнаружения DoS-атак не требу-

ются, поскольку факт DoS-атаки невозможно не заметить. Во многих случаях это

действительно так. Однако достаточно часто отмечались успешные атаки, которые

были замечены жертвами лишь через 2-3 суток. Бывало, что негативные последствия

атаки (типа флуд) заключались в излишних расходах по оплате трафика, что вы-

яснялось лишь при получении счјта. Кроме того, многие методы обнаружения атак

неэффективны вблизи цели атаки, но эффективны на магистральной сети. В таком

случае целесообразно ставить системы обнаружения именно там, а не дожидаться,

пока пользователь, подвергшийся атаке, сам еј заметит и обратится за помощью. К

тому же, для эффективного противодействия необходимо знать тип, характер и дру-

гие показатели DoS-атаки, а оперативно получить эти сведения как раз и позволяют

системы обнаружения.

Методы обнаружения можно разделить на несколько больших групп:

• сигнатурные основанные на качественном анализе трафика;

• статистические основанные на количественном анализе трафика;

• гибридные сочетающие в себе достоинства двух предыдущих методов.


Меры противодействия DoS-атакам можно разделить на пассивные и активные, а

также на превентивные и реакционные.

Ниже приведјн краткий перечень основных методов.


• Предотвращение. Профилактика причин, побуждающих тех или иных лиц ор-

ганизовывать DoS-атаки. Очень часто атаки являются следствиями личной оби-

ды, политических, религиозных разногласий, провоцирующего поведения жерт-

вы и т. п.


4


• Фильтрация и блэкхолинг. Блокирование трафика исходящего от атакующих

машин. Эффективность этих методов снижается по мере приближения к цели

атаки и повышается по мере приближения к еј источнику.

• Устранение уязвимостей. Не работает против атак типа флуд, для которых

ѕуязвимостьюї является конечность тех или иных ресурсов.

• Наращивание ресурсов.

• Рассредоточение. Построение распределјнных и продублированных систем, ко-

торые не прекратят обслуживать пользователей, даже если некоторые их эле-

менты станут недоступны из-за атаки.

• Уклонение. Увод непосредственной цели атаки (доменного имени или IP-адреса)

подальше от других ресурсов, которые часто также подвергаются воздействию

вместе с непосредственной целью.

• Активные ответные меры. Воздействие на источники, организатора или центр

управления атакой, как технического, так и организационно-правового харак-

тера.

• Внедрение оборудования по отражению DoS-атак. Например DefensePro R (Radware),

Arbor Peakow R и других производителей.

• Приобретение сервиса по защите от DoS-атак. Актуально в случае превышения

флудом пропускной способности канала.


5


3 Решение

Я решил написать скрипт, который блокирует ip-адрес, который посылает больше

1000 запросов. Довольно примитивный скрипт получился.


3.1 Software

Mac OS X 10.6.4 (snow leopard), 2.4 Ghz Intel Core 2 Duo, 2 GB 1067 DDR3, терминал


3.2 Ход выполнения

Для начала мне нужно было записать файлы для сетевого трафика. Это мне удалось

сделать при помощи команды sudo tcpdump -v -i en1 -nn -x -s0 -l -w DumpFile01.log

После чего можно было приступить к написанию скрипта, код которого будет при-

веден дальше. Сначала я открываю получившийся файл с запросами и парсю его,

в результате чего у меня получился файл, состоящий из двух колонок; в первой

содержится количество запросов от данного ip, второй собственно сам ip.

iptables утилита командной строки, является стандартным интерфейсом управле-

ния работой межсетевого экрана (брандмауэра) netlter. С еј помощью администра-

торы создают и изменяют правила, управляющие фильтрацией и перенаправлением

пакетов.

Если в правило не включается спецификатор [-t table], то по умолчанию предпола-

гается использование таблицы lter, если же предполагается использование другой

таблицы, то это требуется указать явно. Спецификатор таблицы так же можно ука-

зывать в любом месте строки правила, однако более или менее стандартом считается

указание таблицы в начале правила.

Далее, непосредственно за именем таблицы, должна стоять команда. Если специфи-

катора таблицы нет, то команда всегда должна стоять первой. Команда определяет

действие iptables, например: вставить правило, или добавить правило в конец цепоч-

ки, или удалить правило и т.п.

Ниже приводится список команд и правила их использования. Посредством команд

мы сообщаем iptables что мы предполагаем сделать. Обычно предполагается одно из

двух действий добавление нового правила в цепочку или удаление существующего

правила из той или иной таблицы. Далее приведены команды, которые используются

в iptables.

state Проверяется признак состояния соединения (state) На сегодняшний день мож-

но указывать 4 состояния: INVALID, ESTABLISHED, NEW и RELATED. INVALID

подразумевает, что пакет связан с неизвестным потоком или соединением и, возмож-

но содержит ошибку в данных или в заголовке. Состояние ESTABLISHED указывает

на то, что пакет принадлежит уже установленному соединению через которое паке-

6


ты идут в обеих направлениях. Признак NEW подразумевает, что пакет открывает

новое соединение или пакет принадлежит однонаправленному потоку. И наконец,

признак RELATED указывает на то что пакет принадлежит уже существующему

соединению, но при этом он открывает новое соединение. Примером тому может

служить передача данных по FTP, или выдача сообщения ICMP об ошибке, которое

связано с существующим TCP или UDP соединением. Замечу, что признак NEW это

не то же самое, что установленный бит SYN в пакетах TCP, посредством которых

открывается новое соединение, и, подобного рода пакеты, могут быть потенциально

опасны в случае, когда для защиты сети вы используете один сетевой экран.

i INPUT означает, что мы фильтруем трафик, который предназначается нам, а не

кому-то другому.

-m state state NEW означает, что мы применяем фильтр к новым соединениям, то

есть, соединениям с syn'ами.

-m recent set. Модуль iptables recent предназначен для того, чтобы создавать ди-

намические таблицы IP-адресов в зависимости от определенных условий, а затем

устанавливать разрешающие и запрещающие правила для этих таблиц. В данном

случае, если в таблице нет ip-адреса отправителя, мы его туда добавляем.


3.3 Код скрипта


1 import os

2

3 le = open("DumpFile01.log", "r")

4

5 def createList():

6 os.system("tcpdump −nr DumpFile01.log |awk '{print $3}' |grep −oE

'[0−9]{1,}\.[0−9]{1,}\.[0−9]{1,}\.[0−9]{1,}' |sort |uniq −c |sort −rn > logle")

7

8 def ban(ip):

9 os.system("ipset −T dabip " + ip)

10 os.system("iptables −A INPUT −m state −−state NEW −m set −−set badip src −j

DROP")

11 os.system('service iptables restart')

12

13 createList()

14 logle = open("logle", "r")

15 a = logle.readline()

16 while a != '':

17 storage = a.split()

18 a = logle.readline()


7


19 if(storage[0] > 1000):

20

21

ban(storage[1])

print storage[1] + " banned"


8


Список литературы


[1] http://citforum.ru/operating_systems/linux/iptables/1.shtml

[2] http://ru.wikipedia.org


9


Скачать файл (1912.6 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации