{ "schemaVersion": "1.0", "title": "소프트웨어 공급망 보안 시스템", "lang": "ko", "prd": { "oneLiner": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "goal": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "whyNow": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "category": "사내 운영 시스템", "platforms": [ "웹" ], "problem": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "solution": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "alternatives": "이메일, 메신저, 스프레드시트, 수동 대장", "differentiator": "요청·처리·운영 데이터를 하나의 연결된 기준으로 관리한다.", "targets": [ { "name": "오픈소스 의존성을 사용하는 개발자와 보안 담당자", "role": "요청자·실무 사용자", "needs": "필요한 업무를 빠르게 등록하고 상태를 알고 싶다.", "pain": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다." }, { "name": "애플리케이션 보안·리스크 운영 담당자", "role": "운영 관리자", "needs": "처리 우선순위와 이력을 관리하고 지표를 확인하고 싶다.", "pain": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다." }, { "name": "시스템·정책 관리자", "role": "운영·보안 관리자", "needs": "권한, 정책, 감사 기록을 관리하고 싶다.", "pain": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다." } ], "scenarios": [ { "text": "실무 사용자는 필요한 업무를 등록하고 상태를 확인한다.", "start": "P1" }, { "text": "운영 담당자는 대기 업무를 처리하고 예외를 조치한다.", "start": "P5" }, { "text": "시스템·정책 관리자는 정책과 권한을 검토한다.", "start": "P9" }, { "text": "시스템·정책 관리자는 감사 기록과 운영 지표를 검토한다.", "start": "P10" } ], "northStar": "기한 내 완료된 운영 요청 비율", "kpis": [ { "name": "기한 내 처리 비율", "target": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "baseline": "측정 전", "method": "상태 변경과 목표 기한을 월별 집계", "refs": [ "F6" ] }, { "name": "운영 가시성", "target": "핵심 업무 100% 추적", "baseline": "측정 전", "method": "등록 기록과 리포트 연결 비율", "refs": [ "F11" ] }, { "name": "감사 가능 운영 비율", "target": "핵심 변경 100% 기록", "baseline": "측정 전", "method": "감사 로그와 변경 이력 월별 점검", "refs": [ "F12" ] } ], "inScope": [ "의존성·SBOM·취약점 검토 요청 등록", "컴포넌트·라이선스·취약점·조치 상태 조회", "위험 평가·예외 승인·수정·재검증·종료 처리", "취약점 노출·수정 SLA·라이선스·공급망 위험 리포트", "의존성·SBOM·취약점 검토 요청 등록 유효성·중복 검증", "검색·필터·이력 관리", "담당자·우선순위·SLA 관리", "승인·정책 검토", "예외·반려·재처리", "알림·구독 관리", "외부 연동·데이터 동기화", "역할·권한·감사 관리" ], "nonGoals": [ "외부 고객 포털", "회계·급여 등 인접 시스템 전체 대체" ], "assumptions": [ "사용자와 조직 정보는 사내 SSO에서 제공된다.", "운영 정책과 분류 기준을 담당자가 관리한다." ], "risks": [ "초기 분류와 운영 기준이 불명확하면 잘못된 처리로 이어질 수 있다.", "기준 데이터가 갱신되지 않으면 운영 신뢰가 떨어진다." ], "openQuestions": [ "긴급 처리 기준과 승인 절차는 무엇인가?", "완료 후 검증과 재오픈 기준은 무엇인가?" ], "constraints": [ "상태·담당자·우선순위 변경은 감사 로그로 남긴다.", "접근 권한은 역할별로 제한한다.", "권한, 정책, 상태 변경은 감사 로그로 남긴다." ] }, "requirements": [ { "id": "R1", "title": "접수와 데이터 품질", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F1", "title": "의존성·SBOM·취약점 검토 요청 등록", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "의존성·SBOM·취약점 검토 요청 등록 기본 처리 규칙", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "의존성·SBOM·취약점 검토 요청 등록 예외·감사 처리", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F2", "title": "의존성·SBOM·취약점 검토 요청 등록 유효성·중복 검증", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "의존성·SBOM·취약점 검토 요청 등록 유효성·중복 검증 기본 처리 규칙", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "의존성·SBOM·취약점 검토 요청 등록 유효성·중복 검증 예외·감사 처리", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R2", "title": "업무 기록과 검색", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F3", "title": "컴포넌트·라이선스·취약점·조치 상태 조회", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "컴포넌트·라이선스·취약점·조치 상태 조회 기본 처리 규칙", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "컴포넌트·라이선스·취약점·조치 상태 조회 예외·감사 처리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F4", "title": "검색·필터·이력 관리", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "검색·필터·이력 관리 기본 처리 규칙", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "검색·필터·이력 관리 예외·감사 처리", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R3", "title": "처리와 책임", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F5", "title": "위험 평가·예외 승인·수정·재검증·종료 처리", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "위험 평가·예외 승인·수정·재검증·종료 처리 기본 처리 규칙", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "위험 평가·예외 승인·수정·재검증·종료 처리 예외·감사 처리", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F6", "title": "담당자·우선순위·SLA 관리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "담당자·우선순위·SLA 관리 기본 처리 규칙", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "담당자·우선순위·SLA 관리 예외·감사 처리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R4", "title": "승인과 예외", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F7", "title": "승인·정책 검토", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "승인·정책 검토 기본 처리 규칙", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "승인·정책 검토 예외·감사 처리", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F8", "title": "예외·반려·재처리", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "예외·반려·재처리 기본 처리 규칙", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "예외·반려·재처리 예외·감사 처리", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R5", "title": "알림과 연동", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F9", "title": "알림·구독 관리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "알림·구독 관리 기본 처리 규칙", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "알림·구독 관리 예외·감사 처리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F10", "title": "외부 연동·데이터 동기화", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "외부 연동·데이터 동기화 기본 처리 규칙", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "외부 연동·데이터 동기화 예외·감사 처리", "desc": "SBOM, 구성요소, 라이선스, 취약점, 위험 평가, 예외, 수정, 재검증과 감사 기록을 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R6", "title": "운영 분석과 통제", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F11", "title": "취약점 노출·수정 SLA·라이선스·공급망 위험 리포트", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "취약점 노출·수정 SLA·라이선스·공급망 위험 리포트 기본 처리 규칙", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "취약점 노출·수정 SLA·라이선스·공급망 위험 리포트 예외·감사 처리", "desc": "의존성, 라이선스, 취약점, 예외 승인 정보가 저장소와 보안 도구에 나뉘어 있어 공급망 위험의 우선순위와 조치 근거를 잃는다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F12", "title": "역할·권한·감사 관리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "역할·권한·감사 관리 기본 처리 규칙", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "역할·권한·감사 관리 예외·감사 처리", "desc": "치명적 의존성 취약점의 SLA 내 조치율을 95% 이상으로 높인다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] } ], "ia": { "sections": [ { "id": "S1", "title": "접수와 데이터 품질", "pages": [ { "id": "P1", "title": "운영 대시보드", "type": "top", "refs": [ "F1", "F1:0", "F3", "F4:0", "F7:1", "F11" ], "children": [] }, { "id": "P2", "title": "업무 목록", "type": "page", "refs": [ "F3", "F3:0", "F4", "F1:0", "F4:1", "F8", "F11:0" ], "children": [] }, { "id": "P3", "title": "등록 화면", "type": "page", "refs": [ "F1", "F1:1", "F2", "F5", "F8:0", "F11:1" ], "children": [] } ] }, { "id": "S2", "title": "업무 기록과 검색", "pages": [ { "id": "P4", "title": "상세 기록", "type": "page", "refs": [ "F3:1", "F4:1", "F11", "F2", "F5:0", "F8:1", "F12" ], "children": [] }, { "id": "P5", "title": "처리 작업 공간", "type": "page", "refs": [ "F5", "F5:0", "F6", "F2:0", "F5:1", "F9", "F12:0" ], "children": [] } ] }, { "id": "S3", "title": "처리와 책임", "pages": [ { "id": "P6", "title": "승인·예외 큐", "type": "page", "refs": [ "F7", "F7:0", "F8", "F2:1", "F6", "F9:0", "F12:1" ], "children": [] }, { "id": "P7", "title": "알림·연동", "type": "page", "refs": [ "F9", "F9:0", "F10", "F3", "F6:0", "F9:1" ], "children": [] } ] }, { "id": "S4", "title": "운영 분석과 통제", "pages": [ { "id": "P8", "title": "운영 리포트", "type": "page", "refs": [ "F11", "F11:0", "F3:0", "F6:1", "F10" ], "children": [] }, { "id": "P9", "title": "정책·권한 설정", "type": "page", "refs": [ "F10:1", "F12", "F3:1", "F7", "F10:0" ], "children": [] }, { "id": "P10", "title": "감사 로그", "type": "page", "refs": [ "F8:1", "F12:0", "F12:1", "F4", "F7:0", "F10:1" ], "children": [] } ] } ] }, "flow": { "start": "P1", "transitions": [ { "from": "P1", "to": "P2", "ref": "F1" }, { "from": "P2", "to": "P3", "ref": "F2" }, { "from": "P3", "to": "P4", "ref": "F3" }, { "from": "P4", "to": "P5", "ref": "F4" }, { "from": "P5", "to": "P6", "ref": "F5" }, { "from": "P5", "to": "P6", "ref": "F7" }, { "from": "P6", "to": "P5", "ref": "F8" }, { "from": "P5", "to": "P7", "ref": "F6" }, { "from": "P7", "to": "P8", "ref": "F9" }, { "from": "P8", "to": "P9", "ref": "F10" }, { "from": "P9", "to": "P10", "ref": "F12" }, { "from": "P10", "to": "P4", "ref": "F11" }, { "from": "P4", "to": "P1", "label": "운영 현황 갱신" } ] } }