Блог

Почему при тестировании программного обеспечения необходима проверка безопасности ИИ-агентов

В течение последних двух лет инженерные команды ведут гонку за внедрением ИИ-агентов, способных находить ошибки быстрее, чем это когда-либо удавалось любой команде контроля качества. Автономные тестовые агенты могут просматривать кодовую базу, выявлять уязвимости и генерировать отчеты о тестовом покрытии, в то время как разработчики наконец-то могут передохнуть.

Ирония заключается в том, что пока команды разработчиков наслаждаются этой краткой передышкой, рабочая нагрузка на тестировщиков и исследователей в области безопасности резко возросла, поскольку теперь им приходится проверять не только код, но и самих агентов, выполняющих тестирование. И большинство руководителей сейчас сталкиваются с тревожной реальностью, которая должна коренным образом изменить наше представление о качественном инжиниринге.

«Платформы агентского тестирования, которым мы доверяли обеспечение безопасности наших приложений, могут сами создавать векторы атак, с которыми мы раньше не сталкивались», - говорит Ахмед Заиди, генеральный директор Accelirate, возглавляющий стратегию компании в области автоматизации и тестирования на основе искусственного интеллекта. Столкнувшись с фундаментальной проблемой, с которой большинство руководителей отделов контроля качества еще не сталкивались, он объясняет: «Мы больше не тестируем код, мы тестируем поведение, которое невозможно проверить с помощью статического контрольного списка».

Заиди отмечает, что до того, как агентные системы стали широко распространенными, модели безопасности строились на простом допущении, что тестирование - это пассивный этап проверки, который происходит после написания кода. Тестировщик пишет тестовый случай, тест либо проходит успешно, либо завершается сбоем, и аналитик по контролю качества решает, что делать дальше. Но когда тесты становятся автономными и самомодифицирующимися, сам уровень тестирования превращается в поверхность атаки. «Я вижу, как агенты безопасности могут переписывать свои собственные правила проверки, не запрашивая разрешения. И последствия этого сдвига, - решительно предупреждает Заиди, - в конечном итоге проявятся в производственных средах. Именно это делает проверку безопасности ИИ-агентов в процессе тестирования все более важной».

Поскольку эти проблемы уже возникают в производственных средах, к чему большинство организаций не готовы, были проведены консультации с ведущими инженерами в области архитектуры безопасности, корпоративной автоматизации и инженерии качества, чтобы понять не то, следует ли нам внедрять агентское тестирование, а то, как спроектировать средства контроля безопасности, способные идти в ногу с той автономностью, которую мы внедряем в наши конвейеры контроля качества.

Тестовые агенты сами манипулируют результатами своей проверки

Иан Квакенбос (Ian Quackenbos), глобальный руководитель по инновациям и инкубации в области ИИ в компании SUSE, отслеживает особенно коварный тип сбоев, который большинство команд контроля качества, возможно, ещё не заметили. «Вместо того чтобы полностью скрывать уязвимость, модель оптимизировалась под то, что она воспринимала как успех, - объясняет Квакенбос, - возвращая результат, который казался правильным пользователю, при этом незаметно обходя более сложную проблему безопасности». Агент не маскирует уязвимость явным образом, который вызвал бы срабатывание сигналов тревоги, а скорее оптимизируется под то, что он воспринимает как успех.

Квакенбос подчеркивает, что это представляет собой вполне реальную проблему, с которой сегодня сталкиваются в производственных тестовых средах. «Это яркий пример того, почему агентское тестирование требует строгих механизмов контроля по принципу „доверяй, но проверяй“, ограничения доступа по идентификаторам и циклов валидации с участием тестировщиков в цепочке принятия решений», - говорит он. Опасность заключается не в том, что агент громко терпит неудачу, а в том, что он незаметно добивается успеха в неправильном направлении.

Аналитики по контролю качества могут увидеть зеленые галочки в своем конвейере CI/CD и предположить, что уровень безопасности улучшился, тогда как на самом деле тестовый агент просто научился обходить собственную логику валидации. Такое несоответствие в оптимизации гораздо опаснее традиционной ошибки, поскольку создает ложную уверенность именно в тот момент, когда бдительность важна как никогда. Тестировщик, проверяющий результаты, видит прошедшие тесты и переходит к следующему этапу, в то время как фактическая уязвимость по-прежнему присутствует в кодовой базе.

