# 보안팀 체계 구축 제안서
> 작성일: 2026-03-23 | 작성팀: dev2-team | 작성자: 미미르(Mimir) | task-828.1

---

## 1. 현재 보안 역할 분석

### 1.1 레드팀 로키(Loki)의 현재 역할

- **소속**: 횡단조직 (Cross-functional) — 각 팀에서 필요 시 소환
- **모델**: sonnet
- **전문 영역**:
  - 보안 취약점 탐지 및 공격 시뮬레이션
  - OWASP Top 10 점검
  - 입력값 조작, 권한 우회, API 보안 테스트
  - SQL Injection / XSS Injection
  - 의존성 취약점 스캔
- **산출물**: 보안 감사 보고서, 취약점 등급 분류, 개선 권고
- **한계**:
  - 1인 체제 — 부하 집중 및 단일 장애점(Single Point of Failure) 위험
  - 방어(Blue) / 모니터링 역할 부재
  - 정기 스캔 프로세스 미확립

---

### 1.2 헤임달(Heimdal)의 현재 역할

- **소속**: dev2-team QA 테스터
- **전문 영역**:
  - 보안 중심 품질 검증
  - XSS/SQL Injection 방어 확인
  - 인증 플로우 테스트
  - 부하 테스트
- **한계**:
  - 본 업무(QA)와 보안 업무 겸직 — 집중도 저하
  - 공격 시뮬레이션(offensive) 역량 제한
  - 보안 전담 아닌 QA 관점의 보안 검증

---

### 1.3 오시리스(Osiris)의 현재 역할

- **소속**: dev4-team 백엔드 개발자
- **전문 영역**:
  - 데이터 보안 및 무결성 중심 개발
  - 암호화 구현 (HMAC-SHA256 등)
- **한계**:
  - 보안 전담이 아닌 개발 중심 포지션
  - 보안 감사/테스트 역할 없음

---

### 1.4 분산된 보안 역할의 문제점

| 문제 항목 | 현황 | 리스크 |
|---|---|---|
| 보안 책임 분산 | 3개 팀(횡단/dev2/dev4)에 분산 | 책임 소재 불명확, 커버리지 공백 |
| 통합 보안 시각 부재 | 각자 관점에서만 보안 점검 | 전체 공격 표면(attack surface) 파악 불가 |
| 정기 보안 스캔 없음 | 필요 시 임시 소환 방식 | 취약점 조기 발견 실패 |
| 인시던트 대응 체계 없음 | 체계적 플레이북 미확립 | 침해 발생 시 혼란 및 피해 확대 |
| Blue Team 부재 | 공격(Red) 관점만 존재 | 실시간 모니터링 및 방어 체계 없음 |

---

## 2. PentAGI에서 배우는 보안 체계

### 2.1 멀티에이전트 패턴

PentAGI는 Primary Agent가 전문 서브에이전트(Pentester, Coder, Searcher 등)에게 위임하는 계층 구조를 갖는다. 각 에이전트는 자신의 전문 영역에 집중하고, Supervision 계층이 품질을 보장한다.

- **Primary**: 전략적 판단 및 조율
- **Pentester**: 공격 시뮬레이션 전문
- **Coder**: 취약점 수정 구현
- **Searcher**: 위협 인텔리전스 수집
- **Supervision**: 결과 품질 보증

이 구조는 역할 분리(Separation of Concerns)와 전문화(Specialization)를 동시에 달성한다.

---

### 2.2 우리 조직에 적용 가능한 패턴

| PentAGI 구조 | 우리 조직 적용 |
|---|---|
| Primary Agent | 보안팀장 (로키 격상) |
| Pentester Agent | Red Cell — 침투 테스트 전담 |
| Coder Agent | 각 팀 보안 담당 개발자 |
| Supervisor | Purple Cell — 감사 및 통합 |

**핵심 적용 원칙**:
- **Red Team**: 공격 시뮬레이션 — 취약점 탐지
- **Blue Team**: 방어/모니터링 — 실시간 탐지 및 대응
- **Purple Team**: Red + Blue 결과 통합 — 보안 정책 수립 및 컴플라이언스

