Что такое упорство в информационной безопасности

«Упорство — это не просто технический приём атаки, это философия противника, который перестаёт быть гостем и становится постоянным жильцом. Он не просто крадёт ключи, он меняет замки, оставляет своих людей в охране, а иногда и подменяет фундамент здания, чтобы вернуться в любой момент — даже если все двери будут заперты.»

Упорство: суть и цель

В контексте кибербезопасности упорство (persistence) — это способность злоумышленника сохранять контроль над скомпрометированной системой после перезагрузки, завершения сеанса пользователя или попыток администратора очистить систему. Это не одно действие, а комплекс методов, направленных на обеспечение повторного доступа. Цель — превратить случайный успех в долгосрочное присутствие, закрепиться в инфраструктуре как можно глубже и незаметнее.

Механизмы упорства работают на разных уровнях: от прав приложений и реестра Windows до служб, планировщика задач, ассоциаций файлов и даже микропрограммного обеспечения. Часто эти методы используются в связке, создавая многоуровневую и отказоустойчивую систему контроля.

Ключевые векторы атак и механизмы упорства

Способы достижения упорства можно классифицировать по уровню воздействия и требуемым привилегиям.

Уровень операционной системы и автозагрузки

Самый распространённый слой для закрепления — использование механизмов автозапуска операционной системы.

  • Ключи автозагрузки реестра: Злоумышленник добавляет запись о своём исполняемом файле в один из ключей реестра, отвечающих за запуск при входе в систему (например, HKCUSoftwareMicrosoftWindowsCurrentVersionRun). Это позволяет вредоносной программе запускаться автоматически при каждом входе пользователя.
  • Папки автозапуска: Размещение ярлыка (.lnk) или исполняемого файла в специальных каталогах, таких как %APPDATA%MicrosoftWindowsStart MenuProgramsStartup.
  • Службы Windows: Создание новой или модификация существующей службы для запуска вредоносной полезной нагрузки с правами SYSTEM. Это один из самых живучих методов.
  • Запланированные задачи: Использование планировщика задач Windows (schtasks) или утилиты at для периодического или отложенного выполнения кода.

Уровень приложений и пользовательского окружения

Противник стремится встроиться в легитимные процессы и приложения, чтобы не выделяться.

  • Расширения браузеров: Установка вредоносных расширений для перехвата сессий, кражи cookie и сохранения доступа к веб-приложениям.
  • Модификация двоичных файлов: Подмена или изменение легитимных исполняемых файлов (например, SSH-клиентов, системных утилит).
  • Ассоциации файлов: Изменение записей в реестре, отвечающих за открытие файлов с определённым расширением, чтобы запускать вредоносный код при открытии, например, .txt или .doc файла.
  • Профили и скрипты: Внедрение в скрипты входа (logon scripts) или профили PowerShell (profile.ps1), которые выполняются при старте сеанса пользователя.

Уровень аутентификации и учётных записей

Здесь упорство достигается через контроль над самим процессом проверки подлинности.

  • Создание учётных записей: Добавление локальных или доменных учётных записей (например, с помощью net user), включая скрытые или маскирующиеся под системные.
  • Модификация SSH-ключей: Добавление своего открытого ключа в файл ~/.ssh/authorized_keys на Linux-сервере для беспарольного доступа.
  • Регистрация устройств для MFA: Привязка контролируемого устройства (например, телефона) к учётной записи жертвы в системах многофакторной аутентификации для обхода этого фактора.
  • Внедрение в LSA (Local Security Authority): Использование пакетов аутентификации (Authentication Packages), поставщиков поддержки безопасности (SSP) или фильтров паролей для перехвата и подмены учётных данных в памяти.

Низкоуровневое упорство (Bootkit, Firmware)

Самые сложные для обнаружения и удаления методы работают ниже уровня ОС.

  • Модификация UEFI/BIOS: Внедрение вредоносного кода в микропрограммное обеспечение материнской платы. Такой код активируется до загрузки операционной системы и может пережить даже полную переустановку ОС.
  • Буткиты: Внедрение в загрузочный сектор (MBR) или в ранние этапы загрузки ОС.
  • Злоупотребление сетевыми загрузками (PXE): Подмена образа ОС, загружаемого сетевым устройством с TFTP-сервера.

Методы обнаружения и защиты

Борьба с упорством требует многослойного подхода: от базовой гигиены до продвинутого мониторинга.

Профилактические меры

  • Принцип наименьших привилегий: Жёсткое ограничение прав учётных записён, особенно локальных администраторов и учётных записей служб. Запрет на использование привилегированных учётных записей для повседневных задач.
  • Многофакторная аутентификация (MFA): Обязательное использование MFA для всех привилегированных и пользовательских учётных записей, особенно для доступа к критическим системам и облачным сервисам. Это сильно усложняет использование украденных учётных данных.
  • Контроль установки ПО: Запрет на установку неподписанных драйверов, использование списков блокировки уязвимых драйверов (Vulnerable Driver Blocklist). Включение функций типа Protected Process Light (PPL) для процесса LSA (lsass.exe).
  • Блокировка ненужных механизмов: Отключение SSH на серверах, где он не требуется, запрет на выполнение скриптов из непроверенных мест, отключение устаревших протоколов и служб (например, утилиты at в пользу schtasks с аудитом).

Активный мониторинг и обнаружение

  • Аудит автозагрузки: Регулярная проверка ключей реестра автозапуска, папок Startup, служб и запланированных задач с помощью инструментов вроде Sysinternals Autoruns. Сравнение с известным базовым состоянием системы.
  • Мониторинг создания учётных записей: Настройка оповещений на создание любых новых локальных или доменных учётных записей, особенно в нерабочее время или с подозрительными именами.
  • Контроль целостности файлов: Проверка цифровых подписей системных и прикладных двоичных файлов. Мониторинг изменений в критически важных файлах, таких как authorized_keys или библиотеки в System32.
  • Анализ сетевой активности: Выявление аномальных исходящих подключений, особенно использующих нестандартные порты или протоколы (например, BITS для скрытой передачи данных).
  • Ведение журналов и SIEM: Централизованный сбор и анализ логов с хостов, контроллеров домена, сетевого оборудования. Поиск корреляционных правил, связывающих подозрительный вход в систему с последующим изменением реестра или созданием службы.

Ответ на инцидент: удаление упорства

Когда факт закрепления обнаружен, простого удаления вредоносного файла недостаточно. Необходимо:

  1. Полная изоляция системы от сети для предотвращения дальнейшего воздействия и связи с командным центром.
  2. Тщательный анализ всех механизмов автозагрузки с помощью заведомо чистых инструментов, запущенных с внешнего носителя. Поиск должен охватывать все перечисленные уровни: реестр, службы, задачи, расширения, LSA.
  3. Проверка и сброс учётных записей: Аудит всех учётных записей, особенно недавно созданных или с изменёнными правами. Сброс паролей для привилегированных учётных записей и ключей SSH.
  4. Восстановление из чистого бэкапа — самый надёжный способ, при условии что бэкап гарантированно не содержит следов компрометации. В случае подозрений на модификацию микропрограммного обеспечения может потребоваться физическая замена или перепрошивка оборудования.

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

Оставьте комментарий