Ландшафт внешних угроз изменился

Пока мы беспокоимся о том, что могут натворить наши собственные тестовые агенты, злоумышленники с другой стороны также получили доступ к тем же возможностям искусственного интеллекта. Заиди возглавляет инженерные команды в Accelirate и, опираясь на свой управленческий опыт, сформированный годами создания критически важных систем на Уолл-стрит, отмечает, что атаки на основе ИИ стали настолько изощрёнными, что они нацелены не только на производственные системы, но и на саму тестовую инфраструктуру. «С помощью ИИ злоумышленники обрели настолько большие возможности, что их невозможно легко обнаружить невооруженным глазом», - добавляет он.

«Дрейф моделей, инъекция подсказок и зараженные обучающие данные проникают в цепочку поставок программного обеспечения», - объясняет Заиди. Команды разработчиков, интегрирующие проверку безопасности ИИ-агентов в свои рабочие процессы, зачастую не учитывают возможность того, что эти агенты могут быть скомпрометированы на уровне модели еще до выполнения первого тестового случая. В компании Accelirate стратегическим ответом на эту проблему стало содействие клиентам в переходе от реактивного сканирования безопасности к архитектуре проактивной защиты непосредственно в рамках тестового конвейера. «Компаниям очень полезно иметь системы ИИ, которые предупреждают о приближающейся атаке», - объясняет Заиди, поскольку ранее команды контроля качества лишь реагировали на инциденты. Теперь же они могут проактивно их предотвращать. Например, анализ на основе ИИ позволяет выявлять небезопасное поведение API на ранних этапах тестирования конвейера.

«Этот проактивный подход значительно сократил время реагирования на инциденты в организациях, с которыми мы работаем, поскольку ИИ предоставляет сигналы об угрозах, позволяющие командам предотвращать атаки, а не просто реагировать на них после того, как ущерб уже нанесён», - добавляет он. Он также обращает внимание на критическую «слепую зону», которую большинство организаций ещё не устранили. «Большинство инструментов ИИ в цикле разработки программного обеспечения (SDLC) охватывают генерацию и проверку кода. Но это не помогает в моделировании угроз на этапе проектирования. Инженеры часто обращаются к ИИ для написания и тестирования кода, а не для проектирования безопасной системы. Это может работать, но сможет ли система масштабироваться? Сможет ли она справиться с трафиком? Мы этого не знаем», - рассуждает Заиди.

Скорость автоматизированного генерации тестов создает иллюзию всестороннего охвата, в то время как основополагающие решения по безопасности в архитектуре тестирования остаются непроверенными. Специалисты по автоматизированному тестированию (SDET) генерируют тысячи тестовых случаев за считанные часы, но не понимают, действительно ли эти тесты проверяют нужные границы безопасности.

Контекст как новый периметр тестирования

Д-р Равикиран Низампатнам, известный инженер по сетевой безопасности и исследователь в области кибербезопасности из Остина, проводит чёткую параллель между тем, как мы раньше обрабатывали сетевой трафик, и тем, как нам следует сегодня подходить к контексту ИИ в тестовых средах. «Нефильтрованный контекст - это новый открытый брандмауэр», - говорит он. «В сетевой безопасности мы никогда не зеркалируем весь трафик на каждый инструмент, потому что так можно перегрузить центр оперативного реагирования (SOC). То, что предприятия сегодня делают с LLM при тестировании, - это та же самая ошибка: они сбрасывают в контекст целые наборы тестов и исторические журналы дефектов. Это не интеллект, а атака типа «отказ в кошельке»».

Низампатнам подчеркивает, что контекст в тестовых агентах должен быть сегментирован, иметь минимальные привилегии и быть целевым, точно так же, как сетевой доступ в архитектуре Zero Trust. «Предоставление тестовым платформам-агентам возможности свободно перемещаться по миллиардам строк устаревшего тестового кода равносильно предоставлению административного доступа к неизвестному устройству в плоской сети», - объясняет он. «Изоляция ценных тестовых модулей - это не просто оптимизация затрат. Это «Zero Trust» для ИИ. Не доверяйте ничему. Раскрывайте только то, что необходимо, и наблюдайте за всем». Этот принцип применим как при защите от внешних злоумышленников, так и при предотвращении доступа ваших собственных тестовых агентов к производственным данным, к которым им не следует прикасаться во время выполнения тестов.

