Подводка ведущего

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

Доклад и вопросы

Добрый день, уважаемые коллеги. Хочу поблагодарить организаторов за возможность выступить на данной конференции. Меня зовут Шавловский Андрей, я являюсь специалистом цифровой криминалистики, занимаюсь уже на протяжении 8 лет компьютерной экспертизой, цифровой криминалистикой. И в докладе хотел бы осветить некоторые вопросы, посвященные методу динамического исследования анализа памяти в персональных компьютерах на базе Apple macOS. Тема достаточно актуальная. На самом деле я затронул некоторые вопросы, которые посвящены этому. Здесь можно, на самом деле, говорить достаточно долго про это. Но в целом мы поговорим, ну в принципе цифровой криминалистике известны и общеизвестны подходы, которые не требуется их дополнительная интерпретация, чтобы подробно о них говорить.

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

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

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

Что же с macOS? В целом известно про macOS, что это проприетарная операционная система, имеет свою проприетарную файловую систему.

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

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

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

Данные, настройки приложений, конфигурационные файлы, конфигурационные данные, учетные записи, журналы активности в macOS хранятся в plist-ах. То есть это не секрет. Но plist файлы, они имеют разные форматы.

Основные форматы это XML, текстовый формат с тегами и отступами. Он, соответственно, используется для редактирования отладки. И более популярный формат это бинарный. Это, собственно, машиноориентированный формат. Он не читаем без специальной конвертации.

Также еще есть JSON формат, но он используется реже. Соответственно, если открыть в текстовых редакторах бинарный plist файл и текстовый, и XML формат, то понятно, что из бинарного формата в XML нужно выполнить конвертацию. Почему же не все plist файлы имеют XML формат? Ну, основные две причины. Это, конечно же, то, что бинарный формат данных, он более компактный, имеет меньший размер, чем XML, не требуются отступы, теги, как бы XML. Ну и скорость обработки бинарных plist-ов намного выше, чем XML, поэтому по умолчанию используются файлы plist именно в бинарном формате.

Соответственно, если перейти к вопросу получения пароля пользователя, то есть где хранится его хэш, то в целом данные учетной записи пользователя хранятся в одном из системных каталогов, а именно в директории dslocal.

[музыка]

Соответственно, когда регистрируется учетная запись пользователя, к каждому зарегистрированному пользователю формируется отдельный файл, имя которого совпадает с именем пользователя. Этот файл находится в бинарном формате, и, соответственно, чтобы его просмотреть, нужно преобразовать его в XML-формат. Соответственно, нас интересует раздел данных ShadowHashData.

После обеспечения доступа к файлу можно и выполнение конвертации из бинарного формата в XML, можно уже собственно работать с теми данными, которые мы видим. Для того, чтобы конвертировать из бинарного в XML формат, можно использовать различные команды. Например, команда plutil, которая встроена утилита в macOS, в терминале bash, который можно использовать. Можно использовать специальное программное обеспечение, текстовые редакторы с плагинами.

После того, как выполнена конвертация, ShadowHashData хранит данные, то есть они закодированы в кодировке Base64. Необходимо также их преобразовать.

Также, в принципе, это доступные методы. Есть множество онлайн-декодеров, есть программные инструменты, которые выполняют декодирование. Это можно также сделать и в терминале. И результатом декодирования мы получаем информацию о хэше-пароле. Соответственно, мы видим, что он закодирован при помощи функции хэширования PBKDF2-SHA512. Это криптографический алгоритм, который использует функцию PBKDF2 в паре совместно с функцией SHA-512. Соответственно, криптостойкий алгоритм. И данные поделены на несколько, грубо говоря, значений. Первый – это энтропия. Это, собственно, итоговый результат работы хэш-функции. Хранится в 16-ричной форме.

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

В чем особенность по сравнению, например, с Windows? В Windows используется NT-хэш, который хранится в файлах реестра. Соответственно, он используется без соли и без итерации.

И помимо этого, NT-хэш вычисляется по функции хэширования MD4, достаточно устаревшая хэш-функция, ее криптостойкость очень низкая, соответственно, скорость перебора паролей для NT-хэшей очень высокая по сравнению с маками. Соль, она предотвращает, например, использование радужных таблиц. То есть, например, если, у двух одинаковых пользователей, у двух разных пользователей будет одинаковый пароль в macOS, то хэши этих паролей будут разные, потому что соль везде будет уникальна, в отличие от Windows. То есть, например, любые утечки, которые используются для подбора паролей, радужные таблицы, Их очень часто используют для подбора паролей к учетным записям Microsoft Windows.

