Открыть сервис

Повышение привилегий

Повышение привилегий (англ. privilege escalation) — это уязвимость или техника атаки в сфере информационной безопасности, при которой субъект (пользователь, процесс или программа) получает доступ к ресурсам, функциям или данным, для которых у него нет разрешения. В контексте операционных систем и приложений повышение привилегий означает переход от ограниченного набора прав (например, обычного пользователя) к более широкому (например, администратора или суперпользователя). Данная атака является одним из ключевых этапов эксплуатации компьютерных систем, часто используемым злоумышленниками для закрепления в системе, обхода ограничений безопасности и выполнения несанкционированных действий.

Классификация

Повышение привилегий разделяется на два основных типа в зависимости от исходного уровня доступа злоумышленника.

Вертикальное повышение привилегий

Вертикальное повышение привилегий (также называемое elevation of privilege) — это получение прав более высокого уровня, чем изначально предоставлено пользователю или процессу. Например, обычный пользователь системы получает права администратора, а затем — права суперпользователя (root). Этот тип атаки часто является целью злоумышленников, которые уже получили начальный доступ к системе с низкими привилегиями (например, через уязвимость в веб-приложении) и стремятся расширить контроль.

Горизонтальное повышение привилегий

Горизонтальное повышение привилегий (также lateral privilege escalation) — это получение доступа к ресурсам или функциям, принадлежащим другому пользователю с тем же уровнем привилегий. Например, один обычный пользователь получает возможность читать файлы другого обычного пользователя. Хотя уровень прав не меняется, такой доступ может нарушить политику изоляции и привести к утечке конфиденциальной информации.

Причины и уязвимости

Повышение привилегий возникает из-за ошибок в проектировании, реализации или конфигурации программного обеспечения. Основные причины включают:

  • Ошибки в коде ядра операционной системы. Уязвимости в драйверах устройств, системных вызовах или модулях ядра могут позволить обычному пользователю выполнить код с привилегиями ядра. Примеры: CVE-2017-16995 (уязвимость в Linux-ядре, позволяющая повышение привилегий через eBPF) или CVE-2021-1732 (уязвимость в Windows-ядре, связанная с Win32k).
  • Некорректная обработка прав доступа к файлам и процессам. Если системный файл или процесс имеет неправильные разрешения (например, файл, принадлежащий root, доступен для записи всем пользователям), злоумышленник может изменить его содержимое или выполнить от имени суперпользователя.
  • Недостатки в механизмах аутентификации и авторизации. В веб-приложениях и базах данных ошибки в проверке сессий, токенов или ролей могут привести к тому, что пользователь с низким уровнем доступа получит доступ к административным функциям.
  • Уязвимости в сторонних программах. Приложения, работающие с повышенными привилегиями (например, антивирусы, системные утилиты), могут содержать ошибки, позволяющие обычному пользователю выполнить код от их имени.
  • Неверная конфигурация безопасности. Например, оставленные по умолчанию пароли администратора, включённые отладочные режимы или неправильно настроенные политики контроля доступа.

Методы атак

Эксплуатация уязвимостей ядра

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

Атаки на основе DLL-инъекции и загрузки библиотек

В операционных системах Windows распространён метод «DLL-инъекция» (DLL injection), когда злоумышленник заставляет процесс, работающий с высокими привилегиями, загрузить вредоносную библиотеку. Это может произойти, если процесс ищет библиотеку в каталоге, доступном для записи обычному пользователю (например, в текущем рабочем каталоге). Аналогичная техника существует в Linux — атака на основе LD_PRELOAD.

Использование SUID-битов и setuid-программ

В Unix-подобных системах (Linux, macOS) программы с установленным SUID-битом (set user ID) выполняются с правами владельца файла, а не запустившего их пользователя. Если такая программа имеет уязвимость (например, переполнение буфера или некорректную обработку аргументов), злоумышленник может использовать её для выполнения команд с правами владельца (обычно root). Примеры: уязвимости в утилитах sudo, pkexec, cve-2021-4034 (PwnKit).

Атаки на основе символических ссылок

