В конце 2010 года Грем Белл и Ричард Боддингтон опубликовали работу «Solid State Drives: The Beginning of the End for Current Practice in Digital Forensic Recovery?» («Твердотельные накопители: начало конца существующим методам судебного восстановления данных?»), которая вызвала неоднозначную реакцию интернет-сообщества. И хотя обсуждаемая в указанной статье особенность работы твердотельных накопителей была впервые озвучена в 2008 году на конференции DEFCON 16, исследована специалистами компании Майкрософт и представлена на конференции разработчиков машинных носителей информации в 2009-м [1, 6-й слайд] и даже упомянута на российских семинарах в 2010-м [2, слайды 10 и 11], признание проблемы и серьезное обсуждение этих особенностей в сообществе криминалистов пришлись на март 2011 года.
В этой заметке я постараюсь рассказать об особенностях работы носителей информации, основанных на использовании флеш-памяти, через призму компьютерной криминалистики.
Кратко о компьютерной криминалистике
Основным направлением компьютерной криминалистики является исследование машинных носителей информации с целью формирования судебных доказательств (проведение судебных компьютерных и компьютерно-технических экспертиз) и сбора оперативной информации, не используемой в качестве доказательства в суде. Условно к компьютерной криминалистике можно отнести и смежные области, в которых исследование компьютерной информации имеет важную роль: расследование инцидентов информационной безопасности в организациях, исследование носителей информации в военных (боевых) целях и др.
Т. к. криминалистическое исследование машинных носителей информации в большом числе случаев производится для получения судебных доказательств, то способ проведения таких исследований должен обеспечивать проверку результатов повторным исследованием (это требование зафиксировано в статье 57 Уголовно-процессуального кодекса РФ: «эксперт не вправе… проводить без разрешения дознавателя, следователя, суда исследования, могущие повлечь полное или частичное уничтожение объектов либо изменение их внешнего вида или основных свойств»). Применительно к исследованию компьютерной информации требования к повторяемости результатов выражаются в обеспечении неизменности информации (хотя некоторые ученые предпочитают использовать термин «целостность информации») различными средствами:
* программными блокираторами записи, которые блокируют любые команды записи, отправляемые на исследуемый носитель информации операционной системой (в ОС Linux программным блокиратором записи могут выступать устройства обратной связи, создаваемые в режиме «только чтение» командой «mount -o ro,loop /dev/<устройство> <точка монтирования>»);
* аппаратными блокираторами записи, которые выполняют те же функции, но не требуют установки какого-либо программного обеспечения (более простыми словами: устройства-посредники между ЭВМ и носителем информации, фильтрующие передаваемые команды);
* специализированными операционными системами, которые в процессе загрузки и работы не отправляют на подключенные носители информации команды записи.
Развитие компьютерной криминалистики на начальном этапе
Развитие методов криминалистического исследования компьютерной информации можно обозначить следующими тенденциями:
* подтверждение неизменности (целостности) исследуемых данных криптографическими хеш-функциями;
* обеспечение неизменности исследуемых данных путем обязательного использования блокираторов записи либо исследованием криминалистических копий носителей информации, создаваемых путем копирования содержимого одного носителя на другой (иногда такие копии называют побитовыми или посекторными);
* популяризация указанных тенденций, фиксация их в методиках проведения судебных исследований.
Не сложно понять, что на развитие компьютерной криминалистики оказывает влияние статичность содержимого машинных носителей информации, которую можно выразить в виде простого принципа: «данные изменяются только по команде». Этот принцип действует для дискет, накопителей на жестких магнитных дисках (НЖМД) и других «традиционных» видов носителей информации, а изменение содержимого этих носителей без команды следует расценивать как неисправность (появление плохих секторов).
Разумеется, изменение служебных данных (параметров SMART) не является серьезной проблемой, поскольку подобная служебная информация редко используется в криминалистике для решения каких-либо задач (и ее изменение не рассматривается критически, в отличие от изменения файловых систем).
Развитие флеш-памяти через призму криминалистики
Массовое применение флеш-памяти в съемных и несъемных машинных носителях информации стало возможным благодаря решению проблемы изнашивания ячеек флеш-памяти, которая приводит к ограничению числа возможных циклов очистки (перезаписи) отдельных блоков памяти и существенному снижению ресурса флеш-памяти из-за неравномерной записи данных в распространенных файловых системах (одни участки данных перезаписываются чаще других).
Для решения этой проблемы производители флеш-памяти стали использовать метод выравнивания изнашивания, который заключается в перемещении данных из наиболее изношенных участков памяти в менее изношенные. Данный процесс может выполняться на уровне файловой системы либо на уровне контроллера: в первом случае данные перераспределяет драйвер специальной файловой системы, во втором случае данные перераспределяются контроллером носителя информации прозрачно для операционной системы (контроллер обеспечивает необходимый порядок следования байтов при чтении, т. е. воссоздает исходную структуру данных благодаря использованию таблицы соответствий логических адресов памяти физическому положению ячеек памяти).
Флеш-память, для выравнивания изнашивания которой необходимо установить в систему дополнительный драйвер и использовать специальную файловую систему, не получила широкого распространения среди рядовых пользователей, а наибольшее распространение получили алгоритмы выравнивания изнашивания контроллером.
Таким образом, даже при работе с флеш-памятью в режиме «только чтение» происходит постоянное перераспределение данных контроллером. Однако данный процесс абсолютно прозрачен для операционной системы и считывающих устройств, поэтому особых сложностей при проведении криминалистических исследований флеш-памяти не возникает (на физическом уровне данные хоть и перераспределяются, но на логическом уровне они статичны), если бы не два больших НО:
1. носители USB Flash иногда электрически не подключают блоки ячеек памяти до первой команды записи в эти блоки [4];
2. эффективное выравнивание изнашивания требует наличия дополнительных (резервных) участков памяти, в качестве которых целесообразно использовать свободные (незанятые) участки данных файловых систем.
Первое «но» приводит к тому, что при чтении незаписанных участков памяти накопителей USB Flash возвращаются случайные данные (шум), которые, как этого и следует ожидать, изменяются при каждом чтении.
Второе «но» приводит производителей твердотельных накопителей (SSD) к проблеме (уже решенной) определения и использования свободных (незанятых) участков данных файловых систем для выравнивания изнашивания.
Указанные особенности являются серьезным нарушением принципа «данные изменяются только по команде», на котором основана современная компьютерная криминалистика. Более того, использование для выравнивания изнашивания свободных (незанятых) участков файловых систем, которые содержат удаленные файлы и данные предыдущих файловых систем, приводит к серьезным проблемам восстановления данных (т. к. перед использованием свободного участка данных контроллер производит его очистку, т. е. происходит уничтожение удаленных данных, по своей сути схожее с перезаписью файлов специальными программами).
Как работает выравнивание изнашивания флеш-памяти с использованием незанятого пространства файловых систем?
Упрощенный алгоритм работы можно описать несколькими строками:
Ячейки флеш-памяти, которые соответствуют (на логическом уровне) участкам данных, не используемых файловой системой для хранения информации в явном виде, очищаются, ссылки на них удаляются (т. е. операционная система больше не может прочитать содержимое этих ячеек путем чтения соответствующих участков данных), затем ячейки используются для перераспределения данных на физическом уровне. Если в момент очистки ячейки содержали фрагменты удаленных файлов или предыдущих файловых систем, то эти данные удаляются безвозвратно (перезаписываются).
При этом наибольший интерес представляют способы обнаружения контроллером флеш-накопителя свободных участков данных файловых систем:
* обнаружение с помощью ATA-команды Trim [3]: операционная система, поддерживающая эту ATA-команду, автоматически при удалении файлов или форматировании передает контроллеру сведения о неиспользуемых участках данных, которые можно использовать для выравнивания изнашивания;
* обнаружение путем обработки структур файловых систем контроллером флеш-накопителя: контроллер без участия операционной системы производит чтение хранимых данных, обрабатывает структуры наиболее распространенных файловых систем (например: FAT) и определяет незанятые участки данных, которые можно очистить и использовать для выравнивания изнашивания.
Следует отметить, что данный способ выравнивания изнашивания не используется в современных накопителях USB Flash, а используется только в твердотельных накопителях.
И чем это грозит компьютерной криминалистике?
Из вышеописанных принципов выравнивания изнашивания флеш-памяти можно сделать два вывода:
* содержимое флеш-памяти может изменяться на логическом уровне даже при подключении носителей информации с использованием блокираторов записи или при монтировании файловых систем в режиме «только чтение»;
* твердотельные накопители, самостоятельно идентифицирующие и использующие свободное (незанятое) пространство файловых систем, приводят к быстрому уничтожению удаленных данных.
И сформировать следующие общие принципы криминалистической работы с флеш-памятью:
* нельзя использовать хеш-функции для подтверждения неизменности (целостности) содержимого флеш-накопителей;
* применение программных и аппаратных блокираторов записи не обеспечивает неизменность (целостность) исследуемых данных при работе с флеш-накопителями;
* восстановление удаленных данных с твердотельных накопителей может быть затруднено;
* единственный способ, гарантирующий неизменность содержимого флеш-памяти при исследовании, – выпаивание модулей памяти и их чтение с последующей программной реконструкцией данных специальными программно-аппаратными комплексами восстановления данных.