Создание фальшивых пакетов
Сканер nmap имеет возможность обманного (decoy) сканирования, когда вместо реальных IP-адресов источника проставляются (подменяются) другие IP-адреса. Тем самым перед администратором системы обнаружения атак ставится непростая задача: обнаружить среди множества зафиксированных в журналах регистрации IP-адресов только один реальный, с которого действительно производилось сканирование.
Частота подмены адреса источника для различных типов атак выглядит так, как это показано в табл. 2.3 [SANS 1-00].
Таблица 2.3. Вероятность подмены адреса
Тип атак | Пример | Вероятность подмены адреса |
Сбор информации | Traceroute, ping | < 1% |
Сканирование портов | Один узел или подсеть | 5% |
Многопакетные атаки типа "отказ в обслуживании" | Ping Flood, SMURF, Fragle | Источником может быть промежуточный узел |
Однопакетные атаки типа "отказ в обслуживании" (или из нескольких пакетов) | WinNuke. Ping of Death, SYN Flood | 95% |
Переполнение буфера | Длинные имена файлов, длинные URL | 50% |
Команды | Telnet, BackOrifice, Netcat | 5% |
Фрагментация атаки
Фрагментация — механизм разбиения IP-пакета на множество более мелких. При получении таких пакетов TCP/IP-устройство собирает (reassembly) 1 эти пакеты и передает конечному приложению или повторно фрагментирует их и передает дальше. Большинство современных систем обнаружения атак не имеет механизма дефрагментации IP-пакетов. Эти системы пропускают такого рода пакеты (возможно, выдавая на консоль администратора соответствующее сообщение об обнаружении фрагментированных пакетов). Зафиксированы отдельные случаи, когда системы обнаружения атак "падали" от фрагментированных атак. Следовательно, имеется возможность обойти эти системы при помощи специальных средств (например, fragrouter).
Отказ от значений по умолчанию
Очень часто механизмы обнаружения атак исходят из предположения, что порт однозначно идентифицирует протокол или сервис. Например, порт 80 относится к протоколу HTTP, порт 25 — к протоколу SMTP, порт 23 — к протоколу Telnet, порт 31337— к "троянцу" BackOrifice, и т.д. Злоумышленники пользуются этим и могут задействовать стандартные протоколы на нестандартных портах. Например, злоумышленник может заменить значение по умолчанию для BackOrifice (31337) на 31338. В результате многие механизмы обнаружения атак дадут сбой в этом случае и не смогут обрабатывать такой "непривычный" для них трафик.
Изменение стандартного сценария атаки
Многие механизмы обнаружения атак работают по принципу сопоставления с образцом (шаблоном). Использование баз данных известных атак позволяет обнаруживать атаки с высокой степенью достоверности. Однако от таких систем можно очень легко уклониться, немного изменяя шаблон. Частным примером такой маскировки является отказ от значений по умолчанию. Другой пример — замена символа пробела в действиях, реализующих команду, на символ табуляции.
Замедление атаки
Из-за большого объема регистрируемых данных механизмы обнаружения атак неэффективно отслеживают атаки, растянутые во времени. Таким образом, трудно обнаруживать "распределенное по времени сканирование" (ping sweep или port scan), при котором нарушители проверяют один порт/адрес каждые 5 минут или даже каждый час. Это замедление существенно затрудняет диагностику атаки современными средствами обнаружения атак.
Чистка журналов регистрации
Достаточно распространенный способ, заключающийся в удалении всех записей журнала регистрации, фиксирующих произведенные несанкционированные действия. Это позволяет скрыть от администратора атакованной системы все следы подозрительной деятельности.
Скрытие файлов и данных
Скрытие файлов и данных очень часто используется для того, чтобы замаскировать несанкционированную деятельность злоумышленника. При этом могут быть применены совершенно различные методики, различающиеся по сложности реализации. Например, установка атрибута Hidden на файл, внедрение вредоносного кода в ядро операционной системы (для Unix-подобных систем) или присоединение такого кода к какому-либо исполняемому файлу или библиотеке. По последнему принципу очень часто реализуется распространение "троянцев": к обычному исполняемому файлу (например, игре) присоединяется код "троянского коня", автоматически внедряющего себя в систему, в которой запускается измененный исполняемый файл.
Скрытие процессов
Аналогично предыдущему примеру, данный метод используется для скрытия деятельности злоумышленника на атакуемом узле. Для этого может быть также проведено изменение ядра операционной системы или специальных утилит, отвечающих за работу с процессами (например, утилиты ps в Unix). Примером такого сокрытия является использование комплекта rootkit для ОС SunOS. Этот комплект, позволяющий перехватывать различные данные, подменять контрольные суммы файлов и т. д., изменял некоторые системные утилиты (login, ls, ifconfig, ps, netstat, du), что не позволяло обнаружить его присутствие. Самым простым методом сокрытия несанкционированной деятельности процесса является изменение его имени на "стандартное" или! похожее на стандартное. Например, враждебный процесс может иметь имя in.netd, iexplore.exe (на узле с не установленным MS Internet Explorer) или NDDAGNT.EXE (очень похожее на NDDEAGNT.EXE).