Есть интересное направление в информационной безопасности, которое мы часто обходим стороной. Я говорю о forensics. В #100 номере ][ у нас была замечательная статья «Попался: твой компьютер у них в руках», где мы рассказывали об инструментах, которые используются специалистами для исследования компьютеров, проходящих в рамках какого-то следствия. Основной интерес forensic – отыскать различного рода доказательства, скрытые и удаленные файлы, логи действий на компьютере, history браузера и все-все, что может косвенно быть полезным или подтвердить какие-то факты. Тема это довольно обширная, интересна, и многое здесь совсем не так очевидно, как может показаться на первый взгляд. Хочу тебе поведать историю, рассказанную мне одним знакомым специалистом по ИБ, которого наняли для проведения небольшого информационного аудита.

Все началось с того, что из компании каким-то образом утекли некоторые данные, которым «снаружи» светиться было крайне нежелательно. Файлы осознанно хранились только на одном компьютере, который не был подключен в сеть. Авторизация была реализована с помощью USB-ключей и какой-то самопальной программы по схеме «вставляешь флешку со специальным ключом в USB-порт, программа считывает его, и разлочивает систему». Печально в этой истории то, что такие ключи были у всех сотрудников, при этом никакого журнала авторизаций не велось. А задача, между тем, была поставлена непростая – выяснить, кто имел доступ к компьютеру. По правде говоря, я бы сходу едва ли смог что-то придумать. У человека же, который профессионально занимается forensic, сразу появился план решения проблемы. И в этом ему помогла сама Windows.

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

Давай разберемся, что происходит, когда к компьютеру подключается внешний накопитель. Сначала менеджер PnP распознает девайс и устанавливает его, используя чаще всего обычный USB-драйвер USB Driver USBSTOR.SYS. Далее в работу вступает менеджер монтирования (MountMgr.sys), который запрашивает у девайса его уникальные идентификационные данные – это серийный номер, информация о продукте и производителя. Как только они получены, он создает в реестре несколько ключей, которые позволяют системе дальше работать с флешкой. В результате для каждого подключенного носителя в реестре есть отдельная ветка с информацией о нем. Весь это клад данных хранится здесь: HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR. Список накопителей, которые когда-либо подключались к компьютеру, уже был бы неплохим результатом. Но, согласись, гораздо лучше знать еще и когда флешки были подключены в систему. В упомянутой ветке реестра фиксируется время, когда флешка была подключена впервые, но нет данных о том, когда ее подключали в последний раз, а эти данные очень пригодились бы. Но и здесь выручает реестр.

В ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b} есть множество ключей определенного формата. Если отыскать здесь ключ, относящийся к конкретной флешке (а это делается по специальному идентификатору), и если у него есть подключ Control, то из него как раз и можно извлечь время последнего подключения. На английском языке есть замечательная книжка «Windows Forensic Analysis» (Harlan Carvey), в котором подробно изучаются подобные методы извлечения данных. В нашей же ситуации энтузиасты сильно упростили задачу, написав утилиту usbHistory (sourceforge.net/projects/usbhistory). Она сама извлекает данные, парсит все необходимые ключи в реестре, разбирает их значения и выводит информацию в удобочитаемом виде:

USB History Dump
by nabiy (c)2008

(1) --- USB Device

instanceID: 1001178901b3f6&0
ParentIdPrefix:
Driver:{4d36e967-e325-11ce-bfc1-08002be10318}\0032
Disk Stamp: 03/28/2010 18:10
Volume Stamp: 11/03/2009 17:26

(2) --- USB Flash Drive USB Device
[..]

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

Аватар

Степа Ильин

Главный редактор «Хакера» с 2012 по начало 2014 года. Сейчас с командой единомышленников строит компанию Wallarm, разрабатывающую решения для защиты веб-приложений от хакерских атак и обнаружения в них уязвимостей.

Теги:

Check Also

Разгоняем микроконтроллер. Как я выжал 620 МГц из совместимой с Arduino платы

Производительности всегда не хватает. Иногда проблему можно решить, просто обновившись до …

Оставить мнение