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

Изучение поведения злоумышленников, используемых ими инструментальных средств, тактики их действий, а также побудительных мотивов при помощи «ловчей сети» (Honeynet) — специальным образом построенной компьютерной сети — представляет собой сравнительно новое явление в области обеспечения информационной безопасности. Идея ее создания принадлежит Лэнсу Спицнеру, специалисту по информационной безопасности из компании Sun Microsystems и основателю одноименного проекта Honeynet Project.

До перехода на гражданскую работу Спицнер служил офицером в танковых войсках в Силах быстрого развертывания США, отсюда его военный подход к обеспечению информационной защиты и применение специфичных терминов: «противник», «тактика», «разведка», «черная шляпа». Последний термин, часто употребляемый Спицнером, следует пояснить. В отличие от «белых шляп», которые также интересуются уязвимыми местами систем, но никогда не применяют эти знания во вред, «черные шляпы» используют проблемы безопасности для достижения своих корыстных целей. Именно изучению их поведения и посвящен Honeynet Project.

ОДИНОЧНЫЕ И СЕТЕВЫЕ ПРИМАНКИ

Вообще говоря, идея создания специальной среды для изучения поведения злоумышленников не нова, ее описание встречается, в частности, в публикации Билла Чесвика «Вечер с Верфердом» (см. ссылку в «Ресурсах Internet»), где рассказывается о мерах, которые администратор должен принять после обнаружения попытки проникновения. Для отслеживания действий злоумышленника Чесвик предлагал создать замкнутую среду (при помощи широко используемых в UNIX технологий chroot и jail). Такие системы принято называть honeypot, или «приманки» (от английского «горшок с медом»). «Приманка» представляет собой специальным образом доработанную систему, подключаемую к Internet. В процессе ее взлома средства слежения и регистрации должны зафиксировать все подробности происходящего. Однако такому подходу присущ целый ряд недостатков.

  1. После взлома указанной системы (а именно для этого ее и выставляют в Internet) данные регистрационных журналов и другая информация из системы слежения могут оказаться недостоверной.
  2. Администратору интересно изучить методику атак на стандартные системы, часто встречающиеся в Internet, между тем как в такую систему вносятся существенные изменения. К тому же любые модификации могут демаскировать систему: обнаружив их, злоумышленник способен отказаться от своих планов.
  3. Проводя такие эксперименты, администратор должен осознавать ответственность и за других, так как его «приманка» легко может стать промежуточным звеном для сканирования или атак на другие системы, например частью broadcast amplifier network (blist).

Эти недостатки можно ликвидировать или свести к минимуму, если работать не с отдельно стоящей системой (honeypot), а построить специализированный сетевой комплекс (honeynet), благодаря чему исследование выходит на качественно новый уровень. Как отмечает в своем предисловии к статье о мотивах «черных шляп» Брэд Пауэлл (из GESS Global Security Team, подразделение Sun Microsystems), именно объединение «приманок» в сеть изменило его отношение к подобного рода изысканиям. Кроме обеспечения большей подконтрольности эксперимента (вследствие введения независимых подсистем регистрации), «ловчая сеть» выгодно отличается применением в ней самых обычных рабочих систем. Таким образом, полученная информация об использовании типовых слабостей и методах проникновения более адекватно отображает реальную ситуацию. Более того, в «ловчей сети» могут располагаться несколько различных систем одновременно. Некоторые злоумышленники ищут для атаки цель с какой-то определенной брешью. Установив, например, Linux в качестве сервера DNS, Windows NT в качестве сервера Web и Solaris в качестве сервера FTP, мы сможем наблюдать за разными категориями злоумышленников.

ЧТО ВНУТРИ?

«Ловчая сеть» должна обеспечивать выполнение двух основных задач: сбора данных и контроля ситуации. Простая на первый взгляд задача регистрации данных в действующих системах оказывается достаточно сложной из-за большого потока информации. На самом деле, система должна безошибочно и в реальном времени различать обычные (правомерные) и злонамеренные действия. В случае с «ловчей сетью» это затруднение разрешается очень просто: она не является рабочей системой (информационным сервером, файловым архивом и т. п.) и нигде не рекламируется, поэтому любой входящий трафик из Internet характеризуется как подозрительная активность, а попытка установления исходящего соединения указывает на компрометацию системы.

