You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
상세화 (러프 요약 → 상세값)
- 자동 스냅샷 본문에 통제 취지·증적힌트·이행상태 + 라이브 증적 전 엔티티(상위 8 제한 해제,
_source_metrics(limit)) + 크로스매핑 + 관련 심사 결함(공백 수)까지 구조화 캡처
- 단건/일괄 공통 _compose_snapshot_body + _snapshot_control 로 리팩터
정기 자동 스냅샷 (admin 자유 설정)
- off/daily/weekly/monthly + 범위(mapped|all) 설정. 카탈로그 관리 바에 드롭다운 + "지금 일괄" 버튼
- 부팅 시 도래분 일괄 스냅샷(재기동으로 월간 커버) + 열람 시 lazy 트리거(장기 무재기동 대응)
- GET/POST /controls/evidence-snapshot/config, POST /controls/evidence-snapshot/run (admin)
- evidence_snapshot_schedule|scope|last_run 설정 영속
한/영 i18n, README(한/영·FULL)·CHANGELOG 갱신. 전체 163 passed.
- 🎯 **Risk Assessment (R-series)** — Per-CVE **Risk = Impact (asset importance H/M/L) × Likelihood (severity)** as a **score (1–9)** on a 3×3 matrix (score-forward), with treatment decision (mitigate/accept/transfer/avoid) · residual risk · review date. **Admin-only assessment-basis (provenance)** panel. A single **risk-acceptance threshold (DoA)** auto-classifies risks at or below it as **auto-acceptable**. Based on ISMS-P risk management / ISO 27001 6.1.2·8.8
26
-
- 📚 **Control catalog (Phase 2)** — ISMS-P 101 + ISO 27001:2022 93 = **194 criteria** (KO/EN) as a tree in the **Compliance tab**. Edit each control's **implementation status (implemented/partial/not-implemented/N-A) · owner · plan · due date** → persisted to `control_status` (`schema/009`, survives restarts) + change history. **Admins edit the catalog itself** (add/edit/delete controls) — an overlay (`schema/011`) kept separate from the base (`controls/*.yaml`) so it survives re-sync. **Regulation-text NLP import** (`POST /controls/import-nlp`) — precise structuring via Claude when `MORI_ANTHROPIC_API_KEY` is set, clause-level heuristic otherwise → saved as draft controls. Per control, **document manual evidence** (`control_evidence`: title, body, collector, date, reference) or **⚡ auto-snapshot the live evidence** into a dated record (`POST …/evidence-records/auto`, `source=auto`), and **download the evidence pack as CSV or PDF** (live + documented, merged). Editing = admin; evidence documentation/view = admin·security
26
+
- 📚 **Control catalog (Phase 2)** — ISMS-P 101 + ISO 27001:2022 93 = **194 criteria** (KO/EN) as a tree in the **Compliance tab**. Edit each control's **implementation status (implemented/partial/not-implemented/N-A) · owner · plan · due date** → persisted to `control_status` (`schema/009`, survives restarts) + change history. **Admins edit the catalog itself** (add/edit/delete controls) — an overlay (`schema/011`) kept separate from the base (`controls/*.yaml`) so it survives re-sync. **Regulation-text NLP import** (`POST /controls/import-nlp`) — precise structuring via Claude when `MORI_ANTHROPIC_API_KEY` is set, clause-level heuristic otherwise → saved as draft controls. Per control, **document manual evidence** (`control_evidence`: title, body, collector, date, reference) or **⚡ auto-snapshot the live evidence** into a dated detailed record (control intent, status, every entity, mappings, defects; `POST …/evidence-records/auto`, `source=auto`). A **scheduled snapshot** (admin: off/daily/weekly/monthly, `evidence_snapshot_schedule|scope`) bulk-runs due controls **on boot / on view**, plus a **manual bulk run** (`POST /controls/evidence-snapshot/run`). **Download the evidence pack as CSV or PDF** (live + documented, merged). Editing = admin; evidence documentation/view = admin·security
27
27
- 🔐 **Role-aware screens** — Risk assessment & control catalog are **admin·security only**; infra/helpdesk see only **their servers' vulnerabilities & remediation rate**. **My servers** is trimmed to `hostname·importance·status·IP`; **double-click a row** opens a detail modal that buckets open items into **exception-expired / overdue / other risks** + **Zabbix/Grafana/Fleet deep-links** (per asset kind). Asset tables have **team & 'my assets only' filters**. The Trivy table shows a **risk score (1–9)** instead of severity counts. The dashboard is a **role-aware security hero + 24h/12h infra status (Zabbix/Wazuh deep links)**, with **panel editing** for per-user widget selection (persisted)
28
28
- 🌐 **Multi-language UI** — Korean / English toggle on every page (login, dashboard, admin console); moved from a fixed top-right widget into the **account menu (👤)**, persisted in a cookie + localStorage and switches instantly without a reload
29
29
- 👤 **User profile + My Servers** — Save name · department · assigned servers to your account, and view only your assets in a dedicated **⭐ My Servers** view (profile-menu shortcut)
- 🎯 **위험성 평가 (R-series)** — 취약점(CVE)별 **위험도 = 영향도(자산 중요도 상/중/하) × 발생가능성(심각도)** 를 3×3 매트릭스로 **점수(1~9)** 산정(라벨보다 점수 우선), 위험처리 결정(조치/수용/이관/회피)·잔여위험·재평가일 기록. **어드민 전용 산정 근거(provenance)** 패널. **위험 수용 기준(DoA)** — admin이 임계 점수를 입력하면 그 이하 위험은 **기본 수용가능**으로 자동 분류. ISMS-P 위험관리 / ISO 27001 6.1.2·8.8 기반
26
-
- 📚 **통제 카탈로그 (Phase 2)** — ISMS-P 101 + ISO 27001:2022 93 = **194개 인증기준**(한/영) 트리를 **컴플라이언스 탭**에 표시. 통제별 **이행 상태(이행/부분이행/미이행/해당없음)·담당자·개선계획·기한을 편집**하면 `control_status`(`schema/009`)에 **영속(재시작 유지)** + 변경 이력 기록. **admin은 카탈로그 정본을 직접 편집**(통제 추가/수정/삭제) — base(`controls/*.yaml`)와 분리된 오버레이(`schema/011`)에 쌓여 재싱크에도 유지. **법령/고시 텍스트 NLP 임포트**(`POST /controls/import-nlp`) — `MORI_ANTHROPIC_API_KEY`가 있으면 Claude로 정밀 구조화, 없으면 조항 단위 휴리스틱 → 통제 초안(draft) 저장. 통제별 **수기 증적 문서화**(`control_evidence`, 제목·내용·수집자·수집일·참조) 또는 **⚡실증적 자동 스냅샷**(라이브 집계를 날짜 찍힌 증적으로 원클릭 생성, `POST …/evidence-records/auto`, `source=auto`)와 **증적 팩 CSV/PDF 선택 다운로드**(라이브+수기 합본). 편집=admin, 증적 문서화·열람=admin·security
26
+
- 📚 **통제 카탈로그 (Phase 2)** — ISMS-P 101 + ISO 27001:2022 93 = **194개 인증기준**(한/영) 트리를 **컴플라이언스 탭**에 표시. 통제별 **이행 상태(이행/부분이행/미이행/해당없음)·담당자·개선계획·기한을 편집**하면 `control_status`(`schema/009`)에 **영속(재시작 유지)** + 변경 이력 기록. **admin은 카탈로그 정본을 직접 편집**(통제 추가/수정/삭제) — base(`controls/*.yaml`)와 분리된 오버레이(`schema/011`)에 쌓여 재싱크에도 유지. **법령/고시 텍스트 NLP 임포트**(`POST /controls/import-nlp`) — `MORI_ANTHROPIC_API_KEY`가 있으면 Claude로 정밀 구조화, 없으면 조항 단위 휴리스틱 → 통제 초안(draft) 저장. 통제별 **수기 증적 문서화**(`control_evidence`, 제목·내용·수집자·수집일·참조) 또는 **⚡실증적 상세 자동 스냅샷**(라이브 집계를 통제 취지·이행상태·전 엔티티·매핑·결함까지 상세 캡처, `POST …/evidence-records/auto`, `source=auto`). **정기 스냅샷**(admin 설정 off/daily/weekly/monthly, `evidence_snapshot_schedule|scope`)은 **부팅·열람 시 도래분 일괄 실행** + **수동 일괄**(`POST /controls/evidence-snapshot/run`). **증적 팩 CSV/PDF 선택 다운로드**(라이브+수기 합본). 편집=admin, 증적 문서화·열람=admin·security
27
27
- 🔐 **역할별 화면** — 위험성 평가·통제 카탈로그는 **admin·security 전용**, 인프라·헬프데스크는 **내 담당 서버 취약점·조치율**만 열람. **내 담당 서버**는 `호스트명·중요도·상태·IP`로 간소화, 행 **더블클릭 → 상세 모달**에서 미조치를 **예외 만료·조치기한 초과·기타 위험** 3버킷으로 표시 + **Zabbix/Grafana/Fleet 딥링크**(자산 종류별). 자산 표엔 **팀별·'내 자산만' 필터**. 취약점(Trivy) 표는 심각도 대신 **위험점수(1~9)** 표기. 대시보드는 **역할별 보안 히어로 + 24h/12h 인프라 현황(Zabbix/Wazuh 딥링크)** 로 구성, **패널 편집**으로 개인별 위젯 선택·영속화
28
28
- 🌐 **다국어 UI** — 로그인·대시보드·어드민 콘솔 전 페이지 한국어/영어 토글 (우상단 고정 위젯 → **계정 메뉴(👤)**로 이동, 쿠키·localStorage 저장, 새로고침 없이 즉시 전환)
29
29
- 👤 **사용자 프로필 + 내 서버** — 이름·부서·담당 서버를 계정에 저장하고, 담당 자산만 모아 보는 **⭐ 내 서버** 뷰(프로필 메뉴 바로가기) 제공
0 commit comments