Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Часть 3

habr.png


В предыдущей части цикла публикаций «Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK)» были рассмотрены техники выполнения кода в атакуемой системе, описывающие средства и методы удаленного и локального выполнения различных команд, сценариев и исполняемых файлов.

Следующий этап цепочки хакерской атаки — закрепление доступа. Основная задача закрепления доступа состоит в обеспечении постоянства присутствия в атакуемой системе, ведь доступ может быть утрачен в связи с перезапуском атакуемой системы, утерей учетных данных или блокированием инструментов удаленного доступа вследствие обнаружения атаки.
Автор не несет ответственности за возможные последствия применения изложенной в статье информации, а также просит прощения за возможные неточности, допущенные в некоторых формулировках и терминах. Публикуемая информация является свободным пересказом содержания MITRE ATT&CK.

Методы обеспечения постоянства в системе можно условно разделить на 3 категории:

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


Далее, представлены техники закрепления доступа, предлагаемые ATT&CK.

Модификация файлов ~/.bash_profile и ~/.bashrc
Система: Linux, macOS
Права: Пользователь, администратор
Описание: Злоумышленники могут вставлять код в файлы ~/.bash_profile и ~/.bashrc (предназначены для создания пользовательской среды в ОС), который будет выполнятся когда пользователь войдёт в систему или запустит новую оболочку. Файл ~/.bash_profile выполняется при входе пользователя в систему, ~/.bashrc выполняется при интерактивном открытии оболочек. Когда пользователь входит в систему (локально или удаленно, например по SSH) с помощью имени пользователя и пароля ~/.bash_profile выполняется до того, как будет возвращено пользовательское приглашение. После этого, каждый раз когда открывается новая оболочка выполняется ~/.bashrc.

В macOS Terminal.app немного отличается тем, что он запускает оболочку входа по умолчанию при каждом открытии окна терминала, тем самым каждый раз вызывая ~/.bash_profile.

Рекомендации по защите: Предоставление прав на изменение файлов ~/.bash_profile и ~/.bashrc только для уполномоченных администраторов.

Модификация исполняемых файлов приложений «специальные возможности Windows» (Accessibility Features)
Система: Windows
Права: Администратор
Описание: Приложения «специальные возможности» (экранная лупа, экранная клавиатура и т.п.) могут запускаться с помощью комбинаций клавиш до входа пользователя в систему. Злоумышленник может подменить файлы запуска этих программ или изменить способ их запуска и открыть командную консоль или получить бэкдор без входа в систему.

  • C:\Windows\System32\sethc.exe — запускается 5-кратным нажатием клавиши Shift;
  • C:\Windows\System32\utilman.exe — запускается нажатием комбинации Win+U.


В WinXP и более поздних версиях sethc.exe и utilman.exe могут быть заменены, например, на cmd.exe, впоследствии при нажатии нужной комбинации клавиш cmd.exe запуститься до входа в Windows с привилегиями System.

В Vista и более поздних версиях нужно изменить ключ реестра, который настраивает cmd.exe или другую программу в качестве отладчика, например, для ultiman.exe. После правки реестра и нажатии нужной комбинации клавиш на экране входа в систему или при подключении к хосту по RDP выполнится cmd.exe с правами System.

Есть ещё программы Windows, которые могут использоваться при реализации данной техники атаки:

  • C:\Windows\System32\osk.exe;
  • C:\Windows\System32\Magnify.exe;
  • C:\Windows\System32\Narrator.exe;
  • C:\Windows\System32\DisplaySwitch.exe;
  • C:\Windows\System32\AtBroker.exe.


Рекомендации по защите: Настройте запуск обязательной сетевой аутентификации удаленных пользователей до создания RDP-сеанса и отображения экрана входа в систему (включено по умолчанию в Windows Vista и более поздних версиях). Используйте Remote Desktop Gateway для управления соединениями и настройкой безопасности RDP.

