# 보안대책서 첨부자료 패키지 작성일: 2026-05-20 목적: HWP 보안대책서에 붙일 증적 자료를 빠짐없이 모으기 위한 패키지 구성안 ## 1. 제출 패키지 구성 아래 순서로 첨부하면 심사자가 “통제 항목 → 실제 적용 증적 → 운영 절차”를 따라 확인하기 쉽습니다. | 순서 | 자료 | 생성/준비 방법 | |---:|---|---| | 1 | 보안통제 매트릭스 | `security_evidence.php?format=md` 다운로드 후 HWP 표로 반영 | | 2 | 서버 운영 점검 결과 | `setup_wizard.php`, `security_evidence.php` 화면 캡처 | | 3 | 월간 운영 보고서 | `monthly_report.php` PDF 또는 CSV | | 4 | 단말 운영 증적 | STM32 USART3(PD8/PD9, 115200) 부팅 콘솔 로그(링크업/DHCP/SNTP/TLS/서버 200) 캡처 | | 5 | 네트워크 증적 | 방화벽 정책, 단말 인바운드 차단 확인, HTTPS 인증서 화면 | | 6 | 물리 설치 증적 | STM32 보드, SHT30 센서 설치 사진과 장비 ID | | 7 | 관리자 접근통제 증적 | MFA 등록 화면, 로그인 화면, 감사로그 존재 확인 | | 8 | 측정/임계 경보 증적 | 측정값 저장(`sensor_metric`), 종류별 경보·정상복귀 SMS(`sms_log`) 화면 | | 9 | 운영 절차 증적 | 운영·보안 점검표, 보관기간 정리 dry-run, 백업 파일 목록, 수신자 현행화 확인 | | 10 | 소스코드 기반 설명 | `SOURCE_SECURITY_EVIDENCE.md`의 기술통제 설명 | > 보안대책서용 구성도/흐름도 PNG는 `scripts/generate_security_plan_images.py`로 생성하며(온습도 흐름으로 갱신됨), **PNG 재생성은 운영자가 `python scripts/generate_security_plan_images.py`로 수행**합니다. ## 2. 프로젝트에서 자동 또는 반자동으로 만들 수 있는 자료 | 자료 | 파일/화면 | 비고 | |---|---|---| | 보안 증적 보고서 | `php/security_evidence.php` | 운영 점검 결과와 보안통제 매트릭스 | | Markdown 증적 | `php/security_evidence.php?format=md` | HWP 붙여넣기용 | | 단말 증적 | STM32 USART3 부팅 콘솔 로그 캡처 | 비밀값 원문 없이 링크업/DHCP/SNTP/TLS/서버 200 상태만 출력 | | 월간 보고서 | `php/monthly_report.php` | 생성 시각과 보고 범위 포함 | | 설치 점검 | `php/setup_wizard.php` | DB, 설정, 권한, SMS 테스트 | | MFA 등록 증빙 | `docs/evidence/security_plan_mfa_evidence.html` | 보안대책서 삽입 문구, MFA 화면 캡처, Mermaid 흐름도 | | 기술 설명 | `docs/SOURCE_SECURITY_EVIDENCE.md` | API, HTTPS, 측정값 검증, 세션, 비밀값 분리 설명 | | 운영 점검표 | `docs/OPERATIONS_SECURITY_CHECKLIST.md` | 월간 점검 양식 | | 보관기간 정리 결과 | `php/retention_cleanup.php --dry-run` | SMS 로그, 센서 로그, 온습도 측정 이력, 관리자 감사로그 정리 대상 확인 | | 백업·복구 증빙 | `scripts/backup_evidence.php` | 백업 파일 목록, 설정/감사로그 존재 여부, 복구 테스트 결과 | ## 3. 운영자가 반드시 채워야 하는 자료 코드로 대신 만들 수 없는 실제 운영 증적입니다. | 항목 | 필요한 내용 | |---|---| | 실제 도메인 | HTTPS 접속 화면, 인증서 정보, Cafe24 SSL 설정 | | 설치 위치 | STM32 보드와 SHT30 센서 설치 사진, 장비 ID, 설치 장소 | | 네트워크 | 단말이 연결된 망, 방화벽 정책, 외부 인바운드 차단 여부 | | 운영자 | 점검 담당, SMS 수신자, 장애 대응 담당 역할 | | 보관기간 | 센서 로그, SMS 로그, 온습도 측정 이력, 감사로그 보관기간 | | 백업 | DB/설정 파일 백업 주기와 최근 백업 파일 목록 | | 관리자 MFA | 실제 운영 담당자 인증 앱 등록 확인, 담당자 변경 시 재등록 이력 | | 감사로그 | 로그인 성공/실패, MFA 등록 검증 로그 파일 존재 여부 | ## 4. 권장 폴더명 보안대책서와 함께 제출할 파일을 아래처럼 묶습니다. ```text security-evidence-YYYYMMDD/ 01_security_control_matrix.md 02_setup_wizard.png 03_security_evidence.png 04_monthly_report.pdf 05_device-security-evidence.md 06_https_certificate.png 07_network_firewall_policy.pdf 08_installation_photos/ 09_mfa_evidence.html 10_metric_alert_sms.png 11_retention_cleanup_dry_run.json 12_backup_restore_evidence.md 13_operations_security_checklist.md ``` ## 5. 제출 전 점검 - [ ] API 키, SMS secure key, DB 비밀번호, 관리자 원문 비밀번호, `ADMIN_TOTP_SECRET` 원문이 첨부자료에 노출되지 않는다. - [ ] `security_evidence.php` 점검 결과에 중요 실패 항목이 있으면 조치 결과 또는 예외 사유를 적는다. - [ ] 단말 증적에는 환경변수 존재 여부만 있고 원문 값은 없다. - [ ] MFA 증빙은 운영 비밀키가 아닌 증빙용 임시 키 또는 마스킹된 키를 사용한다. - [ ] 측정/경보 증빙은 측정값 저장(`sensor_metric`)과 종류별 경보·정상복귀 SMS(`sms_log`)를 함께 보여준다. - [ ] 실제 도메인은 `https://`로 접속되는 화면을 포함한다. - [ ] 네트워크 증적에는 단말로 들어오는 불필요한 포트가 없다는 근거가 포함된다. - [ ] 월간 보고서에는 생성 시각과 보고 범위가 보인다. - [ ] 보관기간 정리는 `--dry-run` 결과를 먼저 보관하고, 실제 삭제는 백업 완료 후 수행한다. - [ ] 백업 파일 목록과 담당자 역할이 최신이다.