AMSI прекращает сканирование файла, наткнувшись на нулевой символ.
Вредоносное ПО сможет обойти механизм безопасности Anti-Malware Scan Interface (AMSI) в Windows 10, если будет содержать в своем коде нулевой символ.
Функция AMSI играет роль посредника между приложениями и локальными антивирусными решениями. Она позволяет приложению отправлять файл локальному антивирусному ПО для сканирования и получать ответные результаты. Функция впервые была реализована в Windows 10, однако не привязана исключительно к Windows Defender и может отправлять файлы любому установленному на системе AMSI-совместимому антивирусному ПО.
Хотя функция AMSI может использоваться для сканирования всех типов файлов, она была специально разработана для содействия в проверке скриптов, вызываемых во время выполнения. Такие скрипты (PowerShell, VBScript, Ruby и пр.) часто используются вредоносным ПО для обхода обнаружения антивирусными продуктами, использующими классический метод детектирования по сигнатурам. Другими словами, AMSI представляет собой сканер для проверки дополнительных ресурсов, запускаемых или загружаемых файлом после выполнения.
Исследователь безопасности Сатоши Танда (Satoshi Tanda) обнаружил уязвимость, из-за которой AMSI прекращает сканирование файла, наткнувшись на нулевой символ. То есть, механизм сканирует файл до тех пор, пока не дойдет до нулевого символа, а затем опускает оставшиеся данные. Таким образом, для обхода проверки AMSI злоумышленнику достаточно скрыть вредоносные команды за нулевым символом.
Уязвимость была исправлена на прошлой неделе с выходом плановых февральских обновлений для продуктов Microsoft.