Постоянная гарантия безопасности: как Cisco переосмысливает жизненный цикл безопасной разработки

Источник: Cisco Blogs•

Постоянная гарантия безопасности: как Cisco переосмысливает жизненный цикл безопасной разработки

Узнайте, как жизненный цикл безопасной разработки Cisco (CSDL) развивается для поддержки разработки на базе ИИ, обеспечивая создание безопасного и отказоустойчивого программного обеспечения с высокой скоростью.

Безопасность программного обеспечения должна адаптироваться к эпохе ИИ

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

Мы отходим от ручных барьеров безопасности прошлого. Теперь мы используем ИИ для анализа кода с беспрецедентной глубиной. Мы уже внедрили подобные возможности с помощью нашего открытого проекта Foundry Security Spec — спецификации для инструментов наступательной безопасности. Более важный сдвиг происходит в том, как проектируется программное обеспечение. Менеджеры по продуктам, архитекторы и инженеры теперь используют ИИ-агентов для составления требований и генерации кода в режиме реального времени. Такая скорость делает традиционные ручные барьеры безопасности устаревшими. Чтобы оставаться в безопасности от этапа идеи до выпуска, мы должны встроить безопасность непосредственно в ДНК агентных рабочих процессов.

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

CSDL продолжает развиваться и делает больше

Жизненный цикл безопасной разработки Cisco (CSDL) основан на более чем 400 требованиях к безопасности программного обеспечения, которые проверяют продукты перед их выпуском, с вовлечением на ключевых этапах разработки. Это было важной частью процесса разработки ПО в Cisco на протяжении более 15 лет и одной из главных причин, по которой клиенты доверяют программному обеспечению Cisco. Поскольку разработка ПО меняется, CSDL должен меняться вместе с ней.

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

Он также должен продолжать соответствовать широкому разнообразию программного обеспечения, которое создает Cisco: от операционных систем сетевой инфраструктуры до SaaS-продуктов и корпоративных приложений. Агентная инженерия — это полноценный путь в CSDL, а не исключение.

Агентная инженерия

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

Агенты и навыки агентов применяют эти ограничения на протяжении всего жизненного цикла, и то, что они предоставляют, меняется в зависимости от фазы.

Проект CodeGuard используется уже сегодня. Cisco сделала его открытым и передала в Коалицию за безопасный ИИ (CoSAI). Он предоставляет правила и навыки, которые направляют ИИ-агентов по написанию кода к безопасным шаблонам. Мы применяем его внутри компании по всей экосистеме Cisco.

Наш навык руководства по безопасному ПО находится в стадии разработки, перенося специфические требования безопасности Cisco в рабочий процесс разработки. Когда менеджер по продукту пишет документ с требованиями к продукту (PRD), он определяет правильное пересечение безопасности с тем, что создается, и вносит применимые требования в документ. Инженер, который использует этот PRD для написания спецификации продукта, наследует требования безопасности, а не ищет их. Поскольку спецификация пишется с помощью ИИ-агента по написанию кода, использующего навык руководства по безопасному ПО, он переносит требования так, что спецификация описывает более безопасный продукт. То же самое происходит на каждом последующем этапе процесса разработки. Итоговая безопасность продукта улучшается вдвойне: за счет наследования ограничений с предыдущих этапов и за счет работы навыков агентов на текущем этапе. Этот подход также минимизирует влияние на контекстное окно агента по написанию кода.

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

Мы также создаем агентов, которые дополняют их, оценивая программное обеспечение по мере его создания. Автоматизированный агент оценки безопасности (ASE) изучает кодовую базу так, как это делал бы человек-оценщик. Он строит модель угроз, определяет, какие требования безопасности применимы с учетом архитектуры системы и границ доверия, а затем проверяет исходный код на наличие доказательств того, что эти требования соблюдаются. Он не проверяет отдельное изменение. Он оценивает систему, которую создают эти изменения, и обновляется по мере изменения кода. Каждая угроза, о которой он сообщает, содержит источник, подтверждающий ее.

