За прошедшие несколько лет мы заметили несколько изменений в инструментах и тактике взломщиков. Эти изменения указывают на возрастающую угрозу безопасности. Среди самых значительных перемен четыре касаются тактики сканирования, использования шифрования, сложных rootkit и червяков.
Тактика сканирования становится все более агрессивной. Обычно перед началом нападения взломщикам требовалось время на то, чтобы определить системы, уязвимые для действий конкретного вида. Однако сейчас взломщики не утруждают себя вычислением подобных систем; они просто определяют сервис и пытаются взломать его независимо от типа операционной системы или версии. Например, мы поддерживаем инсталляции по умолчанию систем Linux и Solaris, в каждой из которых запущен сервис rpc.statd. В среднем эти системы сканировались от одного до трех раз в день, зачастую для определения RPC. Тогда мы регистрировали попытки взломщиков определить, был ли запущен в этих системах сервис rpc.statd (запрос rpcinfo). Затем взломщики просто запускали свой сценарий атаки. Однако тот же самый сценарий запускался и для системы Intel Linux, и для системы SPARC Solaris, несмотря на то что этот прием действует только против Linux.
В течение января 2001 года было совершено 19 нападений типа rpc.statd на систему honeypot Solaris, хотя она не уязвима для подобного нападения. Это указывает на то, что взломщики не тратили время на точное определение уязвимых систем. Если у них есть сомнения, они просто запускают свой сценарий и переходят к следующей системе. Подобная агрессивная тактика может потенциально нанести вред, разрушив сервисы или даже систему. Кроме того, это доказывает, что метод «обеспечения безопасности через неизвестность» не работает. В некоторых организациях, например, меняют номер версии приложения, чтобы незащищенное приложение казалось надежным. Более того, изменяют и приложение, чтобы оно не выдавало номер своей версии. Те специалисты, которые полагают, что этими методами они защищают себя, сильно заблуждаются. Имейте в виду, что взломщики зачастую даже не утруждают себя определением версии -они просто нападают на систему и переходят к следующей. Команда Honeynet Project раз за разом наблюдала применение этой тактики.
Вторая тенденция, шифрование, затрудняет выслеживание взломщиков. Обычно Honeynet Project фиксирует действия взломщиков, записывая их команды и анализируя деятельность в сети. Однако этот метод совсем не надежен, так как для работы со взломанными системами используется шифрование. Многие операционные системы, такие как Linux или OpenBSD, укомплектованы программой ssh. После проведения атаки взломщики для управления системой вместо TELNET пользуются ssh, которая кодирует весь трафик взломщика, защищая его от систем обнаружения вторжения или от анализа сети. Даже если утилиты шифрования не установлены, взломщики могут установить свои собственные. В пяти последних нападениях на наши honeypot взломщики загружали и инсталлировали собственные утилиты шифрования, чтобы защитить себя от мониторинга их действий. Во всех случаях были использованы троянские версии ssh, которые не только шифруют их действия, но и устанавливают в системе черный ход. Кодирование значительно затрудняет отслеживание взломщиков. В ответ на это мы наблюдали за их действиями на системном уровне, например за установкой троянских оболочек или драйверов в ядре, которые фиксируют команды и передают эти данные в доверяемую систему.
Третье изменение, которое наблюдала команда Honeynet Project, заключается в использовании более совершенных rootkit. Традиционные rootkit замещали системные бинарные файлы, скрывая действия взломщиков и устанавливая черные ходы. В последнее время стали использоваться более совершенные rootkit, загружаемые rootkit узловых модулей, такие как Adore, которые изменяют ядро операционной системы. Даже если вы загрузите в нее доверенные исполняемые файлы, например Is или find, результату их действия нельзя доверять, поскольку нельзя доверять ядру. После взлома системы нарушителей все сложнее и сложнее отслеживать. В отношении этих rootkit на уровне ядра особенно важно, что двоичные файлы в системе не изменяются. В случае с традиционными rootkit нападающий модифицирует двоичные файлы, в частности Is или whois, а это означает, что такие программы, как tripwire, могут определить, изменялся ли файл. Однако сейчас модифицируется само ядро, двоичные файлы не изменяются, следовательно, программы типа tripwire больше не могут определить установленный rootkit. Такие rootkit на уровне ядра обладают большими возможностями и их очень трудно обнаружить.
Четвертая зафиксированная тенденция кажется наиболее угрожающей. Взломщики создали червяков, которые не только автоматизируют зондирование и нападение, но также образуют собственные копии. Это означает, что количество взломанных систем может возрастать по экспоненте, с малым числом или вовсе без участия взломщиков. После взлома системы червяк использует ее как базу для своего воспроизведения, сканируя и взламывая другие системы. Он продолжает этот процесс, получая контроль над большим количеством систем. Пример действия одного такого червя приведен в следующей главе. Обычно поле деятельности червяков ограничивалось системами на базе Windows. Однако в начале 2001 года мы стали свидетелями возрастающего количества червяков, таких как Ramen, Lion или Sadmind/IIS, нападающих на системы UNIX. Эти червяки ориентированы на те же инструменты и слабые места, которые мы уже обсудили. Они очень опасны именно тем, что воспроизводят сами себя. На сайте http://wtvw.dmkpress.ru можно найти подробный отчет Макса Вижна о черве Lion (http://www.whitehats.com/library/worms/ lion/index, html)1.