
Создание собственного маркетплейса в кризис: выгоды и перспективы
21 Июн 2023
ИИ ускоряет разработку программного обеспечения: помогает писать код, создавать интерфейсы и подключать сервисы. Но то, что система работает, ещё не означает, что ее можно безопасно использовать в бизнесе.
Представим, что компания запускает CRM или систему управления заказами. После запуска выясняется, что менеджер может просматривать чужие данные, а ошибка в коде позволяет изменять записи в базе. Компании приходится останавливать часть процессов, срочно привлекать разработчиков и переносить другие задачи. Если затронуты персональные данные клиентов, возникают дополнительные риски для репутации и соблюдения закона РФ.
Поэтому проверка безопасности кода ИИ — необходимое условие надежной работы продукта. Разобрали, что нужно протестировать перед запуском, чтобы не оплачивать последствия ошибок уже в работающей системе.
На этот вопрос нельзя ответить однозначно. Современные ИИ-модели способны генерировать качественный код, но не гарантируют отсутствие уязвимостей.
Например, модель может пропустить проверку прав доступа, предложить небезопасный способ обработки данных или подключить библиотеку с известными проблемами безопасности. Такие уязвимости AI кода не всегда заметны при обычном использовании, но имеют риски для бизнеса.
Дополнительный риск возникает при использовании ИИ-агентов, которые самостоятельно запускают команды, устанавливают пакеты и изменяют файлы проекта. Чем шире их доступ к инфраструктуре, тем серьёзнее возможные последствия ошибки — утечки данных, срыв сделок, потеря клиентов, иски за нарушение закона о персональных данных.
Аудит кода (code review) помогает выявить ошибки в реализации и проверить, соответствует ли код требованиям безопасности и бизнес-логике.
В первую очередь нужно проверить:
Например, недостаточно убедиться, что менеджер вошёл в CRM. Нужно проверить, что он не может получить чужие данные, изменив идентификатор заказа в запросе.
При этом code review не заменяет комплексный аудит безопасности. Для критичных систем дополнительно могут потребоваться анализ архитектуры, моделирование угроз и проверка конфигурации инфраструктуры.
Она должна включать специальные инструменты анализа для поиска типовых проблем, которые сложно выявить только при ручном просмотре:
Эти методы дополняют друг друга, но не обнаруживают все возможные уязвимости. Результаты необходимо анализировать, исправлять найденные проблемы и повторять проверки. Для бизнеса важно встроить автоматический анализ в процесс разработки, тогда часть ошибок можно устранить до релиза.
ИИ может предложить пакет с известными уязвимостями, давно не обновляющуюся библиотеку или несуществующий компонент. В последнем случае злоумышленник может зарегистрировать вредоносный пакет под предложенным названием.
Поэтому сканирование зависимостей — обязательный этап подготовки системы к запуску.
Проверяем:
Сканирование помогает обнаружить известные уязвимости, но не гарантирует безопасность библиотеки. Происхождение и назначение новых пакетов разработчики проверяют отдельно.
Пароли, токены доступа и API-ключи позволяют подключаться к базам данных и внешним сервисам. Если они попадут в исходный код, историю Git или логи, злоумышленник может получить доступ к корпоративным ресурсам.
Управление секретами предполагает, что такие данные хранятся отдельно от исходного кода и доступны только тем компонентам, которым необходимы.
Поэтому перед запуском мы проверяем:
Если секрет попал в репозиторий, недостаточно удалить его из текущего файла: необходимо отозвать или заменить его и проверить историю изменений.
Это особенно важно для компаний, работающих с коммерческой тайной, персональными данными и внутренними информационными системами.
Обычные функциональные тесты подтверждают, что система выполняет предусмотренные действия. Но они не обязательно показывают, можно ли обойти ограничения.
Перед запуском мы обязательно проверяем, как система реагирует на:
Для систем с конфиденциальными данными или финансовыми операциями может потребоваться тестирование на проникновение.
Не стоит полностью полагаться на тесты, которые ИИ написал для собственного кода: они могут не учитывать опасные сценарии. Например, тест подтверждает, что пользователь получил ответ от системы, но не проверяет, имел ли он право получить эти данные.
Критические проверки доступа и финансовых операций должны проходить независимую оценку.
Даже качественный код не защищает от неправильных настроек сервера, базы данных или облачной инфраструктуры.
Перед запуском мы уточняем:
Если ИИ изменял настройки CI/CD, контейнеров или инфраструктуры, их также нужно проверить.
Наличие резервных копий само по себе не гарантирует восстановление в нужный срок. Проверка восстановления помогает оценить, сколько времени займёт возвращение системы к работе и какие данные можно потерять при сбое.
Безопасность не может сводиться к одной проверке перед релизом. Ведь если искать уязвимости только перед запуском, исправления могут потребовать изменения архитектуры, повторного тестирования и переноса сроков внедрения.
Поэтому мы включаем меры безопасности в процесс разработки с самого начала.
Также мы используем рекомендации OWASP — организации, развивающей открытые практики и инструменты для обеспечения безопасности ПО. В частности, руководство Secure Coding with AI описывает риски использования ИИ в разработке, включая небезопасные зависимости, утечку конфиденциальных данных, чрезмерные полномочия агентов и недостаточную проверку сгенерированного кода. Рекомендации OWASP AI дополняют общие практики защиты, но не заменяют проверку конкретной системы.
Для руководителя важно заранее установить критерии допуска к запуску: какие уязвимости необходимо устранить до релиза, кто принимает решение по остаточным рискам и кто отвечает за реакцию на инциденты.
ИИ ускоряет разработку, но не гарантирует, что готовая система безопасна для бизнеса. Перед запуском необходимо проверить код, зависимости, права доступа, настройки инфраструктуры и готовность команды к инцидентам. Это помогает снизить риск утечек, простоев и незапланированных расходов на исправление ошибок.
Скорость разработки имеет значение только тогда, когда результат можно безопасно использовать и поддерживать. Поэтому мы сделали проверки безопасности частью процесса создания системы, а не откладываем их на последний момент.
Телефон
+7 (950) 973—73—40Опишите вашу проблему или задачу и мы предложим варианты решения
При нажатии на кнопку «Обсудить задачу», я даю согласие на обработку Персональных данных.