Безопасность приложений начинается на этапе их проектирования и принятия архитектурных решений и закладывается при написании каждой строки кода и подготовки инфраструктуры для их запуска. Компаниям важно встраивать практики безопасной разработки в полный цикл создания корпоративных бизнес-приложений, поскольку выявление уязвимостей ближе к завершению создания продукта или после вывода в продуктивную среду значительно увеличивает сложность и стоимость их устранения. Мы рекомендуем организациям — и тем, которые самостоятельно разрабатывают информационные системы, и тем, кто выступает подрядчиком по созданию и поддержанию систем, — использовать комплексную методологию безопасной разработки. Это поможет учесть все важные детали и наладить процессы между командами разработки (Dev & DevOps), инженерии данных (DataOps), инженерии ML-сервисов (MLOps) и безопасности (AppSec).
Управление уязвимостями в коде приложений
Мы рекомендуем компаниям использовать статические (SAST) и динамические (DAST) сканеры на этапе разработки и модернизации приложений. Такие классы решений позволяют своевременно на ранних этапах создания приложений выявить уязвимости и устранить их до момента запуска сервиса в эксплуатацию. Инструменты анализа кода выявляют как типовые, так и сложные уязвимости, включая обнаружение потенциально опасных функций, приводящих к изменениям в логике без эксплуатации (уязвимости нарушения бизнес-логики). Сканеры могут выявить ошибки конфигурации приложений, серверов приложений и веб-серверов, а также анализируют условия эксплуатации уязвимостей, что важно для приоритизации их устранения. Кроме того, сканеры кода способны обнаружить уязвимости в обфусцированном коде, что важно при разработке фронтенд-модулей на JavaScript.
Для обеспечения безопасности API также важно использовать статические и динамические сканеры. Такая практика позволит избежать уязвимостей класса BOLA, ошибок небезопасной сериализации и других специфичных для API паттернов. Кроме того, необходимо внедрить строгую валидацию данных, поступающих от сторонних API, а также встроить проверки исходящих URL для защиты от SSRF-атак. Для аутентификации рекомендуется использовать стандарты OAuth 2.0 и OpenID Connect (OIDC) с применением JWT (JSON Web Tokens). На этапе проектирования и разработки необходимо назначать права доступа к каждому эндпойнту в соответствии с принципом минимальных привилегий.
Защита кластеров контейнеризации и облачных сред
Для защиты среды контейнеризации на базе Docker или Kubernetes мы рекомендуем использовать решения класса container security. Эти инструменты помогают гранулярно настраивать кластеры контейнеризации — их конфигурации, сетевые политики и сервисные учетные записи — согласно лучшим практикам безопасности. Важная задача — обеспечить контроль конфигураций для выявления незащищенных открытых сетевых путей и доступов, анализ ролевой модели и контроль сетевых политик при межсервисном взаимодействии.
В cloud-native-архитектуре среда контейнеризации создается и настраивается согласно паттерну infrastructure as code, поэтому важно проверять сетевые политики, конфигурации кластера, конфигурации приложений и инфраструктуры на соответствие лучшим практикам безопасности. Мы также рекомендуем настраивать ротацию нод и подов для превентивной защиты в случае попыток закрепления со стороны злоумышленника.
Практики защиты инфраструктуры разработки
Для защиты инфраструктуры разработки приложений мы рекомендуем компаниям сформировать и поддерживать актуальный перечень разрешенных IDE и запретить использование любых других инструментов разработки на рабочих станциях. Установочные пакеты необходимо загружать исключительно с официальных ресурсов вендора, верифицировать контрольные суммы до запуска и прогонять через изолированную песочницу для динамического анализа поведения. Плагины и расширения рекомендуется устанавливать только из утвержденного внутреннего реестра с предварительной проверкой на наличие избыточных разрешений (доступ к сети, файловой системе, переменным окружения) и признаков вредоносной активности.
Личные токены доступа (PAT) к репозиториям, API-ключи и сервисные пароли не должны храниться в браузере, конфигурационных файлах проекта, образах для сборки и развертывания приложения, переменных окружения или передаваться через системы коммуникаций. Чтобы исключить случайную утечку секретов из репозитория, необходимо подключить инструменты обнаружения секретов в CI/CD-пайплайне и регулярно проводить аудит всех выданных токенов и ключей — отзывать неиспользуемые и периодически ротировать активные. Сервисные учетные записи должны соответствовать принципу минимальных привилегий: каждая учетная запись имеет строго ограниченный набор прав, соответствующий ее задаче, и никогда не используется интерактивно для ручного доступа.
Инструменты CI/CD (GitLab Runner, Jenkins, TeamCity и другие) не должны иметь публично доступных эндпойнтов в интернете. Агенты сборки размещаются во внутреннем периметре сети, доступ к веб-интерфейсу и API CI-системы — только через корпоративный VPN с многофакторной аутентификацией. Секреты и переменные окружения для пайплайнов должны подтягиваться динамически во время выполнения сборки, а не храниться как статические переменные в настройках CI-проекта.
Для управления жизненным циклом образов необходимо также использовать решения класса container security — сканировать как сторонние, так и внутренние образы на уязвимости и вредоносный код на этапе сборки и при каждом обновлении базового образа. Важно хранить все образы во внутреннем артефактории, а прямое использование образов из Docker Hub или других публичных реестров в продакшене исключить. Также рекомендуется подписывать образы для гарантии целостности и установить запрет на монтирование хостовой файловой системы через политики безопасности подов.
Безопасность при интеграции сторонних компонентов из экосистемы открытого ПО
Для защиты конвейера разработки от вредоносных зависимостей и атак на цепочки поставок в экосистеме открытого ПО мы рекомендуем компаниям внедрить следующие практики:
- SBOM (software bill of materials): формировать и актуализировать реестр всех компонентов (прямых и транзитивных зависимостей) при каждой сборке.
- SCA (software composition analysis): интегрировать инструменты класса SCA в CI/CD-пайплайн; сборка должна автоматически прерываться при обнаружении зависимостей с уязвимостями критического и высокого уровня.
- Карантин для новых компонентов: любой новый пакет или обновление существующего сначала поступает в изолированное карантинное пространство артефактория, проходит автоматическое SCA-сканирование и только после явного одобрения становится доступным для использования в продакшен-сборках.
- Блокировка версий и верификация хешей: использовать lock-файлы с проверкой контрольных сумм; настроить внутренний прокси-репозиторий для кеширования пакетов и исключения прямых обращений к публичным реестрам (PyPI, npm, Maven Central) из сборочного окружения.
Практики защиты при внедрении агентного ИИ
Для защиты MCP-серверов в системах, использующих LLM, необходимо руководствоваться набором требований при их проектировании и создании, а также в случае использования готовых сторонних решений. При использовании MCP-серверов необходимо использовать актуальные стандарты аутентификации и выдавать токены непосредственно для MCP без проброса пользовательских токенов.
При скачивании контента для агентного ИИ (MCP-серверы, навыки и др.) из открытых маркетплейсов необходимо придерживаться тех же практик: следует создать внутренний реестр MCP, из которого разработчики и пользователи агентов будут подключать контент; подключение произвольного сервера из интернета должно быть ограничено. Процедура добавления в реестр включает в себя ревью кода, SAST-сканирование и тестирование в изолированной среде (песочнице).
В настоящий момент многие компании создают свои автономные ИИ-агенты для разработки кода и управления инфраструктурой, не говоря уже об ИИ-ассистентах, которые разрабатываются в целях улучшения пользовательского опыта клиента. Организациям необходимо внедрять принципы безопасной разработки при создании ИИ-агентов и учитывать угрозы из перечня OWASP Top 10 for LLM applications 2025 и OWASP Top 10 for Agentic Applications 2026. В дополнение к ранее представленным мерам мы также рекомендуем внедрять практику AI/ML-BOM — все, что скачивается и используется для работы с ML, должно пройти карантин и быть четко зафиксировано.