«Ловчая сеть» функционирует параллельно с рабочей сетью и независимо от нее. Подключение к Internet может быть произведено по отдельному каналу; для нее, как вариант, можно зарегистрировать отдельный диапазон IP-адресов или же использовать для общения с внешним миром основной маршрутизатор компании — все зависит от конкретной ситуации.

Типовая «ловчая сеть» условно состоит из трех составляющих (см. Рисунок): межсетевого экрана, подсистемы регистрации и собственно «приманки».

Пауки в банке. Структурная схема типовой «ловчей сети».

Рассмотрим, каким образом названные функциональные элементы участвуют в выполнении перечисленных задач.

Межсетевой экран позволяет достаточно надежно контролировать ситуацию. Он способен изменять логику своего поведения (динамически менять правила фильтрации) в зависимости от внешних событий (например, запретить попытки установления исходящих соединений по сигналу системы обнаружения атак). Таким образом исключается возможность применения какой-либо системы из состава «ловчей сети» в качестве базы для противоправных или просто злоумышленных действий. Участники Honeynet Project предлагают другой, не менее эффективный способ предотвращения использования систем-«приманок» для осуществления атак, а именно — ограничение числа исходящих соединений 5-10 попытками. В этой ситуации, в отличие от полного запрета исходящих соединений, злоумышленник, с одной стороны, не почувствует подвоха, а с другой — не сможет нанести сколько-нибудь значительный вред своими действиями. Некоторые специалисты рекомендуют совсем не выставлять ограничений, а при обнаружении компрометации системы попытки атак пресекать вручную. Однако далеко не все могут позволить себе осуществлять круглосуточный контроль силами квалифицированного оператора. Более того, Internet не имеет географических границ, и в месте расположения «ловчей сети» может быть глухая ночь, а в точке, откуда действует нарушитель, — разгар дня. Полагаться на человеческий фактор рискованно еще и потому, что многие действия злоумышленников автоматизированы. Они запускают заранее заготовленный сценарий (возможно, даже и не ими написанный), и тот выполняет все необходимые шаги в течение нескольких мгновений. Человек не только не успеет среагировать на подобное событие, он далеко не сразу сможет осознать, что же именно произошло.

Большинство современных межсетевых экранов имеет мощную подсистему регистрации событий. Таким образом, они помогают решать и задачу сбора данных, делая ее многоуровневой. Основную же часть работы по регистрации и накоплению информации выполняют система обнаружения атак (Intrusion Detection System, IDS) и сервер регистрации. Последний подсоединяется к обычному порту коммутатора и получает от систем-«приманок» информацию о происходящих на них событиях. (В UNIX-подобных системах возможность направления информации на удаленный сервер syslog является стандартной, для Windows NT существуют решения третьих компаний.) Компьютер с установленной на нем IDS подключается к порту коммутатора, находящемуся в режиме «мониторинг порта» (port monitor), что позволяет ему «прослушивать» весь сетевой трафик, в том числе набираемые злоумышленником команды и направляемый ему вывод программ. Регистрационные журналы IDS и межсетевого экрана целесообразно также направлять на сервер регистрации (оставляя, конечно, и локальную копию), так как концентрация информации из разных источников в одном месте дает более полную картину.

Назначение систем-«приманок» очевидно — это своего рода «лабораторные мыши». Такие системы должны быть максимально естественными, в них не вносится никаких серьезных изменений вроде эмуляции уязвимых мест или искусственного ослабления защиты. По словам Лэнса Спицнера, самым правильным подходом станет размещение в «ловчей сети» обычной системы из рабочей сети (естественно, после предварительного удаления конфиденциальной информации). Единственное изменение, которое можно в нее внести, — установить специализированную подсистему регистрации. Обычно, сразу после получения контроля над системой, злоумышленник изменяет конфигурацию подсистемы регистрации, если она настроена на ведение журналов на удаленном сервере. Таким образом, немного измененное программное обеспечение (для UNIX — это syslogd), которое «умеет» читать альтернативный файл конфигурации, позволит на некоторое время продлить регистрацию событий, так как реальные настройки системы останутся незатронутыми. Правда, следующим шагом со стороны злоумышленника, как правило, оказывается установка собственной, «троянской» версии программного обеспечения регистрации событий и очистка локальных журналов.