Модификация ключа AppCert DLLs
Система: Windows
Права: Администратор, System
Описание: Библиотеки DLL, указанные в значении ключа AppCertDLLs загружаются в каждый процесс, который вызывает часто используемые функции API: CreateProcess, CreateProcessAsUser, CreateProcessWithLoginW, CreateProcessWithTokenW, WinExec. Значением ключа AppCertDLLs можно злоупотреблять, вызвав загрузку вредоносной DLL и запустив определенные процессы. AppCertDLLs хранится в следующем разделе реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager.

Рекомендации по защите: Применяйте всевозможные средства блокировки потенциально-опасного программного обеспечения и загрузки неизвестных DLL-библиотек, например AppLocker и DeviceGuard.

Модификация ключа AppInit DLLs
Система: Windows
Права: Администратор, System
Описание: DLL-библиотеки, указанные в значении ключа AppInit_DLLs, загружаются в каждый процесс, который загружает user32.dll. На практике, это почти каждая программа.
AppInit_DLLs хранится в следующих разделах реестра:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows;
  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows.


Значением ключа AppInit_DLLs можно злоупотреблять для превышения привилегий, загружая вредоносные DLL и запуская определенные процессы. Функциональность AppInit_DLLs отключена в Windows 8 и более поздних версиях, когда активирована безопасная загрузка.

Рекомендации по защите: Рассмотрите возможность использования ОС версии не ранее Windows 8 и включения безопасной загрузки. Применяйте всевозможные средства блокировки потенциально-опасного программного обеспечения и загрузки неизвестных DLL-библиотек, например AppLocker и DeviceGuard.

Злоупотребление подсистемой совместимости приложений (Application Shimming)
Система: Windows
Права: Администратор
Описание: Microsoft Windows Application Compatibility Infrastructure/Framework создана для обеспечения совместимости программ с обновлениями Windows и изменениями кода ОС. Система совместимости использует так называемые shim («прокладки») — библиотеки, выступающие в качестве буфера между программой и ОС. С помощью shim-кэша система определяет необходимость использования shim-прокладок (хранятся в виде БД типа .sdb). В файлах .sdb хранятся различные процедуры для перехвата кода приложения, его обработки и дальнейшего перенаправления в ОС. Перечень всех shim-прокладок, установленных установщиком (sdbinst.exe) по умолчанию храниться в:

  • %WINDIR%\AppPatch\sysmain.sdb;
  • HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB.


Кастомные shim-базы хранятся в:

  • %WINDIR%\AppPatch[64]\Custom;
  • HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom.


Для обеспечения защиты в пользовательском режиме исключена возможность изменения ядра ОС c помощью shim-прокладок, а для их установки необходимы права администратора. Однако некоторые shim-прокладки могут использоваться для обхода контроля учетных записей (UAC), DLL-инъекций, отключения Data Execution Prevention и Srtucture Exception Handling, а так же перехвата адресов памяти. Использование злоумышленником shim-прокладок позволяет повысить привилегии, установить бэкдоры, отключить защиту ОС, например Защитник Windows.

Рекомендации по защите: Способов предотвращения Application shiming не так много. Отключение совместимости приложений не рекомендуется во избежание проблем со стабильностью работы ОС. Microsoft выпустила KB3045645, которое удалит флаг «auto-elevate» в файле sdbinst.exe для предотвращения использования shim-системы для обхода UAC.

Модификация компонентов Windows Authentication Package
Система: Windows
Права: Администратор
Описание: DLL-библиотеки Windows Authentification Pack загружаются процессом Local Security Authority (LSA) при запуске системы и обеспечивают поддержку нескольких процессов входа в систему и нескольких протоколов безопасности ОС. Злоумышленники могут использовать механизм автозапуска LSA помещая ссылку на двоичный файл в следующий ключ реестра:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Authentication Packages:[целевой бинарник].

[Целевой бинарник] будет запущен системой при загрузке пакетов Authentication Pack.

Рекомендации по защите: В Windows 8.1, Windows Server 2012 R2 и более поздних версиях LSA можно заставить работать как защищенный процесс (PPL) c помощью ключа реестра

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL = DWORD:00000001,
который требует, чтобы все DLL, загруженные LSA были подписаны цифровым сертификатом Microsoft.

