Криминалистика белых хакеровВводная заметка редактора тематической подборки Гэри Кесслера (Gary Kessler) называется «Развитие цифровой криминалистики» (“Advancing the Science of Digital Forensics”). В цифровой криминалистике (Digital Forensics) используются научные, технологические и инженерные методы сбора и интерпретации информации, хранимой в цифровых устройствах, для использования в судебной практике. Автор впервые был вынужден использовать методы, отдаленно напоминающие методы современной цифровой криминалистики, еще 1981 году, когда в результате сбоя на диске компьютера IBM System/34 была повреждена таблица содержимого тома. При дальнейшем использовании компьютера существующие файлы могли бы быть повреждены, поэтому таблица восстанавливалась в течение трех дней вручную на бумаге.

Почти те же методы в следующие 15 лет применяли хакеры, которые выполняли исследования (чаще всего в интересах правоохранительного сообщества) и создавали элементарные инструментальные средства для глубокого проникновения в недра компьютеров и их файловых систем. В те годы термин «хакер» неявно использовался для обозначения положительных персонажей — «белых хакеров» (White Hat), и лишь потом его присвоили компьютерные взломщики — «черные хакеры» (Black Hat).

В конце 90-х годов кафедры компьютерных наук начали проявлять серьезный интерес к компьютерной криминалистике, и в начале этого века появились первые учебные программы. Но только в 2009 году Американская академия криминалистики признала цифровую криминалистику наукой. Криминалистические науки в основном базируются на принципе обмена Локара — каждый контакт оставляет след. Если, например, один человек бьет другого человека по голове палкой, то на палке остается след от головы, а на голове — след от палки. Этот принцип действует и в киберпространстве. Проблемы цифровой криминалистики состоят в том, что нужно найти такие следы и правильно их проинтерпретировать.

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

Авторами первой регулярной статьи тематической подборки являются Джоель Янг (Joel Young), Кристина Фостер (Kristina Foster), Симсон Гарфинкель (Simson Garfinkel) и Кевин Фейрбэнкс (Kevin Fairbanks), а статья называется «Индивидуальное хэширование секторов для обнаружения искомого файла» (“Distinct Sector Hashes for Target File Detection”). Криминалистическим экспертам часто приходится проверять на дисках, в мобильных телефонах и в сетевых потоках наличие некоторого конкретного контента. Например, сотрудники корпоративных служб безопасности могут проверять ноутбук подозрительного служащего на предмет наличия конфиденциальных документов, сотрудники правоохранительных органов могут исследовать диски домашнего компьютера подследственного на наличие детской порнографии, а сетевые аналитики — реконструировать потоки TCP для обнаружения вирусов. В этих и многих других случаях эксперты обычно идентифицируют файлы путем вычисления их криптографических хэш-функций (часто с использованием алгоритмов MD5 или SHA1) с последующим поиском в базе данных по полученному значению.

Использование хэш-значений для идентификации файлов широко распространено в цифровой криминалистике — в каждом популярном криминалистическом пакете имеется встроенная поддержка этих методов. Одной из наиболее широко используемых баз данных является Справочный набор данных (Reference Data Set, RDS) Национальной библиотеки справочной информации по программному обеспечению США (National Software Reference Library, NSRL). Версия 2.36 этой базы данных, выпущенная в марте 2012 года, содержит 25 892 924 хэш-значения файлов.

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

Авторы статьи разрабатывают альтернативные системы для выявления искомых файлов на образах дисков большого объема с использованием криптографического хэширования секторов данных, а не файлов целиком. В современных файловых системах большинство файлов располагается с начала сектора. При хранении видеофайла мегабайтного масштаба первые 4 Кбайт хранятся в одном секторе диска, а следующие 4 Кбайт — в другом (обычно смежном) и т. д. Выборка случайного сектора диска позволяет с высокой вероятностью оценить присутствие или отсутствие на диске искомого файла.

