Спустя четыре месяца после запуска закрытого предварительного тестирования AWS сделала Continuum для поиска уязвимостей в коде общедоступным в регионах US East (N. Virginia) и US West (Oregon). Сервис проверяет результаты сканирования с учетом контекста кода и среды, а затем предлагает исправление в виде патча или pull request в подключенном репозитории. Перед выпуском каждое исправление должен проверить и одобрить человек.
По словам AWS, сервис призван помочь командам разобраться в потоке уведомлений от сканеров. Руководители компании отмечают, что крупные парки приложений могут выдавать тысячи результатов в день, многие из которых относятся к уязвимостям, недоступным извне, не поддающимся эксплуатации или уже блокируемым существующими средствами защиты. Continuum стремится показать, какие проблемы можно использовать для атаки и как такая атака может повлиять на связанные системы, вместо того чтобы полагаться только на оценку уровня опасности.
Как Continuum проверяет уязвимости?
Сервис строит граф контекста на основе репозиториев кода и информации о среде AWS. Команды могут подключить код через GitHub или корзину Amazon S3. Кроме того, они могут настроить сборщик AWS, который передает сведения о ресурсах и сети из аккаунта и региона, где работает код. Этот контекст помогает Continuum определить, может ли злоумышленник добраться до уязвимого участка и какие еще системы могут оказаться под угрозой.
Для уязвимостей, которые сервис может воспроизвести, Continuum запускает эксплойт в изолированной песочнице и прилагает код для подтверждения концепции и инструкции по воспроизведению. Также сервис предоставляет результаты анализа кода, путь атаки и оценку возможного масштаба последствий. По словам AWS, он может определить, способны ли существующие средства защиты обнаружить и пресечь проверенный сценарий атаки.
Continuum создает патчи для кода, обновления зависимостей или изменения конфигурации и может оформить их как pull request. В консоли предупреждается, что сгенерированный патч сам по себе не означает, что уязвимость устранена: его все равно нужно проверить и принять в основную ветку. AWS планирует позволить клиентам разрешать автоматическое применение отдельных категорий исправлений после проверок уверенности, включая оценку покрытия тестами, ограничение области изменений и анализ предыдущих успешных исправлений.
Сколько это стоит?
Согласно сведениям о тарифах AWS, на которые ссылается InfoQ, стоимость складывается из двух частей: ежемесячной платы за контекст, размер которой зависит от количества защищаемых строк кода, и платы за обработку — $10 за каждую единицу инференса Continuum. Контекст стоит от $200 за миллион строк; для объемов свыше десяти миллиардов строк цена снижается до $100 за миллион.
Примеры AWS показывают, как объем обрабатываемых уязвимостей влияет на счет. За защиту одного миллиона строк и обработку 100 уязвимостей по одной единице на каждую нужно заплатить $1,200. За защиту 100 миллионов строк и обработку 10,000 уязвимостей по две единицы на каждую — $218,200, включая $200,000 за инференс. Эти примеры показывают, что для команд с большим накопившимся списком уязвимостей важна стоимость обработки каждой из них, даже если их кодовая база не особенно велика.
Почему это важно
С помощью Continuum команды по безопасности могут получать подтверждения возможности эксплуатации уязвимостей и предлагаемые исправления вместе с результатами сканирования. Однако каждое исправление по-прежнему должен одобрить и принять человек. Дополнительный сборщик AWS передает сведения о сети и ресурсах; при этом неясно, как Continuum обрабатывает уязвимости, которые не может подтвердить.