Создание заданий BITS (BITS Jobs)
Система: Windows
Права: Пользователь, Администратор, System
Описание: Windows Background Intelligent Transfer Service (BITS) — это механизм асинхронной передачи файлов через Component Object Model (COM) с использованием низкой пропускной способности. BITS обычно используется программами обновления, мессенджерами и другими приложениями, предпочитающими работать в фоновом режиме без прерывания работы других сетевых приложений. Задачи по передаче файлов представляются как BITS-задания, которые содержат очередь из одной или нескольких операций с файлами. Интерфейс для создания и управления BITS-заданиями доступен в PowerShell и BITSAdmin tool. Злоумышленники могут использовать BITS для загрузки, запуска и последующей очистки после выполнения вредоносного кода. BITS-задания автономно хранятся в базе данных BITS, при этом в системе не создаются новые файлы или записи в реестре, зачастую BITS разрешен брандмауэром. С помощью BITS-заданий можно закрепиться в системе, создавая длительные задания (по умолчанию 90 дней) или вызывая произвольную программу после завершения BITS-задания или ошибки (в том числе после перезагрузки ОС).

Рекомендации по защите: BITS — стандартный функционал ОС, использование которого трудно отличить от вредоносной активности, поэтому вектор защиты нужно направлять на предотвращение запуска инструментов злоумышленника в начале цепочки атаки. Полное отключение BITS может привести к прекращению обновления законного ПО, однако можно рассмотреть возможность ограничения доступа к интерфейсу BITS для конкретных пользователей и групп доступа, так же можно ограничить время жизни BITS-заданий, которое задается с помощью изменения следующих ключей:

  • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\BITS\JobInactivityTimeout;
  • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\BITS\MaxDownloadTime.


Буткиты (Bootkit)
Система: Linux, Windows
Права: Администратор, система
Описание: Bootkit — это разновидность вредоносного ПО, которое может менять загрузочные секторы жесткого диска, включая Master Boot Record (MBR) и Volume Boot Record (VBR). Злоумышленники могут использовать Bootkit для закрепления в системах на уровне ниже ОС. MBR — раздел ЖД, который загружается сразу после завершения аппаратной инициализации Bios. Злоумышленник, имеющий доступ на перезапись MBR, может заменить код загрузчика ОС на вредоносный. VBR — раздел жесткого диска, который получает управление процессом загрузки от MBR. По аналогии с вариантом перезаписи MBR, злоумышленник может запустить вредоносной код на этапе загрузки системы.

Рекомендации по защите: Использование средств контроля целостности MBR и VBR. Применение Trusted Platform Module (TPM) и безопасной загрузки (Secure Boot).

Расширения браузеров (Browser Extensions)
Система: Windows, Linux, macOS
Права: Пользователь
Описание: Как правило, плагины имеют все доступы и права, которые может получить браузер. Вредоносные плагины могут быть установлены через загрузку вредоносных приложений, замаскированных под законные программы посредством применения техник социальной инженерии, фишинга или злоумышленником, который уже скомпрометировал систему. Вредоносные плагины могут в фоновом режиме открывать веб-сайты, красть информацию, которую пользователь вводит в браузере, включая учетные данные, использоваться как установщики средств удаленного администрирования (RAT) и закрепления в системе.

Рекомендации по защите: Установка плагинов только из надежных источников. Контроль устанавливаемых плагинов с помощью групповой политики. Запрет установки плагинов обычными пользователями. Инвентаризация и мониторинг установленных плагинов.

Модификация параметров ассоциаций файлов (Change Default File Association)
Система: Windows
Права: Пользователь, администратор, system
Описание: Злоумышленники могут изменять ассоциации файлов для запуска произвольных команд. Выбор ассоциации файлов с приложениями храниться в реестре Windows и может быть отредактирован пользователями, администраторами и программами, имеющими доступ к реестру. Приложения могут модифицировать ассоциации для вызова произвольных программ. Параметры системных ассоциаций хранятся в реестре: HKEY_CLASSES_ROOT\.[extension], например, HKEY_CLASSES_ROOT\.txt. Различные команды перечисляются как подразделы: HKEY_CLASSES_ROOT\[handler]\shell\[action]\[command], например:

  • HKEY_CLASSES_ROOT\txtfile\shell\open\[command];
  • HKEY_CLASSES_ROOT\txtfile\shell\print\[command];
  • HKEY_CLASSES_ROOT\txtfile\shell\printto\[command];


