Об этом проекте

OAuthLint — это статический анализатор, предназначенный для выявления антипаттернов безопасности в реализациях OAuth 2.0, OIDC, JWT, MCP, сессий и CORS, особенно тех, которые систематически создают ИИ-ассистенты по программированию, такие как GitHub Copilot, Cursor и Claude Code. Он бесплатный, распространяется под лицензией MIT и создан для разработчиков, которым нужно исправлять находки, а не просто получать отчёты. **Ключевые возможности:** - **280+ тщательно отобранных правил** для одиннадцати языков: JavaScript/TypeScript, Python, Go, Rust, Java, C#/.NET, PHP, Ruby, Kotlin, Swift (iOS) и Android, а также для IaC/конфигураций (Terraform, GitHub Actions, AWS IAM). - **Анализ потоков данных (taint-анализ)** для отслеживания недоверенного ввода до опасных мест использования (например, open-redirect, SSRF, утечки учётных данных), что позволяет находить ошибки, которые пропускает построчное сопоставление шаблонов. - **Низкий уровень ложных срабатываний**, проверенный на реальных библиотеках аутентификации (jose, NextAuth, PyJWT, Authlib, golang/oauth2, oauth2-rs, Spring и др.). - **Учёт особенностей фреймворков** для ASP.NET Core, Gin/Echo/Fiber, Hono + better-auth, FastAPI, Django/Flask, Ktor, Spring Security, Laravel/Socialite, Rails/Devise/OmniAuth/Doorkeeper, NextAuth/Passport, Express/Fastify/NestJS и других. - **Отдельный набор правил для MCP** для официальных SDK MCP на TypeScript и Python, выявляющий сквозную передачу токенов, отсутствие привязки аудитории по RFC 8707, неаутентифицированные транспорты и SSRF в обработчиках инструментов. - **Каждая находка обучает**: каждое правило ссылается на страницу с исправлением и сопоставлениями CWE и OWASP. **Варианты использования:** - **CLI**: однократные сканирования через `npx oauthlint scan ./src` с опциями порогов серьёзности, вывода JSON/SARIF/HTML, автоисправления (с пробным запуском), инкрементальных сканирований (`--diff`, `--staged`) и внедрения базовых показателей. - **GitHub Action**: на основе Docker, работает в любом CI, поддерживает загрузку SARIF в GitHub Code Scanning и встроенные аннотации в PR. - **Расширение для VS Code**: доступно в VS Code Marketplace и OpenVSX (для Cursor, Windsurf и др.), обеспечивает встроенную диагностику, счётчики в строке состояния и подавление через Quick Fix. - **MCP-сервер**: `oauthlint-mcp` позволяет ИИ-инструментам программирования сканировать генерируемый ими OAuth-код в цикле. - **Прямое использование Semgrep**: запуск полного набора правил командой `semgrep --config https://oauthlint.dev/r/oauthlint.yaml ./src`. **Философия дизайна:** OAuthLint честно говорит о своём подходе: он использует Semgrep в качестве движка и не заявляет о техническом преимуществе. Его ценность заключается в тщательно отобранном и проверенном наборе правил, согласованных идентификаторах правил для разных языков и обучающей документации. Он занимает промежуточное положение между универсальными SAST-инструментами и дорогими корпоративными решениями IAM. **Разработка и участие:** Репозиторий включает набор правил, CLI, GitHub Action, расширение для VS Code, MCP-сервер и демонстрационные приложения. Добавление правила сводится к размещению YAML-файла с уязвимыми и безопасными примерами. Проект приветствует сообщения о ложных срабатываниях и новые правила.