← 목록

크라우니 스피어 스캔 MVP — 무료 공익 보안 진단

개요

한국 서비스 대상 Passive 보안 스캐너 MVP 완성. URL 입력 → TLS/헤더/쿠키/노출파일 자동 체크 → 등급 산출 → HTML/JSON 리포트 생성.

무엇을 했는지

패키지 구조

crowny-spear-scan/
├── bin/cli.js           ← CLI (node bin/cli.js <도메인>)
├── checks/
│   ├── tls.js           ← TLS 1.2+ / 암호군 / 인증서 만료
│   ├── headers.js       ← HSTS / CSP / X-Frame / nosniff / Server노출
│   ├── cookies.js       ← Secure / HttpOnly / SameSite
│   └── exposed.js       ← .env/.git/config 등 15경로 프로브 + SPA폴백 감지
├── engine/
│   ├── report.js        ← 점수/등급 엔진 + HTML 리포트 생성기
│   └── 판정.한선          ← 한선씨 판정 엔진 (독립 실행 가능)
├── reports/output/      ← 날짜별/도메인별 JSON+HTML 리포트
├── CLAUDE.md
└── package.json

crowny.org 자체 스캔 결과

게이트웨이 정상 시: 89점 B등급 (WARN 1: Server 헤더 노출)

게이트웨이 재시작 직후: 48점 D등급 (WARN 5: 보안헤더 미적용) → 발견: 게이트웨이 재시작 시 보안헤더가 누락되는 설정 이슈 확인

SPA 폴백 감지 (핵심 기능)

SPA 앱이 모든 경로에 200 HTML 반환하면 노출파일 체크가 오탐(false positive) 발생. preview 64바이트를 검사하여 <!DOCTYPE 또는 <html 시작이면 SPA 폴백으로 판정 → PASS 강등.

한선씨 판정 엔진

engine/판정.한선 — crownyc 독립 실행 가능. 90점 A등급 + 개선 가이드(항목별 구체적 조치사항) 출력 확인.

관련 파일

다음 단계

  1. 외부 도메인 배치 스캔 (한국 주요 서비스)
  2. notify/email.js — KISA 양식 자동 고지
  3. 게이트웨이에서 서빙 (spear.crowny.org/scan 라우트)
  4. 30일 재스캔 + 개선율 대시보드
  5. Server 헤더 노출 수정 (crowny-gateway)