где [command] — это команда, которая будет выполнена при открытии файла с заданным расширением.

Рекомендации по защите: Следуйте рекомендациям Microsoft в отношении файловых ассоциаций. Применяйте всевозможные средства блокировки потенциально-опасного программного обеспечения, например AppLocker и DeviceGuard.

Прошивка компонентов (Component Firmware)
Система: Windows
Права: System
Описание: Некоторые злоумышленники могут применять сложные средства для компрометации компонентов компьютера и установки на них вредоносной прошивки, которая будет запускать вредоносный код вне операционной системы или даже главной системной прошивки (Bios). Техника заключается в прошивке компонентов компьютера, которые не имеют встроенной системы проверки целостности, например, жестких дисков. Устройство с вредоносной прошивкой может обеспечивать постоянный доступ к атакуемой системе несмотря на сбои и перезапись жесткого диска. Техника рассчитана на преодоление программной защиты и контроля целостности.

Перехват ссылок и связей Component Object Model Hijacking
Система: Windows
Права: Пользователь
Описание: Microsoft Component Object Model (COM) — это технология создания ПО на основе взаимодействующих компонентов объекта, каждый из которых может использоваться во многих программах одновременно. Злоумышленники могут использовать COM для вставки вредоносного кода, который может быть выполнен вместо легитимного через захват COM-ссылок и связей. Для перехвата COM-объекта необходимо заменить в реестре Windows ссылку на легитимный системный компонент. При дальнейшем вызове этого компонента будет выполняться вредоносный код.

Рекомендации по защите: Превентивные меры предотвращения данной атаки не рекомендуются, поскольку COM-объекты являются частью ОС и установленного в системе ПО. Блокировка изменений COM-объектов может влиять на стабильность работы ОС и ПО. Вектор защиты рекомендуется направить на блокирование вредоносного и потенциально-опасного ПО.

Создание учетных записей (Create Account)
Система: Windows, Linux, macOS
Права: Администратор
Описание: Злоумышленники, получившие достаточный доступ могут создавать локальные или доменные учетные записи для дальнейшего закрепления в системе. Сетевые пользовательские команды так же могут использоваться для создания учетных записей.

Рекомендации по защите: Применение многофакторной аутентификации. Конфигурация параметров безопасности на важных серверах, настройка элементов управления доступом, брандмауэров. Запрет использования учетной записи администратора домена для выполнения ежедневных операций, в ходе которых злоумышленник может получить сведения об учетной записи. Злоумышленники, которые создали аккаунты в системе могут получить только ограниченный доступ к сети, если уровни доступа должным образом заблокированы. Учетные записи могут потребоваться только для закрепления доступа в отдельной системе.

Перехват поиска DLL (DLL Search Order Hijacking)
Система: Windows
Права: Пользователь, Администратор, System
Описание: Техника заключается в эксплуатации уязвимостей алгоритма поиска приложениями файлов DLL, необходимых им для работы (MSA2269637). Зачастую директорией поиска DLL является рабочий каталог программы, поэтому злоумышленники могут подменять исходную DLL на вредоносную с тем же именем файла.

Удаленные атаки на поиск DLL могут проводиться когда программа устанавливает свой текущий каталог в удаленной директории, например, сетевую шару. Также злоумышленники могут напрямую менять способ поиска и загрузки DLL заменяя файлы .manifest или .local, в которых описываются параметры поиска DLL. Если атакуемая программа работает с высоким уровнем привилегий, то подгруженная ею вредоносная DLL также будет выполняться с высокими правами. В этом случае техника может использоваться для повышения привилегий от пользователя до администратора или System.

