# /lagune-prove: 방어 전용 개념 증명(PoC)

> 탐지한 발견 사항마다 실행할 수 있는 방어 전용 개념 증명(PoC)과 책임 있는 공개를 위한 보안 권고를 만듭니다.

표준 URL: https://lagune.ai/ko-KR/docs/commands/prove
언어: ko-KR
원문: https://lagune.ai/docs/commands/prove
마지막 업데이트: 2026-11-03

🧪 탐지한 발견 사항 하나하나를 책임 있는 공개에 쓸 수 있는, 실행 가능한 방어 전용 증거로 만드세요.

탐지 맵에 있는 발견 사항마다 단독으로 읽을 수 있는 보안 권고와 **안전한 경로**를 검증하는 테스트를 작성합니다. 그래서 테스트는 문제가 남아 있는 동안 실패하고, 코드를 수정하면 통과합니다.

**팁**

**Lagune**의 테스트는 프로젝트 자체 테스트 스위트와 분리되어 `.lagune/` 폴더 아래에 따로 보관됩니다.

## 사용법

**모든 발견 사항**

```prompt
/lagune-prove
```

**이름을 지정한 발견 사항**

이미 추적 중인 발견 사항의 이름을 확인하세요.

```prompt
npx lagune read list --findings

# Findings
#   ...
#   • 사용자 조회의 SQL 인젝션
#   ...
```

```prompt
# 그다음 그중 하나를 증명하세요
/lagune-prove 사용자 조회의 SQL 인젝션
```

## 작동 방식

각 발견 사항이 가리키는 소스 코드를 읽고, 증명한 발견 사항마다 `.lagune/proofs/` 폴더 아래에 디렉터리를 하나씩 만듭니다. 각 디렉터리에는 파일이 정확히 2개 들어갑니다.

| 파일                            | 설명                                                                                                                                               |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `report.test.mjs` (또는 `.cjs`) | 테스트 파일입니다. 프로젝트에서 이미 Poku를 사용하고 있으면 Poku로, 그렇지 않으면 Node.js 기본 테스트 러너로 실행되므로 따로 설치할 것이 없습니다. |
| `report.md`                     | 심각도, 영향, 재현 방법, 실행 명령어를 모두 담아 단독으로 읽을 수 있는 보안 권고입니다.                                                            |

증명은 항상 JavaScript로 작성되므로, 프로젝트가 어떤 언어로 작성되었든 그대로 옮겨 쓸 수 있습니다. 인덱스 역할을 하는 `README.md` 파일은 모든 증명을 링크하고, 전체를 한 번에 실행하는 명령어 하나를 제공합니다.

**팁**

- **선택 사항이자 독립적인 명령어**입니다. 다섯 단계 중 하나가 아니며, 추적 체인에도 속하지 않습니다.
- `.lagune/proofs/` 폴더에만 쓰며, 단계 산출물과 코드는 읽기만 할 뿐 절대 수정하지 않습니다.
- 테스트로 문제가 재현되지 않는 발견 사항은 증명을 만들지 않고, 해당 위치에 [`/lagune-detect`](https://lagune.ai/ko-KR/docs/commands/detect) 명령어를 실행해 현재 상태와 대조해 갱신하라고 안내합니다.
- 다시 실행하면 증명을 현재 상태와 대조해 갱신합니다. 사라졌거나 더 이상 재현되지 않는 발견 사항은 해당 디렉터리를 삭제합니다.

**참고**

**직접 호출할 때만 실행됩니다**: 에이전트가 스스로 시작하는 일은 없습니다.

**detect 단계 결과를 바탕으로 동작**

prove 명령어는 [`/lagune-detect`](https://lagune.ai/ko-KR/docs/commands/detect) 명령어가 만든 탐지 맵을 읽으므로, detect 단계를 먼저 실행하세요.

## 방어 전용, 권한이 있을 때만

무엇이든 생성하기 전에 대상을 테스트할 권한이 있는지 확인하며, 실제로 작동하는 익스플로잇, 공격 페이로드, 탐지 회피 기법을 요청하면 모두 거절합니다. 증명은 안전한 동작을 보여 줄 뿐, 공격 입력은 절대 만들지 않습니다.

## 증명에서 공개까지

취약점을 보고할 때는 증명한 발견 사항의 두 파일을 하나의 **비공개 GitHub Gist**에 함께 올리세요. 두 파일은 아직 공개되지 않은 채 남아 있는 문제의 증거이므로, `.gitignore` 파일이 `.lagune/proofs/` 폴더 안에서 이 파일들을 모든 커밋에서 제외합니다. 메인테이너가 문제를 해결할 때까지는 그 Gist를 통해서만 공유하세요.

**Lagune** 체인에서 발견 사항을 종결하는 일은 여전히 [`/lagune-harden`](https://lagune.ai/ko-KR/docs/commands/harden) 명령어와 [`/lagune-verify`](https://lagune.ai/ko-KR/docs/commands/verify) 명령어가 맡습니다. prove 명령어는 증거를 만들 뿐, 아무것도 종결하지 않습니다.

## 자주 묻는 질문

### Lagune이 익스플로잇을 생성하나요?

아니요. /lagune-prove 명령어는 방어 전용 증거를 작성합니다. 안전한 경로를 검증해 문제가 남아 있는 동안 실패하고 코드를 수정하면 통과하는 테스트, 그리고 책임 있는 공개를 위한 보안 권고입니다.

### prove 명령어는 무엇을 출력하나요?

발견 사항마다 파일 2개를 출력합니다. 테스트(report.test.mjs 또는 .cjs)와 보안 권고(report.md)입니다.

### Lagune이 찾은 버그를 책임 있게 공개하려면 어떻게 해야 하나요?

prove 명령어는 단독으로 읽을 수 있는 보안 권고를 작성합니다. 책임 있는 공개 원칙에 따라 비공개 GitHub Gist 같은 비공개 채널로 공유할 수 있습니다.