Логичным следствием такого подхода является то, что «ловчая сеть» становится для злоумышленника не более привлекательной, чем обычная рабочая сеть, — обе они могут быть атакованы с равной вероятностью. Но это не столь важно, ибо цель создания «ловчей сети» состоит не в «отвлечении» атак от рабочей сети (для этого существуют так называемые «обманные системы» — deception toolkit), а в создании максимально естественной информационной среды для изучения поведения злоумышленника в реальных условиях.

Наконец, несколько слов стоит сказать о маршрутизаторе. Он выполняет очень важную функцию маскировки межсетевого экрана. Взломав одну из систем-«приманок» и войдя в нее, злоумышленник увидит, что между захваченной им системой и Internet находится обычный маршрутизатор, а обнаружить «прозрачно» работающий межсетевой экран — задача нетривиальная. Дополнительно средствами маршрутизатора обеспечивается защита от подмены адресов (IP spoofing), причем это стандартный подход во многих сетях.

Итак, система собрана, отлажена и включена в работу. Рано или поздно она выполнит свое предназначение — ее обнаружат и взломают. А исследователь перейдет к следующему, более сложному этапу — анализу полученной информации.

АНАЛИЗ СОБРАННОЙ ИНФОРМАЦИИ

Восстановить действия злоумышленника, даже при помощи самых подробных регистрационных записей, — задача не из легких. Необходимо сопоставить информацию, полученную из разных источников, избавиться от ее противоречивости (ведь после компрометации изучаемой системы некоторые регистрационные данные становятся недостоверными, другие исчезают), после чего можно приступать собственно к восстановлению последовательности событий и их осмыслению. Такой анализ требует колоссальных затрат. Злоумышленник мог провести в системе в общей сложности около 30 мин, а для анализа может потребоваться до 30-40 ч.

Изучать атаку лучше с момента самых первых действий нарушителя. А начинается она с разведывательной операции против цели. Это может быть как полное сканирование портов для выяснения доступных сервисов, так и поиск конкретного уязвимого места (или небольшого набора уязвимых мест). Все эти действия обнаруживаются и протоколируются системой регистрации. Они относительно легко формализуемы (т. е. в базе системы обнаружения атак имеются соответствующие сигнатуры), а в случае с «ловчей сетью» отпадает необходимость выделять их из потока обычных событий. Данный этап может отсутствовать или значительно отстоять по времени от начала реального вторжения. Дело в том, что поиск цели также автоматизирован, т. е. специализированная программа сканирует Internet случайным образом и записывает информацию о тех системах, где потенциально имеется искомая брешь. Кроме того, злоумышленники часто обмениваются разведывательной информацией. Например, при поиске системы на базе Linux с уязвимым wu-ftpd взломщик получает данные и о других сервисах, установленных на просканированных им машинах. Впоследствии он может поделиться информацией (нередки случаи покупки таких сведений), например, с теми, кто разыскивает уязвимые сервисы imap.

Получив исходный материал, необходимый для осуществления атаки, злоумышленник переходит ко второй фазе — проникновению. Для этого он обычно обращается к так называемым эксплоитам. Используя незакрытую брешь, эта специализированная программа предоставляет злоумышленнику несанкционированный доступ к системе, как правило, с правами администратора. Естественно, действия программы-эксплоита формализованы, и, спустя небольшое время после начала распространения эксплоита, соответствующие сигнатуры вносятся в базы данных систем обнаружения атак. Следовательно, и эту фазу мы можем увидеть в записях нашей подсистемы регистрации в виде сообщений от IDS. Кроме того, следы применения эксплоита можно обнаружить и в системных регистрационных журналах. В частности, после атаки на сетевой сервис с переполнением буфера в системном журнале syslog появляются записи длинных строк с необычными символами.