Соответственно, пароли, хэши, которые хранятся в macOS, они более криптостойкие. И скорость подбора выполняется дольше.

Также специально в 16-ричном виде. И результат итоговый, конечно, это энтропия. То есть после выполнения необходимого количества операций должна получиться вот эта энтропия. Если она совпадает, то пароль подходит.

Была рассмотрена пошаговая методика извлечения, преобразования хэша пароля и подготовки его для дальнейшего перебора. Какие же можно использовать средства для того, чтобы автоматизировать этот процесс? Можно использовать специальные скрипты, на вход которым подается соответствующий plist файл с данными ShadowHashData, то есть именно вот этой учетной записи пользователя. либо и соответственно уже в результатом получать формат представление формате который можно потом перебирать в hashcat в принципе формат мы также можно использовать программные инструменты в Мобильном Криминалисте Эксперте не обнаружил, что он может преобразовать данные хэша пароля для пользователя в macOS, но, возможно, уже это поправили.

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

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

В инструкциях, посвященных hashcat, все эти сведения имеются, они в открытом доступе. И в целом выполняется подбор либо по маске, либо словарю.

И можно получить результат, если, конечно, получится осуществить доступ. Не все любят работать в консольных программах. Можно использовать и графические интерфейсы. Есть программы, которые построены на hashcat с графическими интерфейсами. Одна из них – МК Брутфорс. Отличная программа, развивается, много чего добавляется. К сожалению, на данный момент не поддерживает 7100 режим подбора пароля. И испытать ее для подбора пароля хэша пользователя в macOS не представилось возможным. Но будем надеяться, что впоследствии будут обновления и такая возможность появится. Для этого использовались другие инструменты, которые также построены на hashcat и могут осуществлять подбор пароля пользователя.

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

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

Если же, конечно, выполнить создание виртуальной среды, виртуальной копии объекта не представилось возможным, то, по крайней мере, закон разрешает выполнить исследование объекта с внесением в него изменений. Но при этом понятно, что если речь идет о судебной экспертизе, то должно быть получено предварительное разрешение инициатора экспертизы на внесение таких изменений. Потому что есть статья 57, которая говорит нам о том, что эксперт не вправе использовать методы исследования, которые могут повлечь в полное или частичное разрушение объекта, либо изменение его основных свойств и внешнего вида.

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

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

Ну и методы статического динамического анализа, они в целом взаимодополняют друг друга, они обеспечивают комбинированный подход к исследованию цифровых следов, позволяют в совокупности, они позволяют извлечь максимальный объем цифровых данных, который может содержаться в Apple macOS компьютерах. И максимально позволить обеспечить полноту и всесторонность проводимого исследования за счет извлечения максимального количества криминалистически значимой информации.

Спасибо.

Андрей, спасибо за доклад. От коллеги вопросы.

— Юрий Михайлович, пожалуйста. А что, диск шифрованный не был? Как вы вытащили файл-то?

В данном случае был Fusion Drive. Получилось его собрать и данные вытащены, были извлечены. Понятно, что если речь идет о зашифрованных дисках, то если вы его расшифруете, то и пароль пользователя получите. Тут все логично. Но если в данном случае шифрования нет, можно попытаться различными способами обеспечить доступ.

— Следующий вопрос. Добрый день, спасибо за доклад. У меня такой вопрос. Вот в Linux, допустим, мы не можем получить доступ под пользовательской УЗ к файлу shadow с паролями, а в macOS получается можем? То есть если у нас живая система, допустим, введен пароль, мы же не сможем считать файл plist?

— Да, спасибо за вопрос. Есть определенные сложности, особенно если устройство современное, соответственно, есть аппаратное шифрование, используется Secure Enclave. И здесь, конечно, даже имея доступ, ну то есть без рута вы не сможете зайти, к сожалению. Есть определенные сложности. Поэтому в основном, конечно, если вы имеете доступ к файловой структуре полностью, можно вытащить этот файл, plist, и уже работать с ним. Основная суть именно вытащить этот plist-файл. Если, конечно, вы не можете его вытащить, то, к сожалению, здесь есть определенные ограничения. Ну, в принципе, не секрет, что с Apple устройствами много проблем.

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

— Так, коллеги, еще вопросы? Вопросов больше нет. Андрей, да, мы тебя отпускаем. Большое спасибо. Давайте поддержим еще раз аплодисментами.