Рекомендации по защите: Запрет удаленной загрузки DLL (включено по умолчанию в Windows Server 2012+ и доступно с обновлениями для XP+ и Server 2003+). Включение безопасного режима поиска DLL, который ограничит каталоги поиска директориями типа %SYSTEMROOT% до выполнения поиска DLL в текущей директории приложения.

Включение режима безопасного поиска DLL:
Computer Configuration > [Policies] > Administrative Templates > MSS (Legacy): MSS: (SafeDllSearchMode) Enable Safe DLL search mode.
Соответствующий ключ реестра:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDLLSearchMode.

Рассмотрите целесообразность аудита защищаемой системы для устранения недостатков DLL с помощью таких инструментов как модуль PowerUP в PowerSploit. Не забывайте про блокировку вредоносного и потенциально-опасного ПО, а так же выполнение рекомендаций Microsoft.

Перехват поиска dylib (Dylib Hijacking)
Система: macOS
Права: Пользователь
Описание: Техника основана на уязвимостях алгоритмов поиска динамических библиотек dylib в macOS и OS X. Суть заключается в определении dylib, которые подгружает атакуемое приложение и последующем размещении вредоносной версии dylib с тем же именем в рабочей директории приложения. Это приведёт к загрузке приложением dylib, которая размещена в рабочем каталоге программы. При этом вредоносная Dylib будет выполнятся с правами доступа атакуемого приложения.

Рекомендации по защите: Запрет записи пользователями файлов в каталоги поиска dylib. Аудит уязвимостей с помощью Dylib Hijacking Scanner от Objective-See.

Внешние удаленные сервисы (External Remote Services)
Система: Windows
Права: Пользователь
Описание: Злоумышленники могут использовать внешние удаленные сервисы организации, такие как VPN, Citrix и WinRM для закрепления в пределах атакуемой сети. Доступ к сервисам может осуществляться с помощью валидных аккаунтов, полученных с помощью техник перенаправления пользователей на ложные сайты (pharming), или на этапе компрометации сети.

Рекомендации по защите: Ограничение доступа к удаленным сервисам с помощью централизованно управляемых коммутаторов, применение VPN. Запрет прямого удаленного доступа во внутреннюю сеть посредством использования прокси, шлюзов и межсетевых экранов. Отключение служб, которые можно использовать удаленно, например, WinRM. Применение двухфакторной аутентификации. Мониторинг активности использования удаленных сервисов вне рабочего времени.

Недостатки разрешений на уровне файловой системы (File System Permissions Weakness)
Система: Windows
Права: Пользователь, Администратор
Описание: Суть техники заключается в подмене исполняемых файлов, которые автоматически запускаются различными процессами (например, при загрузке ОС или в определенное время, в случае если права на исполняемые файлы настроены неверно). После подмены вредоносный файл будет запущен с правами процесса, таким образом если процесс имеет более высокий уровень доступа злоумышленник сможет осуществить эскалацию привилегий. В рамках данной техники злоумышленники могут пытаться манипулировать двоичными файлами служб Windows.

Другой вариант атаки связан с недостатками алгоритмов в работе самораспаковывающихся установщиков. В процессе инсталляции ПО, установщики зачастую распаковывают различные полезные файлы, в том числе .dll и .exe, в каталог %TEMP%, при этом они могут не устанавливать соответствующие разрешения для ограничения доступа к распаковываемым файлам, что позволяет злоумышленникам совершать подмену файлов и, как следствие, повысить привилегии или обойти контроль учетных записей, т.к. некоторые установщики выполняются с расширенными правами.

Рекомендации по защите: Ограничение прав учетных записей, чтобы только администраторы могли управлять службами и взаимодействовать с бинарными файлами, используемыми службами. Отключение в UAC возможности повышения привилегий для стандартных пользователей. Параметры UAC хранятся в следующем разделе реестра:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System].


Для автоматического отклонения запросов на повышение привилегий необходимо добавить ключ:

  • «ConsentPromptBehaviorUser»=dword:00000000.


Для контроля работы установщиков необходимо добавить ключ:

  • «EnableInstallerDetection»=dword:00000001, который будет требовать ввода пароля для установки программ.