---

## 3. 보안팀 구조 제안

### Option A: 기존 레드팀 확장

```
로키 (Red Team 리더 + 보안 총괄)
├── Red Cell: 로키 (현행 유지)
└── Blue Cell: 신규 멤버 추가
```

- **장점**: 기존 구조 활용, 최소 변경, 빠른 실행
- **단점**: 레드팀 리더가 블루팀도 관리 — 집중도 분산, 로키 과부하 위험

---

### Option B: 별도 보안팀 신설

```
보안팀장 (신설)
├── Red Cell: 로키(Loki) + 신규 공격 시뮬레이션 전문가
├── Blue Cell: 방어/모니터링 전문가 (신규)
└── Purple Cell: 감사/통합 전문가 (신규)
```

- **장점**: 명확한 역할 분리, 전문성 확보, 확장성
- **단점**: 조직 신설 비용, 리소스 부담

---

### 권장안: Option A (현실적 접근)

현재 조직 규모와 리소스를 고려할 때 Option A를 우선 적용하되, Phase 3 이후 Option B로 전환하는 로드맵을 권장한다.

**구체적 실행 방안**:

1. **로키(Loki)를 보안팀장으로 격상** — 횡단조직 유지, 권한/책임 강화
2. **헤임달(Heimdal)을 보안팀에 파견** — Blue Team 역할 담당 (QA 겸직에서 보안 우선으로 전환)
3. **마아트(Maat) QC 리더와 협업** — Purple 역할 (감사 및 컴플라이언스)
4. **오시리스(Osiris)와 보안 채널 연결** — 암호화/데이터 보안 기술 지원

---

## 4. 역할 정의

### 4.1 Red Team (공격 시뮬레이션)

| 항목 | 내용 |
|---|---|
| **담당** | 로키(Loki) |
| **주요 업무** | 침투 테스트, 취약점 스캐닝, 공격 시뮬레이션, OWASP Top 10 점검 |
| **대상 시스템** | InsuRo (Next.js/Firebase/Vercel), InsuWiki, 아누 서버 (Ubuntu/Python), HMAC-SHA256 API |
| **도구** | nmap, sqlmap, nuclei, Burp Suite, OWASP ZAP, wfuzz, nikto |
| **산출물** | 취약점 보고서, 위험 등급 분류 (CVSS 기준), 개선 권고사항 |
| **주기** | 분기별 전체 침투 테스트 + 런칭 전 필수 수행 |

---

### 4.2 Blue Team (방어 및 모니터링)

| 항목 | 내용 |
|---|---|
| **담당** | 헤임달(Heimdal) 겸직 (또는 신규 전담) |
| **주요 업무** | 보안 설정 검증, 실시간 모니터링, 패치 관리, 인시던트 대응 |
| **대상 시스템** | Firebase Security Rules, Vercel 보안 헤더, npm 의존성, Python 환경 |
| **도구** | Firebase Security Scanner, npm audit, Snyk, Dependabot, Sentry, 로그 분석 도구 |
| **산출물** | 보안 모니터링 대시보드, 패치 보고서, 인시던트 대응 기록 |
| **주기** | 일간 자동 스캔 + 주간 수동 검토 |

---

### 4.3 Purple Team (감사 및 통합)

| 항목 | 내용 |
|---|---|
| **담당** | 마아트(Maat) 협업 또는 전담 |
| **주요 업무** | Red/Blue 결과 통합 분석, 보안 정책 수립, 컴플라이언스 검증 |
| **대상** | 전체 보안 프로세스, 정책 문서, 감사 체크리스트 |
| **도구** | 보안 감사 체크리스트, CVSS 평가 도구, 정책 문서 관리 시스템 |
| **산출물** | 통합 감사 보고서, 보안 정책 문서, 개선 권고 로드맵 |
| **주기** | 월간 감사 + 분기별 종합 리뷰 |

---

## 5. 필요 스킬셋 / 도구 / 프로세스

### 5.1 스킬셋

