
Эксплуатация и стратегии защиты в глубину для уязвимости утечки памяти KeePass (CVE-2023-32784).
Проанализировать уязвимость CVE-2023-32784 в KeePass Password Safe (v2.53), продемонстрировать извлечение мастер-пароля через дамп памяти и разработать надежные средства обнаружения и смягчения последствий.
KeePass использует пользовательский элемент SecureTextBoxEx для ввода мастер-пароля, который оставляет фрагменты строк в адресном пространстве процесса для каждого введённого символа. Захватив .DMP-файл работающего процесса, эти фрагменты можно соединить для восстановления пароля в открытом виде.
Хотя команда совместно работала над этапами эксплуатации и смягчения последствий, я лично разработал архитектуру уязвимости и стратегию обнаружения с использованием аудита безопасности Windows:
Аудит создания процессов (ИД события 4688): Настроил групповую политику для регистрации всех запусков процессов с полными аргументами командной строки. Это успешно зафиксировало точную строку запуска инструмента эксплуатации на C# (keepass_password_dumper.exe KeePass.DMP).
Аудит доступа к объектам (ИД событий 4663 и 4656): Настроил аудит файловой системы для KeePass.exe и Database.kdbx. Это вызвало срабатывание оповещений при любой попытке доступа или запроса дескрипторов к чувствительной области памяти.
Контроль доступа: Удалил привилегию «Отладка программ» у обычных пользователей через локальную политику безопасности, чтобы предотвратить несанкционированное создание дампов памяти на уровне ОС.
Шифрование: Развернул BitLocker с полным шифрованием диска на базе XTS-AES 128-битного шифрования для защиты дампов памяти и файлов подкачки в состоянии покоя.