Hardware forensics. Прячем данные в BIOS.

Hardware forensics. Прячем данные в BIOS.

Scully

Cегодня речь пойдет об аппаратной криминалистической экспертизе (hardware forensics) . Это - экспертиза аппаратного обеспечения и технических устройств. Данное направление наименее популярно и наиболее сложно, так как требует очень узкоспециальных знаний. В аппаратную экспертизу входит разбор данных на низком уровне (микроконтроллера, прошивки или BIOS), исследование специфических особенностей работы устройства, к примеру, диапазона частот работы Wi-Fi-передатчика или внутреннего устройства скиммера, устанавливаемого на банкоматы. 

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

Сегодня мы порассуждаем на тему BIOS, мне удалось найти несколько статей на эту тему, перевести и объединить их выводы. 

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

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

Уверена, что многие знают, что такое BIOS, но считаю нужным проговорить некоторые дополнительные данные.

BIOS обычно находится на материнcкой плате в чипе флэш-памяти для чтения/записи емкостью от 128 до 512 КБ. Настройки BIOS хранятся отдельно в CMOS-памяти (энергонезависимая память BIOS, расшифровывается, как комплементарный металл оксидный полупроводник, энергозависимая память, в распоряжении которой всего 256 байт), для поддержания целостности которой требуется небольшая батарея. 

Микросхемы BIOS могут содержать от 25 КБ до 100 или более неиспользуемого пространства, которое можно использовать для хранения данных без ущерба для производительности компьютера. Этот именно тот дьявол, скрывающийся в деталях. Такое неиспользуемое пространство для хранения было использовано вирусом Win95jCIH , который уничтожал в свое время жесткие диски. 

Кто не знает, это вирус CIH, или Чернобыль. При запуске заражённого файла вирус инсталлирует свой код в память Windows, перехватывая запуск EXE-файлов и записывая в них свою копию. В зависимости от текущей даты вирус способен повреждать данные на Flash BIOS и жёстких дисках компьютера. Кстати, Чернобыль работает только под Windows 95/98/ME, так как дело было в 1998-99 годах и вирус имеет довольно небольшой размер — около 1 кБ.

Мы будем рассматривать методы на примере BIOS Award. Данные BIOS могут частично просматриваться с помощью командной строки Windows XP. Это возможно, потому что большая часть данных находящиеся в D3VA1323.BIN копируются в оперативную память во время процесса загрузки. Таким образом, скрытые данные видны в памяти или в дампе, созданным через отладку.

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

А вот организацию хранения данных рассмотрим чуть более подробно. Организация хранения данных в BIOS Award показана на рисунке 1.

Рисунок 1


 BIOS имеет девять модулей (D3VA1323.BIN, awardext .rom, CPUCODE.BIN, ACPITBL.BIN, AwardBmp.bmp, awardeyt.rom, -EN_CODE.BIN , AWDFLASH.EXE и 370110.ROM), которые хранятся в начале флэш-памяти. За модулями следует исполняемый код BIOS и данные, сменяющиеся свободным пространством. Кроме того, в BIOS есть десять последовательных разделов свободного пространства (free space на рисунке 1). Некоторые из этих разделов содержат несколько последовательных блоков свободного пространства; каждый блок содержит только шестнадцатеричные строки ODS и FFS.

Целостность всех модулей, а также первого и второго блоков свободного пространства защищена первой 8-битной контрольной суммой. Целостность третьего блока свободного пространства защищена второй контрольной суммой. Но все свободное пространство после третьего блока остается незащищенным.

Данные контрольной суммы сохраняются после третьего блока свободного места по адресам памяти Ox37FFE - Ox37FFF. Все данные, хранящиеся после адреса Ox37FFF никак не защищены. Несоответствие контрольной суммы рассматривается BIOS как фатальная ошибка, которая останавливает процесс загрузки (возможно, вы встречались с ошибкой контрольной суммы CMOS).

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

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

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

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

  1. Методы восстановления поврежденного BIOS (может быть необходимо при сокрытии данных, которое повредило BIOS)

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

