Было очень интересно наблюдать различные изменения атаки с использованием пакетов, в которых были одновременно установлены флаги SYN и FIN (часто используют аббревиатуру SF). Это один из важнейших шаблонов атак, поэтому каждый аналитик должен его знать. Мне знакома эта сигнатура с конца 1996 года (с момента появления атаки j ackal. с), а самым последним вариантом этой атаки была атака на переполнение буфера против службы SSH, проведенная в декабре 2001 года. Установка флагов SYN и FIN позволяет пакету пройти через статический фильтр пакетов, так как такие фильтры блокируют только SYN-пакеты. Однако если такой пакет поступит на открытый порт Windows или UNIX-системы, то в ответ будет отправлен SYN/ACK-пакет. Это просто находка для хакера, ведь он может проникнуть сквозь периметр и скомпрометировать нужную систему. Рассмотрим основные варианты этой атаки.

SYN/FIN-пакет, порт отправителя 0

Впервые об этой трассировке я узнал из списка рассылки Bugtraq в марте 1998 года. Сигнатурой является использование порта отправителя 0 (что нелогично) и установка в пакете флагов SYN и FIN (тоже нелогично). Система обнаружения взлома должна уметь выявлять подобные трассировки. Обратите внимание на случайно выбираемые подсети 26, 24, 17, 16, а также на номер хоста. Возможно, это делается для того, чтобы сканирование было не таким явным. Также важна скорость сканиро вания. Детекторы сканирования обязаны выявить пять попыток подключения к пяти различным хостам, осуществленные приблизительно за четверть секунды.

13:10:33.281198 newbie.hacker.org.0 > 192.168.26.203.143: SF ^374079488:374079488(0) win 512

13:10:33.334983 newbie.hacker.org.0 > 192.168.24.209.143: SF ^>374079488 : 374079488(0) win 512

13:10:33.357565 newbie.hacker.org.0 > 192.168.17.197.143: SF ^374079488:374079488(0) win 512

13:10:33.378115 newbie.hacker.org.0 > 192.168.16.181.143: SF ^374079488:374079488(0) win 512

13:10:33.474966 newbie.hacker.org.0 > 192.168.24.194.143: SF ^374079488:374079488(0) win 512

Приведенное выше сканирование имеет несколько интересных преимуществ. FIN-пакеты могут пропускаться устройствами фильтрации пакетов, даже если SYN-пакеты блокируются. Это увеличивает вероятность получения ответа. Кроме того, флаг FIN сигнализирует о разрыве соединения, поэтому некоторые системы регистрации событий могут не уведомить о попытке соединения. SYN/FIN-пакеты являются характерным признаком средства сканирования под названием jackal, которое предназначено для обмана брандмауэров. Сложность этой сигнатуры заключается в том, что для ее создания, по всей видимости, используется несколько программ атаки (или средств сканирования). Более современной программой, использующей подобную сигнатуру, является программа пшар - наиболее эффективное средство из созданных хакерами.

SYN/FIN-пакет, порт отправителя 65535

Следующая трассировка - это любопытный вариант предыдущей. Она была зарегистрирована в ноябре 1998 года. Предполагалось, что она является результатом применения средства, которое позволяет пользователю выбрать любой порт отправителя. Хотя я ничуть не сомневаюсь, что такое средство уже существует или будет создано в ближайшее время, но это не объясняет причины появления зарегистрированных аналитиками сотен примеров с использованием в качестве портов отправителей портов 0 или 65535. До 1999 года вообще не появлялось SYN/FIN-пакетов с другими портами отправителей. Значит, номер порта отправителя был жестко закодирован в программу атаки, и программа с номером 65535 была второй версией после оригинала. Трассировка выглядит следующим образом.

16:11:38.13 IMAPPER.65535 > ns2.org.143: SF 3794665472:3794665472(0) win 512 16:11:38.13 IMAPPER.65535 > ns2.org.143: SF 3794665472:3794665472(0) win 512

Атака на службы DNS и NFS с помощью SYN/FIN-пакетов

Служба IMAP является удобной, но далеко не единственной целью атак хакеров. В следующей трассировке также используется порт отправителя 0 и установлены флаги SYN и FIN. Но в данном случае атака имеет двойную цель. Хакер пытается провести атаку на ТСР-порт 53, который также используется службой DNS.

TCP-порт 53 используется вместо UDP-порта 53 при переносе зоны DNS- по существу, списка хостов локальной сети.

Как указывалось выше, порт отправителя 0 и установленные флаги SYN и FIN являются сигнатурой для обычной атаки посредством IMAP. Для проведения данной атаки против службы NFS почти наверняка используется та же программа, что и для предыдущей. Такие изменения программ позволяют отличить хакеров, которые способны создавать, изменять или компилировать программы, от злоумышленников, которые только используют уже готовые программы. В данном случае нарушитель придумал новый вид атаки, воспользовавшись старым методом доставки пакетов.

Зачем? Обнаружение взлома отчасти напоминает военное ремесло. У оружия боеголовка часто отделяется от носителя. Например:

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

■ катапульты способны выбрасывать камни для разрушения стен, но также способны метать и горящие снаряды;

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

В каждом из этих случаев система доставки позволяет провести различные атаки. Тот же принцип используется и в информационных войнах. “Наконечником” в следующей трассировке является порт службы NFS 2049. Сигнатура механизма доставки (порт отправителя 0 и набор флагов SYN и FIN) выделена жирным шрифтом.

12:11:48 prober.21945 > nsl.net.53: SF 166652 6414:1666 526414(0) win 512 12:11:49 prober.21951 > ns2.net.53: SF 11997410:211997410(0) win 512

12:36:54 prober.0 > relay.net.2049 : SF 32 562 87232:32 562 87232 (0) win 512 12:37:03 prober.0 > web.net.2049 : SF 32 56287232:32562 87232 (0) win 512 12:37:05 prober.0 > relay2.net.2049 : SF 3256287232:3256287232(0) win 512

