# task-1987: 인슈로 보안/검증 게이트 점검 (SEC-1~4, G4-1~4)

## 목적
체크리스트 보안 게이트 8건 점검 + 통과 가능한 항목 확인/수정.

## ★ 반드시 먼저 읽을 파일 ★
1. `memory/plans/insuro-system/checklist.md` — 보안/게이트 섹션
2. 인슈로 프로젝트: `/home/jay/projects/InsuRo/`

## 점검 항목

### SEC-1. 서버사이드 플랜 검증 모든 API 적용 확인
- 모든 보호 대상 API에 require_plan 데코레이터 적용 여부 점검
- 미적용 API 발견 시 추가

### SEC-2. Rate limiting 전 AI 엔드포인트 적용 확인
- /api/ai/*, /api/insuro/ai/* 엔드포인트에 rate limit 존재 확인
- 미적용 시 추가 (예: slowapi 또는 커스텀)

### SEC-3. 감사 로그 전 AI 호출 기록 확인
- task-1969에서 4곳 추가했으나 전수 확인 필요
- AI 호출 경로 전부에 token_usage_log INSERT 확인

### SEC-4. 비용 차단기 임계치 설정 확인
- 월별 AI 호출 비용 상한 설정 존재 확인
- 없으면 환경변수 기반 임계치 추가

### G4-1. 침투 테스트 (플랜 우회 5가지 시나리오)
- 무료 사용자가 프로 API 직접 호출 → 403 확인
- 모델 파라미터 변조 → 서버 거부 확인
- 사용량 초과 → 429 확인
- 관리자 페이지 비인가 접근 → 차단 확인
- OAuth 토큰 평문 조회 시도 → 암호화 확인

### G4-2. OAuth 토큰 암호화 검증
- task-1969에서 Fernet 구현 → DB 덤프로 복원 불가 확인

### G4-3. 다중 계정 탐지 로직
- 동일 IP/디바이스에서 다수 계정 가입 탐지 (있으면 확인, 없으면 기록만)

### G4-4. 자동 포스팅 콘텐츠 무결성 검증
- 자동 생성 콘텐츠에 PII가 포함되지 않는지 확인

## ★★★ 절대 규칙 ★★★
- 점검/테스트 위주. 필요한 수정만 최소한으로.
- API 직접 호출 금지 — CLI로만

## 완료 시그니처
- [grep] `require_plan\|rate_limit\|token_usage_log` @ `server/main.py`
- [pytest] `tests/test_e2e_flows.py`

## 검증 시나리오
1. SEC-1~4 전부 점검 결과 보고서에 PASS/FAIL 기록
2. G4-1 침투 시나리오 5건 실행 결과
3. tsc 0 errors, pytest PASS

## 레벨
- critical (보안)

## 프로젝트
- insuro