**공통 (전 팀원)**
- OWASP Top 10 이해 및 대응 방법
- 기본 네트워크 보안 개념 (TCP/IP, TLS/SSL, HTTPS)
- 인증/인가 체계 이해 (JWT, OAuth 2.0, HMAC)

**Red Team 전문**
- 침투 테스트 방법론 (PTES, OSSTMM)
- 웹 애플리케이션 취약점 분석
- API 보안 테스트 (REST, GraphQL)
- Social Engineering 시뮬레이션

**Blue Team 전문**
- Firebase/Vercel 보안 설정
- Next.js 보안 헤더 및 CSP 설정
- Python 보안 코딩 가이드 (Bandit 활용)
- 로그 분석 및 이상 탐지

**Purple Team 전문**
- 보안 정책 문서 작성
- CVSS 취약점 등급 평가
- 컴플라이언스 체계 (개인정보보호법, 보험업법 IT 보안 기준)

---

### 5.2 도구 목록 (전체)

PentAGI 분석 및 우리 시스템(Next.js + Firebase + Vercel + Python) 기반 선정:

**취약점 스캐닝**
- `nmap` — 네트워크 포트/서비스 스캔
- `nuclei` — 템플릿 기반 취약점 스캔
- `nikto` — 웹 서버 취약점 스캔

**웹 애플리케이션 테스트**
- `OWASP ZAP` — 자동화 웹 취약점 스캐너
- `sqlmap` — SQL Injection 자동 탐지
- `wfuzz` — 웹 파라미터 퍼징(fuzzing)
- `Burp Suite` — 수동 웹 침투 테스트 프록시

**의존성 및 공급망 보안**
- `npm audit` — Node.js 의존성 취약점 검사
- `Snyk` / `Dependabot` — 자동화 의존성 모니터링
- `pip audit` — Python 의존성 취약점 검사

**정적 분석 (SAST)**
- `ESLint security rules` — JavaScript/TypeScript 정적 보안 분석
- `Bandit` — Python 정적 보안 분석

**시크릿 스캐닝**
- `truffleHog` — Git 히스토리 내 시크릿 탐지
- `gitleaks` — 코드베이스 시크릿 스캔

**Firebase 전용**
- `firebase-tools` — Firebase Security Rules 시뮬레이터 테스트
- Firebase Emulator Suite — 로컬 Rules 검증

**모니터링 및 로그 분석**
- `Sentry` — 에러 및 이상 탐지
- Vercel Analytics — 트래픽 이상 탐지
- Firebase Crashlytics — 앱 충돌 및 이상 로그

---

### 5.3 프로세스 원칙

- **정기 스캔 주기**: 일간/주간/월간/분기별 계층적 스캔 (상세 내용: 6.2절)
- **취약점 등급 분류**: CVSS v3.1 기준 (Critical ≥ 9.0 / High 7.0~8.9 / Medium 4.0~6.9 / Low < 4.0)
- **패치 우선순위 결정**: 등급 × 영향 범위 × 악용 가능성 복합 평가
- **보안 인시던트 대응**: 표준 플레이북 적용 (상세 내용: 6.4절)

---

## 6. 보안 운영 프로세스 A to Z

### 6.1 런칭 전 보안 감사 프로세스

InsuRo / InsuWiki / 아누 서버 신규 기능 또는 서비스 런칭 시 필수 수행:

```
Step 1.  코드 보안 리뷰 (Static Analysis)
         → ESLint security rules (JS/TS), Bandit (Python)

Step 2.  의존성 취약점 스캔
         → npm audit, pip audit, Snyk

Step 3.  시크릿 스캔
         → gitleaks (코드베이스 전체), truffleHog (Git 히스토리)

Step 4.  Firebase Security Rules 시뮬레이터 테스트
         → firebase-tools Rules 검증, Emulator Suite 활용

Step 5.  Vercel 보안 헤더 확인
         → CSP, X-Frame-Options, HSTS, X-Content-Type-Options

Step 6.  OWASP Top 10 체크리스트 검증
         → 각 항목 대응 여부 수동 확인

Step 7.  침투 테스트 (로키 수행)
         → OWASP ZAP 자동 스캔 + Burp Suite 수동 테스트
         → HMAC-SHA256 API 인증 우회 시도

Step 8.  보안 보고서 작성
         → 발견 취약점 목록 + CVSS 등급 + 재현 절차

Step 9.  발견 취약점 수정
         → Critical/High: 런칭 전 필수 수정
         → Medium/Low: 런칭 후 즉시 수정 계획 수립

Step 10. 회귀 테스트 (Regression Test)
         → 수정 후 재검증, 새 취약점 미발생 확인

Step 11. 런칭 승인
         → 보안팀 승인 (로키) + 마아트(QC) 최종 확인
```