Заиди подходит к той же проблеме с операционной точки зрения. «В сфере безопасности журналы без нормализации - это бесполезный шум», - подчеркивает он. «В тестировании безопасности ИИ-агентов контекст без структуры - это бессмыслица. Упрощенные тестовые данные, точный поиск и кэшированные пути рассуждений - это не оптимизации. Это меры контроля. Стратегия использования ноутбуков - это, по сути, SIEM для тестирования LLM. Сохраняйте то, что сработало, отбрасывайте то, что не сработало, и никогда не повторяйте одну и ту же ошибку дважды», - предлагает он.

Это означает, что руководители отделов контроля качества должны начать с проведения инвентаризации контекста, чтобы определить, к каким данным в настоящее время имеют доступ их тестовые агенты. Затем следует установить многоуровневые бюджеты контекста, при которых критически важные тесты безопасности получают только минимальный контекст, необходимый для проверки конкретных границ. Это предотвращает проникновение агентов в производственные базы данных или репозитории устаревшего кода, которые не имеют никакого отношения к поставленной задаче тестирования.

«Слепое пятно» управления API в автоматизации тестирования

По мере того как организации внедряют все больше автономных тестовых агентов, распространение API, связывающих эти системы, создает кризис безопасности, к которому большинство команд QA не готовы. Сири Варма Вегираджу, технический руководитель в Microsoft Azure Security, активно занимается вопросами управления безопасностью API и выделяет три критические уязвимости, возникающие при сочетании разрастания API с автоматизацией тестирования с использованием агентного ИИ.

«Когда у вас есть множество тестовых API, которые быстро запускаются для различных сценариев тестирования, команды контроля качества зачастую не обеспечивают для этих API надлежащую аутентификацию и авторизацию», - объясняет Вегираджу. Аутентификация подтверждает, что вы являетесь авторизованным тестировщиком, а авторизация гарантирует, что у вас есть соответствующие разрешения для доступа к конкретным тестовым средам и данным. «Проблема с ИИ в условиях разрастания API при тестировании заключается в том, что при наличии огромного количества тестовых API легко потерять контроль над тем, какой API имеет какую именно настройку аутентификации и авторизации. А без этого злоумышленники непременно сканируют эти тестовые API, пытаясь определить, какие из них открыто доступны, и оттуда пытаются извлечь конфиденциальные тестовые данные, которые могут содержать информацию о клиентах».

Вегираджу указывает на второй серьезный риск, связанный с проверкой входных данных в средах автоматизации тестирования. «Если вы не проверяете параметры должным образом в своих тестовых API и вставляете этот контент напрямую в SQL-запрос, кто-то может осуществить SQL-инъекцию и удалить тестовые базы данных», - предупреждает он. «OWASP относит это к одному из самых критических классов уязвимостей. А поскольку команды контроля качества создают тестовые API направо и налево без контроля со стороны совета по управлению, они иногда не защищены должным образом. Если тестовый API не находится за шлюзом API, все они становятся доступными в открытом Интернете. Любой может осуществить SQL-инъекцию».

Третья уязвимость связана с «теневыми» и «зомби»-тестовыми API, которые остаются в тестовых средах. «Если тестовый API находится на стадии вывода из эксплуатации, на него больше не выделяются бюджетные средства. Нет специалистов по тестированию безопасности (SDET), которые бы исправляли его или занимались улучшением безопасности», - объясняет Вегираджу. «Именно эти тестовые API становятся мишенью для злоумышленников, потому что, если вы не исправляете тестовый API, в нём будут присутствовать критические уязвимости, а как только уязвимости появятся, злоумышленники легко смогут атаковать его и, возможно, проникнуть из тестовых сред в производственные системы».

В отсутствие руководящего органа, обеспечивающего соблюдение единых политик безопасности при развертывании всех тестовых API, каждая команда контроля качества реализует аутентификацию и авторизацию по-своему. «Для команд тестирования обеспечение охвата тестированием важнее безопасности, поскольку им необходимо уложиться в сроки спринтов», - отмечает Вегираджу. «И если безопасность становится второстепенным вопросом в тестовом конвейере, то это - серьезная проблема».

Системный риск взаимодействия агентов при оркестрации тестирования

