Хакер #305. Многошаговые SQL-инъекции
Независимый ИБ-специалист Сатоши Танда (Satoshi Tanda) обнаружил, что малварь, в коде которой размещен нулевой символ, без труда проходит сканирование Anti-Malware Scan Interface (AMSI) в Windows 10. К счастью, эта проблема была устранена разработчиками Microsoft на прошлой неделе, — патч вошел в состав февральского «вторника обновлений».
Защитный механизм AMSI был представлен вместе с релизом Windows 10, он представляет собой своеобразное промежуточное звено между приложениями и локальными антивирусными решениями. Так, AMSI позволяет приложению отсылать файл на сканирование локальному защитному ПО, а затем возвращает полученный результат. По сути, использовать AMSI можно для проверки файлов, памяти, ссылок, скриптов PowerShell, VBScript и так далее.
В частности, инженеры Microsoft предлагают использовать AMSI для обнаружения атак, которые не распознаются классическим антивирусным ПО, полагающимся на сигнатуры. Механизм призван защитить систему от вредоносной активности, которая происходит уже после выполнения (когда малварь генерирует вредоносную последовательность команд уже после запуска или скачивает что-то из удаленного источника).
Сатоши Танда пишет, что из-за ошибки в коде Anti-Malware Scan Interface работал некорректно. Специалист обнаружил, что встретив в коде нулевой символ, AMSI обрывает сканирование файла, не обращая внимания на данные, расположенные после «символа преткновения».
Так, если злоумышленник, хочет скрыть вредоносную активность от AMSI, ему достаточно добавить перед началом вредоносного кода нулевой символ, что «ослепит» защитный механизм и заставит прервать сканирование.
В своем блоге Танда приводит несколько примеров эксплуатации бага, в том числе рассматривает загрузку и запуск вредоносного файла PowerShell и выполнение PowerShell-команд, скрытых нулевым символом.
Теперь специалист настоятельно рекомендует всем установить вышедшее на прошлой неделе исправление, а также отдельно советует производителям антивирусных продуктов проверить свои решения на наличие аналогичного бага и убедиться, что нулевые символы не вызывают проблем в работе.