Cloud-Native безопасность и DevSecOps
Cloud-native-стек незаметно сдвигает границу безопасности, и большинство ошибок здесь — от того, что не заметили, куда она ушла. Контейнер — не лёгкая виртуальная машина, а обычный процесс хоста, которому ядро выдало изолированное представление системы через namespaces и cgroups поверх одного общего ядра. Именно из этого следует, что privileged: true, монтирование hostPath, hostPID или примонтированный сокет container-runtime — не «дополнительные опции», а доступ уровня узла; и именно поэтому Kubernetes, который повторяет каждую такую настройку по всему флоту, требует least-privilege RBAC, сети deny-by-default и admission control вместо доверия.
Безопасность также сдвигается раньше — «влево» — в конвейер, который собирает артефакт, и вверх — в режимы комплаенса, которые аудируют всё целиком. Сканер полезен, только если его находкам доверяют и по ним действуют; gate, который «кричит „волки“», обходят за неделю; а прохождение аудита доказывает, что контроли существуют, — а это не то же самое, что быть защищённым. Три слоя ниже собирают модель.
Карта темы
- Безопасность контейнеров и Kubernetes — почему контейнер не является границей уровня VM, как уменьшить радиус поражения контейнера, supply chain образов и кластерные контроли (RBAC, шифрование Secrets, NetworkPolicy, Pod Security Admission), удерживающие одну компрометацию локальной.
- Конвейеры DevSecOps — сдвиг безопасности влево через SAST/DAST/IAST/SCA, триаж находок ради доверия к инструментам, дисциплина supply chain и секретов, харденинг конвейера и gate, блокирующие по риску, а не по «сырой» severity.
- Соответствие требованиям — почему комплаенс — это не безопасность, основные режимы на инженерной глубине (GDPR, PCI DSS, SOC 2, ISO 27001, HIPAA) и как политика, контроли и машинно-генерируемые свидетельства превращаются в аудит, который можно пройти честно.
Частые ошибки и ловушки
| Ошибка | Последствие |
|---|---|
| Считать контейнер границей уровня VM | privileged/hostPath/монтирование сокета читаются как безобидные; escape выводит на узел |
| Доверять Kubernetes Secret, потому что это «не открытый текст» | base64 — это кодирование, а не шифрование; без etcd encryption at rest утёкший бэкап = утёкший секрет |
| Заставлять каждую находку сканера ломать сборку | Шум приучает команды отключать или обходить gate за неделю |
| Читать оценку CVSS как приоритет | Приоритет — это exploitability плюс exposure; critical на недостижимом коде — не авария |
| Приравнивать пройденный аудит к безопасности | Комплаенс доказывает, что контроли есть на бумаге, а не что система устоит перед реальным атакующим |
Значение для собеседований
Тема проверяет, умеете ли вы безопасно строить внутрь cloud-native-стека, а не перечислять названия инструментов. Кандидат, который говорит «контейнер делит ядро хоста, поэтому privileged — это доступ к узлу, а Kubernetes Secret — это base64, пока не включено etcd encryption», сразу опережает того, кто называет контейнер песочницей, а Secret — зашифрованным. Сильные ответы связывают все три слоя: захардненный образ, поставленный через доверенный gate, под контролем, который аудитор может проверить.