🛡️ detect 단계가 찾은 내용을 방어 계획으로 바꿉니다. 각 발견 사항에 카테고리와 CVSS v4.0 점수를 매기고, 적용할 수정을 짝지어 줍니다.
사용법
- 전체 계획하기
- 경로 지정하기
- 걱정되는 부분에 집중하기
/lagune-plan
/lagune-plan src/routes/upload.ts
/lagune-plan 민감한 데이터가 새어 나갈 수 있는 곳
작동 방식
이 단계는 detect 단계에서 이어집니다. 시스템이 무엇을 하는지와 각 부분에 어떤 위험이 있는지는 detect 단계가 이미 찾았으므로, plan 단계는 위험을 다시 설명하지 않고 얼마나 심각한지 점수를 매긴 뒤 어떻게 대응할지 정합니다. plan 단계는 코드를 전혀 읽지 않으므로, 모든 수정은 반드시 detect 단계가 실제로 탐지한 대상을 가리키게 됩니다. 평가는 CVSS v4.0 방식을 따르며, 각 발견 사항에 카테고리, CVSS v4.0 벡터(detect 단계와 charter가 담아 둔 내용에서 추론하고 cvss 훅으로 점수를 계산한 것), 그 점수가 속하는 우선순위 구간을 매깁니다. 각 수정에는 그 수정이 지키는 charter 원칙도 함께 적힙니다.
예를 들면 다음과 같습니다.
- 파일 업로드 (우선순위: Critical)
- 카테고리: 제한 없는 파일 업로드(CWE-434).
- CVSS: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N (9.3, Critical).
- 이 우선순위인 이유: 누구나 인터넷으로 업로드 기능에 접근할 수 있고, 이 기능은 고객 파일을 저장하는 서버에 있습니다.
- 지키는 원칙: III. 모든 입력은 검증되기 전까지 신뢰할 수 없습니다.
- 수정: 파일의 실제 형식과 크기를 확인하고, 저장할 때 이름을 바꾸고, 업로드한 파일은 코드로 실행될 수 없는 곳에 저장합니다.
이렇게 해서 점수와 우선순위가 매겨진 수정 목록이 만들어지며, 각 수정은 발견 사항과 연결되어 다음 단계에서 바로 적용할 수 있습니다. 점수는 추정하지 않고 항상 계산합니다. 벡터는 프로젝트의 노출 정도와 중요도를 Environmental 지표로 담고 있으므로, 누구나 이 벡터를 FIRST나 NVD 계산기에 붙여 넣어 같은 점수를 다시 얻을 수 있습니다.
- 전적으로 detect 단계의 결과를 바탕으로 합니다. 파악된 적 없는 파일이나 걱정되는 부분이 있으면, 먼저 그 대상에
/lagune-detect명령어를 실행하라고 안내합니다. - 다시 실행하면 계획이 갱신되어, 완료된 수정은 빠지고 새 수정이 추가됩니다.
- 방어 계획은
.lagune/memory/plan.md파일에 있습니다.
plan 단계는 /lagune-detect 명령어가 이미 파악한 내용만으로 작동하므로, detect 단계를 먼저 실행하세요.
다음 단계
/lagune-harden 명령어로 계획을 적용하세요.
자주 묻는 질문
/lagune-plan 명령어가 각 발견 사항에 카테고리와 cvss 훅이 계산한 CVSS v4.0 점수를 매기고, 적용할 수정을 짝지어 줍니다.
네. 각 발견 사항에는 CVSS v4.0 벡터와 점수가 붙습니다. 점수는 cvss 훅이 FIRST 계산기와 같은 산식으로 계산하므로, 누구나 그 계산기에 벡터를 붙여 넣어 점수를 다시 도출할 수 있습니다.
아니요. plan 단계는 코드를 전혀 읽지 않으므로, 모든 수정은 반드시 detect 단계가 실제로 탐지한 대상을 가리키게 됩니다.