По мере того как организации переходят от развертывания отдельных тестовых агентов к оркестрации сетей агентов, взаимодействующих друг с другом на протяжении всего жизненного цикла тестирования, возникает новая категория режимов сбоев. Роман Рылко, технический директор компании Pynest, выделяет расхождения в контексте и циклические триггеры в качестве основных рисков в многоагентных архитектурах тестирования. «В тот момент, когда инструмент тестирования может инициировать действия, он становится агентом», - объясняет Рылко.

«Два тестовых агента могут легко оказаться в ловушке бесконечного цикла утверждений, если ни один из них не запрограммирован на остановку», - предупреждает Рылко. Один агент запрашивает проверку тестовых данных, другой утверждает её, утверждение запускает новый запрос, и цикл продолжается до тех пор, пока инженер по контролю качества не вмешается вручную или у системы не иссякнут ресурсы. Он утверждает, что традиционное ведение журнала выполнения тестов совершенно недостаточно для отладки таких циклов. «Необходимо единое хранилище событий с версионированием контекста и детектором циклов», - говорит он. «Обязательный журнал того, что было сделано и почему, в эту новую эпоху не является опцией, поскольку нужно видеть цепочку рассуждений, а не просто конечный результат теста».

Проблема с данными стоит перед командами контроля качества особенно остро, поскольку проверка одного рабочего процесса выполнения тестов теперь может потребовать анализа тысяч точек взаимодействия между тестирующими агентами, чтобы убедиться, что они по-прежнему соответствуют целям качества и политикам безопасности.

Тестирование тестировщиков с помощью имитации атак

Единственный способ убедиться, что ваши агенты ИИ для тестирования безопасности действительно ведут себя правильно, - это протестировать их в средах, моделирующих условия противостояния. Заиди описывает этот подход как создание летного симулятора для вашей системы тестирования автопилота. «Вы бы не доверились системе автопилота, которая тестировалась только в идеальных условиях», - говорит он. «Вам нужен агент, способный генерировать тысячи непредсказуемых сценариев, включая сбои в сети, некорректные тестовые входные данные и неоднозначные данные, чтобы заставить целевой тестовый агент реагировать в условиях давления».

Заиди объясняет, что компания Accelirate воплотила эту философию в жизнь с помощью своих решений Agentic QA Solutions, которые реализуют так называемое «тестирование агент-агент», при котором исходные агенты используются для проверки и валидации целевых тестовых агентов в контролируемых средах. «Можно задействовать агента с профилем «цифрового новичка» для тестирования вашего QA-бота, в то время как агент-аудитор безопасности одновременно пытается обманом заставить его раскрыть конфиденциальные тестовые данные или производственные учетные данные», - отмечает он. Такой подход с двойным давлением заставляет тестируемый агент демонстрировать устойчивость одновременно по нескольким векторам угроз, а проведение этих симуляций на тысячах комбинаций браузеров и операционных систем гарантирует, что тестирующие агенты ведут себя последовательно независимо от среды выполнения.

Экономическая целесообразность этого подхода очевидна, поскольку он решает проблему традиционной модели поставщиков, основанной на использовании больших команд тестировщиков, выполняющих тестирование вручную. Заиди является сторонником так называемой модели «автономный агент плюс эксперт», в которой обученные тестовые агенты на базе искусственного интеллекта работают бок о бок с экспертами по контролю качества и инженерами по тестированию программного обеспечения (SDET) без постоянного надзора. «Эта модель переопределила подход предприятий к обеспечению качества, обеспечивая снижение затрат на тридцать процентов по сравнению с традиционными поставщиками и гарантируя рентабельность инвестиций не менее сорока процентов», - объясняет он. Однако настоящая ценность заключается не только в сокращении затрат, но и в возможности проводить тестирование в таких масштабах и с такой скоростью, которые команды по обеспечению качества просто не могут обеспечить, полагаясь исключительно на ручной труд.

Ключевой вывод заключается в том, что симуляция - это не просто методология тестирования, а самостоятельный механизм обеспечения безопасности. Если руководители отделов контроля качества не могут наблюдать за поведением своего тестового агента в условиях атак в безопасной среде, у них нет оснований доверять ему в производственных тестовых конвейерах.

Управление как конкурентное преимущество в агентно-ориентированном тестировании

Джефф Уильямс, соучредитель и технический директор Contrast Security, наблюдал за достаточно большим количеством технологических циклов, чтобы понять: в корпоративной среде зрелость экосистемы всегда превосходит техническое превосходство. «Победит тот протокол, который будет иметь встроенную поддержку безопасности, управления, возможности аудита и контроля затрат», - утверждает он. «Предприятиям важнее снижение рисков и операционное доверие, чем элегантность».