Скрытые файлы и папки (Hidden Files and Directories)
Система: Windows, Linux, macOS
Права: Пользователь
Описание: Злоумышленники могут использовать возможность скрытия файлов и папок, чтобы не привлекать внимания пользователей. В Windows пользователи могут скрывать файлы с помощью команды attrib. Достаточно указать атрибут +h <имя файла>, чтобы скрыть файл или »+s», чтобы отметить файл как системный. Добавив параметр »/S» утилита attrib применит изменения рекурсивно. В Linux/Mac пользователи могут скрывать файлы и папки просто указав в начале имени файла символ ».». После этого файлы и папки будут скрыты от приложения Finder и таких как утилита «ls». В macOS файлы могут быть отмечены флагом UF_HIDDEN, который включит запрет на их видимость в Finder.app, но не запретит видеть скрытые файлы в Terminal.app. Многие приложения создают скрытые файлы и папки, чтобы не загромождать рабочее пространство пользователя. Например, утилиты SSH создают скрытую папку .ssh, в которой хранится список известных хостов и ключи пользователя.

Рекомендации по защите: Предотвращение возможности использования данной техники затруднено в силу того, что скрытие файлов — это штатная функция ОС.

Перехват вызовов функций Windows API (Hooking)
Система: Windows
Права: Администратор, System
Описание: API функции Windows обычно хранятся в DLL-библиотеках. Техника Hooking заключается в перенаправлении вызовов API-функций посредством:

  • Hook-процедур — встроенных в ОС процедур, которые выполняют код при вызове различных событий, например, нажатие клавиш или перемещение мыши;
  • Модификации адресной таблицы (IAT), в которой хранятся указатели на API-функции. Это позволит «обмануть» атакуемое приложение, заставив его запустить вредоносную функцию;
  • Непосредственного изменения функции (сплайсинг), в ходе которого меняются первые 5 байт функции, вместо которых вставляется переход на вредоносную или иную функцию, определенную злоумышленником.


Подобно инъекциям, злоумышленники могут использовать hooking для исполнения вредоносного кода, маскировки его выполнения, доступа к памяти атакуемого процесса и повышения привилегий. Злоумышленники могут захватывать вызовы API, включающие параметры, содержащие аутентификационные данные. Hooking обычно применяется руткитами для скрытия вредоносной активности в системе.

Рекомендации по защите: Перехват событий в ОС является частью нормальной работы системы, поэтому какое либо ограничение данной функциональности может негативно влиять на стабильность работы законных приложений, например антивирусного ПО. Усилия по предотвращению применения техник перехвата необходимо сосредоточить на более ранних этапах цепочки атаки. Обнаружить вредоносную hooking-активность можно с помощью мониторинга вызовов функций SetWindowsHookEx и SetWinEventHook, использования детекторов руткитов, анализа аномального поведения процессов.

Гипервизор (Hypervisor)
Система: Windows
Права: Администратор, System
Описание: Гипервизор может быть скомпрометирован злоумышленником и иметь руткиты, скрытые от гостевых систем.
Рекомендации по защите: Предотвращение доступа злоумышленников к привилегированным учетным записям, необходимым для установки и конфигурирования гипервизора.

IFEO-инъекции (Image File Execution Options Injection)
Система: Windows
Права: Администратор, System
Описание: Механизм Image File Execution Options (IFEO) позволяет запускать вместо программы её отладчик, заранее указанный разработчиком в реестре:

  • HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options/[executable]
    HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\[executable],, где [executable] — это исполняемый двоичный файл отладчика.


Подобно инъекциям, значением [executable] можно злоупотреблять запуская произвольный код, чтобы повысить привилегии или закрепиться в системе. Вредоносные программы могут использовать IFEO на для обхода защиты, регистрируя отладчики, которые перенаправляют и отклоняют различные системные приложения и приложения безопасности.

Рекомендации по защите: Описываемая техника основана на злоупотреблении штатными средствами разработки ОС, поэтому какие-либо ограничения могут вызвать нестабильность работы законного ПО, например, приложений безопасности. Усилия по предотвращению применения техники IFEO-инъекций необходимо сосредоточить на более ранних этапах цепочки атаки. Обнаружить подобную атаку можно с помощью мониторинга процессов с флагами Debug_process и Debug_only_this_process.