Статью «Сетевая криминалистика: анализ методов, инструментов и тенденций» (“Network Forensics: An Analysis of Techniques, Tools, and Trends”) представили Рэй Хант (Ray Hunt) и Ширали Зидалли (Sherali Zeadally). Сетевая криминалистика — это ветвь цифровой криминалистики, посвященная в основном мониторингу и анализу сетевого трафика. В отличие от других областей цифровой криминалистики, опирающихся на хранимые статические данные, сетевая имеет дело с изменчивыми динамическими данными. Имеются два основных применения сетевой криминалистики. Первое связано с сетевой безопасностью и состоит в автоматическом обнаружении аномального трафика и выявлении вторжений. Второе применение относится к поддержке правопорядка и включает сбор и анализ сетевого трафика с целью, например, реконструкции передаваемых файлов, поиска по ключевым словам, разбора сообщений электронной почты и т. д. Развитие сетевой безопасности, а также связанных с ней криминалистических процессов и наборов инструментальных средств во многом определяется достижениями в области технологий Интернета. Чем больше аспектов повседневной жизни, привлекающих внимание криминального мира, переходит под управление онлайновых систем и баз данных, тем более насущной становится потребность в развитых средствах анализа. К наиболее признанным видам применения сетевой криминалистики относится следующее:

  • анализ компьютерных систем, принадлежащих подсудимым и ответчикам;
  • сбор фактов для использования в суде;
  • восстановление данных после сбоя аппаратуры или программного обеспечения;
  • получение информации о том, как работают компьютерные системы, для целей отладки, оптимизации производительности или обратной инженерии;
  • сбор и анализ передаваемых по сети пакетов данных для обнаружения и потенциального предотвращения злонамеренных атак;
  • получение большей информации о допродажных «атаках нулевого дня» (zero-day attack) с использованием ловушек (honeypot).

Анализ сетевых данных в реальном времени включает сбор, запоминание и трассировку данных при постоянно выполняемом сканировании сетевого потока и журналов. Как показано на рис. 1, процесс начинается с применения мер безопасности, после чего выполняется криминалистический анализ (для выяснения источника атаки). В заключение восстанавливается нормальная работоспособность защищаемой системы.

 

Рис. 1. Процесс анализа сетевых данных в реальном времени
Рис. 1. Процесс анализа сетевых данных в реальном времени

 

Статью под названием «Системы SCADA: проблемы экспертов-криминалистов» (“SCADA Systems: Challenges for Forensic Investigators”) написали Ирфан Ахмед (Irfan Ahmed), Голден Ричард III (Golden Richard III), Себастьян Обермейер (Sebastian Obermeier) и Мартин Нейдел (Martin Naedele). Автоматизированная система управления производством — это набор устройств, регулирующих поведение физических процессов. Например, простой управляющей системой является термостат. Такие системы используются для отслеживания и регулировки производственных и инфраструктурных процессов, в химическом производстве, на предприятиях выработки и распределения электроэнергии, в водном хозяйстве и т. д. Территориально распределенные управляющие системы, которые могут управлять отдельными компонентами производства, часто называют системами диспетчерского управления и сбора данных (Supervisory Control And Data Acquisition, SCADA). Авторы статьи используют аббревиатуру SCADA в более общем смысле применительно к управляющим системам, привязанным к физическим процессам, поддерживающим постоянную доступность и обеспечивающим установленное время реакции.

Ранние системы SCADA функционировали в изолированных сетях, не подключенных к Интернету, и в них не требовались какие-либо механизмы безопасности. Эти системы состояли из простых устройств ввода/вывода, которые передавали сигналы между ведущим устройством и удаленными терминальными устройствами. В последние годы системы SCADA функционируют на основе общедоступных IP-сетей. Некоторые из них также подключаются к корпоративным локальным сетям или напрямую к Интернету для интеграции данных SCADA с внешними, такими как сообщения электронной почты или метеорологические данные (рис. 2). Интеграция систем SCADA с намного более масштабными сетями приводит к появлению угроз, которые было невозможно представить в то время, когда такие системы начинали появляться. В течение последнего десятилетия поставщики систем, владельцы активов и регулирующие организации осознали наличие этой углубляющейся проблемы и приступили к ее решению путем принятия новых законов и разработки различных механизмов, процессов и стандартов безопасности.

 

Рис. 2. Упрощенное логическое представление типичной архитектуры SCADA
Рис. 2. Упрощенное логическое представление типичной архитектуры SCADA

 

Дополнительным фактором, повлиявшим на владельцев и операторов систем SCADA, стало обнаружение в июне 2010 года червя Stuxnet, а через год — Flame. Червь Stuxnet — первая известная злонамеренная программа, ориентированная на целевые автоматизированные системы. Этот вирус заразил от 50 тыс. до 100 тыс. компьютеров во всем мире. Flame — это средство кибершпионажа, на порядок более сложное, чем Stuxnet.

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

Последняя статья тематической подборки называется «Проблемы безопасности смартфонов» (“Smartphone Security Challenges”) и написана Йонгом Вангом (Yong Wang), Кевином Стреффом (Kevin Streff) и Сонеллом Раманом (Sonell Raman). По прогнозам IDC, в 2015 году объем поставок смартфонов достигнет 15 млрд штук. Возрастающая популярность смартфонов порождает многочисленные проблемы безопасности. После появления в 2004 году первых мобильных вирусов пользователи смартфонов постоянно сообщают о серьезных атаках с использованием вредоносного программного обеспечения — например, за последние семь месяцев 2011 года количество атак на платформу Android выросло более чем на 3%.