Получив доступ, злоумышленник должен закрепиться в системе. Для этого он организует «черный вход» путем замены некоторых частей системы на свои. Это могут быть программа проверки полномочий пользователя при входе в систему (/bin/login), добавление нового пользователя, специализированный демон, ожидающий соединения на нестандартном порту и предоставляющий командную оболочку с правами администратора, а также другие варианты. Практически во всех случаях происходит подмена программного обеспечения подсистемы регистрации данной системы (syslogd). Новая версия не будет фиксировать события, связанные с деятельностью злоумышленника. Более того, она подменяет собой установленную нами систему отправки информации о событиях на удаленный сервер регистрации. Таким образом, с этого момента мы лишаемся одного из источников информации и дальнейший контроль можем осуществлять только на базе журналов системы обнаружения атак. Honeynet Project использует систему обнаружения атак snort, распространяемую с открытыми исходными текстами. Но отсутствие затрат на приобретение — не главное ее преимущество. Snort способна работать в режиме сетевого анализатора (sniffer), фиксируя все проходящие по сетевому кабелю пакеты. При этом ее можно настроить таким образом, чтобы она записывала сеансы на уровне прикладных протоколов (ftp, telnet и т. п.) в отдельные файлы в удобочитаемом для человека виде. Имея такой источник информации (представьте, что, стоя за спиной злоумышленника, вы видите все набираемые им команды и ответную реакцию программ на них), потеря информации из локального syslog вряд ли будет болезненной!

Следующий этап вторжения — заметание следов. В большинстве случаев это тоже автоматизированный процесс (например, уничтожение записей о входе пользователя в UNIX-подобную систему осуществляется при помощи программы cloak). Имеющиеся «комплексные решения», так называемые rootkit, представляют собой набор программ и сценариев для управления ими, производящие практически все перечисленные выше действия самостоятельно. После проникновения в систему при помощи эксплоита злоумышленник загружает такой комплект из Internet, и тот автоматически подменяет все необходимые программы, организует «черный вход» и уничтожает следы пребывания злоумышленника в системе.

Чтобы установить, какие именно изменения нарушитель внес в систему, необходимо заранее позаботиться о фиксации ее начального состояния. Это легко сделать при помощи tripwire. Tripwire создает «слепок» состояния системы путем подсчета криптографических контрольных сумм (хэшей) всех важных файлов и подписания данной информации электронной цифровой подписью. Естественно, полученную информацию необходимо помещать на отчуждаемый носитель (дискету), равно как и саму утилиту tripwire. Желательно также пользоваться статически скомпилированной версией tripwire во избежание ее обмана при помощи закладок в libc. Но надежнее всего при запуске tripwire использовать загрузку операционной системы с доверенного носителя (не забудьте только дождаться, пока злоумышленник выйдет из системы, чтобы он не заподозрил неладное).

Основная цель атаки — использование скомпрометированной системы. Тут все зависит от намерений злоумышленника и его фантазии. Она может использоваться для хранения ворованного программного обеспечения, выполнения трудоемких вычислительных задач (например, подбора криптографических ключей), для сканирования других систем и атак на них, в качестве одного из «зомби» при осуществлении распределенных атак по типу «отказ в обслуживании» и т. п. Так как все перечисленные действия производятся удаленно, мы можем их наблюдать и фиксировать при помощи IDS и сетевого анализатора. Однако здесь возможны сложности для исследователя. Если злоумышленник достаточно умен, то при работе со скомпрометированной системой он может задействовать SSH. В этом случае все передаваемые по сети данные будут зашифрованы, и перехваченные анализатором пакеты не дадут нам никакой полезной информации. Это самый опасный этап исследования, так как нет гарантии, что неприятель каким-либо образом не обойдет наши ограничения и не использует скомпрометированную систему для злонамеренных действий против других сетей. Изучив его действия, систему отключают от Internet и восстанавливают ее исходное состояние.

ЧТО НАМ ЭТО ДАЕТ?

В первую очередь — информацию о противнике. Что не так уж и мало, ведь кто предупрежден, тот вооружен. Обеспечение безопасности информации традиционно носило оборонительный характер («они нападают, мы защищаемся»), применение же «ловчих сетей» позволяет перейти от пассивной защиты к активным действиям.

