|
Владислав Мяснянкин, http://cybervlad.port5.com/ Опубликовано: dl, 20.09.02 23:14 Данная статья является попыткой кратко рассказать о сравнительно новом явлении в деле обеспечения информационной безопасности - изучении поведения злоумышленников, используемых ими инструментальных средствах, тактики их действий, а также побудительных мотивов при помощи Honeynet, специальным образом построенных компьютерных сетей. Идея создания Honeynet принадлежит Лэнсу Спицнеру (Lance Spitzner), специалисту по информационной безопасности компании Sun Microsystems и основателю одноименного проекта (Honeynet Project). На сервере проекта доступен целый ряд прекрасных статей (http://project.honeynet.org/papers), посвященных технологии Honeynet и объединенных общим названием "Know your enemy" ("Узнай своего врага"). Рамки журнальной публикации не позволяют рассмотреть технологию Honeynet во всех деталях, поэтому в тексте будут часто встречаться отсылки к этим статьям, на материале которых и построено изложение. В русском переводе упомянутые статьи доступны в Интернет по адресу http://cybervlad.port5.com. До перехода на гражданскую работу Лэнс служил офицером по танковому вооружению в Силах Быстрого Развертывания США, отсюда чисто военный подход к обеспечению информационной безопасности и применение специфичных терминов: "противник", "тактика", "разведка", "черная шляпа". Последний термин, часто применяемый Лэнсом, следует пояснить. В отличие от "белых шляп", которые также интересуются уязвимостями систем, но никогда не применяют эти знания во вред, черные шляпы используют проблемы безопасности для достижения своих целей. Именно изучению этого явления и посвящен проект Honeynet. Honeynet и honeypot.Вообще говоря, идея создания специальной среды для изучения действий злоумышленников не нова, ее описание встречается, в частности, в публикации Билла Чесвика (Bill Cheswick) "An evening with Berferd", описывающей действия администратора после обнаружения попытки проникновения. В той ситуации для отслеживания действий злоумышленника была создана замкнутая среда (при помощи широко используемых в UNIX технологий chroot и jail). Такие системы принято называть "honeypot" (от английского honey pot - бочонок с медом). Honeypot представляет собой специальным образом доработанную систему, которая подключается к Интернет в качестве приманки, и которой рано или поздно заинтересуются черные шляпы. В процессе взлома этой системы установленные на ней средства слежения и регистрации должны зафиксировать все подробности этого процесса. Однако, такому подходу присущ целый ряд недостатков:
Эти недостатки можно ликвидировать или свести к минимуму, если использовать не отдельно стоящую систему (honeypot), а построить специализированный сетевой комплекс - honeynet, выводящий исследование на качественно новый уровень. Как пишет в своем предисловии к уже упомянутой статье о мотивах черных шляп Брэд Поуэл (Brad Powell, Sun Microsystems, GESS Global Security Team) именно объединение honeypot в сети изменило его отношение к такого рода исследованиям. Кроме обеспечения большей подконтрольности эксперимента (вследствие введения независимых подсистем регистрации), honeynet выгодно отличается от honeypot тем, что в нем используются самые обычные системы, которые можно встретить в реальных сетях. Таким образом, полученная информация об использовании типовых уязвимостей и методах проникновения более адекватно отображает реальную ситуацию. Более того, в honeynet может использоваться несколько различных систем одновременно. Некоторые злоумышленники ищут для атаки цель с какой-то определенной уязвимостью. Установив, например, Linux в качестве сервера DNS, Windows NT в качестве web-сервера и Solaris в качестве сервера FTP, мы сможем наблюдать за разными категориями злоумышленников. Honeynet: что внутри?Honeynet должен обеспечивать выполнение двух основных задач: сбора данных и удержания ситуации под контролем. Простая, на первый взгляд, задача регистрации данных в реальных системах оказывается достаточно сложной из-за большого потока информации. На самом деле, система должна безошибочно и в реальном времени различать обычные (правомерные) действия и злоумышленные. В случае с honeynet это затруднение разрешается очень просто: honeynet не является рабочей системой (информационным сервером, файловым архивом и т.п.), она нигде не рекламируется, поэтому любой входящий из Интернет трафик по определению является подозрительной активностью, а попытка установления исходящего соединения указывает на компрометацию системы (см. "Узнай своего врага: Honeynets"). Типовой honeynet условно можно разделить на три части (см. рисунок 1.): межсетевой экран (firewall), подсистему регистрации и собственно приманки (honeypots).
Honeynet функционирует параллельно с рабочей сетью и независимо от нее. Эта сеть может быть подключена к Интернет по отдельному каналу, на нее может быть зарегистрирован отдельный диапазон IP-адресов, а может использовать для общения с внешним миром основной маршрутизатор компании - все зависит от конкретной ситуации. Рассмотрим, каким образом данные функциональные элементы участвуют в выполнении перечисленных задач. Межсетевой экран позволяет достаточно надежно контролировать ситуацию. Он может изменять логику своего поведения (динамически менять правила фильтрации) в зависимости от внешних событий (например, запретить попытки установления исходящих соединений по сигналу системы обнаружения атак), исключая, таким образом, возможность использования какой-либо из систем, входящих в honeynet, в качестве базы для противоправных или просто злоумышленных действий. Разработчики honeynet предлагают другой, не менее эффективный способ исключить использование систем-приманок для осуществления атак - ограничение числа исходящих соединений 5-10 попытками. В этой ситуации, в отличие от полного запрета исходящих соединений, злоумышленник, с одной стороны, не почувствует подвоха, а с другой стороны - не сможет осуществить сколько-нибудь значительных вредоносных действий. Существует мнение, что можно не выставлять ограничение совсем, а при обнаружении компрометации системы пресекать попытки атак вручную. Однако, далеко не все могут позволить себе осуществлять круглосуточный контроль системы квалифицированным оператором. Более того, Интернет не имеет географических границ, в месте расположения honeynet может быть глухая ночь, а в точке, откуда действует нарушитель - разгар дня. Полагаться на человеческий фактор рискованно еще и потому, что многие действия злоумышленников автоматизированы. Он может запустить заранее заготовленный сценарий (возможно, даже и не им написанный), который выполнит все необходимые действия в течение мгновений. Человек не просто не успеет среагировать на подобное событие, он далеко не сразу сможет осознать, что же именно произошло. Большинство современных межсетевых экранов имеют также и мощную подсистему регистрации событий. Таким образом, межсетевой экран помогает решать и задачу сбора данных, делая ее многоуровневой. Основную же часть работы по регистрации и накоплению информации выполняют система обнаружения атак (intrusion detection system, IDS) и сервер регистрации. Сервер регистрации подключается к обычному порту коммутатора и получает от систем-приманок информацию о происходящих на них событиях (в UNIX-подобных системах возможность направления информации на удаленный syslog-сервер является стандартной, для Windows NT существуют решения третьих фирм). Компьютер с установленной на нем IDS подключается к порту коммутатора, находящемуся в режиме "port monitor", что позволяет ему "прослушивать" весь сетевой трафик, включая набираемые злоумышленником команды и направляемый ему вывод программ (см. "Выслеживаем черную шляпу"). Регистрационные журналы IDS и межсетевого экрана целесообразно также направлять на сервер регистрации (оставляя, конечно, и локальную копию), т.к. концентрация информации из разных источников в одном месте дает более полную картину. Назначение систем-приманок (honeypots) очевидно - это "лабораторные мышки". Эти системы должны быть максимально естественными, в них не вносится никаких серьезных изменений вроде эмуляции уязвимостей или искусственного ослабления защиты. По словам Лэнса Спицнера, самым правильным подходом будет взять обычную систему из рабочей сети и установить ее в honeynet (естественно, удалив с нее конфиденциальную информацию). Единственное изменение, которое можно в нее внести, это установка специализированной подсистемы регистрации. Обычно, сразу после получения контроля над системой (см. "Они получают права root"), злоумышленник изменяет конфигурацию подсистемы регистрации, если она настроена на ведение журналов на удаленном сервере. Таким образом, если установить немного измененное программное обеспечение (для UNIX это syslogd), которое читало бы альтернативный файл конфигурации, можно на некоторое время продлить регистрацию событий. Злоумышленник попытается изменить типовой файл конфигурации, не затронув, тем самым, реальных настроек системы. Правда, следующим шагом с его стороны, как правило, является установка собственной, "троянизированной" версии программного обеспечения регистрации событий и очистка локальных журналов. Логичным следствием такого подхода является тот факт, что honeynet не станет для злоумышленника более привлекательной, чем обычная рабочая сеть, обе могут быть атакованы с равной вероятностью. Но это не является недостатком, ибо цель создания honeynet состоит не в "оттягивании" атак от рабочей сети (для этого существуют, так называемые, "обманные системы" - deception toolkit), а в создании максимально естественной информационной среды, позволяющей изучить поведение злоумышленника в реальных условиях. Наконец, стоит сказать несколько слов о маршрутизаторе. Он выполняет очень важную функцию - маскирует межсетевой экран. Взломав одну из систем-приманок и войдя в нее, злоумышленник увидит, что между покоренной им системой и Интернет находится обычный маршрутизатор, а обнаружить "прозрачно" работающий межсетевой экран - задача нетривиальная. Дополнительно, средствами маршрутизатора обеспечивается защита от подмены адресов (IP spoofing protection), что является стандартным подходом во многих сетях. Итак, система собрана, отлажена и включена в работу. Рано или поздно она выполнит свое предназначение - ее обнаружат и взломают. А исследователь перейдет к следующему, более сложному этапу - анализу полученной информации. Анализируем собранную информацию.Восстановить действия злоумышленника, даже имея самые подробные регистрационные записи - задача не из легких. Необходимо сопоставить информацию, полученную из разных источников, избавиться от ее противоречивости (ведь после компрометации изучаемой системы часть регистрационной информации становится недостоверной, часть исчезает), после чего приступать собственно к восстановлению последовательности событий и их осмыслению. Такой анализ требует колоссальных затрат. Злоумышленник мог провести в системе в общей сложности около 30 минут, а для анализа может потребоваться до 30-40 часов. Как сказано в статье "Проводим следствие", изучение атаки лучше начинать с того же места, с которого ее начал нарушитель. А начинается атака с разведывательной операции вокруг цели. Это может быть как полное сканирование портов, с целью выяснения доступных сервисов, так и поиск конкретной уязвимости (или небольшого набора уязвимостей). Все эти действия обнаруживаются и протоколируются системой регистрации. Они относительно легко формализуемы (т.е. в базе системы обнаружения атак имеются соответствующие сигнатуры), а в случае с honeynet отпадает необходимость выделять их из потока обычных событий. Данный этап может отсутствовать или значительно отстоять по времени от начала реального вторжения. Дело в том, что поиск цели также проводится автоматизировано (см. "Средства и методология Script Kiddie"), т.е. специализированная программа сканирует Интернет случайным образом и записывает информацию о системах, потенциально обладающих искомой уязвимостью. Кроме того, злоумышленники часто обмениваются разведывательной информацией. Например, в поисках системы на базе Linux с уязвимым wu-ftpd, злоумышленник получает информацию и о других сервисах, установленных на просканированных им машинах. В последствии, он может поделиться информацией (нередки случаи покупки таких сведений) с другим злоумышленником, разыскивающим, например, уязвимые сервисы imap. Получив исходную информацию, необходимую для осуществления атаки, злоумышленник переходит ко второй фазе - проникновению. Для этого он обычно использует, так называемые, эксплоиты (калька с английского "exploit"). Эксплоит представляет собой специализированную программу, которая, используя уязвимость системы, предоставляет злоумышленнику несанкционированный доступ к ней, как правило, с правами администратора. Естественно, действия программы-эксплоита формализованы, и, спустя небольшое время после начала распространения эксплоита соответствующие сигнатуры вносятся в базы данных систем обнаружения атак. Следовательно, и эту фазу мы можем увидеть в записях нашей подсистемы регистрации в виде сообщений от IDS. Также, следы применения эксплоита можно обнаружить и в системных регистрационных журналах. В частности, после атаки на сетевой сервис с переполнением буфера в системном журнале syslog обнаруживаются записи длинных строк с необычными символами. Получив доступ, злоумышленник должен закрепиться в системе. Для этого он устанавливает черных вход, путем замены некоторых частей системы на свои. Это может быть программа, проверяющая полномочия пользователя при входе в систему (/bin/login), добавление нового пользователя в систему, специализированный демон, ожидающий соединения на нестандартном порту и предоставляющий командную оболочку с правами администратора, а также другие варианты. Практически во всех случаях подменяется и программное обеспечение подсистемы регистрации данной системы (syslogd). Новая версия не будет фиксировать события, связанные с деятельностью злоумышленника. Более того, она подменяет собой установленную нами систему, отправляющую информацию о событиях на удаленный log-сервер. Таким образом, с этого момента мы лишаемся одного из источников информации, и дальнейший контроль можем осуществлять только на базе журналов системы обнаружения атак. Проект honeynet использует систему обнаружения атак snort (www.snort.org), распространяемую с открытыми исходными текстами. Но отсутствие затрат на приобретение - не главное ее преимущество. Snort может также работать в режиме сетевого анализатора (сниффера), фиксируя все проходящие по сетевому кабелю пакеты. При этом его можно настроить таким образом, чтобы он записывал сессии на уровне прикладных протоколов (ftp, telnet и т.п.) в удобочитаемом для человека виде в отдельные файлы. Имея такой источник информации (представьте, что Вы стоите за спиной злоумышленника, видите все набираемые им команды и ответную реакцию программ на них), можно не очень огорчаться потерей информации из локального syslog! Следующий этап вторжения - заметание следов. Он также в большинстве случаев осуществляется, автоматизировано (например, уничтожение записей о входе пользователя в UNIX-подобную систему осуществляется при помощи программы cloak). Существуют и "комплексные решения", так называемые rootkit. Rootkit представляет собой набор программ и сценариев для управления ими, осуществляющий практически все перечисленные выше действия самостоятельно. После проникновения в систему при помощи эксплоита, злоумышленник загружает из Интернет rootkit, который автоматически подменяет все необходимые программы, устанавливает черный вход и уничтожает следы пребывания злоумышленника в системе. Чтобы установить, какие именно изменения злоумышленник внес в систему, необходимо заранее позаботиться о фиксации ее начального состояния. Это легко сделать при помощи tripwire. Tripwire создает "слепок" состояния системы путем подсчета криптографических контрольных сумм (хешей) всех важных файлов и подписания этой информации электронной цифровой подписью. Естественно, полученные данные необходимо помещать на отчуждаемый носитель (дискету), равно как и саму утилиту tripwire. Желательно также пользоваться статически слинкованной версией tripwire во избежание ее обмана при помощи закладок в libc. Но надежнее всего для запуска tripwire использовать загрузку операционной системы с доверенного носителя (не забудьте только дождаться, пока злоумышленник выйдет из системы, чтобы он не заподозрил неладное). Следующий этап атаки - использование скомпрометированной системы. Тут все зависит от целей злоумышленника и его фантазии. Она может быть использована для хранения ворованного программного обеспечения, выполнения трудоемких вычислительных задач (например, подбора криптографических ключей), для сканирования других систем и атак на них, в качестве одного из "зомби" при осуществлении распределенных атак отказа в обслуживании и т.п. Т.к. все эти действия осуществляются удаленно, мы можем их наблюдать и фиксировать при помощи IDS и сниффера. Однако, здесь возможны сложности для исследователя. Если злоумышленник достаточно умен, он может работать со скомпрометированной системой с использованием SSH. В этом случае все передаваемые по сети данные будут зашифрованы и перехваченные сниффером пакеты не дадут нам никакой полезной информации. Данный этап является самым опасным этапом исследования, т.к. нет гарантии, что злоумышленник каким-либо образом не обойдет наши ограничения и не использует скомпрометированную систему для злоумышленных действий против других сетей. Изучив действия злоумышленника, систему отключают от Интернет и восстанавливают ее исходное состояние. Что нам это дает?В первую очередь - информацию о противнике. А это не так и мало, ведь кто предупрежден, тот вооружен. Обеспечение безопасности информации традиционно носило оборонительный характер ("они нападают, мы защищаемся"), использование honeynet позволяет перейти от пассивной защиты к активным действиям. Конечно, сценарий атаки не отличается особой оригинальностью, ведь большинство атакующих - "script kiddie". Этим термином принято обозначать определенную категорию злоумышленников. Эти люди не отыскивают сами уязвимости в операционных системах, не пишут эксплоиты, не осуществляют взломов вручную. Они используют самый легкий путь для достижения своей цели - ищут стандартные уязвимости и используют их про помощи стандартных эксплоитов. В статье "Средства и методология Script Kiddie" Лэнс Спицнер пишет о них: "Они не пытаются получить доступ к какой-то определенной информации или осуществить атаку на конкретную компанию. Их цель состоит в том, чтобы получить права root самым простым из возможных способов". Изучив противника в honeynet, мы можем не только узнать, как он будет атаковать и что от него ждать после вторжения, но и его мотивы, психологию. Во время одного из исследований с использованием honeynet участникам проекта удалось записать переговоры черных шляп между собой на IRC-канале и даже видеоизображение. Это очень ценная информация, благодаря ей мы узнаем о целях и побудительных мотивах злоумышленников с их собственных слов. Знание тактики противника, дополненное пониманием его психологии и целей, которых он стремится достигнуть, поможет лучше организовать защиту. В процессе установки, настройки и эксплуатации honeynet приобретается неоценимый опыт по обнаружению атак, реагированию на инциденты с информационной безопасностью и восстановлению систем после компрометации. Огромным плюсом является тот факт, что данный опыт приобретается не на задействованной в реальном бизнесе системе, а как бы на тренажере, избавляя от неизбежных финансовых и моральных потерь в процессе приобретения такого опыта традиционным способом. Анализ скомпрометированной системы проводится в спокойной обстановке, у исследователя в распоряжении есть все необходимые данные. Полученная в результате такого анализа информация может быть использована, чтобы определить, не скомпрометирована ли аналогичным образом какая-нибудь система в Вашей рабочей сети. Honeynet можно использовать и в качестве теста на защищенность. Допустим, вы разработали новую систему электронной коммерции. Конечно, при разработке попытались учесть все нюансы, касающиеся обеспечения безопасности информации, возможно, провели практическое исследование при помощи сканера безопасности (RealSecure, Nessus и т.п.). Однако, ей можно устроить суровое стендовое испытание в "боевых" условиях. Для этого достаточно просто поместить такую систему в honeynet (конечно, без реальной коммерческой информации) и посмотреть, не найдут ли "добровольные тестеры" каких-либо изъянов в ее безопасности. Было бы абсурдом утверждать, что система "абсолютно безопасна", на основании того лишь факта, что она простояла в составе honeynet один месяц и не была взломана, но такие "полевые испытания" помогут выявить явные упущения в подсистеме информационной безопасности. Особенности национальной защиты.В России не только охота и рыбалка имеют свои национальные особенности, в равной степени это можно сказать и про обеспечение защиты информации. Притом, что у нас одна из самых сильных школ по информационной безопасности в мире, постепенно выстраивается законодательная база в этой области, много высококлассных специалистов, практическая организация защиты информации оставляет желать лучшего. Причина этого кроется не только в огромном разрыве в знаниях между специалистами по информационной безопасности и другими сотрудниками (как рядовыми, так и руководителями), но и в традиционной надежде "на авось". Недопонимание важности обеспечения информационной безопасности, того факта, что безопасность не является продуктом, который можно купить и успокоиться, что это - постоянно развивающийся процесс, приводят к тому, что финансирование подсистемы информационной безопасности при разработке новых продуктов осуществляется в последнюю очередь. Нередко приходится сталкиваться с практикой, когда об этом моменте вспоминают лишь на стадии завершения разработки продукта. В таких условиях надеяться на широкое распространение технологии honeynet не приходится. Я не призываю к тому, чтобы каждая организация, имеющая выход в Интернет, обязательно формировала свой honeynet. Для большинства это не только слишком обременительно с финансовой точки зрения, но и функционально не обосновано. На мой взгляд, о необходимости использования данной технологии должны задуматься в первую очередь разработчики информационных, расчетных и других систем, а также фирмы, специализирующиеся на информационной безопасности, и правоохранительные органы. В России отсутствует система обмена информацией об инцидентах с информационной безопасностью типа Computer Emergency Response Team (CERT) и его аналогов во многих европейских странах (cert.ru, к сожалению, этого пока не обеспечивает), которая могла бы координировать деятельность honeynet и обрабатывать получаемую от них информацию. В любом случае, российским специалистам стоит изучить опыт проекта Honeynet, хотя бы для ознакомления с построением отдельных подсистем honeynet, применение которым можно найти в смежных областях. По большей части это относится к подсистеме регистрации (LOG-серверу) и системе обнаружения атак (IDS). Развернутую информацию по последнему элементу можно почерпнуть в вышедшей из печати в 2001 году книге А. Лукацкого "Обнаружение атак". Нюансы, о которых не стоит забывать.Использование honeynet поднимает целый ряд этических и правовых проблем. Например, существует мнение, что использование honeynet является своего рода провокацией - выставляя в Интернет слабо защищенную систему, мы провоцируем потенциального злоумышленника на совершение ряда противоправных действий, которые в других условиях он, возможно, и не совершал бы. Контраргументами этому тезису являются, во-первых, тот факт, что в качестве систем-приманок используются самые обычные системы со стандартными настройками, которые можно встретить в Интернет повсюду, во-вторых, honeynet не позицируется как система общего пользования, ее никто не анонсирует, следовательно, индивидуум, совершающий в ее отношении какие-либо манипуляции, действует осознанно и целенаправленно. Другим спорным моментом, связанным с использованием honeynet, является вопрос о нарушении права на неприкосновенность частной жизни. Министерство юстиции США выпустило документ "Searching and Seizing Computers and Obtaining Electronic Evidence in Criminal Investigation" (доступен по адресу http://www.cybercrime.gov/searchmanual.htm), в котором приводится информация о прецедентах, когда апелляционные суды отклоняли доводы защиты о нарушении прав обвиняемых на неприкосновенность частной жизни при расследовании компьютерных преступлений и мошенничеств. Большинство аргументов основывается на том, что злоумышленник не имел законных прав на использование ресурсов системы и ее владелец не брал на себя обязательств по обеспечению приватности. Помещая информацию в указанную систему, злоумышленник сам добровольно предоставляет к ней доступ владельцам системы, теряя, таким образом, право на ее приватность. Заключение.Ответ на вопрос, чем же является Интернет, сообществом единомышленников или террариумом, куда лучше не соваться без защиты, давно склоняется в сторону второго варианта. В киберпространстве идет настоящая война, масштабы которой увеличиваются с нарастающей скоростью. Об этом свидетельствуют, в частности, данные о числе сообщений об инцидентах с компьютерной безопасностью, приводимые Computer Emergency Response Team (CERT) при Carnegie Mellon University:
Эти данные говорят о том, проблема обеспечения информационной безопасности становится все более острой. При ее решении в части сокращения числа инцидентов можно эффективно использовать honeynet, считает уже упомянутый в этой статье Брэд Поуэл (Brad Powell, Sun Microsystems). По его мнению, если бы honeynet были достаточно распространенным явлением в сети Интернет, злоумышленник бы лишний раз задумался, стоит ли атаковать подвернувшуюся систему, ведь она может оказаться не легкой добычей, а аквариумом, в котором он сам станет объектом изучения. Таким образом, технология honeynet имеет будущее, это лишний раз подтверждает увидевшая свет летом 2001 года книга "Know your enemy: Revealing the security tools, tactics and motives of the blackhat community" (http://www.project.honeynet.org/book/), авторами которой являются Лэнс Спицнер и другие участники проекта Honeynet. Литература и ресурсы Internet.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|