Степанов Даниил@ihateyou
Pentest, Red Team, DevSecOps
Информация
- В рейтинге
- 1 474-й
- Откуда
- Азов, Ростовская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Пентестер
Ведущий
Тестирование на проникновение
Pentest, Red Team, DevSecOps
Спасибо за вопрос. Вы правы, что
GetProcAddressможет быть триггером в динамическом или эвристическом анализе, но в статическом анализе он легитимен на 100% по нескольким причинам.Статические сигнатуры строятся на паттернах - уникальных байт-кодах, хэшах участков кода, специфичных последовательностях API. Одиночный вызов GetProcAddress встречается в миллионах легитимных приложений (от драйверов принтеров до игр Steam). Внедрение сигнатуры на него даст миллион ложных срабатываний - ни один вендор этого не сделает
GetProcAddress(“NtCreateThreadEx”) + вызов полученного адреса + отсутствие цифровой подписи + работа из временной директории - да, это повод для алерта. Но в нашем случае GetProcAddress используется для VirtualAlloc, LoadLibrary, GetProcAddress (рекурсивно для самой себя) функций, которые легитимный рантайм Rust или любой инсталлятор вызывает на раз