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 + эксперт»
Способы обнаружения
ID | DS0009 | Источник и компонент данных | Процесс: Создание процесса | Описание | 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
Analytic 2 - Untrusted Locations
Analytic 3 - Parent/Child Process Relationship
|
---|
ID | DS0009 | Источник и компонент данных | Процесс: Вызовы API ОС | Описание | Monitor for execution of AppleScript through |
---|
ID | DS0017 | Источник и компонент данных | Команда: Выполнение команд | Описание | 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. |
---|
Меры противодействия
ID | M1045 | Название | Подпись исполняемого кода | Описание | 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. |
---|
ID | M1038 | Название | Защита от выполнения | Описание | Use application control where appropriate. |
---|