초강력 핵융합 바이브코딩 보안 검토 — 에이전트 스킬
핵심 원칙
클라이언트를 절대 신뢰하지 마십시오. 모든 가격, 사용자 ID, 역할, 구독 상태, 기능 플래그, 속도 제한 카운터는 반드시 서버측에서 검증되거나 강제되어야 합니다. 브라우저, 모바일 번들 또는 요청 본문에만 존재한다면 공격자가 이를 제어할 수 있습니다.
추가 원칙 — core/principles.md 참조:
- 심층 방어: 단일 보안 제어에 의존하지 않음
- 안전한 실패: 문제 발생 시 접근 차단(폐쇄 실패)
- 최소 권한: 필요한 최소 권한만 부여
- 입력 검증: 사용자 입력을 절대 신뢰하지 말고 서버측에서 모두 검증
- 출력 인코딩: 데이터가 렌더링되는 컨텍스트에 맞게 인코딩
작동 모드
모드 1: 감사 (사후 분석)
다음에 의해 트리거: "보안 감사 실행", "취약점 확인", "바이브 보안 감사", "안전한가요?" 또는 기존 코드를 검토하라는 명시적 요청
프로세스:
- 기술 스택 탐지 (아래 1단계 참조)
- 50개 항목 체크리스트 실행 —
core/audit-process.md참조 - 점수 계산 및 보고서 작성 —
core/output-format.md참조 - 필요에 따라 관련 취약점 참조 및 스택 모듈 로드
모드 2: 예방 (코드 생성 중)
인증, 결제, 데이터베이스 접근, API 키, 비밀, 사용자 데이터 또는 파일 업로드를 다루는 코드를 작성하거나 검토할 때 트리거 — 사용자가 보안을 언급하지 않더라도
프로세스:
- 작성 중인 코드에 적용되는 보안 도메인 식별
- 코드를 생성하기 전에 관련 참조 파일 확인
- 처음부터 안전한 패턴 적용
- 명확하지 않은 보안 결정에 인라인 주석 추가
- 사용자에게 보안 트레이드오프 플래그 표시
1단계: 기술 스택 탐지
다음 파일을 검사하여 프로젝트의 기술을 식별합니다:
| 탐지 항목 | 찾을 내용 |
|---|---|
| 프레임워크 | next.config.*, nuxt.config.*, astro.config.*, vite.config.*, angular.json, svelte.config.* |
| 패키지 관리자 | package.json, requirements.txt, go.mod, Gemfile, Cargo.toml, pubspec.yaml |
| 데이터베이스 | prisma/, drizzle.config.*, supabase/, firebase.json, convex/ |
| 인증 | 임포트: @clerk, next-auth, @supabase/auth, @auth0, lucia, passport, firebase/auth |
| 저장소 | 임포트: @aws-sdk/client-s3, @supabase/storage, @google-cloud/storage |
| AI API | 임포트: openai, @anthropic-ai/sdk, @google/generative-ai, langchain, @ai-sdk |
| 결제 | 임포트: stripe, @paddle/paddle-node, @lemonsqueezy |
| 이메일 | 임포트: resend, @sendgrid/mail, nodemailer |
| GraphQL | schema.graphql, 임포트: @apollo/server, graphql-yoga, type-graphql |
| 모바일 | app.json (Expo), react-native.config.js, capacitor.config.* |
| 배포 | vercel.json, netlify.toml, fly.toml, Dockerfile, docker-compose.*, .github/workflows/ |
| 엣지 런타임 | wrangler.toml, 소스의 엣지 런타임 지시문 |
탐지된 스택에 적용되지 않는 검사는 건너뜁니다.
2단계: 감사 실행
관련 체크리스트 파일을 로드하고 실행합니다:
감사 진행:
- [ ] 1단계: 기술 스택 탐지
- [ ] 2a단계: 치명적 검사 실행 (1-15) — checklists/critical-15.md 참조
- [ ] 2b단계: 일반 검사 실행 (16-40) — checklists/standard-25.md 참조
- [ ] 2c단계: 프로덕션 검사 실행 (41-50) — checklists/production-10.md 참조
- [ ] 3단계: 점수 계산 및 보고서 작성 — core/output-format.md 참조
치명적 검사를 먼저 실행 — checklists/critical-15.md를 읽고 모든 검사를 진행하기 전에 실행합니다.
각 검사에 대해 관련 참조 파일을 확인합니다:
- 취약점 세부 정보 →
vulnerabilities/*.md - 스택별 패턴 →
stack/*.md - 프로덕션 준비 →
production/*.md
심각도 척도
| 점수 | 수준 | 필요한 조치 |
|---|---|---|
| 10/10 | 치명적 | 배포 전 수정 |
| 8-9/10 | 높음 | 24시간 이내 수정 |
| 6-7/10 | 중간 | 1주일 이내 수정 |
| 4-5/10 | 낮음 | 편리할 때 수정 |
| 1-3/10 | 정보 제공 | 고려해볼 사항 |
프로젝트 점수 = 100에서 발견된 모든 문제의 심각도 점수 합계를 뺀 값 (최소 0).
| 점수 | 등급 |
|---|---|
| 90-100 | ✅ 우수함 |
| 70-89 | ⚠️ 양호 — 사소한 문제 |
| 50-69 | 🟡 보통 — 주의 필요 |
| 30-49 | 🟠 나쁨 — 상당한 위험 |
| 0-29 | 🔴 치명적 — 배포 금지 |
3단계: 보고서 출력
core/output-format.md에 정의된 형식을 사용합니다. 주요 요구사항:
- 정확한 파일 및 줄 번호 참조
- 각 발견 항목에 대해 일치하는 패턴 표시
- 모든 문제에 대해 수정 전/후 코드 차이 제공
- 빠른 해결 섹션 포함 (10분 미만으로 수정 가능)
- 우선순위가 지정된 요약으로 마무리
참조 색인
핵심
core/principles.md— 보안 원칙 및 심층 방어 전략core/audit-process.md— 50개 항목 체크리스트 라우팅 및 실행 순서core/output-format.md— 점수 계산 보고서 템플릿
취약점 지식 베이스
vulnerabilities/injection.md— SQL 인젝션, XSS, 명령어 인젝션, LDAP 인젝션vulnerabilities/access-control.md— IDOR, 권한 상승, 대량 할당vulnerabilities/authentication.md— JWT, OAuth 2.0, PKCE, 세션 관리, 비밀번호 보안vulnerabilities/csrf-ssrf.md— CSRF, SSRF, 오픈 리다이렉트 (우회 기법 표 포함)vulnerabilities/file-upload.md— 매직 바이트, 폴리글롯 파일, ZIP 슬립, SVG XSSvulnerabilities/cryptography.md— 암호화, 해싱, 키 관리, 논스 재사용vulnerabilities/race-conditions.md— TOCTOU, 이중 지출, 뮤텍스 패턴
스택별 모듈
stack/supabase.md— RLS 정책, 인증, 저장소, 엣지 함수stack/firebase.md— 보안 규칙, Firestore, 인증stack/nextjs.md— 서버 액션, 미들웨어, 라우트 핸들러, 앱 라우터stack/stripe-payments.md— 웹훅, 가격 검증, 구독 흐름stack/react-native.md— 안전한 저장소, API 프록시, 딥 링크stack/ai-llm.md— API 키 보호, 프롬프트 인젝션, 사용량 제한, 출력 정화stack/graphql.md— 인트로스펙션, 깊이 제한, 배칭, 지속적 쿼리stack/docker-cicd.md— 컨테이너 보안, 파이프라인 강화
프로덕션 준비
production/security-headers.md— CSP, HSTS, X-Frame-Options, Permissions-Policyproduction/deployment.md— 소스 맵, 환경 분리, 디버그 엔드포인트production/compliance.md— GDPR, CCPA, 계정 삭제, 데이터 보존production/observability.md— 로깅 보안, PII 정화, 모니터링production/dependency-audit.md— 고스트 패키지, 타이포스쿼팅, 공급망 공격
실행 가능한 체크리스트
checklists/critical-15.md— 15개 치명적 검사 (배포 전 수정)checklists/standard-25.md— 25개 일반 검사 (1주일 이내 수정)checklists/production-10.md— 10개 프로덕션 준비 검사 (라이브 전)
코드 생성 시
이 규칙은 사전 예방적으로 적용됩니다. 인증, 결제, 데이터베이스 접근, API 키 또는 사용자 데이터를 다루는 코드를 작성하기 전에 관련 참조 파일을 확인하여 처음부터 취약점이 도입되지 않도록 하십시오. 예방은 항상 탐지보다 낫습니다.
확실하지 않을 경우, 더 제한적이거나 안전한 옵션을 선택하고 주석으로 보안 고려 사항을 문서화하십시오.