Конечно, сценарий атаки не отличается особой оригинальностью, ведь большинство атакующих — хакеры-любители (script kiddie). Этим термином принято обозначать определенную категорию злоумышленников. Они не отыскивают сами уязвимые места в операционных системах, не пишут эксплоиты, не осуществляют взломов вручную, а выбирают самый легкий путь для достижения своей цели — ищут стандартные «дыры» и используют их при помощи стандартных эксплоитов. Лэнс Спицнер характеризует их так: «Они не пытаются получить доступ к какой-то определенной информации или осуществить атаку на конкретную компанию. Их цель состоит в том, чтобы получить права root самым простым из возможных способов».

Изучив противника в «ловчей сети», мы можем не только узнать, как он будет атаковать и что от него ждать после вторжения, но и его мотивы, психологию. Во время одного из исследований с использованием «ловчей сети» участникам проекта удалось записать переговоры «черных шляп» между собой по каналу IRC и даже их видеоизображение. Это очень ценная информация, благодаря ей мы узнаем о планах и побудительных мотивах злоумышленников с их собственных слов. Знание тактики противника, дополненное пониманием его психологии и целей, которых он стремится достигнуть, поможет лучше организовать защиту.

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

Анализ скомпрометированной системы проводится в спокойной обстановке, у исследователя в распоряжении есть все необходимые данные. Полученная в результате информация поможет определить, не подвержена ли аналогичному воздействию какая-нибудь система в рабочей сети компании.

«Ловчая сеть» пригодится и в качестве теста на защищенность. Допустим, вы разработали новую систему электронной коммерции и хотите учесть все нюансы, касающиеся обеспечения безопасности информации, для чего, возможно, даже провели практическое исследование при помощи сканера безопасности (RealSecure, Nessus и т. п.). Однако ей можно устроить суровое стендовое испытание в «боевых» условиях. Для этого достаточно поместить такую систему в «ловчую сеть» (конечно, без реальной коммерческой информации) и посмотреть, не найдут ли «добровольные тестеры» каких-либо изъянов в ее защите. Абсурдно было бы говорить об «абсолютной безопасности» системы на основании того лишь факта, что она простояла в составе «ловчей сети» один месяц и не была взломана, но подобные «полевые испытания» помогут выявить явные упущения в подсистеме информационной безопасности.

ОСОБЕННОСТИ НАЦИОНАЛЬНОЙ ЗАЩИТЫ

В России не только охота и рыбалка имеют свои национальные особенности, в равной степени это касается и обеспечения защиты информации. Несмотря на наличие одной из самых сильных школ по информационной безопасности в мире, на постепенно выстраиваемую законодательную базу в этой области, на постоянно пополняемую армию высококлассных специалистов, практическая организация защиты данных оставляет желать лучшего. Причина кроется не только в огромном разрыве в знаниях между специалистами по информационной безопасности и другими сотрудниками (как рядовыми, так и руководителями), но и в традиционной надежде «на авось». Недопонимание важности обеспечения защиты системы приводит к остаточному принципу финансирования подсистемы информационной безопасности при разработке новых продуктов. Нередко приходится сталкиваться с практикой, когда о защите вспоминают лишь на стадии завершения разработки продукта. В таких условиях надеяться на широкое распространение технологии «ловчей сети» не приходится. Я не призываю к тому, чтобы каждая организация, имеющая выход в Internet, обязательно создавала свою «ловчую сеть». Для большинства это не только слишком обременительно с финансовой точки зрения, но и функционально не обосновано. На мой взгляд, о необходимости использования данной технологии должны задуматься в первую очередь разработчики информационных, расчетных и других систем, а также компании, специализирующиеся в области информационной безопасности, и правоохранительные органы. В России отсутствует система обмена информацией об инцидентах с информационной безопасностью, наподобие Computer Emergency Response Team (CERT) и его аналогов во многих европейских странах (cert.ru, к сожалению, этого пока не обеспечивает), которая могла бы координировать деятельность «ловчих сетей» и обрабатывать получаемую от них информацию.

