Наивные преступники: как обыватели прячут цифровые улики

Апрель 12th, 2018 by Oleg Afonin
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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

Наивные преступники

Подавляющее большинство правонарушителей – вовсе не профессионалы в цифровой безопасности. Используемые ими методы сокрытия улик зачастую наивны – или выглядят таковыми. Тем не менее, некоторые из используемых способов могут сработать – исключительно потому, что компьютер подозреваемого в написании бранного слова на заборе вряд ли попадёт на анализ к экспертам по кибер-криминалистике. Помочь отыскать улики могут специализированные программы, автоматизирующие поиск и анализ улик, сокрытых с помощью «наивных» способов.

Какие же способы используют среднестатистический Иван и среднестатистическая Марья, чтобы сокрыть улики? Набор уловок невелик, а сами уловки достаточно нехитры.

Перемещение данных в другую папку

Нет, сейчас мы обсуждаем не «сокрытие» коллекции картинок сомнительного содержания в папке «Докладные записки 2017». Мы обсуждаем наивный, но достаточно действенный способ сокрытия улик путём простого перемещения определённых данных в другое место на диске.

Что это, очевидная глупость или запредельное простодушие? Каким бы наивным ни казался этот способ, он вполне может сработать для редких и экзотических данных — таких, как jump lists или база данных WhatsApp. У эксперта может просто не найтись времени или достаточной целеустремлённости, чтобы обыскивать весь компьютер в поисках базы данных в неизвестном формате. Программ для мгновенного обмена сообщениями существует сотни, если не тысячи; догадаться, какой из них пользовался преступник, может быть непросто. У каждого приложения собственные пути к файлам, имена и форматы баз данных. Отыскать их вручную на компьютере с десятками тысяч папок и сотнями тысяч файлов – занятие бесперспективное.

В то же время стандартные файлы довольно легко отсеиваются с использованием hashsets, которые можно скачать, например, отсюда:

https://www.nist.gov/itl/ssd/software-quality-group/nsrl-download

Их использование заметно повышает эффективность работы путём отсеивания стандартных (и, соответственно, ненужных) файлов.

Очевидно, что такой способ сокрытия улик сработает исключительно в случаях расследования преступлений, не связанных с информационной безопасностью. У следователя может не возникнуть вопросов по поводу содержимого жёсткого диска подозреваемого, и его анализ превратится в формальность. В таких и только таких случаях метод – назовём его «методом Неуловимого Джо» – может сработать.

Использование «безопасных» методов коммуникации

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

В документе подробно описываются возможности, которыми может воспользоваться следствие для того, чтобы всё-таки получить доступ к чатам. Здесь и исследование областей freelist баз данных в формате SQLite, и официальные запросы к производителям мессенжеров (например, Microsoft без лишних вопросов отдаст следствию переписку пользователей Skype – ведь хранятся они на серверах компании), и даже запросы к производителям смартфонов.

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

Однако, когда полиция взялась за исследование его компьютера (у преступника был Mac), их радости не было предела: на компьютере нашлись сотни тысяч сообщений, о самом существовании которых преступник (теперь уже – точно преступник) вовсе не подозревал. Осудить наркоторговца помогла новинка (на тот момент) от Apple – система Continuity, которая и синхронизировала сообщения iMessage между iPhone и Mac пользователя, находившимися в одной сети. Особенности работы Continuity таковы, что сообщения iMessage с iPhone передавались и сохранялись на компьютере, но при удалении их с iPhone оставались на компьютере. Эту проблему Apple собирается исправить в одной из будущих версий iOS 11, в которой должна появиться полноценная синхронизация iMessage с облаком iCloud.

Мораль? Морали здесь нет: не будучи специалистом в IT, знать о подобных технических моментах невозможно.

Переименование файлов

Ещё одна наивная попытка спрятать улики – переименование файлов. Как бы просто это ни звучало, переименование, к примеру, зашифрованной базы данных какого-нибудь защищённого мессенжера во что-то вроде c:\Windows\System32\oobe\en-US\audit.mui вполне в состоянии пройти мимо внимательного взгляда эксперта. Действительно, в каталогах Windows хранятся тысячи файлов; найти среди них что-то необычное (особенно если оно не выделяется размерами) – задача, ручным трудом нерешаемая.

