← Вернуться к списку

SAST vs. DAST vs. IAST: тест безопасности на взаимодополняемость трех братьев, а не на замену

itadol5j

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

Обзор применения трех методов испытаний на безопасность

I. ОБЯЗАТЕЛЬСТВА ПО ПЕРВОМУ УСЛОВИЯМ

  • SAST (статический тест безопасности приложений)Другие организаторыНе запускайте программу, под которым сканирующий исходный код/байтовый код находит лазейку, которая принадлежит Белому ящику.
  • ДАСТДругие организаторыПрограмма запускаВнешние запросы на запуск, смоделированные атаки являются «черными ящиками» и не требуют исходного кода.
  • IAST (Interactive Application Safety Test)Другие организаторыЗапуск программы изнутриPlug-in (агент), в сочетании с контекстом потока и кода, принадлежит Серому ящику.

Ключом к пониманию этих трех является то, что каждый из них отвечает на разные вопросы: «Где может быть ошибка в коде?» DAST спрашивает: «Можем ли мы на самом деле пройти через это?» IAST спрашивает: «В этой операции, какой поток данных действительно перетекает в точку опасности».

Удушение проблемы на стадии написания кода

SAST непосредственно анализирует исходный код (или компилирует промежуточные продукты) и не выполняет программу. Преимущество заключается в том, что вы можете обнаружить проблемы на ранней стадии или даже при подаче кода, чтобы найти конкретные документы и номера линий с низкими затратами на ремонт. Он охватывает «коды могут быть сметены» и не зависит от среды рабочего времени.

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

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

DAST: Проверка «действительно ли это работает?»

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

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

Типичный сценарий: клиренс безопасности перед выходом в интернет, периодическое сканирование развернутых сред.

IV. IAST: плагины времени выполнения, балансирующие контекст с реальными потоками данных

IAST также наблюдает за выполнением кода и внешним потоком при запуске программы путем имплантации антента в приложение. Он может видеть, как поступают запросы и как данные поступают в код.Возьмите полные доказательства гостиницы.Обычно он ниже, чем SAST, и точен.

КороткометражныйНеобходимость развертывания зондов в целевой среде (в связи с обеспокоенностью по поводу производственной среды); зависимость от охвата испытаниями, которая не может быть найдена без внедрения кода, который часто связан с функциональным/автоматизированным тестированием; различия в языковой и рамочной поддержке; и определенные эксплуатационные расходы.

Типичный сценарий: запуск в тестовой среде в сочетании с автоматизированным тестированием, как для проверки функциональности, так и для синхронизации выводов по безопасности вывода.

Следите за потоком данных и звоните из внутреннего кода

Пять, три против одного.

РазмерыПАСТДАСТАСТ
Объект испытанияИсточник/байт (не работает)Активная цель (внешняя)Операционные приложения (внутренние плагины)
ПерспективаБелый ящикЧерный ящикСерый ящик
Время для вмешательстваНаиболее ранний этап кодирования/представленияПосле развертыванияТест/время выполнения
Нужен исходный кодДа.Не нужно.Требования (можно подключить)
Ошибочный уровеньвысокийнизкийниже
Точность положенияФайл/линияURL/ИнтерфейсПоток данных / Data Stream
Перезапись ЗависимостьLimited (см. часть исходного кода)Преодолеть воздействие во время бегаОграниченный путь исполнения
Типичная сценаCI Code Door BanПроверьте и примите перед выходом в интернет.В сочетании с автоматизированным тестированием

VI. Почему взаимодополняемость вместо замены

Если сложить все три вместе, то окажется, что их слепые зоны дополняют друг друга.

  • SAST видит код, но не знает, будет ли он запущен; DAST знает, может ли он быть запущен, но не знает, в какой строке находится проблема; IAST и то, и другое, но требует, чтобы код был выполнен.
  • SAST охватывает раннее, широкое и громкое; DAST имеет небольшой шум, но позднее вмешательство, узкое покрытие; и IAST имеет высокую точность, но может подключаться и работать достаточно хорошо.
  • Просто перейдите в SAST, который уязвим для усталости от «кучки волокиты»; перейдите в DAST, где лазейка часто выставляется на линию; перейдите в IAST, где путь, по которому она не достигается, слеп.

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

Статические, динамические, интерактивные тесты образуют замкнутый круг.

VII. Практические вопросы, касающиеся аренды

1. Неправильное информирование о том, кто этим занимается

В любом случае, никто не исправляет отчет, никто не делает. Существует четкий процесс сортировки: кто видит, как долго закрывать, как отметить «принятие риска». В частности, SAST нуждается в базовом управлении, иначе наследие истории утопит новые проблемы.

Охват важнее, чем бренды инструментов

Способность IAST к обнаружению напрямую зависит от того, сколько кодов охвачено тестом; DAST зависит от того, сколько интерфейсов достигнуто рептилиями. Более важно измерить «скорость обнаружения» перед выходом в интернет, чем заменить более дорогой инструмент.

3.Не рассматривайте тесты безопасности как одноразовые тесты Возьми.

Тесты безопасности должны быть встроены в непрерывный процесс НИОКР, а не централизованы перед выходом в интернет. CI запускает SAST, тестирует среду IAST, регулярно делает DAST для производства, поэтому ему не нужно полагаться на человеческую плоть, чтобы спасти огонь.

4. Сосредоточьтесь на синергии между инструментами

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

VIII. Список решений

  • Да.Фаза представленияПросто удерживайте очевидную лазейку на SAST, сосредоточьтесь на закрытии дверей и исходных линиях.
  • Для проверкиДействительно ли развернутая система способна атаковать? • В дополнение к DAST, фокусируясь на покрытии и конфигурации входа.
  • Чтобы сделать выводы по безопасности.Результат с автоматизированным тестированиемИ найти точно на IAST.
  • Ограниченные ресурсы могут использоваться только в качестве первоочередной задачи САСТ для определения итогового показателя, а затем для постепенного завершения деятельности МАГАТЭ/ДАСТ.
  • Поиск универсального, постоянного решения не существует, но способ организации и обработки является ответом.

SAST возможен, DAST практичен, IAST специфичен — объединена полная картина.