Расширения и загружаемые модули ядра (Kernel Modules and Extensions)
Система: Linux, macOS
Права: Root
Описание: Загружаемые модули ядра (LKM) — это специальные программы, которые могут загружаться и выгружаться из ядра без необходимости полной перезагрузки системы. Например, к LKM относятся драйверы устройств. Злоумышленники могут подгружать вредоносные LKM с помощью различных rootkit. Как правило, такие руткиты срывают себя, файлы, процессы, сетевую активность, фальсифицируют журналы аудита, предоставляют бэкдоры. Подобно LKM в macOS существуют так называемые KEXT, которые загружаются и выгружаются командами kextload и kextunload.

Рекомендации по защите: Используйте инструменты обнаружения руткитов в Linux: rkhunter, chrootkit. Ограничивайте доступ к учетной записи root, которая необходима для загрузки модулей в ядро. Применяйте систему принудительного контроля доступа SELinux.

Модификация заголовка LC_LOAD_DYLIB Addition в файлах Mach-O (LC_LOAD_DYLIB Addition)
Система: macOS
Права: Пользователь
Описание: Файлы Mach-O содержат ряд заголовков, которые используются для выполнения определенных операций при загрузке двоичного файла. Заголовок LC_LOAD_DYLIB в бинарниках Mach-O указывает ОС какие dylib-библиотеки нужно подгружать. Изменения заголовков приведут к аннулированию цифровой подписи, однако злоумышленник может удалить из двоичного файла команду LC_CODE_SIGNATURE и система не будет проверять корректность подписи во время его загрузки.

Рекомендации по защите: Все двоичные файлы должны быть подписаны корректными Apple Developer IDs, а белые списки приложений составлены по известным хешам.

Драйверы Local Security Authority (LSASS Driver)
Система: Windows
Права: Администратор, system
Описание: Local Security Authority (LSA) — подсистема Windows, обеспечивающая аутентификацию пользователя. LSA включает несколько динамических взаимосвязанных библиотек DLL, которые выполняются в процессе LSASS.exe. Злоумышленники могут атаковать LSASS.exe путем замены или добавления нелегитимных драйверов LSA с последующим выполнением произвольного кода. Техника реализована во вредоносных программах Pasam и Wingbird, которые «подбрасывают» модифицированные DLL, используемые при загрузке LSASS. При этом вредоносный код выполняется до того, как нелегитимная DLL вызовет сбой и последующее падение службы LSASS.

Рекомендации по защите: В Windows 8.1 и Server 2012 R2 включите защиту LSA путём активации указанного ключа:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL=dword:00000001.


Эта защита гарантирует, что загружаемые LSA плагины и драйверы будут подписаны цифровой подписью Microsoft. В Windows 10 и Server 16 включите Windows Defender Credential Guard для запуска lsass.exe в изолированной виртуальной среде. В целях снижения риска загрузки в lsass.exe вредоносных библиотек включите режим безопасного поиска DLL:

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode.


Агенты запуска (Launch Agent)
Система: macOS
Права: Пользователь, администратор
Описание: Техника заключается в злоупотреблении функционалом создания и запуска пользователями Агентов запуска (Launch Agent) — автозапускаемых сервисов на уровне пользователя. При входе каждого пользователя в систему launchd загружает параметры Агентов запуска из файлов *.plist. Plist-файлы имеют XML-структуру и содержат инструкции, которые указывают launchd какие исполняемые файлы и когда запускать. Plist-файлы можно найти в следующих директориях:

  • /System/Library/LaunchAgents;
  • /Library/LauncAgents;
  • $Home/Library/LaunchAgents.


Злоумышленники могут также маскировать имена вредоносных Агентов запуска с использованием названий легитимных программ. Например, троян Komplex создаёт агент запуска: $HOME/Library/LaunchAgents/com.apple.updates.plist.