Каким образом ищут такие файлы? Существует целый класс специализированных программ, предназначенных именно для поиска подобных файлов на дисках (и образах дисков) подозреваемых. Используется отнюдь не только поиск по имени файла; применяется комплексный подход, когда анализируются следы (например, в реестре Windows) установленных приложений, после чего отслеживаются пути к файлам, к которым получали доступ эти приложения.

Другой популярный способ поиска переименованных файлов – так называемый «карвинг», или сквозной поиск по содержимому. В точности такой же подход, иначе известный как «поиск по сигнатурам», использовался с начала времён во всех антивирусных программах. При помощи сигнатурного поиска можно проанализировать содержимое как файлов на диске, так и содержимого самого диска (или только занятых областей) на низком уровне.

Стоит ли переименовывать файлы? Это – очередная уловка «неуловимого Джо», способная защитить лишь от очень ленивого следователя.

Удаление файлов

Не уверен, насколько «наивным» на сегодняшний день является сокрытие улик посредством удаления файлов. Дело в том, что удалённые файлы с обычных жёстких дисков, как правило, довольно легко восстанавливаются при помощи уже хорошо знакомого сигнатурного поиска: на низком уровне сканируется поверхность диска (сейчас нас интересуют фрагменты, не занятые существующими файлами и прочими структурами файловой системы). Каждый прочитанный блок данных анализируется на соответствие ряду критериев (является ли он заголовком файла определённого формата; является ли он частью текстового файла, и так далее). При помощи такого сканирования, выполняемого, к слову, в полностью автоматическом режиме, вероятность успешного (хотя бы частичного) восстановления удалённых файлов достаточно велика.

Казалось бы, удаление файлов – классическая «наивная» попытка спрятать улики. Но только не в случаях, когда файлы удаляются с SSD.

Здесь нужно рассказать чуть подробнее о том, как работает удаление (и последующее чтение) данных на SSD. Многие слышали о существовании «сборщика мусора» и функции TRIM, позволяющих современным SSD поддерживать высокую производительность при записи (и особенно – перезаписи) данных. Команда TRIM подаётся операционной системой; она сообщает контроллеру SSD, что определённые блоки данных с определёнными физическими (на самом деле нет) адресами освобождены и более не используются.

Задача контроллера – очистить (произвести стирание данных) указанные блоки, подготовив их таким образом для того, чтобы в них можно было быстро записать новую информацию.

Но стирание данных – процесс очень медленный, и происходит он в фоновом режиме, когда нагрузка на диск падает. А если сразу после команды TRIM поступает команда записи в тот самый «физический» блок? В этом случае контроллер мгновенно подменяет такой блок на пустой, просто модифицировав значение в таблице переадресации. А тот блок, который предназначен для стирания, получает другой «физический» адрес или вовсе помещается в неадресуемый пул из резервной области.

Вопрос на засыпку: а если контроллер не успел физически стереть данные из TRIM-нутых блоков, сможет ли сигнатурный поиск найти что-либо в свободных областях SSD?

Правильный ответ: в большинстве случаев при попытке считать данные из блока, на который поступила команда TRIM, контроллер выдаст либо нули, либо другую последовательность данных, ничего общего не имеющую с реальным содержимым блока. Связано это с особенностями реализации протоколов в современных SSD, в которых чётко определяется поведение контроллера при попытке считать блок после команды TRIM. Значений здесь всего три: Undefined (контроллер вернёт реальное содержимое блока; в современных SSD практически не встречается), DRAT (Determined Read After Trim, или фиксированные данные после Trim; в потребительских моделях встречается чаще всего) и DZAT (Determined Zeroes After Trim, или всегда возвращать нули после команды Trim; часто встречается в моделях, предназначенных для работы в составе RAID, NAS и в серверных сценариях).

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

Хранение данных в облаке