Криминалистика мобильных устройств — это часть компьютерной криминалистики, потребность в которой диктуется повсеместной распространенностью таких устройств в современном обществе. Поскольку мобильные устройства все чаще используются в качестве инструмента или цели криминалитета, к ним применимы криминалистические и судебные методы. Следует заметить, что в мобильных устройствах количество доказательной информации в расчете на байт данных больше, чем в традиционных компьютерах.

Вне тематической подборки опубликованы две крупные статьи. Авторами статьи «Использование трассировки для решения проблемы отладки многоядерных систем» (“Using Tracing to Solve the Multicore System Debug Problem”) являются Арон Спир (Aaron Spear), Маркус Леви (Markus Levy) и Мэтью Десноерс (Mathieu Desnoyers). Сложности отладки и оптимизации современных многоядерных программных систем растут по мере распространения технологии — например, по данным Pew Research Center, в начале 2012 года в США число используемых многоядерных смартфонов превышало число обычных мобильных телефонов — более 46% взрослого населения владели смартфонами.

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

Перспективным путем к решению этих проблем является использование трассировочных данных, поэтому многие компании и сообщества Open Source разработали механизмы трассировки: Dtrace, SystemTap, Ftrace, strace и Linux Trace Toolkit Next Generation, однако у всех них имелся общий недостаток — отсутствие стандартного формата представления трасс.

Компании — члены ассоциации Multicore Association создали Рабочую группу для разработки инфраструктуры инструментальных средств (Tools Infrastructure Working Group, TIWG) с целью разработки стандартов, обеспечивающих развитую интероперабельность инструментальных средств разработки многоядерного программного обеспечения. В апреле 2010 года сообщества TIWG и Linux приняли решение о сотрудничестве для создания стандарта, отвечающего потребностям Linux и встраиваемых систем. Эта группа занялась разработкой спецификации общего формата трасс (Common Trace Format, CTF) на основе исходной информации от TIWG. По мнению авторов статьи, использование CTF позволит анализировать поведение сложных многоядерных систем на новом уровне, который ранее был недоступен из-за разнородности технологий. Открытость стандарта и наличие готовых компонентов с открытым кодом для создания и анализа трасс позволят разработчикам быстро добавлять средства трассировки в приложения, что даст возможность лучше понимать поведение многоядерных систем.

Последняя статья номера «Облачная архитектура IaaS: от виртуализации центров обработки данных к интеграции облачных инфраструктур» (“IaaS Cloud Architecture: From Virtualized Datacenters to Federated Cloud Infrastructures”) представлена Рафаэлем Морено-Возмедиано (Rafael Moreno-Vozmediano), Рубеном Монтеро (Ruben Montero) и Игнасио Лоренте (Ignacio Llorente). Виртуализация является эффективной технологией для реализации центров обработки данных, обеспечивающей абстрагирование вычислительных, сетевых платформ и платформ хранения данных от базовой физической аппаратуры. Инфраструктуры виртуализации поддерживают консолидацию серверов и обеспечивают выполнение запросов пользователей «по требованию». Это позволяет добиться высокого коэффициента использования серверов и существенного снижения стоимости услуг и уровня энергопотребления. Поскольку для обеспечения оптимального функционирования ЦОД нужны безопасность, эффективность и масштабирование, ключевым компонентом их архитектуры является менеджер инфраструктуры виртуализации, основная роль которого состоит в обеспечении инфраструктуры в виде сервиса (Infrastructure as a Service, IaaS), что преобразует традиционный ЦОД в нечто, похожее на облако.

Будущие ЦОД будут похожи на частные IaaS-облака, поддерживающие гибкое функционирование виртуализованных сервисов. В этом контексте менеджер инфраструктуры виртуализации, называемый также облачной операционной системой, оркестрирует развертывание виртуализованных ресурсов и управляет физическими и виртуальными инфраструктурами для обеспечения сервисов управления и контроля (рис. 3). Кроме того, управление центром обработки данных как облаком позволит дополнить локальную инфраструктуру удаленными ресурсами от других интегрированных центров данных или коммерческих облачных инфраструктур.

 

Рис. 3. Облачная ОС, основной компонент облачной архитектуры IaaS, организуется на трех уровнях — драйверы, компоненты ядра и инструменты высокого уровня
Рис. 3. Облачная ОС, основной компонент облачной архитектуры IaaS, организуется на трех уровнях — драйверы, компоненты ядра и инструменты высокого уровня

 

До следующей встречи, Сергей Кузнецов (kuzloc@ispras.ru).