Рекомендации по защите: С помощью групповой политики настройте ограничение создания пользователями Агентов запуска. Создание Агентов запуска предполагает загрузку или создание plist-файлов на диск, поэтому сосредоточьте усилия по защите на более ранних этапах атаки.

Запуск демонов (Launch Daemon)
Система: macOS
Права: Администратор
Описание: Техника заключается в изменении злоумышленником параметров сервисов системного уровня запуска — Launch Daemon, указанных в plist-файлах. При загрузке системы процесс Launchd загружает параметры сервисов (демонов) из plist-файлов расположенных в следующих директориях:

  • /System/Library/LaunchDeamons;
  • /Library/LaunchDeamons.


Launch Daemon могут создаваться с администраторскими привилегиями, но выполнятся под учетной записью root, таким образом злоумышленник может реализовать эскалацию привилегий. Разрешения plist-файлов должны быть root: while, однако сценарий или программа, указанные в нём, могут иметь менее строгие разрешения. Поэтому злоумышленник может изменить исполняемые файлы, указанные в plist, и, таким образом, модифицировать текущие системные сервисы для закрепления в системе или эскалации привилегий.

Рекомендации по защите: Ограничьте привилегии пользователей, чтобы только авторизованные администраторы могли создавать Launch Daemon. Рассмотрите возможность мониторинга создания в системе plist-файлов с помощью таких приложений как KnockKnock.

Утилита Launchctl
Система: macOS
Права: Пользователь, Администратор
Описание: Launchctl — утилита для управления сервисом Launchd. C помощью Launchctl можно управлять системными и пользовательскими сервисами (LaunchDeamons и LaunchAgents), а также выполнять команды и программы. Launchctl поддерживает подкоманды в командной строке, интерактивные или перенаправленные со стандартного ввода:

launchctl submit -l [labelname] — /Path/to/thing/to/execute ''arg» ''arg» ''arg».
Запуская и перезапуская сервисы и демоны, злоумышленники могут выполнить код и даже обойти белый список, если launchctl является разрешенным процессом, однако загрузка, выгрузка и перезагрузка сервисов и демонов может требовать повышенных привилегий.

Рекомендации по защите: Ограничение прав пользователей на создание Launch Agents и запуск Launch Deamons с помощью групповой политики. С помощью приложения KnockKnock можно обнаружить программы, которые используют launchctl для управления Launch Agents и Launch Deamons.

Локальное планирование задач (Local Job Scheduling)
Система: Linux, macOS
Права: Пользователь, администратор, root
Описание: Злоумышленники могут создать в атакуемых системах задания для несанкционированного запуска программ при загрузке системы или по расписанию. В системах Linux и Apple поддерживается несколько методов планирования запуска периодических фоновых задач: cron, at, launchd. В отличие от Планировщика задач Windows, планирование заданий в Linux-системах невозможно осуществить удаленно, за исключением использования удаленных сеансов типа SSH.

Рекомендации по защите: Ограничение прав пользователей на создание планируемых заданий, блокировка системных утилит и другого ПО, которое может использоваться для планирования заданий.

Элементы входа (Login Item)
Система: macOS
Права: Пользователь
Описание: Злоумышленники в целях закрепления в системе могут настроить автозапуск своего кода с помощью элементов входа (login Item) — пользовательских настроек автозапуска приложений при каждом входе в систему. Login Item, созданные с помощью Service Management Framework, не отображаются в системных настройках и могут быть удалены только через приложение, в котором они были созданы. Пользователи могут управлять только теми Login Item, которые отображаются в системных настройках. Настройки таких Login Item хранятся в plist-файле в пользовательской директории:

~/Library/Preferences/com.apple.loginitems.plist.

Приложения, входящие в состав Login Item, при запуске могут отображать видимые пользователю окна, но с помощью опции «Hide» их можно скрыть.

Рекомендации по защите: Ограничивайте права пользователей на создание Login Item. Стоит отметить, что удержание клавиши shift во время входа в систему запрещает автоматический запуск приложений. Контролируйте настройки Login Item (Системные настройки → Пользователи и группы → Элементы входа).

Logon-скрипты (Logon Scripts)
Си

© Habrahabr.ru