Статический анализ кода SAST
Практическая трансформация DevOps в DevSecOps потребует применения ряда подходов. Один из них -- SAST.
SAST представляет собой статический анализ кода на наличие уязвимостей, однако это совсем не то же самое, что SonarQube. В случае с SAST проверка осуществляется не только по стилю или паттернам, так как тут анализ производится:
- по DataFlow;
- по дереву уязвимостей;
- по конфигурационным файлам и т. д., то есть мы говорим обо всем, что непосредственно касается кода.
Плюсы очевидны:
1) уязвимости выявляются в коде на раннем этапе разработки, то есть тогда, когда еще нет ни стендов, ни готового инструмента; 2) появляется возможность инкрементального сканирования. Речь идет о сканировании конкретного участка кода, в который были внесены изменения, а также о сканировании только той фичи, которая сейчас в разработке, что в итоге приводит к снижению времени сканирования.
Но есть и минусы, например, отсутствие поддержки нужных языков.
Необходимые интеграции
Среди необходимых интеграций, которые должны быть в инструментах, специалисты выделяют следующие:
- Инструмент интеграции: TeamCity, Jenkins, Gitlab CI.
- Среда разработки: Visual Studio, Intellij IDEA. При этом разработчику удобнее не погружаться в малопонятный интерфейс, который еще нужно запомнить, а непосредственно на рабочем месте и в своей среде разработки наблюдать все нужные интеграции и уязвимости.
- Code review: ручное ревью, SonarQube.
- Трекеры отслеживания дефектов: Jira, Bugzilla.
На картинке выше как раз таки и отображены некоторые лучшие представители статического анализа.
Однако важны не инструменты, а процесс, вследствие чего есть ряд Open Source-решений, которые тоже хороши при обкатке процесса:
Разумеется, SAST Open Source-инструменты не обнаружат много уязвимостей либо сложные DataFlow, однако при построении процесса их не только можно, но и нужно использовать. Все дело в том, что они помогут вам понять, как именно будет выстроен процесс, кто конкретно будет отвечать на баги, а кто составлять отчеты. Таким образом, на начальном этапе построения безопасности кода Open Source-решения -- вполне себе вариант.
По материалам https://habr.com/ru/company/oleg-bunin/blog/448488/.
Хотите знать больше? Добро пожаловать на курс DevSecOps!