Содержание статьи
ЧТО ЭТО ТАКОЕ
Консультант по информационной безопасности из хорватской фирмы Infigo Лука Милкович (Luka Milkovi ć) разработал программу Dementia, которая должна стать обязательным инструментом в арсенале каждого хакера. Программа под Windows постоянно следит за появлением сканера, который через соответствующий драйвер снимает дамп памяти. Как только сканер обнаружен, программа перехватывает снятие дампа и удаляет специфические артефакты из памяти. Таким образом, она вмешивается в процесс снятия дампа памяти, изменяя его содержимое.
Dementia успешно справляется с сокрытием улик от популярных инструментов для криминалистической экспертизы, таких как Moonsols Win32dd (только в режиме kernel-mode), Mandiant’s Memoryze, ManTech MDD, FTK Imager и Winpmem.
ЗАЧЕМ ЭТО НУЖНО
Программы для криминалистической экспертизы умеют извлекать много ценной информации из оперативной памяти, в том числе фрагменты открытых ранее файлов, фрагменты вредоносного кода, ценные объекты, как активные, так и завершенные: процессы, нити, соединения, пароли PGP, информацию о различной активности на компьютере. Правоохранительные органы в процессе расследования полагаются на эти сведения как на реальные улики. В последнее время анализ RAM считается почти таким же эффективным и надежным инструментом криминалистической экспертизы, как анализ содержимого HDD.
Поскольку эксперты-криминалисты начали использовать специализированный софт, то появилось и контроружие для защиты памяти от экспертизы. Первыми таким программами были Haruyama и ShadowWalker, но они умеют только блокировать память от сканирования, прерывать процесс сканирования или блокировать анализ. Dementia продолжает их традиции, но впервые программа способна изменить содержимое памяти, не останавливая процесс сканирования.
КАК ЭТО РАБОТАЕТ
Dementia может скрывать конкретные объекты в дампах памяти под операционной системой Windows. Схема снятия и анализа дампа программами для криминалистической экспертизы показана на рисунке.
Dementia перехватывает вызов NtWriteFile() и проверяет, что этот вызов действительно поступил от программы снятия дампа памяти. У них есть характерные признаки, в том числе специфические аргументы NtWriteFile(), определенный контекст и специфические значения FILE_OBJECT. Программа строит список всех физических адресов в памяти, каким-либо образом связанных с процессом, который нужно скрыть. Перед записью дампа памяти в файл она убирает этот процесс из списков процессов ActiveProcessLinks и SessionProcessLinks и стирает из дампа данные, которые имеют отношение к процессу: нити, ссылки, выделенные области памяти (дескрипторы VAD).
В принципе, Dementia не скрывает свою активность в системе, так что программа для криминалистической экспертизы может определить ее наличие и считать улики скомпрометированными. Криминалистам придется использовать другие способы делать дампы памяти без искажений с работающей машины, предполагает автор программы Милкович.
Dementia протестирована под 32-битными операционными системами Windows XP, Windows Vista и Windows 7. Сейчас автор работает над 64-битной версией. Презентация Dementia на хакерской конференции CCC (28 декабря 2012 г.): bit.ly/TJHdFz. Код Dementia должен быть скоро опубликован здесь, автор обещал опубликовать его еще в январе.