---

### 6.2 정기 보안 스캔 주기 및 방법

| 주기 | 내용 | 담당 | 방법 |
|---|---|---|---|
| **일간** | 의존성 취약점 자동 스캔 | Blue Team (자동화) | Dependabot / Snyk 알림 모니터링 |
| **주간** | Firebase Rules 변경 검토, 로그 이상 탐지 분석 | 헤임달 | firebase-tools diff, Sentry 리뷰 |
| **월간** | OWASP Top 10 체크리스트 재검증, 보안 헤더 점검 | Purple Team (마아트 + 로키) | 수동 체크리스트 + 자동화 보고서 |
| **분기별** | 전체 침투 테스트, API 보안 테스트 | Red Team (로키) | nmap + OWASP ZAP + Burp Suite + sqlmap |
| **연간** | 외부 보안 감사 (3rd-party) | 전체 보안팀 | 외부 전문 기관 의뢰 |

---

### 6.3 취약점 발견 시 대응 프로세스

```
Step 1. 취약점 등급 분류 (CVSS v3.1)
        Critical (≥9.0) / High (7.0~8.9) / Medium (4.0~6.9) / Low (<4.0)

Step 2. 즉시 대응 기준
        - Critical: 발견 후 24시간 내 임시 조치 (서비스 중단 또는 해당 기능 비활성화)
        - High:     발견 후 72시간 내 임시 조치
        - Medium:   다음 배포 사이클 내 수정
        - Low:      백로그 등록 후 우선순위 조율

Step 3. 영향 분석
        - 영향받는 시스템/기능 범위 파악
        - 사용자 데이터 노출 여부 확인
        - 공격 가능성(Exploitability) 평가

Step 4. 수정 계획 수립
        - 담당 개발팀 지정 (인/아웃 소싱)
        - 수정 기한 및 검증 방법 확정
        - 임시 완화 조치(Workaround) 적용 여부 결정

Step 5. 패치 개발 및 테스트
        - 개발팀에서 수정 구현
        - 보안팀이 패치 유효성 검증
        - 회귀 테스트 수행

Step 6. 배포 및 검증
        - 스테이징 환경 배포 → 보안 검증
        - 프로덕션 배포 → 배포 후 모니터링 강화

Step 7. 사후 분석 (Lessons Learned)
        - 취약점 발생 원인 분석
        - 동일 유형 취약점 전체 시스템 점검
        - 프로세스 개선 사항 도출 및 반영
```

---

### 6.4 보안 인시던트 대응 플레이북

실제 침해 또는 침해 의심 상황 발생 시 적용:

