heisenbug Heisenbug 2019 Мск (05.12.2019 — 06.12.2019)

Статическое тестирование безопасности инструментами из open source

img

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

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

Распространенным способом автоматизации поиска уязвимостей является использование разнообразных фаззеров и сканеров, про них, в том числе, уже рассказывали на Heisenbug 2018. Иногда такой подход называют Dynamic Application Security Testing (DAST). У динамического тестирования безопасности есть свои ограничения и недостатки. Существует и другой путь — можно применить статический анализ кода для поиска потенциальных уязвимостей. Такой подход называют Static Application Security Testing (SAST).

Рынок SAST-решений разнообразен — там есть и коммерческие/коробочные продукты и open source проекты. В Одноклассниках требовались возможности для кастомизации, и команда при выборе конкретного решения остановилась на комбинации из SonarQube и SpotBugs+Find Security Bugs.

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

В качестве примеров будут рассмотрены две разновидности уязвимостей: хранимые XSS и IDOR. Для них спикер покажет, как создавать свои правила для статического анализатора.

Цель доклада: рассказать о применении SonarQube и Find Security Bugs для поиска уязвимостей в своем проекте.

Технологии: кастомные правила пишутся на Java, в качестве примера продемонстрируют веб-приложение на Java.

Целевая аудитория: автоматизаторы тестирования, специалисты по безопасности.

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

Комментарий программного комитета:

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