Злоумышленник может создать символическую ссылку, указывающую на критический системный файл, и обмануть процесс, работающий с высокими привилегиями, чтобы тот записал данные в эту ссылку. Это позволяет изменить защищённые файлы (например, /etc/passwd или /etc/shadow).

Атаки на веб-приложения

В веб-приложениях повышение привилегий часто реализуется через:

  • Небезопасные прямые ссылки на объекты (IDOR) — злоумышленник изменяет идентификатор в URL (например, /user/123 на /user/1) и получает доступ к данным другого пользователя.
  • Уязвимости в механизмах аутентификации — обход проверки ролей (например, изменение параметра role=user на role=admin в запросе).
  • SQL-инъекции — выполнение запросов к базе данных, которые изменяют права пользователя или извлекают данные администратора.

Примеры известных атак

  • CVE-2021-4034 (PwnKit) — уязвимость в утилите pkexec (PolicyKit), присутствовавшая во всех дистрибутивах Linux с 2009 года. Позволяла любому локальному пользователю получить права root без ввода пароля. Эксплойт был опубликован в январе 2022 года.
  • CVE-2019-13272 (Linux Kernel) — уязвимость в обработчике системного вызова ptrace, позволяющая локальному пользователю повысить привилегии до root. Затрагивала ядра Linux до версии 5.1.17.
  • CVE-2020-1472 (Zerologon) — уязвимость в протоколе Netlogon (Microsoft Windows Server), позволяющая атакующему, имеющему доступ к контроллеру домена, изменить пароль учётной записи и получить права администратора домена.
  • Атака на систему «Сбербанк» (2019) — в отчётах по безопасности упоминалось, что злоумышленники использовали уязвимости в Windows для повышения привилегий и кражи данных из внутренних систем банка. Конкретные детали атаки не разглашались.

Защита от повышения привилегий

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

  • Принцип наименьших привилегий — каждый пользователь и процесс должны иметь только минимально необходимые права для выполнения своих задач. Это ограничивает потенциальный ущерб при компрометации.
  • Регулярное обновление программного обеспечения — установка патчей безопасности для операционной системы, ядра, драйверов и приложений. Многие известные уязвимости, используемые для повышения привилегий, исправляются производителями.
  • Использование механизмов изоляцииконтейнеризация (Docker, LXC), виртуализация, песочницы (sandbox) и мандатный контроль доступа (SELinux, AppArmor) ограничивают возможности злоумышленника даже при получении начальных прав.
  • Настройка политик аудита и мониторинга — регистрация событий, связанных с изменением прав, запуском подозрительных процессов и попытками доступа к защищённым ресурсам. Системы обнаружения вторжений (IDS) и управления событиями безопасности (SIEM) могут выявлять аномалии.
  • Безопасное программирование — разработчики должны избегать ошибок, приводящих к уязвимостям: проверка границ буфера, корректная обработка входных данных, использование безопасных функций (например, strncpy вместо strcpy), минимизация кода, работающего с повышенными привилегиями.
  • Использование технологий принудительного контроля целостности — например, Integrity Measurement Architecture (IMA) в Linux или Device Guard в Windows, которые проверяют подлинность исполняемого кода.

Значение в кибербезопасности

Повышение привилегий является критическим этапом в цепочке атаки (kill chain). После получения начального доступа к системе (например, через фишинг или уязвимость в веб-приложении) злоумышленник, как правило, стремится повысить свои привилегии для выполнения более опасных действий: установки бэкдоров, кражи баз данных, шифрования файлов (вымогательское ПО), перемещения по сети (lateral movement) и закрепления в инфраструктуре. По данным отчётов компаний по кибербезопасности (например, CrowdStrike, Mandiant), более 70% успешных атак на корпоративные сети включают этап повышения привилегий.

В России вопросы противодействия повышению привилегий регулируются в рамках общих требований к защите информации, установленных Федеральным законом «О безопасности критической информационной инфраструктуры Российской Федерации» (№ 187-ФЗ) и методическими документами ФСТЭК России. Организации, работающие с государственными информационными системами или объектами критической инфраструктуры, обязаны проводить аттестацию систем на соответствие требованиям безопасности, включая защиту от несанкционированного доступа и повышения привилегий.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →