Защита от атак на основе сценариев
Защита от атак на основе сценариев — это защита от вредоносного кода на языке Javascript в браузерах и защита на базе Antimalware Scan Interface (AMSI) от сценариев в PowerShell.
Для работы этой функции необходимо, чтобы система HIPS была включена.
Функция защиты от атак на основе сценариев поддерживается для таких браузеров:
Используйте поддерживаемый браузер
Минимальные поддерживаемые версии браузеров могут различаться, поскольку файловые сигнатуры браузеров часто меняются. Последняя версия браузера поддерживается всегда.
Amsi защита что это
Компонент AMSI-защита предназначен для поддержки интерфейса Antimalware Scan Interface от Microsoft. Интерфейс Antimalware Scan Interface (AMSI) позволяет сторонним приложениям с поддержкой AMSI отправлять объекты (например, скрипты PowerShell) в Kaspersky Endpoint Security для дополнительной проверки и получать результаты проверки этих объектов. Сторонними приложениями могут быть, например, программы Microsoft Office (см. рис. ниже). Подробнее об интерфейсе AMSI см. в документации Microsoft.
AMSI-защита может только обнаруживать угрозу и уведомлять стороннее приложение об обнаруженной угрозе. Стороннее приложение после получения уведомления об угрозе не дает выполнить вредоносные действия (например, завершает работу).

Пример работы AMSI
Компонент AMSI-защита может отклонить запрос от стороннего приложения, например, если это приложение превысило максимальное количество запросов за промежуток времени. Kaspersky Endpoint Security отправляет информацию об отклонении запроса от стороннего приложения на Сервер администрирования. Компонент AMSI-защита не отклоняет запросы от тех сторонних приложений, для которых установлен флажок Не блокировать взаимодействие с AMSI-защитой .
AMSI-защита доступна для следующих операционных систем рабочих станций и серверов:
- Windows 10 Home / Pro / Education / Enterprise;
- Windows Server 2016 Essentials / Standard / Datacenter;
- Windows Server 2019 Essentials / Standard / Datacenter.
Amsi защита что это
Компонент AMSI-защита предназначен для поддержки интерфейса Antimalware Scan Interface от Microsoft. Интерфейс Antimalware Scan Interface (AMSI) позволяет сторонним приложениям с поддержкой AMSI отправлять объекты (например, скрипты PowerShell) в Kaspersky Endpoint Security для дополнительной проверки и получать результаты проверки этих объектов. Сторонними приложениями могут быть, например, программы Microsoft Office (см. рис. ниже). Подробнее об интерфейсе AMSI см. в документации Microsoft.
AMSI-защита может только обнаруживать угрозу и уведомлять стороннее приложение об обнаруженной угрозе. Стороннее приложение после получения уведомления об угрозе не дает выполнить вредоносные действия (например, завершает работу).

Пример работы AMSI
Компонент AMSI-защита может отклонить запрос от стороннего приложения, например, если это приложение превысило максимальное количество запросов за промежуток времени. Kaspersky Endpoint Security отправляет информацию об отклонении запроса от стороннего приложения на Сервер администрирования. Компонент AMSI-защита не отклоняет запросы от тех сторонних приложений, для которых включена функция постоянного взаимодействия с компонентом AMSI-защита.
AMSI-защита доступна для следующих операционных систем рабочих станций и серверов:
- Windows 10 Home / Pro / Pro для рабочих станций / Education / Enterprise;
- Windows 11;
- Windows Server 2016 Essentials / Standard / Datacenter;
- Windows Server 2019 Essentials / Standard / Datacenter;
- Windows Server 2022. Параметры компонента AMSI-защита
| Параметр | Описание |
|---|---|
| Проверять архивы | Проверка архивов ZIP, GZIP, BZIP, RAR, TAR, ARJ, CAB, LHA, JAR, ICE и других форматов. |
| Проверять дистрибутивы | Флажок включает / выключает проверку дистрибутивов сторонних программ. |
| Проверять файлы офисных форматов | Проверка файлов Microsoft Office (DOC, DOCX, XLS, PPT и других). К файлам офисных форматов также относятся OLE-объекты. |
| Не распаковывать составные файлы большого размера | Если флажок установлен, то Kaspersky Endpoint Security не проверяет составные файлы, размеры которых больше заданного значения. Если флажок снят, Kaspersky Endpoint Security проверяет составные файлы любого размера. Kaspersky Endpoint Security проверяет файлы больших размеров, извлеченные из архивов, независимо от состояния флажка. |
См. также об управлении программой через локальный интерфейс
Как интерфейс проверки антивредоносного ПО (AMSI) помогает защититься от вредоносных программ
Как разработчик приложений вы можете активно участвовать в защите от вредоносных программ. В частности, вы можете защитить клиентов от динамических вредоносных программ на основе скриптов и от нетрадиционных способов кибератак.
В качестве примера предположим, что приложение доступно для сценариев: оно принимает произвольный скрипт и выполняет его с помощью обработчика сценариев. Когда скрипт будет готов к отправке в обработчик сценариев, приложение может вызвать API-интерфейсы Windows AMSI, чтобы запросить сканирование содержимого. Таким образом, вы можете безопасно определить, является ли скрипт вредоносным, прежде чем вы решите идти дальше и выполнять его.
Это верно, даже если скрипт был создан во время выполнения. Скрипт (вредоносный или иным образом) может пройти через несколько проходов де-маскации. Но в конечном итоге необходимо предоставить обработчику сценариев простой, не замаскированный код. И это точка, в которой вы вызываете API AMSI.
Ниже приведена иллюстрация архитектуры AMSI, где ваше приложение представлено одним из полей «Другое приложение».

