Есть специальные сервисы, которые помогают отслеживать и предотвращать уязвимости в проектах на Java, Go и фронтенде на JavaScript. Мы собрали несколько инструментов, которые предлагают бесплатные возможности, подходят для личных и небольших проектов.
1. SonarLint и SonarQube (Community Edition) — инструменты статического анализа кода, находят ошибки, потенциальные уязвимости (включая SQL-инъекции, утечки, небезопасные API), дублирование, сложность кода, подсказывают, как решить проблему. SonarLint это расширение для IDE, а SonarQube работает в CI/CD (например, GitHub Actions или Jenkins).
2. GitHub Code Scanning (CodeQL) — анализатор безопасности от GitHub, ищет уязвимости и ошибки логики на уровне кода с помощью языка CodeQL. Работает в GitHub Actions, в разделе Security репозитория.
3. Snyk Open Source (Free Tier) — сканер зависимостей, проверяет библиотеки на известные уязвимости (CVE) и предлагает безопасные версии. Работает через CLI, в CI/CD, или как GitHub-интеграция.
4. Dependabot(GitHub) — автоматический бот для обновления зависимостей в GitHub-проектах, предупреждает об уязвимостях и создаёт pull requests (запрос на внесение изменений в код). Работает в GitHub, прямо в твоём репозитории.
5. GoSec (для Go) — статический анализатор безопасности для Go, ищет небезопасные конструкции, плохую работу с криптографией, инъекции и утечки. Запускается через CLI в проектах на Go.
6. ESLint + плагины безопасности (JavaScript / TypeScript) — анализатор стиля и ошибок в JavaScript-коде, а с плагинами — находит XSS, использование eval, небезопасные DOM-операции.
7. npm audit / yarn audit (для JS) — встроенные команды для проверки уязвимостей в зависимостях фронтенд-проектов на JavaScript. Используются в терминале при разработке.
8. Google OSS-Fuzz (для Go) — сервис от Google для автоматического фуззинга — генерации случайных входов с целью нахождения сбоев и багов.