В любом случае российским специалистам стоит изучить опыт проекта Honeynet Project, хотя бы для ознакомления с построением отдельных подсистем «ловчей сети», применение которым можно найти и в смежных областях. По большей части это относится к подсистеме регистрации и системе обнаружения атак.

НЮАНСЫ, О КОТОРЫХ НЕ СТОИТ ЗАБЫВАТЬ

Использование «ловчей сети» поднимает целый ряд этических и правовых проблем.

Например, существует мнение, что «ловчая сеть» является своего рода провокацией — выставляя в Internet слабо защищенную систему, мы провоцируем потенциального злоумышленника на совершение ряда противоправных действий, которые в других условиях он, возможно, и не совершил бы. В качестве контраргументов приведем тот факт, что, во-первых, в виде систем-«приманок» работают самые обычные системы со стандартными настройками, которые можно встретить в Internet повсюду; во-вторых, «ловчая сеть» нигде не позиционируется как система общего пользования, ее никто не анонсирует, следовательно, индивидуум, совершающий в ее отношении какие-либо манипуляции, действует осознанно и целенаправленно.

Другим спорным моментом, связанным с применением «ловчей сети», стал вопрос о нарушении права на неприкосновенность частной жизни. Министерство юстиции США выпустило документ «Использование компьютера как источника получения доказательств в уголовном процессе» (см. ссылку в «Pесурсах Internet»), в котором приводится информация о прецедентах, когда апелляционные суды отклоняли доводы защиты о нарушении прав обвиняемых на неприкосновенность частной жизни при расследовании компьютерных преступлений и мошенничеств. Большинство аргументов основывается на том, что злоумышленник не имел законных прав на использование ресурсов нужной системы и ее владелец не брал на себя обязательств по обеспечению конфиденциальности. Помещая информацию в указанную систему, злоумышленник сам добровольно предоставляет к ней доступ владельцам системы, теряя, таким образом, право на ее конфиденциальность.

ЗАКЛЮЧЕНИЕ

Так чем же является Internet: сообществом единомышленников или террариумом, куда лучше не соваться без защиты? Общее мнение давно склоняется ко второму варианту. В киберпространстве идет настоящая война, масштабы которой увеличиваются по нарастающей. Об этом свидетельствуют, в частности, сведения о числе сообщений об инцидентах с компьютерной безопасностью, приводимые Computer Emergency Response Team (CERT) при университете Карнеги Меллони (см. Таблицу).

Согласно этим данным, проблема обеспечения информационной безопасности становится все более острой. Как считает Брэд Пауэлл из Sun Microsystems, для ее решения в части сокращения числа инцидентов можно эффективно использовать «ловчую сеть». По его мнению, будь «ловчая сеть» достаточно распространенным явлением в сети Internet, злоумышленнику пришлось бы лишний раз задуматься, стоит ли атаковать подвернувшуюся систему, ведь она может оказаться не легкой добычей, а аквариумом, в котором он сам станет объектом изучения.

Таким образом, технология «ловчая сеть» будет востребована в будущем.

Владислав Мяснянкин — независимый эксперт. С ним можно связаться по адресу: hugevlad@yahoo.com.


Ресурсы Internet

На сервере Honeynet Project по адресу: http://project.honeynet.org, доступен целый ряд прекрасных статей по технологии Honeynet под общим названием Know your enemy («Узнай своего врага»). Там же можно познакомиться с книгой «Знакомство с тактикой, средствами и мотивами «черных шляп» («Know your enemy: Revealing the security tools, tactics and motives of the blackhat community»). В русском переводе упомянутые статьи доступны в Internet по адресу: http://cybervlad.port5.com.

Статью Билла Чесвика «Вечер с Брэдфордом» из Bell Laboratories (Bill Cheswick «An evening with Berferd in which a cracker is lured, endured, and studied») можно найти на http://www.all.net/books/berferd/berferd.html.

Документ «Использование компьютера как источника получения доказательств в уголовном процессе» («Searching and Seizing Computers and Obtaining Electronic Evidence in Criminal Investigation») опубликован на http://www.cybercrime.gov/searchmanual.htm.

С системой обнаружения атак snort можно познакомиться по адресу: http://www.snort.org.