zioinfo-mail/certification/04_기술문서/보안_설계서.md
DESKTOP-TKLFCPR\ython 7373d74204 feat(certification): GS인증 신청서 및 부가서류 완성 (바로 신청 가능)
[신청서 및 서류 (certification/)]
02_프로그램등록/GS인증_신청서.md
  - 신청자/제품 정보 모두 기입
  - 시험 요청 항목 8개 품질특성 전체 선택
  - 제출 서류 체크리스트 + 수수료 안내

04_기술문서/제품_기능_명세서.md
  - 기능 코드별 전체 목록 (SR-001~008, INC-001~005, DEP-001~006 등)
  - 시스템 아키텍처 개요
  - 성능 기준 및 측정값
  - 제한 사항 명시

04_기술문서/사용자_매뉴얼_개요.md
  - 설치/최초로그인/주요화면/관리자기능/제거 설명
  - GS인증 사용성 요구사항 충족

04_기술문서/보안_설계서.md
  - 인증/인가 설계 (JWT+RBAC+MFA)
  - 암호화 설계 (AES-256-GCM, bcrypt, TLS)
  - 보안 정책 (금지사항, 입력값검증, Rate Limiting)
  - 개인정보보호법 준수 항목

01_사전준비/제품개요서.md
  - 저작권 등록용 제품 설명
  - 기술 특허, 수상 현황

06_제출서류/저작권등록_신청서_가이드.md
  - 한국저작권위원회 제출 항목 입력값 완성
  - 저작물 설명서 (제출 그대로 사용 가능)

07_심사대응/예상_질문_답변.md
  - TTA 심사관 예상 9개 질문 + 완성된 답변
  - 기능적합성/보안성/사용성/이식성/신뢰성별

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 10:14:35 +09:00

110 lines
2.8 KiB
Markdown

# GUARDiA ITSM v2.0 — 보안 설계서
> **GS인증 보안성 심사 제출용 공식 문서**
---
## 1. 인증/인가 설계
### 1.1 JWT 기반 인증
```
로그인 요청
비밀번호 bcrypt 검증 + 실패 횟수 확인
5회 실패 시 30분 계정 잠금
JWT 토큰 발급 (유효기간: 120분)
모든 API: Authorization: Bearer {token}
```
### 1.2 RBAC 권한 체계
| 역할 | 권한 |
|------|------|
| ADMIN | 전체 |
| PM | 승인, 프로젝트, 보고서 |
| ENGINEER | SR 처리, 배포, CMDB |
| CUSTOMER | SR 접수·조회만 |
### 1.3 MFA/OTP
- TOTP (Time-based One-Time Password)
- RFC 6238 표준 준수
- Google Authenticator 호환
---
## 2. 암호화 설계
### 2.1 데이터 암호화
| 대상 | 알고리즘 | 비고 |
|------|---------|------|
| 서버 SSH 비밀번호 | AES-256-GCM | IV 12B + Tag 16B |
| 사용자 비밀번호 | bcrypt (cost=12) | Rainbow table 방지 |
| 라이선스 키 | AES-256-GCM + HMAC-SHA256 | |
| 전송 데이터 | TLS 1.2+ (HTTPS) | Nginx 설정 |
### 2.2 감사 로그 무결성
```
log_hash = SHA-256(prev_hash + actor + action + detail + timestamp)
```
해시체인 방식으로 로그 위변조 즉시 탐지.
---
## 3. 보안 정책
### 3.1 금지 사항 (하드코딩 원칙)
| 항목 | 정책 |
|------|------|
| 외부 AI API | 완전 금지 (Ollama localhost만 허용) |
| root SSH | 직접 접속 금지 (opsagent 전용) |
| 자격증명 노출 | API 응답/로그에 IP·비밀번호 포함 금지 |
| 스택트레이스 | 클라이언트 응답에서 완전 제거 |
### 3.2 입력값 검증
- SQL 인젝션: SQLAlchemy ORM 파라미터 바인딩 100%
- XSS: 모든 출력값 HTML 이스케이프
- 경로 조작: Path.resolve().relative_to() 검증
- 파일 업로드: 확장자 화이트리스트 (.pdf/.docx/.xlsx/.png/.jpg/.zip)
### 3.3 Rate Limiting
- 로그인 API: 분당 5회 제한
- 일반 API: slowapi 적용
- Fail2ban: SSH 5회 실패 시 1시간 차단
---
## 4. 개인정보보호법 준수 항목
| 조항 | 준수 내용 |
|------|---------|
| 제28조 | 개인정보 암호화 저장 (비밀번호 bcrypt) |
| 제29조 | 접근 통제 (RBAC, MFA) |
| 제30조 | 개인정보처리방침 게시 |
| 제31조 | 개인정보영향평가 검토 |
---
## 5. 시큐어코딩 자동 점검
```bash
# GUARDiA 내장 점검 도구
POST /api/compliance/scan
# 점검 규칙 (21개)
- SC-8개: SQL인젝션, XSS, 하드코딩자격증명, OS인젝션, 경로조작, 정보노출, CSRF, 취약암호화
- WA-7개: 대체텍스트, 색상대비, 키보드접근성, 폼레이블, 언어속성, 포커스표시, ARIA역할
- PI-6개: 주민번호, 신용카드, 이메일수집, 비밀번호평문, 전화번호, 로그개인정보
```
*Copyright © 2026 (주)지오정보기술 All Rights Reserved.*