프로젝트 소개

OAuthLint는 OAuth 2.0, OIDC, JWT, MCP, 세션 및 CORS 구현에서 보안 안티패턴을 잡기 위해 설계된 정적 분석 린터입니다. 특히 GitHub Copilot, Cursor, Claude Code와 같은 AI 코딩 도구가 체계적으로 생성하는 문제를 대상으로 합니다. 무료이며 MIT 라이선스로 제공되며, 단순히 보고만 하는 것이 아니라 발견된 문제를 수정해야 하는 개발자를 위해 만들어졌습니다. **주요 기능:** - **11개 언어에 걸친 280개 이상의 선별된 규칙**: JavaScript/TypeScript, Python, Go, Rust, Java, C#/.NET, PHP, Ruby, Kotlin, Swift(iOS), Android 및 IaC/구성(Terraform, GitHub Actions, AWS IAM)을 지원합니다. - **데이터 흐름(오염) 분석**: 신뢰할 수 없는 입력을 위험한 지점(예: 오픈 리다이렉트, 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 규칙 팩**: 공식 TypeScript 및 Python MCP SDK를 위한 규칙으로, 토큰 전달, RFC 8707 대상 바인딩 누락, 인증되지 않은 전송, 도구 핸들러 SSRF를 잡습니다. - **모든 발견 사항이 학습 자료가 됩니다**: 각 규칙은 CWE 및 OWASP 매핑이 포함된 수정 페이지로 연결됩니다. **사용 옵션:** - **CLI**: `npx oauthlint scan ./src`를 통한 일회성 스캔. 심각도 임계값, JSON/SARIF/HTML 출력, 자동 수정(드라이런 포함), 증분 스캔(`--diff`, `--staged`), 베이스라인 채택 옵션을 제공합니다. - **GitHub Action**: Docker 기반으로 모든 CI에서 실행되며, GitHub Code Scanning에 SARIF 업로드 및 PR 인라인 주석을 지원합니다. - **VS Code 확장**: VS Code Marketplace 및 OpenVSX(Cursor, Windsurf 등용)에서 사용 가능하며, 인라인 진단, 상태 표시줄 카운트, Quick Fix 억제 기능을 제공합니다. - **MCP 서버**: `oauthlint-mcp`를 통해 AI 코딩 도구가 생성한 OAuth 코드를 루프 내에서 스캔할 수 있습니다. - **Semgrep 직접 사용**: `semgrep --config https://oauthlint.dev/r/oauthlint.yaml ./src`로 전체 규칙 팩을 실행할 수 있습니다. **설계 철학:** OAuthLint는 접근 방식에 대해 솔직합니다. Semgrep을 엔진으로 사용하며 기술적 해자(技術的 垓字)를 주장하지 않습니다. 가치는 선별되고 검증된 규칙 팩, 언어 전반에 걸친 일관된 규칙 ID, 교육용 문서에 있습니다. 일반 SAST 도구와 고가의 엔터프라이즈 IAM 솔루션 사이에 위치합니다. **개발 및 기여:** 저장소에는 규칙 팩, CLI, GitHub Action, VS Code 확장, MCP 서버 및 데모 앱이 포함되어 있습니다. 규칙 추가는 취약/안전 픽스처가 포함된 YAML 파일을 넣는 것만큼 간단합니다. 프로젝트는 오탐 보고와 새로운 규칙 기여를 환영합니다.