Подход к обеспечению безопасности IoT в Enterprise
Использование анализатора кода SonarQube
1. Использование SonarQube в Positive Technologies
Соловьев Алексей
Программист отдела DevOps
asolovyev@ptsecurity.com
linkedin.com/in/aasolovyev
Черепанов Сергей
Программист отдела DevOps
scherepanov@ptsecurity.com
2. План доклада
• Что такое SonarQube
• Для чего нужны анализаторы кода
• Принцип работы
• Поддерживаемые языки
• Что находит
• Метрики
• Минусы
• Профит
3. Что такое SonarQube
• Платформа для анализа кода, управления его качеством
• Позволяет непрерывно проводить анализ кода
• Работает с множеством языков, используя плагины
4. Для чего нужны анализаторы кода
• Анализ текущего состояния кодовой базы
• Уменьшение количества багов/уязвимостей в будущем
• Повышение качества кода
9. Метрики, снимаемые с кода
Reliability Оценка надёжности проекта, основанная на встречающихся багах
Security Оценка безопасности проекта, основанная на встречающихся уязвимостях
Maintainability Оценка поддерживаемости проекта. Для этого применяется оценка технического долга проекта и
информация о «плохом» коде в проекте
Duplications Предоставляет информацию о повторениях кода, рассматривает повторения строк, блоков кода, а также
файлов, в которых встречаются повторения
Complexity Оценка сложности проекта, основанная на числе путей исполнения кода. Когда путь исполнения в
функции разделяется, сложность увеличивается на единицу
Documentation Оценка количества комментариев в коде
Issues Предоставляет информацию о количестве проблем, их типе и статусе
Quality Gates Итоговая оценка качества проекта. Критерии для прохождения проектом контроля качества можно
настроить отдельно для каждого проекта
Tests Оценка покрытия кода тестами
13. Минусы
• Некорректная работа с LDAP-группами
• Высокая стоимость плагинов
• Отсутствие иерархичности проектов по веткам кода
14. Профит от использования SonarQube за полгода
• Повысилось качество нового кода
• Найдены старые баги и уязвимости
• Сократилось время, затрачиваемое на ревью кода
• Повысилась культура написания кода