2015 г.
Криминалистика белых хакеров
Сергей Кузнецов
Обзор декабрьского 2012 г. номера журнала Computer (IEEE Computer Society, V. 45, No 12, декабрь, 2012).
Авторская редакция.
Также обзор опубликован в журнале «Открытые системы»
Темой декабрьского номера в 2012 г. является цифровая криминалистика (Digital Forensics). Редактором тематической подборки, включающей четыре статьи, является Гэри Кесслер (Gary C. Kessler, Embry-Riddle Aeronautical University). Его вводная заметка называется «Развитие цифровой криминалистики» («Advancing the Science of Digital Forensics»).
В цифровой криминалистике используются научные, технологические и инженерные методы сбора и интерпретации информации, хранимой в цифровых устройствах, для использования в судебной практике. Конечно, те же методы позволяют добывать данные для использования вне залов суда: при выполнении фундаментальных и прикладных исследований, в полицейской деятельности, при борьбе с нарушениями информационной безопасности и при сборе разведовательных данных.
Автор заметки впервые был вынужден использовать методы, отдаленно напоминающие методы современной цифровой криминалистики, в 1981 г., когда в результате аварийного сбоя на диске компьютера IBM System/34 была повреждена таблица содержимого тома (volume table of contents, VTOC). При дальнейшем использовании компьютера существующие файлы могли бы быть повреждены, поэтому VTOC восстанавливалась в течение трех дней вручную на бумаге.
Почти те же методы в следующие 15 лет применяли хакеры , которые выполняли исследования (чаще всего в интересах правоохранительного сообщества) и создавали элементарные инструментальные средства для глубокого проникновения в недра компьютеров и их файловых систем. В те годы термин «хакер» неявно использовался для обозначения положительных персонажей — белых хакеров (White Hat); лишь потом его присвоили компьютерные взломщики — черные хакеры (Black Hat).
В конце 1990-х гг. кафедры компьютерных наук начали проявлять серьезный интерес к компьютерной криминалистике, и в начале 2000-х гг. появились первые учебные программы. Но только в 2009 г. Американская академия криминалистики (American Academy of Forensic Sciences) признала цифровую криминалистику наукой.
Криминалистические науки в основном базируются на принципе обмена Локара (Locard): каждый контакт оставляет след. Если, например, один человек бьет другого человека по голове палкой, то на палке остается след от головы, а на голове — след от палки. Этот принцип действует и в киберпространстве. Проблемы цифровой криминалистики состоят в том, что нужно найти такие следы и правильно их проинтерпретировать.
Основное отличие цифровой криминалистики от других криминалистических наук состоит в том, что их результаты с успехом использовались на практике задолго до того, как начались соответствующие исследования в компьютерном сообществе. Поэтому, хотя цифровая криминалистика существует уже десятки лет, это все еще молодая наука. В частности, сравнительно невелик объем рецензируемой научной литературы, хотя он и возрастает.
Авторами первой регулярной статьи тематической подборки являются Джоель Янг, Кристина Фостер, Симсон Гарфинкель и Кевин Фейрбэнкс (Joel Young, Kristina Foster, Simson Garfinkel, Naval Postgraduate School, Kevin Fairbanks, Johns Hopkins University). Статья называется «Индивидуальное хэширование секторов для обнаружения искомого файла» («Distinct Sector Hashes for Target File Detection»).
Криминалистическим экспертам часто приходится проверять на дисках, в мобильных телефонах и даже в сетевых потоках наличие некоторого конкретного контента. Например, сотрудники корпоративных служб безопасности могут проверять ноутбук подозрительного служащего на предмет наличия неразрешенных документов, сотрудники правоохранительных органов могут исследовать наличие детской порнографии на дисках домашнего компьютера подследственного, а сетевые аналитики — реконоструировать потоки TCP для обнаружения вирусов. В этих и многих других случаях эксперты обычно идентифицируют файлы путем вычисления их криптографических хэш-функций (часто с использованием алгоритмов MD5 или SHA-1) с последующим поиском в базе данных по полученному значению.
Использование хэш-значений для идентификации файлов широко распространено в цифровой криминалистике — в каждом популярном криминалистическом пакете имеется встроенная поддержка этих методов. Одной из наиболее широко используемых баз данных является Справочный набор данных (Reference Data Set, RDS) Национальной библиотеки справочной информации по программному обеспечению (National Software Reference Library, NSRL). Версия 2.36 этой базы данных, выпущенная в марте 2012 г., содержит 25892924 хэш-значений файлов.
При использовании хэш-значений файлов для идентификации известного содержимого имеется много ограничений. Поскольку изменение любого бита внутри файла приводит к изменению его хэш-значения, производители и распространители порнографии, создатели вредоносного программного обеспечения и другие злоумышленники могут избежать выявления путем замены запятой на точку с запятой или добавления к файлу нескольких произвольных байт. Аналогичным образом, идентификация на основе хэширования не срабатывает, если участки файла повреждены или недоступны по другим причинам. В частности, это становится серьезной проблемой, если удаляются крупные видеофайлы, и операционная система использует несколько их секторов для других целей. В этом случае большая часть видео присутствует на диске, но восстановленные сегменты не идентифицируются с использованием базы данных хэш-значений файлов.
Авторы статьи разрабатывают альтернативные системы для выявления искомых файлов на образах дисков большого объема с использованием криптографического хэширования секторов данных, а не файлов целиком. В современных файловых системах большинство файлов располагается с начала сектора. При хранении видеофайла мегабайтного масштаба первые 4 килобайта хранятся в одном секторе диска, следующие 4 килобайта — в другом секторе (обычно смежном) и т.д. Выборка случайного сектора диска позволяет с высокой вероятностью оценить присутствие или отсутствие на диске искомого файла.
Статью «Сетевая криминалистика: анализ методов, инструментов и тенденций» («Network Forensics: An Analysis of Techniques, Tools, and Trends») представили Рэй Хант и Ширали Зидалли (Ray Hunt, University of South Australia, Sherali Zeadally, University of the District of Columbia).
Сетевая криминалистика — это ветвь цифровой криминалистики, посвященная в основном мониторингу и анализу сетевого трафика. В отличие от других областей цифровой криминалистики, опирающихся на хранимые статические данные, сетевая криминалистика имеет дело с изменчивыми динамическими данными. Имеются два основных применения сетевой криминалистики. Первое связано с сетевой безопасностью и состоит в автоматическом обнаружении аномального трафика и выявлении вторжений. Второе применение относится к поддержке правопорядка и включает сбор и анализ сетевого трафика с целью, например, реконструкции передаваемых файлов, поиска по ключевым словам, разбора сообщений электронной почты и т.д.
Развитие сетевой безопасности, а также связанных с ней криминалистических процессов и наборов инструментальных средств во многом определяется достижениями в области Internet-технологий. Чем больше аспектов повседневной жизни, привлекающих внимание криминального мира, переходит под управление онлайновых систем и баз данных, тем более насущной становится потребность в развитых средствах анализа. К наиболее признанным видам применения сетевой криминалистики относится следующее:
- анализ компьютерных систем, принадлежащих подсудимым и ответчикам;
- сбор фактов для использования в суде;
- восстановление данных после сбоя аппаратуры или программного обеспечения;
- получение информации о том, как работают компьютерные системы, для целей отладки, оптимизации производительности или обратной инженерии;
- сбор и анализ передаваемых по сети пакетов данных для обнаружения и потенциального предотвращения злонамеренных атак;
- получение большей информации о допродажных «атаках нулевого дня» (zero-day attack) с использованием ловушек (honeypot).
Анализ сетевых данных в реальном времени включает сбор, запоминание и трассировку данных при постоянно выполняемом сканировании сетевого потока и журналов. Как показывает рисунок, процесс начинается с применения мер безопасности, после чего выполняется криминалистический анализ (для выяснения источника атаки). В заключение восстанавливается нормальная работоспособность защищаемой системы.
Статью под названием «Системы SCADA: проблемы экспертов-криминалистов» («SCADA Systems: Challenges for Forensic Investigators») написали Ирфан Ахмед, Голден Ричард III, Себастьян Обермейер и Мартин Нейдел (Irfan Ahmed, Golden G. Richard III, University of New Orleans, Sebastian Obermeier, Martin Naedele, ABB Corporate Research).
Автоматизированная система управления производством (industrial automation and control system) — это набор устройств, регулирующих поведение физических процессов. Например, простой управляющей системой является термостат, измеряющий температуру и включающий или выключающий нагревательное устройство для ее поддержки в установленном режиме. Такие системы используются для отслеживания и регулировки производственных и инфраструктурных процессов, в химическом производстве, на предприятиях выработки и распределения электроэнергии, в водном хозяйстве и т.д.
Территориально-распределенные управляющие системы, которые могут управлять отдельными компонентами производства, часто называют системами диспетческого управления и сбора данных (supervisory control and data acquisition, SCADA). Авторы статьи используют аббревиатуру SCADA в более общем смысле применительно к управляющим системам, привязанным к физическим процессам, поддерживающим постоянную доступность и обеспечивающим установленное время реакции.
Упрощенное логическое представление типичной архитектуры SCADA
Ранние системы SCADA функционировали в изолированных сетях, не подключенных к Internet, и потому в них не требовались какие-либо механизмы безопасности. Эти системы состояли из простых устройств ввода-вывода, которые передавали сигналы между ведущим устройством и удаленными терминальными устройствами. В последние годы системы SCADA функционируют на основе общедоступных IP-сетей. Некоторые из них также подключаются к корпоративным локальным сетям или напрямую к Internet для интеграции данных SCADA с внешними данными, такими как сообщения электронной почты или метеорологические данные.
Интеграция систем SCADA с намного более масштабными сетями приводит к появлению угроз, которые было невозможно представить в то время, когда такие системы начинали появляться. В течение последнего десятилетия поставщики систем, владельцы активов и регулирующие организации осознали наличие этой углубляющейся проблемы и приступили к ее решению путем принятия новых законов и разработки различных механизмов, процессов и стандартов безопасности.
Дополнительным фактором, повлиявшим на владельцев и операторов систем SCADA, стало появление в июне 2010 г. компютерного червя Stuxnet, а в мае 2011 г. — Flame. Stuxnet — это первое известное злонамеренное программное обеспечение, ориентированное на целевые автоматизированное системы. Этот вирус заразил от 50 до 100 тысяч компьютеров во всем мире. Flame — это средство кибершпионажа, на порядок более сложное, чем Stuxnet.
Подобные вирусные атаки продемонстрировали потребность в криминалистической экспертизе для совершенствования кибербезопасности по отношению к внутренним и внешним правонарушителям, применяющим зловредное программное обеспечения с целью подрыва важных национальных инфраструктур. Кроме того, что цифровая криминалистика играет ведущую роль при разработке стратегии защиты систем SCADA, а также при выявлении и судебном преследовании злоумышленников, она может помочь справиться с незлонамеренными, но вредными ситуациями, такими как сбои жестких дисков или других аппаратных средств за счет обеспечения глубокого анализа внутренних компонентов систем SCADA.
Последняя статья тематической подборки называется «Проблемы безопасности смартфонов» («Smartphone Security Challenges») и написана Йонгом Вангом, Кевином Стреффом и Сонеллом Раманом (Yong Wang, Kevin Streff, Sonell Raman, Dakota State University).
Смартфоны быстро становятся основными устройствами для доступа к ресурсам Internet. По прогнозам IDC, в 2015 г. объем поставок смартфонов достигнет 15 миллиардов штук. Смартфоны поддерживают намного больше функций, чем традиционные мобильные телефоны. Кроме заранее установленной операционной системы (iOS, Android или Windows Mobile) в большинстве смартфонов присутствует поддержка сетей операторов связи, Wi-Fi и Bluetooth, так что у пользователей имеется доступ в Internet для скачивания и запуска сторонних приложений.
Возрастающая популярность смартфонов порождает многочисленные проблемы безопасности. После появления в 2004 г. первых мобильных вирусов пользователи смартфонов постоянно сообщают о серьезных атаках с использованием вредоносного программного обеспечения. За последние семь месяцев 2011 г. количество атак на платформу Android выросло более чем на 3%. Поскольку число пользователей смартфонов все время возрастает, они должны иметь гарантии надежности и безопасности предоставляемых им сервисов.
Криминалистика мобильных устройств (имеющая дело с мобильными телефонами, смартфонами, планшетами, карманными персональными компьютерами и навигаторами) — это часть компьютерной криминалистики, потребность в которой диктуется повсеместной распространенностью таких устройств в современном обществе. Поскольку мобильные устройства все чаще используются в качестве инструмента или цели криминалитета, к ним применимы криминалистические и судебные методы. Следует заметить, что в мобильных устройствах количество доказательной информации в расчете на байт данных больше, чем в традиционных компьютерах. Хотя основной задачей криминалистики мобильных устройств является выборка и анализ данных (в том числе тех, которые были ранее удалены) для поддержки криминалистических и судебных действий, применяемые процессы и инструментальные средства могут использоваться и в других приложениях.
Вне тематической подборки опубликованы две крупные статьи. Авторами статьи «Использование трассировки для решения проблемы отладки многоядерных систем» («Using Tracing to Solve the Multicore System Debug Problem») являются Арон Спир, Маркус Леви и Мэтью Десноерс (Aaron Spear, VMware, Markus Levy, Multicore Association, Mathieu Desnoyers, EfficiOS).
Сложности отладки и оптимизации современных многоядерных программных систем возрастают по мере распространения технологии. Например, по данным Pew Research Center, в начале 2012 г. в США число используемых многоядерных смартфонов превышало число обычных мобильных телефонов; более 46% взрослого населения владели смартфонами.
Требования к энергопотреблению, поддержке сетевых возможностей и пользовательских интерфейсов, а также времени выхода на рынок приводят к наличию нескольких общих паттернов архитектуры устройств:
- использование нескольких ядер (часто с разной тактовой частотой) для поддержки требуемой производительности при постоянно сокращаемом энергопотреблении;
- применение специализированной аппаратуры для поддержки функций, критически влияющих на общую производительность;
- базирование на операционных системах, драйверах и стеках программного обеспечения с открытым исходным кодом (Linux и Android);
- разнесения управления и данных по нескольким процессорам с разными операционными системам.
Встраиваемые системы обрабатывают много данных при выполнении, например, функций анализа видео или маршрутизации пакетов, и они делают это в параллельном режиме. В результате появляется набор требований, которые чрезвычайно сложно согласовать. Достаточно трудно отлаживать одноядерные встраиваемые системы, но отладка нескольких потоков активно взаимодействующих программ вызывает несравненно больше проблем.
Перспективным путем к решению этих проблем является использование трассировочных данных, и многие компании и сообщества open source создали требуемые механизмы трассировки, включая Dtrace, SystemTap, Ftrace, strace и Linux Trace Toolkit Next Generation (LTTng). Однако у всех этих механизмов имелся общий недостаток: отсутствие стандартного формата представления трасс.
Компании-члены Многоядерной ассоциации (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, Rubén S. Montero, Ignacio M. Llorente, Complutense University of Madrid).
Виртуализация является эффективной технологией для реализации центров данных, обеспечивая абстрагирование вычислительных, сетевых платформ и платформ хранения данных от базовой физической аппаратуры. Инфраструктуры виртуализации поддерживают консолидацию серверов и обеспечивают выполнение запросов пользователей «по требованию». Это позволяет добиться высокого коэффициента использования серверов и существенного снижения стоимости услуг и уровня энергопотребления.
Поскольку для обеспечения оптимального функционирования центра данных нужны безопасность, эффективность и масштабирование, ключевым компонентом архитектуры центров данных является менеджер инфраструктуры виртуализации. Основная роль этого компонента состоит в обеспечении инфраструктуры в виде сервиса (infrastructure as a service, IaaS), что преобразует традиционный центр данных в нечто, похожее на облако.
Будущие центры данных будут похожи на частные IaaS-облака, поддерживая гибкое функционирование виртуализованных сервисов. В этом контексте менеджер инфраструктуры виртуализации, называемый также облачной операционной системой (cloud OS), оркестрирует развертывание виртуализованных ресурсов и управляет физическими и виртуальными инфраструктурами для обеспечения сервисов управления и контроля. Кроме того, управление центром данным как облаком позволит дополнить локальную инфраструктуру удаленными ресурсами от других интегрированных центров данных или коммерческих облачных инфраструктур.
Облачная ОС, основной компонент облачной архитектуры IaaS, организуется на трех уровнях — драйверы, компоненты ядра и инструменты высокого уровня