Устройство BIOS Saver можно использовать для восстановления после сокрытия данных при попытке, что приводит к повреждению BIOS. Это устройство содержит резервный чип BIOS и аппаратный переключатель, который позволяет пользователю выбирать, будет ли компьютер использовать чип BIOS Savior или оригинальный чип BIOS для процесса загрузки. BIOS Saver подключается к разъему микросхемы BIOS, а оригинальный чип BIOS подключается к BIOS Saver. Поэтому, если BIOS на исходном чипе поврежден, пользователь может загрузить устройство с помощью BIOS Saver, переключиться обратно на исходный чип после того, как компьютер заработает, а затем прошить исходный чип.

Перед редактированием BIOS необходимо предварительно создать резервную копию BIOS в BIOS Saver. Эта резервная копия позволяет компьютеру успешно загружаться независимо от изменений, внесенных в его BIOS.

Процесс загрузки включает в себя три основных этапа: POST, аппаратную инициализацию и доступ к главной загрузочной записи.

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

2. Сокрытие данных в BIOS

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

Для сокрытия данных на чипе BIOS требуется отдельная рабочая станция для редактирования и хранения файлов образов BIOS, а также для подготовки загрузочного диска. Может использоваться Caldera Dr-DOS для создания загрузочного диска и облегчения перепрошивки BIOS, поскольку он не содержит никаких программ TSR (Terminate And Stay Resident).

Устройство BIOS Saver используется для восстановления после ошибок перепрошивки BIOS. Шестнадцатеричный редактор используется для изменения образов и модулей BIOS.

Программное обеспечение AwardMod может использоваться для загрузки и хранения двоичных файлов BIOS и каталогов, содержащих извлеченные модули BIOS. Кроме того, Uniflash, универсальная утилита перепрошивки BIOS, может использоваться для чтения / записи BIOS вместо стандартной программы Award BIOS (AWDFLASH.EXE ).

2.1 Сокрытие данных в свободном пространстве BIOS

Award BIOS имеет 38 020 байт свободного места (расположены после блока сжатых модулей), которые могут быть использованы для хранения данных. В действительности существует 44 163 байта свободного места, но 6 143 байта не могут быть использованы, поскольку данные, хранящиеся в определенных местах, не сохраняются.

В Award BIOS имеется 12 блоков свободного места; конкретное расположение блоков показано в таблице 1. Обратите внимание, что первый и последний нулевые байты (00 или FF) каждого блока свободного пространства считаются принадлежащими коду, предшествующему/следующему за свободным пространством, и поэтому не учитываются.

Таблица 1


Блоки свободного пространства - это нулевые блоки, содержащие длинные строки DOs или FFs. Эти блоки свободного пространства могут быть перезаписаны без повреждения BIOS. Однако важно обеспечить, чтобы данные, записанные в блоки 1, 2 и 3 не изменяли контрольные суммы. Это достигается путем резервирования по одному байту в блоке 2 и блоке 3 для балансировки контрольных сумм. Во-первых, 8-битная контрольная сумма BIOSback.bin вычисляется до внесения каких-либо изменений (значение контрольной суммы для Award BIOS равно EA).

Затем один байт в блоке 2 резервируется путем изменения его на 00. Затем данные записываются в блоки 1 и 2, и контрольная сумма вычисляется повторно. Наконец, в зарезервированный байт в блоке 2 изменяется на значение, которое делает контрольную сумму равной EA. Блок 3 перезаписывается данными, и соответствующая контрольная сумма 2 рассчитывается аналогичным образом (расчет происходит по формуле [(Original Value) - (Current Value) + 0x100] mod 0x100).

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

Процедура перезаписи Свободного места в BIOS:

1. Приобретите загрузочный диск, совместимый с MS-DOS (Caldera Dr-DOS), одобренный для прошивки BIOS.

2. Скопируйте программу Uniflash (UNIFLASH .EXE) и все ее необходимые компоненты на загрузочный диск.

