security-scanlisted
Install: claude install-skill chacheum/chageun
# 자동 보안 스캔 (security-scan)
바이브 코딩의 흔한 구멍 — **��� 노출·접근제어 꺼짐·인증 누락·입력 검증 없음·취약한 의존성** — 을 **무료 스캔으로 자동 점검**한다. chageun는 스캔 인프라를 품지 않는다(A안) — 발동될 때 그 프로젝트에 스캔 설정을 **생성·안내**할 뿐이다.
---
## 언제 쓰나 / 안 쓰나
**발동:** **실데이터·운영(배포)되는 앱**이거나, 사용자가 보안을 걱정할 때("해킹 안 당하나" 등).
**비발동:** 정적·읽기 전용 토이, 이미 붙어 있을 때. 억지로 권하지 않는다.
---
## 0. 무료 4종 (켜기·생성)
| # | 도구 | 무엇을 잡나 | 비용·난이도 |
|---|---|---|---|
| 1 | **GitHub Dependabot** | 의존성(라이브러리)의 알려진 취약점 → 자동 알림·수정 PR | 무료, Settings→Security **토글 ON**(코드 0) |
| 2 | **Secret Scanning + push protection** | 커밋된 **API 키·토큰** 탐지·차단 | 무료, 토글 ON — *바이브 코딩 1위 사고* |
| 3 | **Semgrep SAST** | 코드의 흔한 취약 패턴(인젝션·XSS·인증 누락 등) | 무료, `.github/workflows/security-scan.yml` 생성 |
| 4 | **플랫폼 Security Advisor** | **접근제어(RLS) 꺼진 테이블·노출** | 무료, 백엔드 대시보드에 이미 있음 |
- **비용 주의(공개 vs 비공개 저장소):** 위 표의 "무료"는 **공개 저장소 기준**이다. **비공개 저장소**는 2번(Secret Scanning/push protection)가 유료 플랜(GitHub Advanced Security / Secret Protection)을 요구할 수 있다 — 요금제는 자주 바뀌므로 여기 ���을 하드코딩하지 않고, **Settings→Security에서 실제로 켜지는지(유료 안내가 뜨는지) 확인**한다. 3번 Semgrep은 도구 자체는 무료지만 비공개 저장소는 GitHub Actions 무료 실행분 한도 안에서 돈다. 1번(Dependabot)·4번(플랫폼 어드바이저)는 공개·비공개 모두 무료.
- **3번 Semgrep 생성 시:** 트리거는 **`push`·`pull_request`만**(merge 전 차단). **`pull_request_target`은 쓰지 않는다**(fork PR에서 시크릿이 새는 함정). default ruleset으로 시작하고 **심각도 높은 것부터** ���리한다.
- **4번이 당신 스택의 핵심:** 접근제어(RLS) 꺼짐은 *설정* 문제라 코드 스캐너(Semgrep)가 못 잡는다. 백엔드 플랫폼의 보안 어드바이저(예: Supabase의 Advisors→Security)에서 "RLS 꺼진 테이블·노출된 데이터"를 직접 확인 — **5분, 최고 가성비.**
**GitHub이 아니면(GitLab·로