Логи не врут. Практическая форензика для параноиков

- -
- 100%
- +
В чем проблема:
Поздравляю, Робин Гуд. Ты только что заработал Статью 272 УК РФ (Неправомерный доступ к компьютерной информации). Возможно, группой лиц. Возможно, с использованием служебного положения.
Разбор полетов:
В тот момент, когда ты вышел за пределы своего (или доверенного тебе) компьютера и полез на чужой сервер (пусть даже сервер преступника) — ты сам стал хакером.
Закон не делает различий между «хорошим взломом ради справедливости» и «плохим взломом».
Несанкционированный доступ есть? Есть.
Ты не имеешь права «хакать в ответ» (Hack Back). Это прерогатива государственных спецслужб, и то с кучей оговорок.
Что делать параноику:
Твоя юрисдикция заканчивается на сетевой карте исследуемого компьютера.
Все, что улетело в сеть — это уже зона OSINT (разведки по открытым источникам).
— Посмотреть Whois домена хакера? Можно (это открытая инфа).
— Найти этот IP в базах угроз (VirusTotal)? Можно.
— Просканировать порты или пытаться подобрать пароль к админке хакера? КРАСНЫЙ ФЛАГ.
Если ты видишь, что следы ведут на внешний сервер, ты фиксируешь этот факт в отчете и пишешь: «Дальнейший анализ требует полномочий правоохранительных органов». И ставишь точку. Не геройствуй.
Красный флаг №3. ЦП (Запрещенный контент)
Ситуация:
Это самый страшный сон любого форензика.
Ты анализируешь диск на предмет, скажем, финансового мошенничества. Прогоняешь карвинг картинок (восстановление удаленных фото).
И вдруг среди восстановленного мусора ты видишь ЭТО. Материалы с участием несовершеннолетних (CSAM — Child Sexual Abuse Material). Или экстремистские материалы.
В чем проблема:
Хранение, распространение и оборот. Статья 242.1 УК РФ и смежные.
Проблема в том, что как только эти файлы появились на твоем мониторе и сохранились на твоем диске (в папке результатов Autopsy), ты технически стал обладателем этого контента.
Если ты просто удалишь это и сделаешь вид, что не видел — ты можешь попасть под «Укрывательство» или «Несообщение о преступлении» (в зависимости от тяжести).
Если ты сохранишь это «для отчета», чтобы показать заказчику — ты занимаешься распространением.
Разбор полетов:
Это минное поле. Любое неверное движение может сломать тебе жизнь.
Обычные гражданские договора о неразглашении (NDA) здесь не работают. Если ты нашел криминал федерального масштаба, никакой NDA не защитит тебя от обязанности сообщить, и никакой NDA не защитит тебя от обвинения в хранении, если у тебя дома найдут этот жесткий диск.
Что делать параноику:
— Как только увидел превью — СТОП. Не открывай файл на полный экран.
— Ничего не копируй себе. Не пересылай заказчику.
— Зафиксируй факт (время, место, имя файла, хэш-сумму, если успел посчитать).
— Если ты работаешь официально в компании — немедленно пиши докладную записку руководителю службы безопасности. Пусть у него голова болит.
— Если ты фрилансер — это ситуация цугцванга. По закону ты должен сообщить в органы. Технически, это значит сдать своего заказчика. Этически — это единственный верный выбор, потому что педофилия — это зло, с которым мы не договариваемся.
— Но главное для тебя — не храни это у себя. Диск с таким контентом должен покинуть твой дом/офис как можно быстрее (передан полиции или возвращен владельцу под протокол с отказом от работы).
Резюме раздела: Техника безопасности свободы
Форензика — это не игра. Мы копаемся в грязном белье, и иногда это белье токсично.
Запомни три правила выживания:
— Не копай глубже ордера. Если тебе разрешили искать Excel-файлы, не лезь в папку с порно. Лишние знания — лишние сроки.
— Не выходи из комнаты. Не взламывай внешние сервера, даже если они вражеские.
— Не становись хранилищем запрещенки. Увидел криминал — сбрасывай ответственность на тех, у кого есть погоны.
В этой книге я буду учить тебя искать. Но я не могу дать тебе мозги, чтобы вовремя остановиться. Этот навык тебе придется прокачать самому.
Паранойя — это не только поиск врагов. Паранойя — это, прежде всего, защита себя от глупых ошибок.
А теперь, когда мы разобрались с законами и моралью, и ты все еще не передумал…
Давай наконец запустим эту чертову Виртуальную Машину и начнем делать вещи.
Конец вводной части.
(Переходи к Главе 1. Лаборатория параноика)
МОДУЛЬ 1. АНАТОМИЯ WINDOWS: ОПЕРАЦИОНКА-СТУКАЧ
Глава 1. Реестр (Registry): ДНК системы
— Почему Реестр помнит программы, которые удалили год назад
Если файловая система (NTFS) — это скелет Windows, то Реестр — это её мозг, память и подсознание одновременно. И, как у любого сложного организма с кучей детских травм (привет, Windows 95), у этого подсознания есть одна паршивая черта: оно ничего не забывает.
Большинство пользователей живут в сладкой иллюзии, которую им продала Microsoft. Эта иллюзия называется «Установка и удаление программ».
Пользователь нажимает «Удалить», видит прогресс-бар, нажимает «Готово» и думает, что программа исчезла. Он думает, что очистил диск. Он думает, что стер следы.
Наивный.
С точки зрения операционной системы, процесс деинсталляции — это ленивая уборка подростка перед приходом родителей. Он запихал грязные носки под кровать (удалил. exe файл), смахнул пыль с видного места (убрал ярлык с Рабочего стола), но оставил горы мусора в шкафу.
Этот шкаф — Системный Реестр (Windows Registry).
В этом разделе мы разберем, почему Windows ведет себя как маньяк-коллекционер, где именно она хранит воспоминания о давно удаленном софте, и как мы, параноики-форензики, используем это против неё.
1. Философия цифрового мусора: Почему Windows так делает?
Прежде чем лезть в ветки HKEY_, нужно понять логику врага. Почему Microsoft не чистит реестр «под ноль»? Это не заговор рептилоидов (хотя…), это банальная инженерная лень и борьба за совместимость.
— Скорость важнее чистоты. Удаление ключей реестра требует времени. Если инсталлятор будет вычищать за собой каждую запись, процесс удаления займет 20 минут вместо 2. Пользователь будет ныть. Поэтому разработчики софта пишут деинсталляторы так: «Удали папку Program Files и пару главных ключей, остальное — черт с ним».
— User Experience (UX). Если ты удалил игру, а через месяц решил поставить её снова, Windows хочет, чтобы твои настройки сохранились. Ей удобно помнить, где было открыто окно в последний раз.
— DLL Hell и Shared Components. Многие программы используют общие библиотеки. Если деинсталлятор удалит запись о библиотеке, могут сломаться другие программы. Поэтому золотое правило Windows: «Не уверен — не удаляй».
В итоге, компьютер, которому больше года — это кладбище мертвых ключей. Для оптимизатора системы (типа CCleaner) это мусор. Для нас — это золотая жила.
2. Ульи (Hives): Где копать?
Реестр — это не один файл. Это набор файлов, которые называются «Ульи» (Hives). Они лежат на диске, и именно их мы вытаскиваем при анализе (даже если система не загружается).
Нас интересуют два главных направления:
— SYSTEM и SOFTWARE (лежат в C:\Windows\System32\config\). Это глобальная память компьютера. Тут записано то, что касается всех.
— NTUSER. DAT (лежит в C:\Users\%Username%\). Это святая святых. Личный файл каждого пользователя. Именно здесь хранится история конкретного человека: что он открывал, что запускал и какие настройки менял.
Когда ты работаешь с живой системой, ты видишь их как HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER. Но форензик чаще работает с файлами. Запомни эти пути. Если ты не смог вытащить NTUSER. DAT подозреваемого — ты зря потратил время.
3. Артефакты бессмертия: Топ-3 предателя
А теперь переходим к «мясу». Где именно искать следы программы, которую удалили полгода назад?
А. BAM/DAM (Background Activity Moderator) — Стукач нового поколения
Путь: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
bam\State\UserSettings\ {SID_Пользователя}
Появился в Windows 10 (версия 1709) и стал подарком для экспертов. Изначально эта служба нужна, чтобы экономить батарею и ресурсы. Она следит за фоновыми процессами.
Но побочный эффект великолепен: BAM записывает полный путь к исполняемому файлу и время последнего запуска.
Даже если пользователь скачал hack_tool. exe, запустил его один раз, а потом удалил и перезаписал свободное место 35 раз — запись в ветке BAM останется.
Ты увидишь:
— C:\Users\Admin\Downloads\hack_tool. exe
— Таймстемп: 2025-10-05 14:23:11 UTC
Это железобетонное доказательство. Файла нет. Но факт запуска зафиксирован службой ядра. Оспорить это в суде практически невозможно.
Б. MUICache — Память имен
Путь: HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Windows хочет быть дружелюбной. Когда ты запускаешь программу, система лезет внутрь. exe файла, ищет там красивое название (например, не vlc. exe, а «VLC Media Player») и кэширует его, чтобы красиво отображать в меню.
Этот кэш называется MUICache.
Фишка: Записи оттуда почти никогда не удаляются автоматически.
Если ты видишь в этом списке строчку:
C:\Temp\PortableApps\TorBrowser\firefox. exe — «Tor Browser»
Значит, Tor запускался. Даже если сейчас папки Temp уже не существует.
Это отличный способ ловить пользователей на использовании Portable-софта (который не требует установки). Они думают: «Раз я не устанавливал, значит, в „Установке и удалении“ этого нет, значит, я чист».
MUICache смеется им в лицо.
В. UserAssist — Шифр Цезаря в 21 веке
Путь: HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\UserAssist
Это мой любимый артефакт, просто потому что он показывает уровень «безопасности» от Microsoft.
UserAssist нужен, чтобы рисовать меню «Пуск» и показывать «Часто используемые программы».
Эта ветка хранит:
— Имя файла.
— Счетчик запусков (сколько раз запускали).
— Время последнего запуска.
Но есть нюанс. Microsoft решила «зашифровать» имена программ. Знаешь как? Алгоритмом ROT13.
Это когда буква A меняется на N, B на O и так далее (сдвиг на 13 символов). Это уровень шифрования «Записка на уроке в 5 классе».
Форензик-тулзы (или даже простые онлайн-декодеры) расшифровывают это мгновенно.
Находя в UserAssist запись о Veracrypt. exe, ты получаешь не просто факт наличия. Ты получаешь паттерн поведения.
— Запусков: 1. Значит, скачал, посмотрел, не понял, удалил. Возможно, любопытство.
— Запусков: 542. Значит, это рабочий инструмент. Человек жил в этой программе. Тут уже не скажешь «меня подставили».
4. ShimCache (AppCompatCache) — Король доказательств
Если бы мне разрешили взять на необитаемый остров только один артефакт реестра, я бы взял ShimCache.
Путь: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
Это часть механизма совместимости приложений (Application Compatibility Shim). Windows отслеживает проблемы совместимости файлов, чтобы старый софт работал на новой ОС.
Почему это бомба:
— Охват: Он хранит информацию о до 1024 последних исполняемых файлах.
— Живучесть: Данные хранятся в памяти и сбрасываются в реестр при выключении компьютера. Удалить запись оттуда вручную невероятно сложно (нужно чистить ветку реестра, что требует прав SYSTEM).
— Следы: Он фиксирует имя файла, путь, размер и время последней модификации файла (не запуска, а именно изменения самого файла).
— Главное: Он помнит файлы, которые даже не существовали на диске долгое время (например, запущенные с флешки).
Кейс из жизни:
Подозреваемый утверждает, что никогда не работал с программой для подделки печатей Stamp. exe.
Мы лезем в ShimCache. Находим там запись E:\Soft\Stamp. exe.
Диск E: — это флешка. Флешки сейчас в компьютере нет.
Но ShimCache помнит. Он говорит нам: «Эй, бро, файл Stamp. exe лежал на диске E:, и у него была дата изменения 01.01.2024».
Всё. Связь установлена. Мы доказали, что софт запускался с внешнего носителя.
5. Иллюзия «Чистильщиков» (CCleaner и аналоги)
«А если я запущу CCleaner?» — спрашивает каждый второй «мамкин хакер».
Да, чистильщики реестра удаляют «битые» ссылки. Они могут подчистить MUICache (иногда). Они могут грохнуть списки недавних документов.
Но они почти никогда не трогают глубокие системные ветки типа BAM или ShimCache, потому что это опасно для стабильности системы.
Более того, сам факт наличия и запуска CCleaner оставляет такие жирные следы в том же Prefetch и UserAssist, что для форензика это красный флаг.
Если я вижу, что в 18:00 был запущен cleaner. exe, а инцидент произошел в 17:50 — это называется «Противодействие следствию» и уничтожение улик. Юридически это часто хуже, чем то, что пытались скрыть.
Практический вывод для параноика
Реестр — это книга жизни твоей системы. Каждая установленная программа, каждый запущенный portable-софт, каждая вставленная флешка прописывается в его ДНК.
Удалить файл с диска — это как вырвать страницу из книги. Текст пропал, но нумерация страниц нарушена, корешок книги поврежден, а в оглавлении (Реестре) глава всё еще значится.
Чтобы реально вычистить программу из реестра, нужно понимать его структуру лучше, чем инженеры Microsoft, и править HEX-коды вручную. 99,9% преступников этого не умеют.
Они надеются на кнопку «Удалить».
А мы надеемся на их глупость. И, как показывает практика, логи (и реестр) не врут, а надежды нас не подводят.
— UserAssist и MUICache: Как доказать, что софт не просто лежал на диске, а запускался
В уголовном праве и корпоративных расследованиях есть гигантская пропасть между двумя понятиями: «Владение» и «Использование».
Представь ситуацию. Ты находишь на компьютере главного бухгалтера файл password_cracker. exe.
Бухгалтер делает большие глаза и кричит:
— Это не моё! Это вирус скачал! Или сисадмин Вася скинул мне на флешку год назад вместе с фотками с корпоратива, я даже не знала, что это там лежит! Я не хакер, я жертва!
И знаете что? Если у тебя нет доказательств запуска, адвокат развалит обвинение за пять минут. Владение хакерским софтом (если это не спецсредства для негласного съема информации) само по себе редко является преступлением. Может, человек коллекционирует вирусы. Хобби у него такое.
Чтобы прижать подозреваемого к стенке, нам нужно доказать Intent (Умысел) и Action (Действие). Нам нужно доказать, что курсор мыши навел именно человек, что он кликнул два раза, и что программа отработала.
Для этого в Реестре Windows существуют два главных предателя: UserAssist и MUICache. Они работают в тандеме, как плохой и хороший полицейский, и вместе они поют такую песню, от которой у защиты вянут уши.
1. UserAssist: Счетовод вашей паранойи
Если бы операционная система была человеком, UserAssist был бы тем самым назойливым менеджером, который стоит у тебя за спиной с секундомером и блокнотом.
Эта функция является частью оболочки Windows Explorer. Её официальная цель — определять, какие программы вы используете чаще всего, чтобы заботливо подсовывать их вам в меню «Пуск» или на Панель задач.
Но для форензика UserAssist — это Святой Грааль поведенческого анализа.
Где живет:
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\UserAssist
Внутри этой ветки ты увидишь странные папки с названиями типа {CEBFF5CD-ACE2—4F4F-9178-9926F41749EA}. Это GUID-ы (Globally Unique Identifier).
Нас интересуют два основных:
— {CEBFF5CD-…} — здесь хранятся записи об Исполняемых файлах (.exe).
— {F4E57C4B-…} — здесь лежат данные о Ярлыках (.lnk).
Секрет Полишинеля: Шифрование ROT13
Когда ты откроешь эту ветку, ты увидишь список значений, похожий на бред сумасшедшего:
P:\Gbe\GbeOebmjre\gbe. rkr
F:\Uvqqra\fgrnyre. rkr
Не пугайся. Microsoft, в приступе гениальной «защиты от дурака», решила зашифровать имена запускаемых файлов алгоритмом ROT13.
ROT13 (Rotate by 13 places) — это шифр, который использовал Юлий Цезарь, только чуть модифицированный. Буква A меняется на N, B на O.
Это не защита. Это шутка. Любой форензик-инструмент (Registry Explorer, RegRipper) декодирует это на лету. И «бред» превращается в улики:
P:\Gbe… -> C:\Tor\TorBrowser\tor. exe
F:\Uvqqra… -> S:\Hidden\stealer. exe
Самое вкусное: Run Count и Last Execute Time
Расшифровав имя, мы смотрим внутрь бинарного значения (Binary Data). Там лежит не просто мусор, а структурированные данные. Самые важные для нас байты отвечают за два параметра:
— Run Counter (Счетчик запусков).
— Это число показывает, сколько раз пользователь запускал эту конкретную программу.
— И это — бомба.
— — Если счетчик = 1, подозреваемый может сказать: «Я случайно открыл, испугался и закрыл». Это правдоподобно.
— — Если счетчик = 54, оправдания «Я не знаю, что это такое» больше не работают. Ты не можешь «случайно» запустить программу для взлома Wi-Fi 54 раза. Это система. Это рабочий процесс.
— Кстати, счетчик начинает отсчет с 0 (первый запуск) или 1, в зависимости от версии Win, но суть одна. Число больше 5 — это приговор версии о «случайности».
— Last Execute Time (Время последнего запуска).
— Таймстемп в формате FILETIME. Показывает дату и время, когда программу открывали в последний раз.
— Сравниваем это время с журналом входов (Security Log). Кто был залогинен в 14:15? Иванов. Программа запущена в 14:16. Вопросы есть? Вопросов нет.
— Focus Time (Время в фокусе).
— В некоторых версиях Windows (и в зависимости от настроек) UserAssist записывает не просто факт запуска, а сколько времени окно программы было активным (в фокусе).
— Это позволяет отсеять ситуации: «Я запустил и ушел пить чай». Если Focus Time составляет 40 минут, значит, человек сидел и работал в этом окне. Вбивал настройки, читал мануалы, хакал.
Важный нюанс параноика:
UserAssist отслеживает только то, что запущено через Windows Explorer (Проводник).
— Двойной клик по иконке? Запишет.
— Запуск через «Выполнить» (Win+R)? Запишет.
— Запуск через командную строку (CMD/PowerShell)? НЕТ.
Если хакер профи и запускает всё через консоль, UserAssist будет молчать о конкретной утилите (но он запишет запуск самого cmd. exe или powershell. exe).
2. MUICache: Кладбище имен
Если UserAssist — это счетчик, то MUICache — это библиотекарь.
Полное название: Multilingual User Interface Cache.
Где живет:
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
(В старых системах путь может немного отличаться, но ищите Shell\MuiCache).
Зачем он нужен системе:
Когда вы запускаете файл word. exe, Windows хочет показать вам в меню или в диспетчере задач красивое название: «Microsoft Word», а не просто имя файла.
Система извлекает это имя из метаданных (ресурсов) самого. exe файла и сохраняет его в реестр, чтобы в следующий раз не сканировать файл заново.
Почему это важно для нас:
— Он помнит Portable-софт.
— Программы, которые не требуют установки, не оставляют следов в ветке Uninstall. Но как только пользователь кликает по «портативке», она попадает в MUICache.
— Нашли там запись G:\Soft\RubberDucky. exe со значением USB Attack Tool?
— Поздравляю. Вы доказали, что программа запускалась с внешнего диска G:.
— Устойчивость к удалению.
— Пользователь удалил программу. Пользователь почистил папку Recent. Пользователь даже (о ужас) очистил UserAssist специальным скриптом.
— Но про MUICache забывают почти все «чистильщики». Записи там висят годами.
— Это отличный способ поймать лжеца на: «У меня никогда не стоял Telegram на рабочем компе!». Открываем MUICache, находим Telegram. exe -> Telegram Desktop. Шах и мат.
— Атрибуция малвари.
— Иногда вирусы маскируются под системные процессы. Например, файл называется svchost. exe, но лежит в папке C:\Temp\.
— В MUICache мы увидим: C:\Temp\svchost. exe.
— Настоящий svchost живет только в System32. Любой другой путь — это аномалия. MUICache подсвечивает эти аномалии как прожектором.
3. Синтез: Как связать их в цепочку доказательств
По отдельности эти артефакты сильны. Вместе — непобедимы.
Вот классический алгоритм работы форензика при анализе запуска софта:
Шаг 1. Экспортируем ветки NTUSER. DAT и USRCLASS. DAT.
Шаг 2. Загружаем их в Registry Explorer (инструмент Эрика Циммермана, бесплатен и гениален).
Шаг 3. Идем в UserAssist. Сортируем по Run Count.
— Видим Eraser. exe (программа для уничтожения данных).
— Запусков: 12.
— Последний запуск: вчера в 18:00.
Вывод: Пользователь намеренно использовал вайпер.
Шаг 4. Идем в MUICache.