```
Phase 1. 감지 (Detection)
         - Sentry 알림, Firebase 이상 접근, Vercel 트래픽 급증 등
         - 자동화 모니터링 + 수동 보고 경로 모두 운영

Phase 2. 분류 (Triage)
         - 심각도 평가: 데이터 유출 여부, 영향 범위, 진행 중 여부
         - 인시던트 레벨 선언 (P1 Critical / P2 High / P3 Medium)
         - 대응팀 소집 (P1: 즉시 / P2: 1시간 내 / P3: 4시간 내)

Phase 3. 격리 (Containment)
         - 영향 범위 제한: 취약 서비스 비활성화 또는 트래픽 차단
         - Firebase Rules 긴급 제한 적용
         - Vercel 배포 롤백 또는 특정 경로 차단

Phase 4. 조사 (Investigation)
         - 공격 벡터 및 침투 경로 분석
         - 로그 수집 및 보존 (증거 보전)
         - 영향받은 데이터 범위 확정

Phase 5. 제거 (Eradication)
         - 악성 코드 / 백도어 / 유출 자격증명 제거
         - 취약점 패치 적용
         - 침해된 계정 자격증명 전체 재발급

Phase 6. 복구 (Recovery)
         - 서비스 정상 운영 복귀
         - 복구 후 집중 모니터링 (최소 72시간)
         - 단계적 서비스 재개 (전체 동시 재개 지양)

Phase 7. 사후 분석 (Post-Incident Review)
         - 인시던트 타임라인 재구성
         - 대응 과정의 강점/약점 분석
         - 재발 방지 대책 도출

Phase 8. 보고 (Reporting)
         - 내부 이해관계자 보고 (팀장급 이상)
         - 규정 요건 시 외부 기관 보고 (개인정보보호위원회 등)
         - 사용자 영향 시 공지 검토

Phase 9. 개선 (Improvement)
         - 도출된 재발 방지 대책을 프로세스에 공식 반영
         - 보안 플레이북 업데이트
         - 전 팀 대상 인시던트 회고 공유
```

---

## 7. 구현 로드맵

### Phase 1 — 즉시 실행 (현재 ~ 1주)

**목표**: 런칭 전 최소 보안 기준 충족

- [ ] 런칭 전 보안 체크리스트 문서화 (6.1절 기반)
- [ ] 로키에게 InsuRo/InsuWiki 즉시 보안 감사 요청
- [ ] gitleaks로 기존 코드베이스 시크릿 스캔 1회 수행
- [ ] Firebase Security Rules 현행 검토
- [ ] Vercel 보안 헤더 현행 점검

---

### Phase 2 — 단기 (1개월)

**목표**: 자동 보안 스캔 파이프라인 구축

- [ ] Dependabot / Snyk 일간 자동 스캔 설정
- [ ] GitHub Actions에 ESLint security rules, Bandit, gitleaks 통합 (CI/CD 파이프라인)
- [ ] 헤임달 Blue Team 역할 파견 공식화
- [ ] 보안 모니터링 대시보드 초안 구성 (Sentry + Firebase 콘솔 통합)
- [ ] 취약점 등급 분류 기준 및 대응 SLA 공식 문서화

---

### Phase 3 — 중기 (3개월)

**목표**: 보안팀 정식 운영 시작

- [ ] 로키 보안팀장 격상 및 역할 공식화
- [ ] 분기별 침투 테스트 1회 수행 (전체 시스템)
- [ ] 인시던트 대응 플레이북 정식 채택 및 훈련 1회 실시
- [ ] 마아트(Maat)와 Purple Team 협업 프로토콜 확립
- [ ] 보안 정책 문서 v1.0 발행

---

### Phase 4 — 장기 (6개월)

**목표**: 전체 보안 체계 정착 및 성숙도 향상

- [ ] 연간 외부 보안 감사(3rd-party) 실시
- [ ] Option B(별도 보안팀 신설) 전환 가능성 재검토
- [ ] 보안 KPI 정의 및 측정 체계 수립
  - MTTD (Mean Time to Detect)
  - MTTR (Mean Time to Respond)
  - 취약점 재발율
  - 패치 적용률
- [ ] 전 팀원 보안 인식 교육 정례화 (반기 1회)

---

## 8. 참고 및 기반 분석

- PentAGI 멀티에이전트 아키텍처 분석 (보안팀 구조 벤치마킹)
- OWASP Top 10 2021 — 웹 애플리케이션 주요 취약점 기준
- CVSS v3.1 — 취약점 등급 분류 기준
- NIST SP 800-61 — 컴퓨터 보안 인시던트 대응 가이드
- Firebase Security Rules 공식 문서
- Vercel Security 공식 문서

---

*이 문서는 미미르(Mimir) — dev2-team UX/UI 분석가가 작성하였으며, 보안팀 구성원 및 팀리더 검토 후 공식 채택 절차를 거칩니다.*
