Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 227

Внедрение команд

ПроверилCybersecurity entrepreneur & security researcher

Что такое Внедрение команд?

Внедрение командАтака, при которой пользовательский ввод без фильтрации передаётся в системный шелл, и приложение выполняет команды, заданные злоумышленником.


Внедрение команд (OS command injection) возникает, когда приложение собирает системную команду путём конкатенации недоверенного ввода и передаёт результат в шелл. Метасимволы ;, &, |, $() или обратные кавычки позволяют злоумышленнику добавлять дополнительные команды, которые исполняются с привилегиями процесса приложения. Последствия включают произвольное чтение и запись файлов, перемещение по сети, обратные шеллы и полный захват сервера. Уязвимость входит в OWASP Top 10 в категории «Инъекции» (A03:2021) и каталогизирована как CWE-78.

Первопричина — интерпретатор метасимволов шелла, а не сам ввод, поэтому решающее различие проходит между вызовом шелла (system(), os.system, Runtime.exec("sh -c ..."), обратные кавычки) и прямым вызовом целевого бинарного файла с вектором аргументов (execve, subprocess.run([...], shell=False), ProcessBuilder). API, принимающие массив аргументов, передают каждый токен как литерал, поэтому метасимволы никогда не попадают в парсер. Родственный вариант — инъекция аргументов — злоупотребляет собственными флагами программы (например, подсовывая --output или -o ProxyCommand в git, curl или ssh), даже когда шелл вообще не вызывается.

На сетевых пограничных устройствах реальные последствия крайне серьёзны. CVE-2024-3400 (CVSS 10.0) — неаутентифицированное внедрение OS-команд в компоненте GlobalProtect в PAN-OS от Palo Alto Networks, эксплуатировавшееся как zero-day с апреля 2024 года актором, которого Volexity отслеживает как UTA0218, для установки обратных шеллов и кражи конфигураций межсетевого экрана. CVE-2024-21887 в Ivanti Connect Secure в связке с обходом аутентификации CVE-2023-46805 давала неаутентифицированное выполнение команд и подверглась массовой эксплуатации в начале 2024 года. Ошибка Shellshock 2014 года (CVE-2014-6271) позволяла злоумышленникам внедрять команды через подготовленные переменные окружения, разбираемые Bash, и была достижима через CGI, DHCP и SSH.

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

flowchart TD
  A[Ввод пользователя: hostname] --> B{Встроен в команду}
  B -->|"os.system('ping ' + host)"| C[Шелл интерпретирует метасимволы]
  C --> D["host = 127.0.0.1; cat /etc/shadow"]
  D --> E[Команда злоумышленника исполняется от имени пользователя приложения]
  E --> F[Обратный шелл / кража данных / захват]
  B -->|"subprocess.run(['ping', host], shell=False)"| G[Аргумент передан как литеральный токен]
  G --> H[Нет разбора шеллом - инъекция нейтрализована]
  style F fill:#c0392b,color:#fff
  style H fill:#27ae60,color:#fff

Примеры

  1. 01

    Утилита ping, конкатенирующая параметр хоста, позволяет через 127.0.0.1; cat /etc/shadow раскрыть хеши паролей.

  2. 02

    Эндпоинт обработки изображений, вызывающий ImageMagick, выполняет команду злоумышленника из подготовленного имени файла.

Частые вопросы

Что такое Внедрение команд?

Атака, при которой пользовательский ввод без фильтрации передаётся в системный шелл, и приложение выполняет команды, заданные злоумышленником. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает Внедрение команд?

Атака, при которой пользовательский ввод без фильтрации передаётся в системный шелл, и приложение выполняет команды, заданные злоумышленником.

Как защититься от Внедрение команд?

Защита от Внедрение команд обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Внедрение команд?

Распространённые альтернативные названия: Инъекция OS-команд, Shell injection.

Связанные термины

См. также