Открыт интерфейс Windows AMSI. Это означает, что любое приложение может вызвать его; и любой зарегистрированный модуль защиты от вредоносных программ может обрабатывать отправленное на него содержимое.
Нам также не нужно ограничивать обсуждение обработчиками сценариев. Возможно, ваше приложение является коммуникационным приложением и проверяет мгновенные сообщения на наличие вирусов, прежде чем отображать их для ваших клиентов. Или, возможно, ваше программное обеспечение — это игра, которая проверяет подключаемые модули перед их установкой. Существует множество возможностей и сценариев для использования AMSI.
AMSI в действии
Давайте рассмотрим AMSI в действии. В этом примере Защитник Windows является приложением, которое вызывает API AMSI. Но вы можете вызывать те же API из собственного приложения.
Ниже приведен пример скрипта, использующего метод XOR-кодирования, чтобы скрыть свое намерение (независимо от того, является ли это намерение неопасным). На этом рисунке можно предположить, что этот скрипт был скачан из Интернета.

Чтобы сделать все более интересными, мы можем ввести этот скрипт вручную в командной строке, чтобы не было фактического файла для отслеживания. Это отражает так называемую «бесфайловую угрозу». Это не так просто, как сканирование файлов на диске. Угроза может представлять собой backdoor, который находится только в памяти компьютера.
Ниже мы видим результат выполнения скрипта в Windows PowerShell. Вы увидите, что Защитник Windows может обнаружить пример теста AMSI в этом сложном сценарии, просто используя стандартную сигнатуру теста AMSI.

Интеграция AMSI с JavaScript/VBA
В приведенном ниже рабочем процессе описывается комплексный поток другого примера, в котором демонстрируется интеграция AMSI с выполнением макросов в Microsoft Office.

- Пользователь получает документ, содержащий макрос (вредоносный), который избегает проверки статического антивирусного программного обеспечения, используя такие методы, как маскировка, защищенные паролем файлы или другие.
- Затем пользователь открывает документ, содержащий макрос (вредоносный). Если документ откроется в защищенном представлении, пользователь нажимает кнопку Включить редактирование , чтобы выйти из защищенного представления.
- Пользователь нажимает кнопку Включить макросы , чтобы разрешить выполнение макросов.
- При выполнении макроса среда выполнения VBA использует циклический буфер для регистрации [1] данных и параметров, связанных с вызовами API Win32, COM и VBA.
- При наблюдении определенных API Win32 или COM, которые считаются высоким риском (также известные как триггеры) [2], выполнение макроса останавливается, а содержимое циклического буфера передается в AMSI.
- Зарегистрированный поставщик службы защиты от вредоносных программ AMSI отвечает вердиктом, указывающим, является ли макрос вредоносным.
- Если поведение не является вредоносным, выполнение макроса продолжается.
- В противном случае, если поведение является вредоносным, Microsoft Office закрывает сеанс в ответ на оповещение [3], и антивирусная программа может поместить файл в карантин.
Что это означает для вас?
Для пользователей Windows любое вредоносное программное обеспечение, использующее методы маскирования и обхода на встроенных узлах сценариев Windows 10, автоматически проверяется на гораздо более глубоком уровне, чем когда-либо прежде, обеспечивая дополнительные уровни защиты.
Для разработчиков приложений рассмотрите возможность вызова интерфейса Windows AMSI в приложении, если вы хотите воспользоваться дополнительными средствами сканирования и анализа потенциально вредоносного содержимого (и защитить своих клиентов с помощью).
Как поставщик антивирусного программного обеспечения вы можете реализовать поддержку интерфейса AMSI. В этом случае ваш обработчик будет иметь гораздо более глубокое представление о данных, которые приложения (включая встроенные узлы сценариев Windows 10) считаются потенциально вредоносными.
Дополнительные сведения об угрозах без файлов
Вам может быть интересно получить дополнительные сведения о типах бесфайловых угроз, от которые windows AMSI предназначен для защиты. В этом разделе мы рассмотрим традиционную игру «кошки-мышки», которая разыгрывается в экосистеме вредоносных программ.
В качестве примера мы будем использовать PowerShell. Но вы можете использовать те же методы и процессы, которые мы продемонстрируем на любом динамическом языке: VBScript, Perl, Python, Ruby и т. д.
Ниже приведен пример вредоносного скрипта PowerShell.