Атаки этого шаблона продолжают происходить. Последний известный случай произошел в феврале 2000 года. В GIAC поступили уведомления об атаках с использованием пакетов, поступающих на ТСР-порт 109 (служба POP2), в которых был установлен порт отправителя 0, флаги SYN и FIN. Совсем недавно атака изменилась, и теперь ТСР-порт 109 указывается и как порт отправителя, и как порт получателя. И последнее замечание по поводу приведенной выше трассировки. По всей видимости, действует хакер-новичок. Если программа атаки на хост не проходит с первого раза, то благоразумнее изменить проверяемый IP-адрес перед повторной попыткой. Повторная проверка одного и того же IP-адреса увеличивает шансы на то, что скоро в дверь постучится полиция. Таким образом, мы рассмотрели первый пример модификации оригинального кода программы атаки для атаки на службу NFS. И изменения вносятся постоянно. В декабре 2001 года мы выявили атаку этого типа против службы SSH (ТСР-порт 22) при использовании порта отправителя 22, порта получателя 22 и установленных флагах SYN и FIN.

Сканирование для выбора цели атаки

В этом разделе будут рассмотрены интересные шаблоны попыток сканирования, для которых (за исключением службы discard и атаки IP-191) используются хорошо известные порты уязвимых служб. Одна из проблем, связанных с отделением программ атаки от средств сканирования, связана с тем, что на большинстве узлов брандмауэры или фильтрующие маршрутизаторы используются для блокирования доступа к потенциально уязвимым службам, что затрудняет сбор информации. Например, для атак по протоколу TCP полная процедура установки соединения никогда не завершается, так как соединение блокируется, что не дает возможности определить цели злоумышленника.

Утилита mscan

Следующая трассировка представляет один из наиболее распространенных шаблонов атаки - использование утилиты mscan. Код программы атаки для мультисканирования доступен повсеместно и не является показателем опытного хакера. Эта утилита использовалась для компрометации многих систем, так как позволяет проверить уязвимые места многих систем, подключенных к Internet.

06:13:23.188197 bad.guy.org.6479 > target.mynetwork.com.23: S 06:13:28.071161 bad.guy.org.15799 > target.mynetwork.com.80: S

06:13:33.107599 bad.guy.org.25467 > target.mynetwork.com.143: S

06:13:38.068035 bad.guy.org.3861 > target.mynetwork.com.53: S 06:13:43.271220 bad.guy.org.14296 > target.mynetwork.com.110: S

06:13:47.831695 bad.guy.org.943 > target.mynetwork.com.Ill: S

