PT Application Firewall

Межсетевой экран уровня веб-приложений

T1059.002: AppleScript

Злоумышленники могут использовать для выполнения вредоносного кода AppleScript. AppleScript — это язык сценариев macOS, предназначенный для управления приложениями и элементами ОС через межпрограммные сообщения, известные как AppleEvents. Сообщения AppleEvents можно отправлять непосредственно или легко формировать посредством AppleScript. Эти события могут обнаруживать открытые окна, отправлять нажатия клавиш и взаимодействовать практически с любым открытым приложением как локально, так и удаленно.

Сценарии могут запускаться из командной строки с помощью команд osascript /path/to/script или osascript -e "script here". Помимо командной строки, сценарии могут быть выполнены и другими способами, включая правила почты, уведомления Calendar.app и рабочие процессы Automator. Сценарии AppleScript в открытом текстовом виде также могут выполняться как сценарии командной оболочки. Для этого нужно добавить #!/usr/bin/osascript в начало файла сценария.

Сценариям AppleScript не требуется вызов osascript для выполнения. Однако они могут выполняться из бинарных файлов Mach-O с использованием объектов NSAppleScript или OSAScript системного API macOS, способных выполнять код независимо от утилиты командной строки /usr/bin/osascript.

Злоумышленники могут использовать AppleScript для выполнения разных задач, таких как взаимодействие с открытым подключением по SSH, перемещение на удаленные системы и даже открытие поддельных диалоговых окон для пользователя. Эти события не могут запускать приложения удаленно (только локально), но могут взаимодействовать с приложениями, уже работающими удаленно. В macOS версий 10.10 (Yosemite) и выше AppleScript может выполнять вызовы нативного API, что в ином случае требовало бы компиляции и выполнения в формате бинарного файла Mach-O. Поскольку AppleScript является языком сценариев, он может использоваться для запуска более распространенных техник, таких как обратное соединение на базе Python.

Какие продукты Positive Technologies покрывают технику

Как детектировать

PT AF может обнаруживать команды для AppleScript при помощи пользовательских правил, если команды передаются в HTTP-запросах.

Требуется эксперт. Техника обнаруживается только в связке «Продукт PT + эксперт»

Способы обнаружения

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

Monitor for newly executed processes that may abuse AppleScript for execution. Scripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Actions may be related to network and system information Discovery, Collection, or other scriptable post-compromise behaviors and could be used as indicators of detection leading back to the source script.

Analytic 1 - Unusual Execution

source="Osquery:" EventCode="process_added” AND CommandLine LIKE “osascript

Analytic 2 - Untrusted Locations

source="Osquery:" EventCode="process_added" AND Path LIKE "/Users//Downloads/" OR Path LIKE "/tmp/*"

Analytic 3 - Parent/Child Process Relationship

source="Osquery:" EventCode="process_added" AND ParentImage= "/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder" AND Image LIKE "osascript"

IDDS0009Источник и компонент данныхПроцесс: Вызовы API ОСОписание

Monitor for execution of AppleScript through osascript and usage of the NSAppleScript and OSAScript APIs that may be related to other suspicious behavior occurring on the system.

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Monitor executed commands and arguments that may abuse AppleScript for execution. Scripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Actions may be related to network and system information Discovery, Collection, or other scriptable post-compromise behaviors and could be used as indicators of detection leading back to the source script.

Меры противодействия

IDM1045НазваниеПодпись исполняемого кодаОписание

Require that all AppleScript be signed by a trusted developer ID before being executed - this will prevent random AppleScript code from executing. This subjects AppleScript code to the same scrutiny as other .app files passing through Gatekeeper.

IDM1038НазваниеЗащита от выполненияОписание

Use application control where appropriate.