Мы передаем этот взгляд на основе кода другому агенту, который собирает контекстную информацию: PRD, документы по анализу дизайна, архитектуры, модели угроз, результаты тестирования и любую другую информацию, которая создает целостный контекст безопасности. Как и ASE, он обновляет свое представление о риске по мере изменения контекста. Автоматизация предлагает выводы, а назначенный рецензент решает, какие из них применимы. Их исправления сохраняются при изменении контекста. Оценка переходит от разового снимка к живому, основанному на доказательствах взгляду на состояние каждого продукта, и работа, которая раньше занимала от 40 до 80 часов ручного анализа, теперь выполняется непрерывно.

Хотя эти агенты и навыки естественным образом вписываются в агентную инженерию, они работают и с более традиционными методологиями инженерии.

Чему нас учит непрерывный анализ

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

  • Мы укрепляем проекты, а не только код. Результаты обновляют модели угроз и архитектуры, углубляя эшелонированную защиту. Все чаще мы рефакторим компонент или полностью переписываем кодовую базу, чтобы устранить категорию риска в корне, что раньше было экономически нецелесообразно до появления ИИ.
  • Мы улучшаем способы выражения требований. На сегодняшний день мы не нашли новой проблемы, которая не была бы уже охвачена существующим требованием безопасности ПО. Мы все равно изучаем массив данных, ища требования, которые верны, но их труднее выполнить, чем необходимо.
  • Мы настраиваем конвейер. Массив данных позволяет нам калибровать детерминированные инструменты, такие как статический анализ, чтобы уменьшить количество ложных срабатываний. Сигнал, на который реагируют инженеры, должен быть достоин их внимания.

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

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

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

Основа остается прежней, и вот что будет дальше

Методы быстро меняются. Наши основные принципы CSDL — нет.

  • Безопасность и конфиденциальность по проектированию: моделирование угроз, многоуровневая защита и проектирование с учетом конфиденциальности встраиваются в архитектуру с самого начала, а не добавляются позже.
  • Больше, чем просто безопасность по умолчанию: продукты поставляются безопасными «из коробки», без небезопасных функций на момент выпуска, и мы удаляем любые функции, которые впоследствии оказываются небезопасными. Клиентам никогда не нужно менять настройки, чтобы оставаться в безопасности.
  • Безопасность цепочки поставок программного обеспечения: мы знаем и доверяем тому, что входит в состав наших продуктов. Сторонние компоненты, системы сборки, подписание и доставка защищены на всем пути.
  • Усиленные основы: продукты строятся на безопасной базе с использованием усиленных операционных систем, надежных криптографических протоколов, безопасной загрузки и проверенной цепочки доверия.
  • Непрерывная проверка: проверка кода, тестирование и проверки на соответствие требованиям выполняются на протяжении всей разработки, и их прохождение является обязательным условием перед выпуском.
  • Непрерывное совершенствование: мы устраняем пробелы в требованиях, данных, инструментах и процессах, которые привели к инцидентам и эксплойтам; мы устраняем весь класс уязвимостей, а не только конкретный случай.
  • Быстрое исправление: мы оперативно устраняем уязвимости в поддерживаемых версиях и доставляем исправления клиентам через безопасные механизмы обновления.

Мы описываем это подробно намеренно. Каждая организация, создающая программное обеспечение, сталкивается с одной и той же проблемой, и всем идет на пользу, когда другие перенимают наш подход, а не начинают с чистого листа. Вот почему Project CodeGuard является открытым исходным кодом, почему в рамках CoSAI проект Foundry был опубликован как спецификация, а не как инструмент, и почему мы описываем наши навыки руководства по безопасному ПО и наших агентов по безопасности ПО, даже несмотря на то, что реализация остается внутренней.

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

О чём эта статья

Ещё в разделе «Hardware и электроника»

Все →

Ещё от Cisco