Хотя этот скрипт просто записывает сообщение на экран, вредоносные программы обычно более гнусны. Но вы можете легко написать подпись, чтобы обнаружить эту. Например, подпись может искать строку Write-Host ‘pwnd!’ в любом открываемом пользователем файле. Отлично: мы обнаружили наши первые вредоносные программы!
После обнаружения нашей первой сигнатурой авторы вредоносных программ будут отвечать. Они отвечают путем создания динамических скриптов, таких как в этом примере.

В этом сценарии авторы вредоносных программ создают строку, представляющую выполняемый скрипт PowerShell. Но они используют простой метод объединения строк, чтобы нарушить нашу предыдущую сигнатуру. Если вы когда-нибудь просматриваете источник веб-страницы, нагруженной рекламой, вы увидите, что многие экземпляры этого метода используются, чтобы избежать программного обеспечения, блокирующего рекламу.
Наконец, автор вредоносных программ передает эту сцепленную строку Invoke-Expression в командлет — механизм PowerShell для оценки скриптов, которые составляются или создаются во время выполнения.
В ответ антивредоносное ПО начинает выполнять базовую эмуляцию языка. Например, если мы видим объединение двух строк, мы эмулируем объединение этих двух строк, а затем выполняем сигнатуры для результата. К сожалению, это довольно хрупкий подход, так как языки, как правило, имеют множество способов представления и объединения строк.
Таким образом, после перехвата этой сигнатуры авторы вредоносных программ переходят на что-то более сложное, например кодирование содержимого скрипта в Base64, как в следующем примере.

Будучи ресурсоемкими, большинство модулей защиты от вредоносных программ также реализуют эмуляцию декодирования Base64. Таким образом, так как мы также реализуем эмуляцию декодирования Base64, мы впереди на время.
В ответ авторы вредоносных программ переходят к алгоритмическому обфускированию, например простому механизму кодирования XOR в выполняемых ими сценариях.

На этом этапе мы, как правило, не определяем, что будут эмулировать или обнаруживать антивирусные подсистемы, поэтому мы не обязательно обнаруживаем, что делает этот скрипт. Однако мы можем начать писать подписи в отношении методов маскации и кодирования. На самом деле это то, что составляет подавляющее большинство подписей для вредоносных программ на основе скриптов.
Но что делать, если маскатор настолько тривиальный, что он выглядит как многие хорошо себя скрипты? Сигнатура для нее приведет к недопустимому количеству ложных срабатываний. Ниже приведен пример сценария промежуточного действия , который слишком безвредный для обнаружения самостоятельно.

В этом примере мы загружаем веб-страницу и вызываем с нее некоторое содержимое. Ниже приведен эквивалент скрипта Visual Basic.

Что еще хуже в обоих примерах, так это то, что антивирусная подсистема проверяет файлы, открытые пользователем. Если вредоносное содержимое хранится только в памяти, то атака может быть не обнаружена.
В этом разделе показаны ограничения обнаружения с помощью традиционных сигнатур. Но в то время как вредоносный скрипт может пройти через несколько проходов де-маскации, он в конечном итоге должен предоставить обработчику сценариев простой, незамеченный код. И на этом этапе, как описано в первом разделе выше, встроенные узлы скриптов Windows 10 вызывают API AMSI, чтобы запросить сканирование этого незащищенного содержимого. И ваше приложение может сделать то же самое.
Связанные ресурсы
- Безфайловые угрозы
- Office VBA + AMSI: расставание с завесой на вредоносных макросах
- Вне поля зрения, но невидимый: поражение без файловых вредоносных программ с помощью мониторинга поведения, AMSI и AV следующего поколения