Повышение привилегий
Повышение привилегий (англ. 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 →