Некоторые методы обнаружения уязвимостей в Java-приложениях:
- Статический анализ. javarush.com www.anti-malware.ru Подразумевает три этапа работы с кодом: построение промежуточного представления, запуск ядра статического анализа и поиск программных уязвимостей с помощью базы правил поиска уязвимостей. www.anti-malware.ru Некоторые инструменты статического анализа: FindSecBugs, PMD, Infer и ErrorProne. javarush.com
- Динамический анализ. pvs-studio.ru Метод тестирования с помощью специализированных инструментов для анализа работающего приложения и выявления уязвимостей путём моделирования реальных сценариев атак. pvs-studio.ru
- Сканирование на уязвимости. axiomjdk.ru Сканеры работают по принципу антивирусных систем. axiomjdk.ru Обнаруженные уязвимости устраняются в следующей версии компонента, а одновременно с этим их вносят в базу данных. axiomjdk.ru После анализа сканер генерирует лог-файл с перечнем обнаруженных проблем с присвоенным рейтингом критичности и вариантами их устранения. axiomjdk.ru
- Подходы на основе машинного и глубокого обучения. elar.urfu.ru Такие подходы могут помочь снизить число ложных ответов от анализатора, обнаруживать новые и неизвестные примеры уязвимостей, гибко работать с разными языками программирования. elar.urfu.ru
Некоторые популярные сканеры для разработки на Java: Snyk, Xray Jfrog и Black Duck. axiomjdk.ru Также есть сканеры с открытым исходным кодом, например, SonarQube или Trivy. axiomjdk.ru