크라우니시큐리티 제품화 패키징
개요
크라우니시큐리티를 판매 가능한 수준의 엔터프라이즈 제품으로 패키징 완료. API 서버, 실시간 대시보드, Docker 배포, 영문 문서, SIEM 연동 5개 태스크 수행.
완료 항목
1. API 서버 (server/server.js)
- REST API: 이벤트 수집, 알림, IOC, 상관분석 규칙, 신뢰점수, ABAC
- Syslog UDP/TCP 수신기 (RFC 5424)
- WebSocket 실시간 스트림
- JWT + API Key 인증
- Rate limiting, CORS
- 외부 의존성 0개 (Node.js stdlib only)
2. 실시간 대시보드 (dashboard/index.html)
- 다크 테마 SPA
- 이벤트 타임라인, 알림 관리, IOC 테이블
- WebSocket 라이브 스트림
- 10초 자동 갱신
3. Docker 패키징 (docker/)
Dockerfile — multi-stage, non-root, healthcheck
docker-compose.yml — 원클릭 배포 + 선택적 Redis
.env.example — 환경변수 템플릿
4. 영문 문서 (docs/)
QUICK_START.md — 3분 시작 가이드
API_REFERENCE.md — 전체 엔드포인트 문서 (17개 API + Syslog + WebSocket)
ARCHITECTURE.md — 시스템 설계, 데이터 플로우, 컴포넌트
DEPLOYMENT.md — 프로덕션 배포 (systemd, launchd, Docker, nginx, TLS, 백업)
5. SIEM 연동 + STIX/TAXII + 웹훅
- 웹훅 알림: Slack/Teams/PagerDuty 등 HTTP POST, HMAC-SHA256 서명
- STIX 2.1 Export: IOC → STIX indicator, Alert → STIX sighting
- TAXII 2.1 서버:
/taxii2/ 디스커버리, 컬렉션, 오브젝트 조회
- Elasticsearch Bulk Export:
_bulk API 포맷 NDJSON
- Splunk HEC Export: HTTP Event Collector 포맷
신규 API 엔드포인트
| 엔드포인트 | 메서드 | 기능 |
|---|
/api/v1/webhooks | GET/POST | 웹훅 관리 |
/api/v1/webhooks/{id} | DELETE | 웹훅 삭제 |
/api/v1/export/stix | GET | STIX 2.1 번들 |
/api/v1/export/elastic | GET | Elasticsearch bulk |
/api/v1/export/splunk | GET | Splunk HEC |
/taxii2/ | GET | TAXII 디스커버리 |
/taxii2/api/ | GET | API Root |
/taxii2/api/collections/ | GET | 컬렉션 목록 |
/taxii2/api/collections/crowny-iocs/objects/ | GET | STIX 오브젝트 |
CrownyTVM 컴파일러 버그 수정 (이전 세션)
- codegen.rs 전역변수 캡처 버그 2건 수정
- 예약어 충돌 5개 모듈 수정
- 21개 보안 모듈 컴파일 성공
파일 위치
- 서버:
/Users/ef/crowny-security/server/server.js
- 대시보드:
/Users/ef/crowny-security/dashboard/index.html
- Docker:
/Users/ef/crowny-security/docker/
- 문서:
/Users/ef/crowny-security/docs/
- 한선씨 모듈:
/Users/ef/crowny-security/modules/*.한선
잔여 이슈
- Docker 빌드 미테스트 (Docker 미설치 환경)
- 영속 스토리지 (PostgreSQL/TimescaleDB) 미구현 — 현재 인메모리
- Prometheus /metrics 엔드포인트 미구현
- 한선씨 동반 파일 (server.js → server.한선) 미생성