Данные – в облаке? Казалось бы, настолько глупых преступников уже не осталось, но это не так. Пользователи с завидным постоянством забывают отключить то iCloud Photo Library, то синхронизацию OneDrive или Google Drive, а то и более экзотические виды синхронизации – например, настройку (которой, кстати, в iOS вовсе нет; может, поэтому забывают?), благодаря которой информация о звонках с iPhone (как по телефону, так и через FaceTime) сразу попадает на серверы Apple. Примеры с «забытым» режимом Continuity я уже приводил.

Пожалуй, здесь нечего добавить, кроме того, что данные из «облака» компании выдают полиции без особого сопротивления.

Использование внешних накопителей

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

Почему «наивные»? Дело в том, что большинство простых пользователей не имеет представления о «хвостах», которые остаются после практически любых манипуляций с USB устройствами. Так, однажды расследовался случай с распространением детской порнографии. Преступники использовали исключительно внешние накопители (обычные флешки); на дисках не хранилось ничего.

Преступники не учли сразу два момента. Первый: информация о подключении USB устройств сохраняется в реестре Windows; если её не удалять, то хранится она там очень и очень долго. И второй момент: если для доступа к изображениям пользоваться встроенным в Windows проводником, то автоматически создаются (и сохраняются!) уменьшенные превью фотографий (thumbnails), обычно по адресу %LocalAppData%\Microsoft\Windows\Explorer\. Проанализировав уменьшенные изображения и сопоставив идентификаторы USB-устройств с конфискованными, следствию удалось доказать причастность обвиняемых к инкриминируемому преступлению.

А что же с шифрованием? И здесь не всё очевидно. Во-первых, существуют специализированные приложения, позволяющие создать дамп оперативной памяти компьютера и извлечь из него криптографические ключи, использующиеся для доступа к зашифрованным томам (в частности, к популярному среди наивных преступников BitLocker To Go). Пример такой программы – Elcomsoft Forensic Disk Decryptor, при помощи которой можно проанализировать дамп в полностью автоматическом режиме. В состав продукта входит и утилита для снятия образа оперативной памяти.

Во-вторых, ни для кого не секрет, что многие криптоконтейнеры автоматически депонируют ключи шифрования в «облако». И если Apple при активации FileVault 2 несколько раз уведомит пользователя о том, что восстановление доступа к разделу будет возможно через iCloud, то Microsoft при шифровании тома с использованием BitLocker Device Protection просто молча создаёт депонированный ключ в учётной записи пользователя Microsoft Account. Ключи эти доступны непосредственно со страницы https://account.microsoft.com/devices/recoverykey

Как получить доступ к учётной записи? Если в компьютере настроен логин при помощи Microsoft Account (а не локальной учётной записи Windows), то офлайновая атака прямым перебором может восстановить пароль, который будет совпадать с паролем от онлайновой учётной записи Microsoft Account.

Вместо заключения. Вложенные криптоконтейнеры с аппаратным ключом

Казалось бы, вложенный криптоконтейнер, защищённый при помощи комбинации аппаратного ключа и пароля – достаточно непробиваемая защита. Теоретически это действительно так. Практически… практически – есть тонкости юридического плана. И вот яркий пример.

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

Хранится она там или нет – неизвестно; соответствующего содержимого у обвиняемого найдено не было. Но обвинение очень серьёзное, а здесь можно и пожертвовать такими мелочами, как презумпция невиновности и право не свидетельствовать против самого себя. Так что обвиняемый сидит и будет сидеть до тех пор, пока не раскроет пароли или не умрёт от старости или иных причин.

Не так давно правозащитники подали апелляцию, в которой указывалось, что по закону по данной статье (отказ от сотрудничества со следствием) максимальный срок заключения – 18 месяцев. Апелляция была отклонена судом несмотря на то, что судья признал аргументы адвоката «интересными и разносторонними». Обвинение посерьёзнее – и американский судья закроет глаза на что угодно, включая писанные законы.

Выражаем благодарность Юрию Губанову, генеральному директору компании «Белкасофт», поделившемуся интересными подробностями о нескольких недавно раскрытых случаях.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Подписаться на рассылку о новостях и новинках компании ElcomSoft

Leave a Reply

Оставьте первый комментарий!

Notify of
avatar