Что такое атака «Человек посередине» и на что она направлена Pipelines
Если вы спрашиваете, что такое атака «человек посередине» в DevOps, то это не просто метод сетевого сниффинга. Это целенаправленная атака. способ скомпрометировать ваш CI/CD pipelines путем перехвата и манипулирования передаваемыми данными, зависимостями, скриптами или артефактами, когда шифрование слабое или отсутствует.
Рассмотрим реальный сценарий: исполнитель непрерывной интеграции (CI) извлекает зависимости из стороннего репозитория по протоколу HTTP. Если TLS настроен неправильно или, что ещё хуже, отсутствует, злоумышленники могут перехватить этот запрос и внедрить вредоносные пакеты, которые выглядят как легитимные. В быстро меняющихся pipelineЭти артефакты могут быть созданы и развернуты до того, как кто-либо это заметит. Это классический пример атаки «человек посередине», но с CI/CD последствия.
Для атаки не требуется взламывать шифрование; она использует слабые конфигурации. Рассмотрим сборку контейнера, которая загружает базовый образ или скрипт из внутреннего репозитория без аутентификации. Это окно для атаки MITM, если внутренний трафик не зашифрован или не сегментирован. Если вы все еще не понимаете, что такое атака «человек посередине», представьте себе, что это невидимый агент, который молча изменяет то, что вы pipeline потребляет, не оставляя видимых следов.
Где Pipeline Перерывы: реальные точки входа MITM в CI/CD
Существует несколько слабых мест, где атака «man-in-the-middle» может взять под контроль процессы DevOps:
- Получение пакетов по HTTP: Распространено в устаревших сборках или в реестрах, размещенных на собственном сервере. Если вы извлекаете Пакеты Python, NPM модули, или Изображения докера без HTTPS вы уязвимы.
- Непроверенные источники: PipelineЧасто используют инструменты сообщества или инструменты с открытым исходным кодом, не проверяя их целостность. Злоумышленники, использующие метод MITM, могут вмешаться в эти загрузки.
- Хранилища артефактов без аутентификации: Легкими целями являются контейнеры S3, серверы Git LFS или внутренние хранилища артефактов, доступные по обычному протоколу HTTP.
- Небезопасные внутренние службы: Многие внутренние CI/CD Инструменты (исполнители, агенты, скрипты развертывания) предполагают безопасность периметра сети. MITM может использовать это предположение.
Пример:
dependencies:
- wget http://internal.repo.local/package.tar.gz
⚠️ Небезопасный пример: не использовать в производстве
Если этот трафик перехвачен, злоумышленнику нужно просто подать поддельный .tar.gz с полезной нагрузкой. Она распаковывается и выполняется на этапе сборки. Это предварительноcisЧто такое атака «человек посередине» в современном мире? pipelines: он использует предположения о доверии.
Вредоносные сборки: внедрение кода во время выполнения и сборки
Атаки типа «человек посередине» выходят за рамки перехвата; они приводят к внедрению кода. Как только вредоносная зависимость или артефакт попадает в систему, pipeline, злоумышленник контролирует сборку.
- Инъекция времени сборки: Компиляторы или скрипты сборки, использующие непроверенные зависимости, могут содержать троянский код. Представьте себе обфусцированную строку в Makefile, которая выполняется с повышенными правами.
- Инъекция во время выполнения: Переменные окружения или секреты, представленные в виде открытого текста, можно захватить и использовать повторно. Если ваш исполнитель регистрирует экспорт AWS_SECRET_KEY=…, у вас есть возможность утечки.
- Динамическая пошаговая манипуляция: CI, определенный в YAML pipelineЧасто используют curl/wget для загрузки динамических скриптов. Если они не защищены, злоумышленники, использующие атаку типа «человек посередине», могут заменить их на лету.
curl http://setup.ci/init.sh | bash # Dangerous without TLS and verification
⚠️ Небезопасный пример: не использовать в производстве
Знание того, что такое атака «человек посередине», облегчает понимание того, как происходят эти инъекции: злоумышленник становится частью процесса доставки, внедряя вредоносные инструкции без прямого доступа к вашему исходному коду.
Защита DevOps Pipelines против рисков атак типа «человек посередине»
Вы не можете полностью исключить угрозу атаки типа «человек посередине», но вы можете сделать это pipelineзначительно сложнее пойти на компромисс.
Осуществимые шаги:
- Всегда применяйте TLS: Каждый артефакт, зависимость и скрипт должны быть загружены по протоколу HTTPS.
- Проверка контрольных сумм/хешей: Используйте SHA256 или более сильные дайджесты и проверяйте перед выполнением.
- Подписание и проверка артефактов: Используйте Sigstore или in-toto для подтверждения происхождения.
- Безопасные исполнители CI: Изолируйте среды, избегайте общих исполнителей и отключите доступ к оболочке, где это возможно.
- Изолировать секреты: Вставляйте секреты только на этапах, где это необходимо. Никогда не распечатывайте их и не храните в журналах.
действия:
- name: Fetch
run: |
curl -fsSL https://secure-repo.com/tool.sh -o tool.sh
echo "<sha256> tool.sh" | sha256sum -c -
✅ Проверяет целостность скрипта перед выполнением
Это своего рода меры защиты, которые делают атаку «человек посередине» теоретическим вопросом, а не производственным инцидентом.
Почему это важно: влияние на цепочку поставок и усиление риска
Атака «человек посередине» в CI/CD pipeline это не просто локальная проблема; она портит всю вашу цепочка поставок программного обеспечения. Каждый потребитель вашей сборки подвергается риску.
Когда вредоносный артефакт попадает в сборку, он распространяется ниже по цепочке:
- Скомпрометированные контейнеры отправляются в производство.
- Информация об отравленных библиотеках публикуется в публичных реестрах.
- Клиенты устанавливают защищённое программное обеспечение.
Именно поэтому атаки на цепочки поставок столь разрушительны. MITM часто является первым шагом, а не конечной целью. Если вы задавались вопросом, что такое атака «человек посередине», теперь вы знаете: это отправная точка для компрометации всей цепочки.
Заключение: сдвиг влево Pipeline Security
Атака «человек посередине» в DevOps — это не пассивное прослушивание, а активный перехват небезопасных потоков в вашем CI/CD. Неправильно настроенный TLS, неаутентифицированные источники и непроверенные артефакты открывают дверь. Разработчикам необходимо относиться к pipelineЭто как производственный код: протестированный, проверенный и безопасный. Это означает отсутствие неавторизованных загрузок, отсутствие HTTP-источников и динамического выполнения без проверки.
Такие инструменты, как Ксигени помочь командам укрепить свои pipelineпутем обнаружения слабых мест, проверки целостности артефактов и обнаружение подмены зависимостей до того, как она распространится. Сдвиг влево не является обязательным; это способ оставаться впереди реальных угроз AppSec. Понимания того, что такое атака «человек посередине», недостаточно. Необходимо обнаружить её, предотвратить и прекратить лечение. pipeline как гражданин второго сорта в вашей модели безопасности.