3. Загрузите Award BIOS с помощью загрузочного диска. После загрузки Caldera Dr-DOS вызовите UNIFLASH.EXE . Создайте резервную копию исходного BIOS на загрузочный диск как BIOSback.bin. Скопируйте BIOSback. папку на жесткий диск рабочей станции.

4. Используйте шестнадцатеричный редактор для записи данных на свободное место в BIOSback. bin , убедившись, что контрольные суммы 1 и 2 сохранены с использованием балансировочных значений . Сохраните изменения в новом файле с именем BIOSeditOed.bin.

5. Завершите процесс сокрытия данных, скопировав BIOSediated.bin

в загрузочный диск. Загрузите Award BIOS с помощью загрузочного диска и прошейте микросхему BIOS, вызвав UNIFLASH . exe.

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

2.2 Скрытие данных в модулях BIOS

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

Процедура перезаписи модуля BIOS.

1. Приобретите загрузочный диск, совместимый с MS-DOS (Caldera Dr-DOS), одобренный для прошивки BIOS.

2. Скопируйте программу Uniflash (UNIFLASH.EXE ) и все его необходимые компоненты на загрузочный диск.

3. Загрузите Award BIOS с помощью загрузочного диска. После загрузки Caldera Dr-DOS вызовите UNIFLASH.exe. Создайте резервную копию исходного BIOS на загрузочный диск в качестве BIOSback.bin Скопируйте BIOSback. папку на жесткий диск рабочей станции.

4. Используйте AwardMod для извлечения модулей в BIOSback.bin поместите их в корзину и сохраните в каталоге с именем BIOSBackup.

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

6. После перезаписи одного или нескольких модулей используйте AwardMod для загрузки всех файлов в каталоге BIOSBackup и сохранения их в новом образе BIOS с именем BIOSedited.bin.

7. Сохраните контрольную сумму 1 в Biosediated.bin, используя балансировочное значение в блоке 1 или 2.

8. Завершите процесс сокрытия данных, скопировав biosediated. bin на загрузочный диск. Загрузите Award BIOS с помощью загрузочного диска и прошейте BIOS, вызвав UNIFLASH.exe.

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

2.3 Скрытие данных в свободном пространстве модуля BIOS

В этом разделе описывается, как данные могут храниться в модуле BIOS D3VA1323.BIN таким образом, чтобы сделать его доступным из Windows с помощью команды debug.

Модуль D3VA1323 . BIN, который содержит аппаратные настройки и процедуры, имеет 5 057 байт свободного места, доступ к которому можно получить из Windows, используя команду debug. Дамп отладочной памяти, находящийся, в OxFOOOO - OxFFFFF содержит некоторые данные из D3VA1323.BIN. При отладке используется обозначение памяти segment:offset, поэтому соответствующее обозначение абсолютного адреса памяти вычисляется как 16*segment + offset. Например, адрес segment:offset FOOO: 027E в ОЗУ эквивалентен абсолютному адресу OxF027E в ОЗУ. Ниже приведены сопоставления адресов памяти в отладочной нотации с абсолютными адресами в модуле D3VA1323.BIN (при просмотре в виде файла).

F000:027E - F000:13FF <=> 0x1027E - 0x113FF

F000 :1514 - F000:1BFF <=> 0x11514 - 0x11BFF

F000 :1C9F - F000:FFFF <=> 0x11C9F - 0x1FFFF

Процедура перезаписи свободного места в модуле BIOS:

1. Запустите сервер telnet на Award BIOS. Используйте клиент telnet для подключения к серверу telnet (это необходимо для захвата вывода на экран). Выполните команду debug. В командной строке отладки введите : d F000: 0000 FFFF и нажмите enter. Сохраните выходные данные в новом текстовом документе: originalBIOS.txt.

2. Приобретите загрузочный диск, совместимый с MS-DOS (Caldera Dr-DOS), одобренный для прошивки BIOS.

3. Скопируйте программу Uniflash (UNIFLASH .EXE) и все ее необходимые компоненты на загрузочный диск.