Из отчета AL-98.01 группы AusCERT о тревоге, вызванной использованием средства multiscan (mscan) от 20 июля 1998 года (ftp://ftp.auscert.org.au/ pub/auscert/advisory/AL-98.01.mscan):

“AusCERT получила уведомления, указывающие на резкое увеличение активности осуществляемых попыток сканирования. Очевидно, что злоумышленники используют новое средство под названием “Multiscan” или mscan. Эта программа позволяет просканировать целые домены или полные диапазоны ІР-адресов и выявить хорошо известные уязвимые места для таких служб: statd, NFS, программы CGI-BIN (например, “handler”, “phf” и “cgi-test”), X, POP3, IMAP, DNS, finger”.

А почему в главе, посвященной средствам атаки, речь зашла о программе сканирования? Просто создано настолько много программ атаки на службы telnet, IMAP, DNS, POP3 и portmap, и они настолько хорошо известны, что решено было описать что-то более интересное.

Наследник mscan

Если один хакер создал mscan, то другому обязательно захочется улучшить оригинальную программу. Следующая трассировка была впервые зарегистрирована в ноябре 1998 года. Из нее можно узнать много полезной информации. Интенсивность сканирования составляет 10 пакетов в секунду. Это не рекорд, но довольно высокий показатель. Мы, безусловно, надеемся, что программы выявления попыток есть множество портов, а хакер не знает, что можно атаковать. Представим, например, сеть класса В 172.20.0.0 (в ней есть 65535 возможных IP-адресов). На каждом из хостов доступны 65536 TCP-портов и 65536 UDP-портов. Следовательно, перед хакером есть более 23 триллионов возможных целей. При сканировании с интенсивностью 18 пакетов в секунду на полную проверку всей этой сети уйдет 5 миллионов лет. Поскольку компьютеры меняются в среднем раз за 3-5 лет, то сканирование становится абсолютно бесполезным.

Конечно, сейчас злоумышленники используют более быстрые и разумные методы сканирования. Они не проверяют все возможные порты компьютеров. Для работы наиболее популярных служб используются около пятидесяти TCP- и UDP-портов, что ограничивает количество возможных целей значением около 163 миллионов (сканирование со скоростью 18 пакетов в секунду займет около 4 месяцев). Вполне подходяще для хакера. И если для сети не установлено средств обнаружения взлома, ее владельцы, возможно, никогда не узнают о сканировании своих случайных хостов и некоторых портов этих хостов.

Если злоумышленнику удастся составить точную схему хостов сети, то он сможет использовать эту информацию против специалистов по информационной безопасности. Большинство адресных пространств заполнены не целиком. Когда хакер узнает адреса работающих хостов, он получает серьезное преимущество. Допустим, что в сети класса В работают только 6000 компьютеров, и злоумышленник выяснил все их адреса. Теперь он может просканировать обнаруженные хосты (по 18 пакетов в секунду) менее чем за 10 дней, а есть и более эффективные методы сканирования. Например, если разрешено прохождение широковещательных эхо-запросов ICMP, то для составления схемы сети потребуется всего лишь 255 пакетов.

Мораль этого рассказа очевидна. Если хакеру не удастся провести разведывательных действий, ему придется гадать при выборе цели атаки. Если разрешить хакерам проводить разведку, то им не потребуется делать никаких лишних попыток.

Каким же образом злоумышленник может составить точную схему сети? На многих сетях до сих пор поддерживаются списки хостов (host table), доступные для скачивания по FTP. В других сетях разрешено осуществлять переносы зон DNS. Кроме того, хакер может получить эту информацию с помощью зондирования сети.

В главе 4, “Протокол ICMP”, описаны устаревшие методы составления схем сетей с помощью ICMP-сообщений. Самые простые из них заключаются в отправке эхо-запросов ICMP на отдельные хосты, что, несомненно, привлекает внимание. Мы также рассмотрели широковещательные эхо-запросы, когда схема сети определяется с помощью эхо-запросов по адресам . О и .255, что делает этот процесс более эффективным и менее заметным. В этом разделе представлен еще один метод составления схемы сети с помощью эхо-запросов и более подробно исследованы широковещательные запросы.

Зондирование сети с помощью эхо-запросов UDP

В следующей трассировке хакер проверяет группу сетевых адресов. Он выявляет только два работающих хоста, но вполне вероятно, что в этой сети их гораздо больше. Разброс и чередование адресов зондируемых хостов позволяют сделать попытку незаметной для большинства программ обнаружения сканирования. Запись udp б означает, что в UDP-пакете содержится 6 байт полезных данных.

Как указывается в последнехМ разделе этого приложения, понятие скрытого сканирования довольно неопределенно, но, по моему мнению, медленный и’незаметный процесс является самым лучшим методом скрытого сканирования.

02:08:48.088681 slowpoke.mappem.com.3066 > 192.168.134.117.echo: udp 6 02:15:04.53 9055 slowpoke.mappem.com.3066 > 172.31.73.1.echo: udp 6 02:15:13.155988 slowpoke.mappem.com.3066 > 172.31.16.152.echo: udp 6 02:22:38.573703 slowpoke.mappem.com.3066 > 192.168.91.18.echo: udp 6 02:27:07.867063 slowpoke.mappem.com.3066 > 172.31.2.176.echo: udp 6 02:30:38.220795 slowpoke.mappem.com.3066 > 192.168.5.103.echo: udp 6 02:49:31.024008 slowpoke.mappem.com.3066 > 172.31.152.254.echo: udp 6 02:49:55.547694 slowpoke.mappem.com.3066 > 192.168.219.32.echo: udp 6 03:00:19.447808 slowpoke.mappem.com.3066 > 172.31.158.86.echo: udp 6

Вместо ожидания эхо-ответов на посланный эхо-запрос в данном сканировании проверяются ответы хостов на пакет, отправленный на порт echo. Служба echo должна возвращать любые полученные символы. Грамотные системные администраторы не оставляют этот порт открытым, а грамотные администраторы сетей не допускают поступления трафика на этот порт.

Замечание о выявлении попыток сканирования

Пока не еще нет гениального исследователя, который бы предложил другой метод, поэтому сканирование выявляется на основе определенного количества запросов к хостам за установленный промежуток времени. Система обнаружения вторжений может и должна использовать несколько временных промежутков для выявления сканирования. Например, мы наблюдали несколько попыток сканирования, когда за секунду проверяются пять целей. Используя короткий промежуток времени от 1 до 3 секунд, система обнаружения вторжений сможет выявлять высокоскоростные попытки сканирования и реагировать на них практически в реальном времени (через 3-5 секунд после начала сканирования). Подавление таких попыток сканирования в начальной стадии - один из лучших примеров применения автоматических ответных действий. Другой приемлемый промежуток для выявления попыток сканирования составляет от 1 до 5 минут. Это позволяет выявить более медленные, но не менее очевидные попытки. В системе обнаружения вторжений Shadow успешно использовался шаблон выявления сканирования при попытке доступа к пяти-семи различным хостам за один час.

Я написал программу, которую усовершенствовал Билл Ральф (Bill Ralph). Эта программа позволяет выявить попытки скрытого сканирования (с помощью SYN-пакетов) во временном промежутке 24 часа, а также сканирования со средней и низкой скоростью. Так как большинство современных систем обнаружения вторжений поставляются с готовыми базами данных сигнатур, то основное внимание приходится уделять обнаружению попыток сканирования со средней или низкой скоростью. Сканирования обнаруживались при таких низких скоростях, как пять пакетов с одного IP-адреса за 60 дней. Такие низкие скорости сканирования имеют смысл, только если они одновременно осуществляются с нескольких хостов. Мы зарегистрировали попытки сканирования, осуществленные с 2500 совместно работающих хостов, а “сеть” хостов, которые были поражены червем w32.leaves, включала около 30000 скомпрометированных хостов. Таким образом, злоумышленники могут проводить распределенные сканирования с медленными скоростями.

Широковещательные запросы по маскам подсети

Какие из эхо-запросов в приведенной ниже трассировке являются широковещательными? Все! Всем известно о широковещательных адресах 0 и 255, но при определенных условиях широковещательными могут оказаться все пакеты этой трассировки. Что это за условия? Они возникают при разбиении сети на подсети, когда используются нестандартные маски подсетей.

02:21:06.700002 pinger> 172.20.64.0: icmp: echo request 02:21:06.714882 pinger> 172.20.64.64: icmp: echo request 02:21:06.715229 pinger> 172.20.64.63: icmp: echo request

02:21:06.715561 pinger> 172.20.64.127: Ісшр: echo request

02:21:06.716021 pinger> 172.20.64.128: ісшр: echo request

02:21:06.746119 pinger> 172.20.64.191: ісшр: echo request

02:21:06.746487 pinger> 172.20.64.192: ісшр: echo request

02:21:06.746845 pinger> 172.20.64.255: Ісшр: echo request

Когда-то я работал в организации, ответственной за распределение сетевых адресов. Один адрес хоста стоил 50 долларов в месяц, а подсеть с маской 255.255.255.0 (другими словами, 256 возможных адресов) - 1000. Этой организации принадлежало адресное пространство сети класса В 172.29.0.0, которое было разбито на подсети. Оказалось, что если купить маршрутизатор и взять в аренду подсеть, то плату за адресное пространство можно снизить. Покажем, как это делается.

Допустим, мы взяли в аренду подсеть 172 .29.15.0 за 1000 долларов в месяц. Маска подсети должна быть 255.255.255.0, что дает нам 256 возможных адресов. Однако 0 и 255 не могут принадлежать хостам, т.е. остается 254 доступных адреса. Если брать отдельно адреса для хостов по 50 долларов в месяц, то сумма составит бы 12700 долларов в месяц, т.е. брать в аренду подсеть куда выгоднее. Однако при наличии собственного маршрутизатора мы можем назначать любую маску подсети на нашей стороне.

Предположим, мы нашли небольшие группы людей, таких же бережливых и независимых, как мы сами. Мы можем использовать два бита нашего адресного пространства для создания четырех подсетей по 6 бит адресного пространства каждая. Поскольку 2' равно 64, маска подсети станет 255.255.255.192, или в шестнадцатеричном формате - Oxf ffff fcO. Теперь каждый из нас может иметь собственную подсеть, мы разделим 1000 долларов на четверых и будем платить в месяц чуть больше, чем за 5 адресов отдельных хостов. Отлично, но каким будет широковещательный адрес для маски подсети 255.255.255.192?

Выполним вычитание: 255 - 192 = 63. Это и есть значение широковещательного адреса “все единицы”, а для неопределенного адреса “все нули” соответственно должны использоваться адреса 0 или 64. Если это непонятно, то ниже дано пояснение.

с 0 в шестнадцатеричном формате 1100 0000 в двоичном формате два старших бита использованы для сетевой части адреса лл алал на часть адреса хостов осталось 6 бит

Если все 6 бит являются единицами, то 32+ 16 + 8 + 4 + 2+1= 63.

Теперь посмотрим на адреса, использованные в эхо-запросах ICMP нашей трассировки: 0, 64, 63, 127, 128, 191, 192 и 255.

Могут ли быть адреса 127 и 128 также широковещательными? Конечно, если нам нужно больше подсетей с меньшим количеством хостов в каждой из них. В этом случае можно позаимствовать один бит из части адреса для хостов (узловая часть адреса) и использовать его для сетевой части. Если для сетевой части адреса используется 25 бит (33554432 возможные подсети), при этом в каждой сети для адресов хостов будет использоваться по 7 бит (128 возможных адресов), то маска подсети будет 255.255.255.128. Каким будет широковещательный адрес? Поскольку 255 - 128 = 127, адрес 12 7 будет широковещательным адресом “все единицы”.

Могут ли быть адреса 191 и 192 также широковещательными? Да, если нужно создать множество подсетей с небольшим числом хостов в каждой из них. В этом случае для сетевой части адреса можно использовать 27 бит (134217728 возможные подсети), в.каждой из подсетей для адреса конкретного хоста используется по 5 бит (32 возможных адреса). Маска подсети 255. 255. 255. 64. Широковещательный адрес 255 - 64 = 191.

Конечно, если разрешить поступление в сеть входящих ІСМР-сообщений, то хакеру достаточно будет послать только один пакет с запросом маски подсети. Полученный ответ с маской подсети избавит хакера от лишнего угадывания.

Сканирование портов

Рассмотрим более простую трассировку. Это стандартный пример сканирования портов. После того как злоумышленник нашел активный хост, он, наверняка, захочет узнать, какие службы запущены. Это сканирование выполняется по протоколу TCP, и в каждом пакете уменьшается номер порта получателя. Любопытно видеть пропуски в номерах порта отправителя. Возможно, используется компьютер, выполняющий большой объем задач, или одновременно выполняется несколько сканирований. Это пример ускоряющегося сканирования. Сравните время поступления пакетов в начале трассировки и в ее конце. На скорость может влиять множество факторов. Если сравнить эту трассировку с другими зарегистрированными трассировками, связанными с ней, и поток пакетов тоже увеличивается, то можно сделать некоторые предположения относительно хоста-отправителя. Пропущенные номера портов указывают на то, что причиной ускорения сканирования является хост-отправитель, а не промежуточная сеть. Если есть возможность сравнить указанные порты отправителя с портами в других зарегистрированных трассировках, то можно сделать вывод о том, происходит несколько сканирований одновременно, или причина заключается в использовании многопользовательского компьютера, выполняющего большой объем работы.

09:52:25.349706 bad.guy.org.1797 > target.mynetwork.com.12: S 09:52:25.375756 bad.guy.org.1798 > target.mynetwork.com.il: S 09:52:26.573678 bad.guy.org.1800 > target.mynetwork.com.10: S 09:52:26.603163 bad.guy.org.1802 > target.mynetwork.com.9: S 09:52:28.639922 bad.guy.org.1804 > target.mynetwork.com.8: S 09:52:28.668172 bad.guy.org.1806 > target.mynetwork.com.7: S 09:52:32.749958 bad.guy.org.1808 > target.mynetwork.com.6: S 09:52:32.772739 bad.guy.org.1809 > target.mynetwork.com.5: S

09 : 52 : 32’. 802331 bad.guy .org . 1810 > target.mynetwork. com. 4 : S 09:52:32.824582 bad.guy.org.1812 > target.mynetwork.com.3: S 09:52:32.850126 bad.guy.org.1814 > target.mynetwork.com.2: S 09:52:32.871856 bad.guy.org.1816 > target.mynetwork.com.1: S

Сканирование конкретного порта

Какая служба запущена на ТСР-порте 7306? Кто его знает. Как я говорил в приложении А, “Программы атаки и методы сканирования”, никогда не вредно поискать информацию с помощью www . google . com, так как все списки портов, которые я видел, были неполными. Эта трассировка была получена в конце 1998 года, и ознаменовала начало нескольких необычных сканирований, целью которых были неизвестные порты. Сканирование было хорошо подготовлено, нет ни одной очевидной сигнатуры.

В первом и последнем пакетах этой трассировки указано имя запрашиваемого хоста, во всех промежуточных пакетах содержится IP-адрес. Это может означать, что хакер “стреляет вслепую’*, не имея точной схемы сети. Невозможность определить имя хоста часто означает, что этого хоста просто не существует. Обратите внимание на последний пакет трассировки. Номера портов отправителя обычно увеличиваются, а этот номер неожиданно уменьшается на 22. Поскольку начальный порядковый номер тоже имеет меньшее значение (49684211), то, вероятно, пакет был утерян на пути следования и поступил не в порядке отправления. '

09:54:40.930504 prober.3794 > lula.arpa.net.7306: S 4 9684444:4 9684444(0) win 8192 (DF)

09:54:40.940663 prober.3795 > 192.168.21.20.7306: S 49684454:496844 54(0) win 8192 (DF)

09:54:41.434196 prober.3796 > 192.168.21.21 .'7306: S 4 9684 945:496 84 945 (0) b win 8192 (DF)

09:54:41.442674 prober.3797 > 192.168.21.22.7306: S 49684955:4 96 84955(0) win 8192 (DF)

09:54:41.451029 prober.3798 > 192.168.21.23.7306: S 4 9684 965:49684 965(0) win 8192 (DF)

09:54:41.451049 prober.3776 > host.arpa.net.7306: S 49684211:49684211(0) win 8192 (DF)

Сложный сценарий, возможна компрометация

Следующая трассировка состоит из множества отдельных попыток зондирования и атак. Она поделена на пять частей. Попытка доступа к службе portmapper означает, что злоумышленник хочет взломать компьютер или собирает разведывательную информацию. Более того, хакер получает ответ от системы, что очень плохо. Запросы к службе преобразования портов (portmapper) должны быть заблокированы на фильтрующем маршрутизаторе или на брандмауэре, а на самом хосте следует использовать защищенный вариант этой службы. Обратите внимание на то, что атаки направлены против двух хостов (16 и 17). По номерам портов получателей я предположил, что они работают под управлением UNIX. Вполне вероятно, что между этими двумя системами установлены доверительные отношения, и, если одна из будет взломана, то же самое произойдет и со второй.

Затем мы видим попытку доступа к ТСР-порту 906, который не является стандартным для какой-либо службы, но атакуемая система все равно отвечает. Это может означать, что на компьютере ранее была установлена вредоносная программа. Однако вместо отправки или получения данных, злоумышленник разрывает соединение. Через два часа он проверяет, по-прежнему ли работает система.

00:35:33.944789 prober.839 > 172.20.167.16.sunrpc: udp 56 00:35:33.953524 172.20.167.16.sunrpc > prober.839: Udp 28 00:35:33.984029 prober.840 > 172.20.167.17.sunrpc: Udp 56 00:35:33.991220 172.20.167.17.sunrpc > prober.840: Udp 28

00:35:34.046598 prober.840 > 172.20.167.16.906: S 2450350587:2450350587(0) win 512

00:35:34.051510 172.20.167.16.906 > prober.840: S 1996992000:1996992000(0) ack 2450350588 win 32768 (DF)

00:35:34.083949 prober.843 > 172.20.167.17.sunrpc: udp 56 00:35:34.089272 172.20.167.17.sunrpc > prober.843: udp 28

00:35:34.279472 prober.840 > 172.20.167.16.906: F 117:117(0) ack 69 win 32120 00:35:34.284670 172.20.167.16.906 > prober.840: F 69:69(0) ack 118 win 32768 (DF)

02:40:43.977118 prober > 172.20.167.16: icmp: echo request 02:40:43.985138 172.20.167.16 > prober: icmp: echo reply

Эта трассировка очень важна, и, как аналитик, я бы посоветовал провести ее внимательный анализ. Обсудим ответные действия. Необходимо выполнить резервное копирование, провести исследование случившегося, предотвратить распространение атаки и удалить файлы хакера. Если бы это была одна из защищаемых мной систем, я бы посоветовал пользователю следующее:

■ уберите руки с клавиатуры;

■ немедленно выдерните сетевой кабель;

ш после появления специалиста по восстановлению выполните резервное копирование;

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

Использование порта 906 требует дальнейшего расследования. Проще всего принести с собой переносной компьютер и небольшой концентратор. С помощью концентратора соедините скомпрометированную систему с вашим переносным компьютером. Загрузите собственные копии системных утилит (например, Is, ps, netstat) на проверяемую систему либо перепишите их с заранее созданного компакт-диска. С переносного компьютера организуйте telnet-соединение с портом 906 проверяемой системы. Запустите собственные версии утилит netstat и ps, чтобы выявить активные процессы. Кроме того, проверьте установленные доверительные отношения для скомпрометированного компьютера по информации файлов . rhosts и /etc/hosts . equiv.

Альтернативный метод

Невозможно рассказать об устранении взлома в двух словах. Документ под названием Incident Handling Step by Step является результатом совместных усилий более чем 90 специалистов по обеспечению защиты информации. Он доступен на сайте www.sans.org. Одним из лучших методов при выходе системы из строя или необходимости ее перезагрузки является использование загрузочных компакт-дисков. Затем можно смонтировать системный диск как диск данных. По возможности старайтесь сохранять информацию жесткого диска в неизменном виде, чтобы ее можно было использовать в качестве доказательства атаки.

Затем обратитесь к владельцам компьютера и узнайте, когда осуществлялось последнее резервное копирование его данных. Хмыкните и неодобрительно покачайте головой, когда услышите ответ “никогда” или “два года назад”. Посмотрите пристально в глаза владельцу и спросите, есть ли данные, которые абсолютно точно необходимо сохранить. Создайте резервные копии только файлов с данными, переформатируйте жесткий диск и посоветуйте установить все последние заплаты перед тем, как снова подключать систему к сети. Подключите свой переносной компьютер к локальной сети. Просканируйте хосты локальной сети и определите, не отвечают ли они на запросы на порт 906. Продолжайте проверку, пока не будут уничтожены все последствия атаки.

Мы рассказывали об атаках Loki и средствах для проведения распределенных атак отказа в обслуживании наподобие Trinoo, в которых эхо-запросы и эхо-ответы используются для других целей. Возможно, следует внимательнее изучить содержимое ping-пакетов.

Сканирование случайных портов

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

11:48:42.413036 prober.18985 > host.arpa.net.794: S 124 0 987936:124 0 987936(0)

'Ъ win 512

11:48:42.415953 prober.18987 > host.arpa.net.248: S

909993377:909993377(0) win 512

11:48:42.416116 prober.19031 > host.arpa.net.386: S 1712430684:1712430684(0)

^ win 512

11:48:42.416279 prober.19032 > host.arpa.net.828: S 3232 65067:3232 65067(0) win 512

11:48:42.416443 prober.19033 > host.arpa.net.652: S 1333164003:1333164003(0)

Win 512

11:48:42.556849 prober.19149 > host.arpa.net.14S: S 2112498338 .-2112498338 (0) win 512

11:48:42.560124 prober.19150 > host.arpa.net.228: S 18320114 92:18 320114 92(0) win 512

11:48:42.560824 prober.19151 > host.arpa.net.840: S 32318693 97:32318693 97(0) win 512

11:48:42.561313 prober.19152 > host.arpa.net.1003: S 243 5718 521:24 35718 521(0) win 512

11:48:42.561437 prober.19153 > host.arpa.net.6: S 2 632 531476:2 632531476(0) win 512

11:48:42.561599 prober.19165 > host.arpa.net.280: S 2799050175:2799050175(0) win 512

11:48:42.563074 prober.19166 > host.arpa.net.845: S 2 065507 088 .-206550708 8 (0) win 512

11:48:42.563115 prober.19226 > host.arpa.net.653: S 1198658558:1198658558(0) win 512

11:48:42.563238 prober.19227, > host.arpa.net.444: S

10 90444266:10 90444266(0)

^ Win 512

11:48:42.565041 prober.19274 > host.arpa.net.907: S 2414364472:2414364472(0)

Ь Win 512

Итак, нам не известна цель сканирования, и это настораживает. Что в этом случае должен делать аналитик? Мы видим, что это сканирование выполняется быстро, и предсказать номер порта отправителя невозможно. Зачем же кому-то сканировать так много неизвестных портов? Я не уверен, получим ли мы вообще ответ на этот вопрос. За последние несколько лет было много случаев довольно странных сканирований. Мое единственное предположение в том, что кто-то использует программы nmap, hping2, isic, packetx или другие подобные средства для проведения пробных сканирований, которые не имеют определенной цели (возможно, используются ложные IP-адреса отправителя). Это ответ на вопрос “как”, но не на вопрос “зачем”.

Еще одно предположение. Это делается, чтобы свести с ума аналитиков сетевого трафика, проверить, о чем они уведомляют, а о чем - нет, а может быть, чтобы услышать в новостях CNN о новой атаке хакеров. Согласен, что это маловероятно, но у меня нет лучших предположений. Как реагировать аналитику на это и другие подобные сканирования случайных портов? Я советую уведомлять об этих попытках, потому что никогда не знаешь, какая информация окажется полезной группам CIRT. Если настройки брандмауэра не позволяют проходить никаким пакетам, кроме специально разрешенных, и ни один из хостов локальной сети не отвечает, то лучше всего создать каталог под названием “Сканирования_с_Марса” и сохранить там выявленные трассировки.

Использование баз данных

Я рекомендую аналитикам сетевого трафика придерживаться принципа “сделал и за был”. При обнаружении проблемы следует уведомить о ней и продолжать свою работу. Когда мы впервые приступили к выявлению взломов для довольно крупной сети (пять узлов, около 12000 хостов), то аналитику приходилось вручную сверять показания датчиков о порте и IP-адресе отправителя подозрительных пакетов, порте и IP-адресе получателя и т.д. Если нужно провести сравнение по значению поля TTL или узнать принцип присвоения порядковых номеров, то этот процесс может продлиться несколько дней.

Жизнь слишком коротка, чтобы тратить ее на подобные глупости. После выявления шаблона атаки и уведомления о ней сравнение можно осуществлять, используя базу данных. Следующий отчет был получен с помощью военной системы сравнительного анализа Dark Shadow. Она основана на использовании базы данных Oracle. Когда аналитик обнаруживает попытку взлома и сообщает о ней, система Dark Shadow сопоставляет признаки атаки с информацией базы данных, полученной от Хдатчиков за Гмесяцев. При выявлении совпадения аналитику отправляется соответствующий отчет. Таким образом, аналитик может не помнить о всех ранее выявленных атаках.

Обратите внимание на то, что, судя по изменению номеров порта отправителя (на порт получателя 111 пакеты поступают с портов отправителя 617-1023, а на порт получателя 25 - с портов отправителя 2294-29419), на сканирующем хосте запущено два процесса: один для сканирования службы электронной почты, а второй - службы portmapper. Скорее всего, для запуска этих процессов использован единый сценарий, и выполняется чтение из файла, в котором перечислены IP-адреса атакуемых хостов. По всей вероятности, одновременно сканируется большое количество хостов.

06/04/98 03:20:25 scanner 622 172.20.1.41 111 t

06/04/98 04:02:35 scanner 21091 172.20.1.1 25 t

06/04/98 04:02:36 scanner 890 172.20.1.1 111 t

06/04/98 04:06:04 scanner 21242 172.20.10.114 25 t

06/04/98 04:09:15 scanner 617 172.20.10.114 111 t

06/04/98 07:24:47 scanner 2295 192.168.229.18 25 t

06/04/98 07:28:06 scanner 1017 192.168.229.18 111 t

06/04/98 07:28:21 scanner 2333 172.20.1.41 25 t

06/04/98 07:31:40 scanner 729 172.20.1.41 111 t

06/04/98 12:46:21 scanner 20553 172.20.48.157 25 t

06/04/98 12:49:40 scanner 1023 172.20.48.157 111 t

06/04/98 16:05:22 scanner 29276 172.20.1.1 25 t

06/04/98 16:08:33 scanner 803 , 172.20.1.1 111 t

06/04/98 16:08:52 scanner 29419 172.20.10.114 25 t

06/04/98 16:08:53 scanner 900 172.20.10.114 111 t

SNMP/ICMP

Еще до выхода в начале 2002 года набора средств RPOTOS и последовавшего за этим использования программ атак протокол SNMP (Simple Network Management Protocol - упрощенный протокол сетевого управления) позволял хакерам получать немало информации о чужих хостах и конфигурации сетей. Согласно документации RFC для протокола SNMP выделен TCP/UDP-порт 161. Я никогда не встречался с примерами использования TCP-версии протокола SNMP, но для безопасности оба эти порта следует заблокировать для входящих пакетов из Internet.

Просто удивительно, как много устройств, например, мини-концентраторы, X-терминалы и принтеры, поддерживают работу по SNMP. По умолчанию доступ к эти устройствам предоставляется с помощью хорошо известного пароля (строки доступа), обычно слова “public”. Во многих организациях, в которых “заботятся” о безопасности, этот пароль изменяют на один из следующих вариантов:

■ private;

■ internal;

■ название организации.

Безусловно, выбор одного из этих слов в качестве строки доступа SNMP не будет удачным. Нужно подобрать более сложный пароль.

В следующей трассировке обратите внимание на широковещательные запросы по SNMP и ICMP. Это очень эффективный метод составления схемы сети, так как злоумышленнику не приходится отправлять большее количество пакетов, а потенциально он может получить значительный объем информации.

17:31:33.49 prober.1030 > 192.168.2.255.161: GetNextRequest(11)[snmp] 17:31:33.73 prober.1030 > 255.255.255.255.161: GetNextRequest(11)[jsnmp] 17:31:33.73 prober > 255.255.255.255: icmp: echo request

17:43:17.32 prober > 192.168.1.255: icmp: echo request

17:43:17.32 prober.1030- > 192.168.1.255.161: GetNextRequest(11)[jsnmp]

Атака no FTP

Рассмотрим еще одну трассировку, для которой применяется сравнение с информацией базы данных. В данном случае аналитик хочет найти сведения отно сительно исходящих соединений через ТСР-порт 20 (f tp-data) без использования порта FTP (ТСР-порт 21). Подобное соединение может являться результатом сканирования портов с помощью FTP-сервера. Такая атака стала известна как возврат по FTP (FTP bounce). Преимущество этой атаки заключается в обеспечении анонимности злоумышленника (ведь сканирование выполняется от имени FTP-сервера). Это напоминает использование открытого ргоху-сервера, только порт отправтеля будет указан как ТСР-порт 20. Чтобы добиться своей цели, хакеру достаточно подключиться к уязвимому FTP-серверу в качестве анонимного пользователя и проверить любые порты атакуемого хоста. Как правило, эта атака не несет серьезной угрозы, за исключением ситуации, когда у организации с FTP-сервером установлены доверительные отношения. Тогда хакер сможет просканировать все хосты этой организации. Возврат по FTP рассматривается в одной из рекомендаций CERT, которую можно найти по адресу www.cert.org/ftp/ cert_advisories/CA-97.27.FTP_bounce.

В некоторых реализациях демонов службы FTP команда port может быть использована для установки соединения с указанным хакером портом на компьютере, с которым он бы не мог установить соединение напрямую. Эта проблема живо обсуждалась на протяжении нескольких лет, и некоторые поставщики исправили существующие ошибки.

Выявив трафик следующей трассировки, мы проверили хост prober и обнаружили, что он является анонимным FTP-сервером. При этом команду port можно было использовать как угодно. Интересно, что эта трассировка была зарегистрирована задолго до того, как попытки доступа к неизвестным портам стали популярной забавой. Ниже показаны все запросы на соединение, отправленные хостом prober на адрес защищенной сети (172 .20 .152).

дата время IP-адрес отпр. Порт отпр. IP-адрес получ. порт получ.

04/27/98 10:17:31 prober 20 172.20.152.2 3062 t

04/27/98 10:27:32 prober 20 172.20.152.2 4466 t

05/06/98 06:34:22 prober 20 172.20.152.2 1363 t

05/06/98 09:12:15 prober 20 172.20.152.2 4814 t

05/06/98 09:15:07 prober 20 172.20.152.2 1183 t

05/06/98 10:11:30 prober 20 172.20.152.2 1544 t

Использование NetBIOS

В этом разделе будет рассмотрено несколько трассировок, созданных при атаках на системы Windows. Службами NetBIOS используются TCP- и UDP-порты 135-139. Конечно, NetBIOS может применяться не только на Windows-системах (вспомним хотя бы Samba), но, чаще всего, трафик служб NetBIOS предназначается именно Windows-системам.

Пакеты от Web-cepeepa

Одна из характерных черт служб NetBIOS заключается в том, что трафик, поступающий на UDP-порт 137, часто отправляется с Web-cepBepa какого-то узла. Например, если по электронной почте отправить сообщение на узел, где запущена программа Microsoft Exchange, то часто на порт 137 приходит ответный пакет. Следующая трассировка появилась в результате нашего исследования причин поступления пакетов на порт 137. Чтобы выяснить причину, мы проверили весь трафик для хоста jellypc и обнаружили попытку доступа к Web-cepBepy. То же самое было сделано для хоста jampc, и результат не отличался. Просмотр всего трафика для интересующего хоста - очень ценная возможность для проведения анализа. Если ваша система обнаружения вторжений не поддерживает такой возможности, стоит подумать о ее замене!

Замечание по поводу общественной безопасности

Хотя этот раздел в основном посвящен NetBIOS, не могу не упомянуть о том, что в Internet существуют прямо-таки вредоносные Web-серверы. Подобные Web-серверы собирают информацию о связывающихся с ними компьютерах, включая сведения об операционных системах и версиях броузеров. Если на узле не поддерживается служба NAT (Network Address Translation - трансляция сетевых адресов), то Web-сервер получит IP-адрес обратившегося к нему хоста. Часто также извлекается адрес электронной почты Web-клиента. Некоторые сайты открывают обратное соединение с клиентом и проводят то, что мы называем анализом стека протоколов TCP/IP (здесь мы даже не затрагиваем тему файлов cookie).

При получении пакетов от хоста jellypc Web-серверу оказалось недостаточно информации HTTP-заголовков. Поэтому другой компьютер из той же подсети, что и Web-сервер, обращается к хостам, которые посетили этот Web-сервер, с целью собрать информацию, предоставляемую службой NetBIOS Name Service.

12/02/97 08:27:18 jellypc.arpa.net 1112 -> www.com http

12/02/97 08:27:19 0 bill.com 137 -> jellypc.arpa.net 137

12/02/97 17:06:03 jampc.arpa.net 2360 -> www.com http

12/02/97 17:08:10 0 bill.com 137 jampc.arpa.net 137

Я долго общался по телефону с одним из администраторов сети, в которой был установлен этот Web-сервер. Оказалось, что они используют специальную коммерческую программу для маркетингового исследования, которая предназначена для составления базы данных относительно предпочтений своих клиентов.

С помощью команды nbtstat, выполненной на компьютере под управлением Windows NT, можно узнать информацию об этой Windows-системе. Если на Win-dows-системе запущена служба NetBIOS, она обязательно ответит на команду nbtstat. Посмотрите на следующий пример.

C:\>nbtstat -a goo

NetBIOS Remote Machine Name Table

Name ,Type Status

Registered Registered Registered MAC Address = 00-60-97-C9-35-53

GOO <2 0 > UNIQUE

600 <00> UNIQUE

KD2 <0 0> GROUP

KD2 <1C> GROUP

KD2 <1B> UNIQUE

GOO <03> UNIQUE

SRNORTH <03> UNIQUE

INet-Services <1C> GROUP

IS-G00 <0 0> UNIQUE

KD2 <1E> GROUP

KD2 <1D> UNIQUE

.._MSBROWSE_.<01> GROUP

Итак, мы узнали NetBIOS-имя моего компьютера Goo, а также имя моей рабочей группы (KD2). Моим именем пользователя для регистрации на этом компью тере является snorth. Кроме того, определено, что у меня есть файл cookie для главного броузера (master browser).

Возможно, что этот пример с приложением для сбора информации не произвел на вас впечатления. Однако с помощью запросов nbstat мне удалось определить структуру сетей всей организации, а также большинство имен пользователей.

Нулевой сеанс

Нулевые сеансы (null session) описывались аналогично использованию службы finger. По существу, нулевые сеансы - это вход в систему от имени пользователя nobody. Этот пользователь не имеет никаких полномочий на изменение данных, но может просматривать всю системную информацию. Для этого используется, например, следующая команда, net use \\172.20.244.164\IPC$ "" /USER:""

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

2/18/98 1:39 AM - Jsmith - \\192.168.4.22 UserName

Administrator

Groups,Administrators (Local,

Members can fully administer the computer/domain)

AccountType,User

HomeDrive

HomeDir

PswdCanBeChanged,Yes PswdLastSetTime,Never PswdRequired,Yes PswdExpires,No AcctDisabled,No AcctLockedOut,No AcctExpiresTime,Never LastLogonTime,11/20/98 3:24 PM LastLogonServer,192.168.4.22 Sid,S-1-5-21-706837240-361788889-398547282-500

Нулевые сеансы можно заблокировать в Windows 2000, а также в Windows ХР Professional. Для этого на Панели управления (Control Panel) выберите элемент Администрирование (Administrative Tools) и пиктограмму Локальная политика безопасности (Local Security Policy).

Скрытые атаки

Первый раз термин скрытые (stealth) был использован в статье Криса Клауса (Chris Klaus) “Stealth Scanning - Bypassing Fitcwalls/SATAN Detectors” (“Скрытое сканирование в обход брандмауэров и программы SATAN”. Теперь подобные попытки сканирования часто называют сканированием с незавершенным открытием TCP-сеанса (half open). Существуют различные варианты такого сканирования, в этом разделе будут рассмотрены наиболее типичные из них. Подобное сканирование не так уж сложно обнаружить. В настоящее время некоторые авторы стали использовать термин скрытое сканирование для сканирований с помощью нульпакетов (в которых не установлено никаких флагов). Я считаю, что этот термин допустимо использовать только для медленных и незаметных попыток сканирования или для сканирований с помощью нескольких распределенных компьютеров. С течением времени статические фильтры пакетов используются все реже и реже, и сканирования с незавершенным открытием TCP-сеанса уходят в прошлое. Такие сканирования не стоит называть скрытыми, так как они просто очевидны. На Web-сайте анализатора пакетов Snort (www. snort. org) приведены эффективные правила для обнаружения попыток такого сканирования.

Наступают времена применения усовершенствованных методов сканирования. Злоумышленники, способные создавать и компилировать программы, теперь используют средства, которые считаются признаком высокой квалификации хакера. Три года назад это была программа j ackal, на рубеже нового тысячелетия - hping и пшар, а теперь - программы для распределенного сканирования.

В книге Роберта Зиглера (Robert Ziegler) Inside Firewalls я отмечал, что не перестаю поражаться защите, обеспечиваемой с помощью службы NAT (Network Address Translation -трансляция сетевых адресов). На моем переносном компьютере запущена виртуальная машина VMWare и под Windows ХР работает Linux 7.2. Мои самые важные файлы хранятся в Linux 7.2, в которой используется служба NAT. Таким образом, если хакеру удастся проникнуть сквозь защиту по периметру, которая также включает в себя NAT, и взломать мой переносной компьютер под управлением Windows ХР, ему придется разобраться с еще одной службой NAT. Поскольку современные брандмауэры доступны всего за $300, можно использовать большое количество NAT в своей организации, что помешает провести большинство из рассматриваемых сканирований. Кроме того, невозможно обойти грамотно настроенный и оснащенный ргоху-сервером брандмауэр (хотя этот вопрос мы еще обсудим). Никакая вредоносная программа не способна обмануть квалифицированного аналитика, который использует систему обнаружения взлома, сохраняет весь передаваемый трафик и обновляет базу данных. При выборе более легкого пути могут возникнуть неприятности.

Перед началом изучения некоторых методов скрытого сканирования давайте процитируем выдержки из описания исходного кода программы атаки j ackal. с. “Программа сканирования Jackal-Stealth с помощью отправки SYN-пакетов (иногда добавляются дополнительные флаги, например FIN) позволяет выполнять сканирование компьютеров, защищенных брандмауэром. Сканирование не должно обнаруживаться, так как полная процедура установки ТСР-соединения не выполняется. Разработчики: Halflife, Jeff (Phiji) Fay, Abdullah Marafhie. Проверял: Уолтер Копецки (Walter Kopecky). Результаты тестирования: некоторые брандмауэры пропускают пакеты с установленными флагами SYN и FIN. Не было ни одного случая регистрации соединения...”

Замечательная идея! Если фильтрующий маршрутизатор блокирует SYN-пакеты, его можно обойти, установив в пакете два флага: SYN и FIN. Однако утверждение, что действия программы j ackal не были ни разу выявлены, конечно, не соответствуют действительности. В приложении А, “Программы атаки и методы сканирования”, приведены трассировки трафика SYN/FIN-пакетов, выявленные с помощью системы Shadow. Хорошие системы обнаружения вторжений регистрируют и анализируют все пакеты, созданные с помощью программы j ackal (или hping, или пшар). В действительности не составляет труда обнаружить SYN/FIN-пакеты.

Явные методы скрытого сканирования

Известны два метода явного сканирования: использование SYN/FIN-пакетов и сканирование с помощью FIN-пакетов. Б обоих случаях активные хосты должны возвращать пакеты с установленным флагом RESET. Кроме того, должно возвращаться ICMP-сообщение при недостижимости хоста. Эти методы эффективнее возврата по FTP, но более очевидны.

Программы атаки и методы сканирования | Обнаружение нарушений безопасности в сетях | Сканирование с помощью fin-пакетов


Обнаружение нарушений безопасности в сетях



Новости за месяц

  • Сентябрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс