А хакеры придут сами!
Во многих компаниях в последнее время стали использоваться системы-ловушки, honeypot, в качестве средств предупреждения потенциальных атак и способа идентификации изъянов в стратегии безопасности компаний, а также средств усиления общего уровня защиты организаций. Honeypot-системы могут симулировать работу различных внутренних и внешних устройств, включая Web-серверы, почтовые серверы, серверы баз данных, серверы приложений и даже брандмауэры. Я, как менеджер по разработке программного обеспечения, регулярно использую системы-приманки. Это необходимо для того, чтобы более глубоко вникнуть в суть обнаруженных слабых мест — как с позиции человека, отвечающего за программное обеспечение, создаваемое моей командой, так и с позиции человека, чьи приложения работают под управлением определенной операционной системы.
Установка и работа с системами-приманками связана с выяснением юридических вопросов, равно как и с необходимостью проведения технической экспертизы решения с помощью сетевого инструментария и компьютерного анализа. Рассказывая об установке и работе honeypot, я буду исходить из того, что читатель в какой-то степени с этими вопросами знаком. Для построения ловушек я часто использую Virtual PC 2004. Кто-то может возразить, что VMware обладает более полным набором характеристик, нежели Virtual PC. Однако я считаю, что Virtual PC предлагает приемлемый функциональный эквивалент за умеренную цену (129 долл. за Virtual PC против 199 долл. за VMware).
Выбор оборудования и операционной системы
Главным критерием при оценке оборудования для виртуальной системы-приманки должно стать число виртуальных сессий, которые планируется запускать одновременно. Обычная отдельная система-приманка, которой требуется только одна сессия, может рассматриваться как эффективное средство для тестирования серверов периметра или как инструмент оповещения о потенциальных атаках. Но если ставятся более сложные задачи? Например, если нужно протестировать безопасность развитой внутренней сети? В таком случае почти наверняка потребуется сеть ловушек, а для нее нужно уметь поддерживать несколько виртуальных сессий одновременно, как показано на рис. 1.
Рисунок 1. Типичное развертывание системы-приманки |
Число одновременных виртуальных сессий, которые могут быть открыты на одном компьютере, ограничено вычислительной мощностью хост-системы и объемом памяти. Virtual PC 2004 работает на компьютерах с Windows XP Professional или Windows 2000 Professional, в которых установлен процессор с частотой не ниже 1 ГГц и привод компакт-дисков. В общем случае каждая виртуальная сессия расходует от 32 до 256 Мбайт памяти и от 50 Мбайт до 4 Гбайт дискового пространства, поэтому можно предположить, что система с 3 ГГц или еще более быстрым процессором на базе Pentium 4 Processor (P4) при наличии 1 Гбайт оперативной памяти и диска на 40 Гбайт будет в состоянии поддержать одновременную работу 4-5 виртуальных сессий.
Вероятно, потребуется две сетевые карты. Поскольку виртуальные сессии не имеют собственных физических сетевых карт, виртуальная сессия и хост будут использовать основную сетевую карту. Для обеспечения такой возможности Virtual PC поддерживает драйвер устройства для виртуального сетевого адаптера. В процессе создания приманки также требуется, чтобы на хост было установлено дополнительное программное обеспечение (например, брандмауэр и сетевой монитор), которое реализует поддержку драйверов устройств на сетевом уровне. Эти драйверы, подобно драйверу Virtual PC, смогут отклонить или изменить входящий или исходящий трафик. Иными словами, чтобы получить истинную трассу пакета из входящего или исходящего трафика на системе-приманке, лучше всего перехватывать трафик со второй сетевой карты. Две сетевые карты системы могут быть включены в концентратор (см. рис. 2), после чего основной интерфейс будет настроен на публичный адрес в демилитаризованной зоне (DMZ), а второй интерфейс — на приватный адрес в зоне, отличной от DMZ (в идеале этот адрес маршрутизироваться не должен). Затем второй сетевой адаптер нужно перевести в режим прослушивания (promiscuous mode: состояние, в котором сетевой адаптер обнаруживает в сети все фреймы вне зависимости от их конечного адреса), для перехвата трафика от первого адаптера.
Рисунок 2. Типичное развертывание системы-приманки |
Кроме того, я бы рекомендовал использовать привод DVD-RW для архивирования данных, которые могут пригодиться при разборе ситуаций, на носителе, доступном только для чтения. Перед тем как устанавливать виртуальную приманку, я потратил несколько часов на создание копии (образа) жесткого диска, чтобы в случае чего защититься при «разборе полетов». Эти действия в виртуальном мире существенно упрощены, поскольку жесткий диск и содержимое памяти — это всего лишь файлы на физическом диске хоста, и ничего более. Если вы остановили свой выбор на создании динамического виртуального диска, то для большинства операционных систем Windows это будет файл размером от 3 до 4 Гбайт. Поэтому, если планируется архивировать данные на носитель, потребуется DVD-RW.
И последнее: для хоста нужно выбрать операционную систему. Virtual PC 2004 поддерживает только Windows XP Professional и Windows 2000, но на самом деле Virtual PC 2004 можно запустить и на Windows Server 2003 (хотя во время установки система выдаст предупреждение). При выборе операционной системы следует обратить внимание на то, что для вас важно с точки зрения безопасности. Поскольку хост-приманка будет подключен к общей сети, усилить хост необходимо. И хотя все три операционные системы достаточно безопасны, я все же рекомендую использовать в качестве хост-платформы XP или Windows 2003, так как обе системы предоставляют дополнительные средства обеспечения безопасности.
Установка хоста
Необходимо обеспечить безопасность любой системы-приманки, по крайней мере отгородить ее от Internet хотя бы одним брандмауэром или маршрутизатором, как показано на рис. 1. Чтобы обеспечить конфиденциальность собранных данных, нужно убедиться, что приманка защищена от вторжения как извне, так и изнутри. Как минимум следует установить все доступные исправления для системы безопасности, установить брандмауэр, настроить политики безопасности, включить аудит, ограничить привилегии учетных записей и отключить ненужные сетевые службы. Тем, кто недостаточно хорошо знаком с методами усиления систем в смысле безопасности, рекомендую прочесть Security Configuration Guides, выпущенный National Security Agency (NSA — Управление национальной безопасности). Также следует обратить внимание на врезку «Дополнительная литература», там приведена информация о том, где можно найти названное руководство. И последняя рекомендация: процесс усиления не может считаться завершенным, если не проведено испытание на вторжение с целью проверки системы защиты. Вооружившись инструментами безопасности наподобие Nmap и как минимум двумя сканерами уязвимых мест, убедитесь, что все обнаруженные недочеты исправлены. Только после этого можно подключать систему к публичной сети. Дополнительная информация о том, где можно найти Nmap, а также другие упомянутые в статье утилиты, приведена в таблице.
Если планируется использовать свидетельства постороннего вмешательства, собранные приманкой, для судебного преследования, это обстоятельство необходимо учитывать еще на этапе планирования безопасности хоста. Требуется тщательно проанализировать и задокументировать каждую оценку уровня безопасности, чтобы гарантировать, что во время судебного разбирательства она не подведет. В частности, нужно проследить за тем, чтобы работа хоста и виртуальные сессии не повредили друг другу.
После завершения процедуры усиления хоста можно приступить к установке дополнительных приложений и утилит, необходимых как для работы, так и для последующего анализа данных системы-приманки. Как минимум нужно поставить Intrusion Detection System (IDS), Network Monitor, программы испытания защиты на проникновение (penetration-testing tool) и утилиты разбора прецедентов (forensic tool).
IDS обеспечивает дополнительную степень мониторинга при потенциальном незаконном подключении к виртуальным сессиям. Существуют различные типы IDS; в общем случае любое хост-решение IDS, например Snort, приемлемо. Хотя система IDS может быть запущена с набором правил или сигнатур, принятых по умолчанию, вероятно, любой администратор захочет произвести индивидуальную настройку правил, чтобы уменьшить число ложных предупреждений и более точно отразить специфику развертывания и использования системы-приманки. Дабы убедиться, что IDS перехватывает весь трафик, связанный с виртуальными сессиями, нужно настроить вторую «дремлющую» сетевую карту на прослушивание всего трафика, связанного с первой картой.
Понадобится также сетевой монитор для идентификации потенциальных атак и реконструкции уже известных. Я всегда перехватываю весь входящий и исходящий трафик хоста и виртуальных сессий. Вероятнее всего, придется часами просматривать трассы пакетов, поэтому важно выбрать подходящий монитор. Хотя во многих версиях Windows присутствует Network Monitor, его возможности ограниченны и он не слишком удобен для анализа трафика сессии. Если все равно с чего начинать, рекомендую попробовать Ethereal.
Что касается утилит испытания защиты на проникновение, то обычно я устанавливаю несколько программ из состава Windows Server 2003 Resource Kit Tools, с компакт-диска Microsoft Windows Security Resource Kit, а также от компании Sysinternals. Дополнительно стоит использовать по крайней мере один сканер уязвимых мест и Nmap. При выборе утилит разбора прецедентов я предпочитаю шестнадцатеричный редактор и несколько утилит из уже названных выше двух наборов инструментов. Некоторое количество утилит я написал самостоятельно для сбора и анализа улик, зафиксированных в моей системе-приманке.
Создание виртуальных сессий
Установка Virtual PC занимает всего несколько минут. В программе имеется небольшое число настроек, поэтому основное время будет потрачено на установку и настройку виртуальных сессий. Несложный мастер позволяет настроить память до трех жестких дисков, до четырех сетевых карт, обеспечить поддержку COM-портов, параллельных портов и звуковой карты. На экране показана панель настройки виртуальной сессии.
Virtual PC поддерживает четыре типа виртуальных жестких дисков: динамический (dynamic), фиксированный (fixed-size), дифференциальный (differencing) и связанный (linked-to-physical). Каждому из четырех типов соответствует один файл на физическом диске. Динамические диски расширяются по мере необходимости с помощью операционной системы хоста. Фиксированные диски используют заранее указанный размер, который после создания диска может быть изменен. Дифференциальные диски позволяют выделить изменения относительно некоего базового образа диска. И наконец, связанный диск позволяет устанавливать виртуальный диск на несмонтированный физический диск.
Экран. Панель настройки виртуальной сессии |
Каждый тип диска обладает рядом достоинств и недостатков с точки зрения установки системы-приманки. Связанный диск повышает риск потенциального «загрязнения» хоста, но идеально подходит, если планируется использовать съемные носители, чтобы обезопасить собранные улики. Дифференциальный диск позволяет смешивать и находить соответствие различным изменениям в сравнении с базовым образом диска, но при этом двоичный анализ улик усложняется. Динамический диск обеспечивает минимизацию используемого дискового пространства хоста, динамически расширяясь по мере необходимости, но размер диска становится неочевидным и нет возможности как-то на это повлиять. Фиксированный диск требует, чтобы на физическом диске хоста было заранее выделено пространство, но при этом всегда существует риск выделить слишком мало места для диска или впустую растратить дисковое пространство, если размер диска слишком велик, но зато можно контролировать его заданный размер. Все типы дисков поддерживают функцию возврата состояния диска, undo disks, с помощью транзакционного управления изменениями (изменения сохраняются в отдельном файле и по итогам работы сессии можно применить либо отменить их). Если администратор точно не знает, какой тип диска выбрать, следует задать динамический тип и постараться избежать применения функции undo disks, поскольку это вносит дополнительную сложность при проведении анализа улик.
В зависимости от того, какой тип диска выбран, нужно найти время и удалить с виртуального диска все данные, перед тем как использовать его, чтобы данные с физического диска хоста не просочились на виртуальный. Чтобы очистить диск, сначала нужно создать загружаемую дискету или компакт-диск, на который следует записать утилиту очистки диска. Или же можно создать образы загружаемой дискеты или компакт-диска, а затем загрузить образы в виртуальную сессию. После загрузки операционной системы нужно запустить утилиту очистки. Бесплатная программа Active@ KillDisk включает загружаемый образ в формате International Organization for Standardization (ISO), которым можно воспользоваться для загрузки виртуальной сессии.
Хотя Virtual PC поддерживает три типа сетевого взаимодействия — разделение сети с использованием Network Address Translation (NAT), разделение физического сетевого адаптера и использование адаптеров обратной связи (loopback adaptor) в виде виртуальных сетевых карт, но только разделение физического сетевого адаптера подходит для системы-приманки, поскольку виртуальные сессии нуждаются в адресах, внешних по отношению к адресу хоста. Сетевой адаптер Virtual PC специально проектировался так, как если бы он был подключен к коммутируемому порту концентратора. Если используются две сетевые карты, как я рекомендовал в самом начале, нужно выбрать только главную сетевую карту и настроить ее на совместную работу в виртуальных сессиях.
По умолчанию виртуальная сессия совместно использует приводы CD-ROM и флоппи-диска хоста. Таким образом, если вставить компакт или флоппи-диск в соответствующее устройство хоста, они будут отображаться и в виртуальных сессиях. Чтобы физический CD-ROM никогда не появлялся в виртуальной сессии, я обычно всегда оставляю ISO-образ компакт-диска в виртуальном приводе CD-ROM.
Создание системы-приманки
При создании Honeypot выполняются следующие шаги: установка базовой операционной системы для каждой виртуальной системы, настройка профиля и тестирование профиля каждой виртуальной системы, а также создание резервных копий виртуальных сессий. Все названные шаги следует выполнить в изолированной частной сети, чтобы уменьшить вероятность внешнего вмешательства. Кроме того, я настоятельно рекомендую записывать все необходимые комментарии при установке виртуальных сессий. Такой подход гарантирует, что у вас останутся аккуратные записи об установке системы-приманки, что впоследствии может пригодиться при анализе улик скомпрометированных виртуальных систем.
Профиль виртуальной системы — это некоторая специфическая конфигурация, включающая операционную систему и программное обеспечение независимых компаний, а также определенные системные службы. Например, чтобы протестировать на уязвимость серверную Web-ферму, можно настроить профиль, который будет служить зеркалом серверов Microsoft IIS 5.0 Web Server под управлением Windows 2000 Server, обезопасить IIS с помощью утилиты IIS Lockdown и задействовать фильтрацию пакетов, которая блокирует все порты, кроме TCP 80 и 443. Затем нужно сохранить эту виртуальную сессию как базовый профиль и создать различные его вариации для добавления или удаления известных уязвимых мест с целью еще более тщательного тестирования системы-приманки.
Установка базовой операционной системы — занятие несложное, но занимающее в Virtual PC много времени. После того как виртуальная сессия настроена, следует вставить загружаемый компакт-диск или ISO-образ с требуемой операционной системы и выполнить стандартную процедуру установки. К сожалению, установка операционной системы на Virtual PC протекает на удивление медленно. У меня ушло около 20 минут на инсталляцию Windows 2003 на хосте и примерно 4 часа на этой же операционной системе — на виртуальную машину. Правда, я попробовал изменить процедуру по умолчанию, определяющую, как служба Virtual PC должна разделять ресурсы центрального процессора между хостом и виртуальными сессиями, но странно, если это изменение привело к такой заметной разнице в продолжительности установки. Однако нет худа без добра — однажды установленная, гостевая операционная система прекрасно заработала.
Далее потребуется настроить каждую виртуальную сессию соответственно желаемому профилю. Этот шаг включает настройку операционной системы, установку нужных компонентов, настройку системы безопасности, применение требуемых пакетов обновлений и изменений и установку программного обеспечения независимых компаний, которое планируется запускать. Если предполагается развернуть общедоступные службы, вроде Web-сервера, необходимо убедиться, что эти службы настроены так, чтобы никто не заподозрил, что они являются частью системы-приманки. Например, Web-сервер, чей контент не сочетается с областью деятельности организации или чье наполнение устарело, может вызвать подозрение у потенциальных хакеров либо они просто потеряют к вам интерес.
При маскировке систем требуется ясно осознавать значение и степень привлекательности тех из них, которые будут легальными с юридической точки зрения (хотя, возможно, и вызовут некоторые этические вопросы), а также приманок, провоцирующих уголовно наказуемые деяния, т. е. нелегальных. Запуск анонимной системы-приманки в виде Web-сервера в периметре корпоративной сети — великий соблазн для внутренних хакеров. Но рассылка потенциальным взломщикам сообщений о существовании Web-сервера и его содержимом — все это может считаться провокацией уголовно-наказуемых деяний. Даже если юристы не убеждены, что дела, связанные с системой-приманкой, можно выиграть, следует хорошенько подготовиться к возможным осложнениям. С чего начать — смотрите во врезке «Дополнительная литература». Большинство экспертов рекомендуют, чтобы внутренние системы-приманки показывали баннеры, предупреждающие пользователей о том, что они должны быть авторизованными и что за работой на сайте ведется наблюдение.
Для успешной настройки каждой виртуальной сессии необходимо убедиться, что выполнены настройки для сбора необходимых улик. Хотя во время виртуальной сессии можно насобирать некоторое количество улик о несанкционированной деятельности (например, в виде сетевого трафика), некоторые самые явные улики могут поступить из виртуальной сессии, не заслуживающей полного доверия (скомпрометированной). Я всегда включаю запись всех событий регистрации и завершения сессии, исполнения, управления учетными записями, а также связанных с политиками, и увеличиваю размер журналов событий.
Далее следует протестировать внешние и внутренние профили на каждой виртуальной системе и убедиться, что они работают так, как ожидается. Например, если необходимо проверить систему, на которой запущен Web-сервер и установлен брандмауэр для настольного компьютера, который пропускает только входящий трафик TCP на 80 порт, следует воспользоваться утилитами проверки защиты от вторжения и убедиться, что профили настроены правильно. Виртуальный аспект внешнего профиля виртуальных сессий, скорее всего, обнаружить будет трудно. К сожалению, этого нельзя сказать про внутренний профиль виртуальных сессий. Поскольку Virtual PC эмулирует работу аппаратного обеспечения, виртуальные сессии устанавливаются с использованием общих драйверов (generic drivers), поэтому хакер может установить виртуальность сессий довольно быстро. В значительной степени те же самые проблемы возникли бы и при использовании сессий VMware, но за единственным исключением: на Virtual PC жесткий диск имеет описание Virtual HD, и скрыть это описание нельзя. Однако надо отметить, что за последние два года произошла стремительная адаптация идеи виртуализации, что сделало виртуальные сессии обычной практикой и, следовательно, они вызывают меньше подозрений со стороны хакеров.
Последний шаг в процедуре установки виртуальных сессий — создание резервных копий каждой сессии. Сделать это нужно по трем причинам: во-первых, установка и настройка сессий требует существенных усилий, и наличие «чистой» копии гарантирует, что подготовительная работа не будет потеряна. Во-вторых, когда система будет скомпрометирована, нужно суметь вернуть ее в нормальное состояние до того, как будут собраны улики для проведения аналитических работ. И наконец, часто требуется внести небольшие изменения в конфигурацию специфической виртуальной сессии для сбора дополнительных улик, и резервная копия позволит быстро вернуться к базовой конфигурации для внесения необходимых изменений.
Запуск системы-приманки
Итак, для запуска системы-приманки в работу почти все готово. Но прежде следует в последний раз просмотреть настройки сессий, сделать на всякий случай снимки сессий и запустить программы сбора улик на хосте. Обычно, дойдя до этой стадии, я работаю, имея под рукой перечень выполняемых операций, чтобы гарантировать непротиворечивость и целостность подготовки для финальной установки системы-приманки.
Для просмотра настроек следует запустить виртуальные сессии и последовательно пройти через все настройки каждой из них. Если подготовлена система-приманка, требуется дополнительно проверить сетевые настройки. Для каждой сессии нужно проверить внутренние и внешние профили для каждого устройства и выполнить выборочную проверку, чтобы лишний раз убедиться в правильности настройки в виртуальных сессиях процедур сбора улик, которые понадобятся в будущем.
Я всегда сохраняю снимки настроек каждой виртуальной сессии перед тем, как активизировать системы-приманки. Это позволяет создать некоторый базовый уровень, относительно которого будут проверяться изменения в системе после того, как она будет скомпрометирована. Имеется несколько хороших утилит для создания мгновенных снимков системной конфигурации для UNIX, есть такие утилиты и для Windows. Если же эти утилиты не используются, рекомендую выполнить всю процедуру вручную. В частности, следует рассчитать контрольные суммы файлов и процессов (включая те, что в данный момент запущены), служб, драйверов устройств, записей реестра, открытых портов, журналов событий и любых других специфических приложений, которые могут стать уликами. Найти утилиты для подсчета контрольных сумм файлов и получения снимков об установках операционной системы можно на общеизвестных Web-сайтах, у компании Sysinternals или на компакт-диске Microsoft Windows Security Resource Kit. Со временем весь процесс можно автоматизировать и написать собственные сценарии. Я написал утилиту командной строки под названием Snapshot, которая не только архивирует огромный массив данных о работающей системе, но также может идентифицировать различие между двумя снимками (например, один снимок получен до атаки, а другой — после).
Последнее, что требуется сделать перед запуском системы-приманки, — запустить на хосте программу сбора улик. Как минимум нужно запустить сетевой монитор и IDS. Я всегда предварительно очищаю трассу пакетов в мониторе и журналы IDS, прежде чем активизировать системы-приманки для сбора улик о вторжении, чтобы потом было проще разбираться с очередными накопленными данными. Ну а теперь настало время подключить хост к DMZ и активизировать приманку.
Идентификация атак
Коль скоро система-приманка начала работать, наша цель — дать ей возможность продержаться то время, которого будет достаточно для сбора улик об атаках, но недостаточно для компрометации системы (чтобы атакующий не успел использовать ее в своих целях). Время, за которое система-приманка может быть скомпрометирована, зависит от местоположения системы, ее восприимчивости к атакам и степени защищенности виртуальных сессий. Для систем-приманок, расположенных по периметру, я обнаружил, что автоматические проверки (например, на предмет «червей») нередко запускаются в пределах нескольких минут после того, как система начинает работать, а остальные — в течение нескольких дней.
Пока система-приманка работает, я закрываю глаза и на виртуальные сессии, и на работу хоста. Один или два раза в день я вношу в перечень выполненных работ (который всегда под рукой) сведения о целостности и устойчивости виртуальных сессий. Сначала просматривается список предупреждений системы IDS хоста с целью идентификации потенциальных атак, если они происходили. IDS отлично справляется с предупреждениями, но не надо полагаться только на этот инструмент для идентификации атак, поскольку для IDS характерна высокая частота ложного срабатывания. Но в общем случае IDS позволяет отловить большую часть известных программ взлома и обеспечивает очень хорошие стартовые позиции для расследования специфических атак.
Далее просматриваются трассы пакетов, полученных с помощью программы сетевого мониторинга, запущенного на хосте на предмет выявления потенциальных атак. Обычно я включаю фильтрацию пакетов, чтобы отображался исходящий трафик от конкретных виртуальных сессий. Эти пакеты используются как база для анализа каждой подозрительной сессии, от которой поступил исходящий трафик.
На следующем шаге внимание с хоста перемещается непосредственно на системы-приманки. Переключаясь в виртуальную машину, нужно действовать крайне осмотрительно, чтобы не повредить собранные улики. Обычно я просматриваю журналы событий (в частности, журналы безопасности), активные порты и журналы приложений, которые работают на приманке. Лучше стараться минимизировать время нахождения в системе-приманке, ведь даже беглого взгляда бывает достаточно, чтобы узнать, взломана система или нет.
Сбор улик
Если система-приманка скомпрометирована, значит, настало время приступить к анализу системы. Не надо сразу же выключать хост-компьютер. Сначала следует убедиться, что процедуры сбора данных не испортили собранные улики и не подвергают систему какому-либо иному риску. Если предполагается, что собранные приманкой улики будут передаваться в суд, следует заранее подготовиться к тому, что возникнут вопросы относительно степени вашей ответственности за утечку данных и процедуры сбора информации. Обсуждение подобных вопросов не является предметом настоящей статьи.
Процесс «разбора полетов» состоит из трех основных шагов: сбор трудноуловимых улик, создание резервной копии системы, а также анализ и сбор остальных улик, обнаружить которые не составило труда. Выполняя эти шаги, необходимо подробно документировать все свои действия и результаты этих действий. Подобные документы позволят в будущем очень быстро вернуться к специфическому состоянию системы-приманки и помочь со временем усовершенствовать операционные процедуры и процедуры сбора данных.
Неустойчивые улики — это улики, которые собираются во время работы системы-приманки, поскольку они, скорее всего, изменятся, если система будет отключена. Эти улики могут включать все, что угодно, начиная от дампов памяти и заканчивая сетевыми подключениями к удаленным хостам. Следует взвесить необходимость сбора неустойчивых улик, принимая во внимание тот факт, что процесс сбора улик может в принципе разрушать сами улики. В отличие от традиционных приманок, построенных на физических системах, виртуальные системы-приманки дают возможность закрыть сессию, сохранить состояние и вернуться к нему позднее. Я, например, редко собираю улики от виртуальных сессий сразу после компрометации системы, поскольку практически все нужные улики могут быть восстановлены из резервной копии сессии (хотя время от времени я подключаю отладчик к запущенному процессу, чтобы яснее понимать, что происходит).
Следующий шаг состоит в создании резервной копии виртуальной системы для сохранения улик. Необходимо закрыть виртуальную сессию, выбрав в меню Action команду Close, а затем Save State. Сохранение состояния приводит к выключению сессии и обновлению двух файлов: один из них содержит текущий контент жесткого диска, другой — текущее состояние системы (включая содержимое памяти виртуальной сессии).
Размер файла состояния зависит от количества памяти, используемой виртуальной системой, но чаще всего речь идет о диапазоне от 50 до 80 Мбайт. После того как сессия будет закрыта, следует создать копию файлов данной сессии, лучше всего на носителе, предназначенном только для чтения. Кроме того, необходимо остановить программы сбора улик и заархивировать данные, собранные на хосте (например, данные IDS и сетевого монитора).
Вот теперь начинается самое интересное: выяснение способа взлома системы и, если повезет, поиск следов того, кто ее взломал. Для этого нужно еще раз запустить сессию. Поскольку система-приманка — это виртуальная система, ее запуск означает возврат в то состояние, в котором она была на момент выключения. Теперь необходимо очень осторожно и внимательно присмотреться к каждой детали поведения системы в поисках улик. Данный процесс может занять много времени, поэтому практически всегда целесообразно автоматизировать данную задачу при помощи сценариев и утилит. Утилита Snapshot мне очень помогает. Я беру снимок скомпрометированной системы, перемещаю его из виртуальной сессии на хост и сравниваю с тем, который был до начала активации системы-приманки. Утилита точно указывает на различия в файлах, записях в реестре и даже в модулях, загруженных тем или иным процессом. Используя Snapshot, я собираю все улики, на которые указывает утилита, пока не набирается достаточно деталей, чтобы представить себе полную картину произошедшей атаки.
Способы получения улик скомпрометированной виртуальной сессии точно такие же, что и для обычной системы, с одним отличием: вы можете установить Virtual PC Additions в виртуальной сессии для обеспечения более тесной интеграции между виртуальными сессиями и хостом. Дополнительные возможности включают совместное использование каталогов и буфера обмена, синхронизацию времени, а также поддержку техники drag-and-drop между хостом и гостевой операционной системой. Недостаток Virtual PC Additions в том, что их присутствие разоблачает виртуальный характер системы, но на это не стоит обращать внимания, если установка программного обеспечения произошла после того, как система оказалась скомпрометированной.
В заключение
Если планируется установить и начать работать с системой-приманкой, необходимо убедиться, что вам удалось как следует разобраться со всеми юридическими, этическими и техническими вопросами. Поскольку создание «приманок для хакеров» — актуальная тема для обсуждения в информационном сообществе, особенно в том, что касается безопасности, информации найдется предостаточно. Но перед тем как начинать работать с приманкой, следует очень ясно и желательно документально представить цель своих действий. Также надо быть готовым к дополнительным временным затратам, пока не станут понятны все аспекты работы системы-приманки.
Хотя программа Virtual PC специально для системы-приманки не разрабатывалась, она тем не менее предоставляет гибкий набор возможностей, причем обойдется он достаточно недорого. Я настоятельно всем рекомендую в качестве платформы для построения самой первой системы-приманки воспользоваться именно Virtual PC 2004.
Проект Snapshot
Шаги реализации
Проблема: установить системы-приманки на Virtual PC 2004 для тестирования безопасности устройств периметра сети (например, Web-серверов и почтовых серверов), получить ранние оповещения о потенциальных атаках, изучить технику атак, используемую хакерами.
Что нужно: минимальная конфигурация компьютера 1 ГГц Pentium 3 (P3), 512 Мбайт памяти, жесткий диск 50 Гбайт, CD-ROM, 2 сетевые карты; закупленная лицензия или пробная версия Virtual PC; закупленные лицензии для операционных систем хоста и гостевых операционных систем; различные средства обеспечения безопасности (брандмауэр, IDS, программа сетевого мониторинга и другие утилиты, такие как шестнадцатеричный редактор и монитор портов).
Сложность: 4 из 5.
Этапы проекта
- Выбрать подходящее оборудование и операционную систему для системы хоста.
- Усилить хост и установить инструментарий безопасности.
- Установить Virtual PC.
- Установить и настроить виртуальные сессии.
- Активировать систему-приманку.
- Идентифицировать несанкционированное проникновение.
- Собрать и проанализировать улики.
Дополнительная литература
Ресурсы Windows IT Pro /RE
Введение в системы-приманки и краткий обзор четырех продуктов
«Использование приманок на базе Windows», Windows & .NET Magazine/RE № 4 за 2004 год.
Другие ресурсы
Информация о Virtual PC 2004 (http://www.microsoft.com/windows/ virtualpc/default.mspx)
Общая информация о системах-приманках
The Honeynet Project (http://project.honeynet.org/)
SecurityFocus (http://www.securityfocus.com/)
Юридические и этические вопросы при построении системы-приманки
Honeypots: Are They Illegal? (http://www.securityfocus.com/infocus/1703)
The Value of Honeypots, Part Two: Honeypots Solutions and Legal Issues (http://www.securityfocus.com/infocus/1498)
U.S. Department of Justice presentation (http://www.honeynet.org/speaking/legal-issues.ppt.zip)
Об усилении безопасности серверов
NSA security configuration guides (http://www.nsa.gov/snac)
Директор по развитию в компании SilverBack Technologies, занимающейся проверкой безопасности информационных систем. Имеет сертификат CISSP в области экспертизы приложений и системных проектов (jkinsella@silverbacktech.com)