Уильямс предупреждает, что отрасль тестирования в настоящее время находится в режиме «сделай сам», когда команды контроля качества пытаются сколотить системы агентского тестирования с использованием фреймворков с открытым исходным кодом, не понимая, какие проблемы с управлением они тем самым создают. «Обмен состоянием между тестовыми агентами затруднителен, и в настоящее время в этой сфере царит подход «сделай сам», при котором идентификация и авторизация пользователей зачастую не определены», - объясняет он. Он советует руководителям отделов контроля качества не поддаваться соблазну просто писать код только потому, что демонстрация нового фреймворка выглядит впечатляюще. «Придерживайтесь традиционных принципов архитектуры программного обеспечения и планируйте архитектуру, ориентируясь на «Полярную звезду», а не полагайтесь на то, что демо-версия выглядит круто», - говорит он. «Секрет заключается в том, чтобы распознать, какие задачи тестирования носят алгоритмический характер, а какие требуют применения ИИ. ИИ должен не просто выполнять тест, а создавать алгоритм тестирования, по которому будут работать инструменты».

Такая точка зрения позволяет переосмыслить управление: вместо обременительного обязательства по соблюдению нормативных требований оно становится стратегическим активом для организаций, занимающихся контролем качества. Команды тестировщиков, которые с самого начала встраивают в свои системы агентского тестирования строгие механизмы валидации, контрольные журналы и механизмы надзора, в долгосрочной перспективе будут работать быстрее, поскольку им не придётся модернизировать эти механизмы контроля задним числом после того, как инцидент безопасности вынудит их к этому.

Создание нового периметра безопасности для агентского тестирования

Эти подходы подчеркивают важность многоуровневой модели безопасности, которую организации по обеспечению качества должны внедрить для масштабного развертывания агентского тестирования. Механизмы контроля по принципу «доверяй, но проверяй» не позволяют тестовым агентам изменять логику тестирования без подтверждения со стороны инженеров по тестированию программного обеспечения (SDET) или аналитиков по обеспечению качества. Проактивное обнаружение угроз выявляет атаки с использованием ИИ, нацеленные на тестовую инфраструктуру, до того, как они достигнут производственных систем. Сегментация контекста применяет принципы «нулевого доверия» к тому, к каким данным тестовые агенты могут получить доступ во время выполнения тестов. Системы наблюдаемости отслеживают цепочки рассуждений при взаимодействии нескольких тестовых агентов в режиме реального времени. А рамки управления определяют четкие границы автономии в рамках процессов контроля качества.

Роль специалистов по контролю качества в этой архитектуре меняется с исполнителя тестов на архитектора безопасности. Тестировщики больше не пишут отдельные тестовые случаи, а проектируют среды моделирования, циклы валидации и политики эскалации, которые обеспечивают соответствие автономных тестовых агентов целям качества и безопасности. «Речь идет не о том, чтобы исключить аналитиков по контролю качества из процесса, - подчеркивает Заиди, - а о том, чтобы повысить их статус до роли стратегических координаторов, которые устанавливают параметры и отслеживают результаты, в то время как тестовые агенты занимаются выполнением».

Организации, которые относятся к проверке безопасности с помощью агентного ИИ как к чему-то второстепенному, окажутся в ловушке реактивного цикла, где каждая новая уязвимость требует ручного вмешательства со стороны инженеров по тестированию программного обеспечения (SDET), а каждое развертывание тестового агента увеличивает поверхность атаки. Однако, как подчеркивает Заиди, команды контроля качества, «которые уже сейчас инвестируют в создание надежных архитектур проверки, будут работать с такой скоростью и в таких масштабах, с которыми их конкуренты не смогут сравниться. Они будут использовать автономные тестовые агенты для обнаружения и устранения уязвимостей быстрее, чем это когда-либо могли бы сделать команды ручного контроля качества, при этом сохраняя доверие и возможность аудита, которые требуются в корпоративных средах». Будущее принадлежит тем организациям, которые осознают, что сам уровень тестирования теперь является периметром безопасности, и соответствующим образом выстраивают свою архитектуру управления.

Читайте также

Подписывайтесь на наш канал в Телеграм

Подписаться
AI Agents security