4. Загрузите Award BIOS с помощью загрузочного диска. После загрузки Caldera Dr-DOS вызовите UNIFLASH.EXE . Создайте резервную копию исходного BIOS на загрузочный диск с названием BIOSback.bin. Скопируйте BIOSback.bin папку на жесткий диск рабочей станции.

5. Используйте AwardMod для извлечения модулей из BIOSback.bin  и сохранения их в каталоге с именем BIOSBackup.

6. Используйте шестнадцатеричный редактор для просмотра модуля D3VA1323 .BI N. Сравните D3VA1323.BIN с помощью originalBIOS. текстовый текст . Обратите внимание, что три шестнадцатеричных сегмента каждого из двух файлов идентичны, поскольку они сопоставляются друг с другом. Таким образом, данные, скрытые в этих местах в D3VA1323 .BIN можно просмотреть с помощью команды debug.

7. Третий сегмент D3VA1323 .BIN (например, 0xl1C9F - 0X1FFFF), который можно просмотреть с помощью команды debug, содержит два блока 00s (0x16FFB - 0x17FFE, 0x1DC42 - 0X1DFFE), которые могут быть перезаписаны без повреждения BIOS . Перезапишите эти блоки данными, которые должны быть скрыты.

8. После редактирования модуля используйте AwardMod для загрузки всех файлов в каталог BIOSBackup и сохранения их в новом образе BIOS под названием BIOSedited.bin

9. Сохраните контрольную сумму 1 в BIOSedited.bin, используя балансировочное значение в блоке 1 или 2.

10. Завершите процесс сокрытия данных, скопировав biosediated. Загрузите компьютер Award BIOS с помощью загрузочного диска и прошейте микросхему BIOS, вызвав UNIFLASH. exe.

11. Перезагрузите компьютер, чтобы убедиться, что он работает правильно. Убедитесь, что данные скрыты в D3VA1323 .BIN можно просмотреть с помощью команды debug.

3. Судебная компьютерно-техническая экспертиза микросхем BIOS

Микросхема BIOS - это удобное место для сокрытия секретов, поскольку

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

Процедура восстановления данных BIOS:

1. Приобретите загрузочный диск, совместимый с MS-DOS (Caldera Dr-DOS), одобренный для прошивки BIOS.

2. Скопируйте программу Uniflash (UNIFLASH .EXE) и все ее необходимые компоненты на загрузочный диск.

3. Загрузите Award BIOS с помощью загрузочного диска. После загрузки Caldera Dr-DOS вызовите UNIFLASH.EXE . Создайте резервную копию захваченного BIOS на загрузочный диск под названием BIOSevidence.bin, это создаст образ изъятого BIOS для криминалистического анализа. Скопируйте BIOSevidence.bin на жесткий диск рабочей станции .

4. Используйте AwardMod для извлечения модулей в BIOSevidence.bin и сохраните их в каталоге с именем BIOSevidence.

5. Используйте криминалистические инструменты (например, Forest, EnCase, Forensic Tool Kit, iLook) для проверки BIOSevidence. bin и извлеченных модулей ,особенно D3VA1323.BIN , для текста, заголовков файлов и регулярных выражений, и сохраните все интересующие данные.

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

6. Если скрытые данные не могут быть найдены с помощью инструментов судебной экспертизы, используйте шестнадцатеричный редактор для сравнения модулей из изъятого BIOS с модулями из чистой копии образа BIOS (например, полученной от производителя материнской платы). Это помогает в поиске скрытых данных .

7. Используйте проверенные процедуры судебной компьютерно-технической экспертизы для копирования и сохранения всех интересующих вас данных.

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

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

На этапе анализа отображаемого носителя эксперт-криминалист проанализирует изображение BIOS, используя стандартные инструменты судебной экспертизы, как описано в разделе 5. Еще раз, эксперт должен знать, где могут быть скрыты данные, и должен провести тщательный поиск образа BIOS. 


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







Report Page