Files
document-haness/docs/SECURITY.md
T

2.9 KiB

Security and trust boundaries

1. 주요 자산

  • provider credential과 local authentication state
  • private repository의 source text와 경로
  • draft와 내부 decision record
  • provider raw response와 event log
  • 최종 독자용 문서

2. Prompt injection 경계

Brief, source chunk, title, URL, note, draft는 모두 untrusted data다. 모든 stage prompt는 source 내부 지시를 따르지 말고 내용으로만 취급하도록 명시한다.

완전한 prompt-injection 제거를 보장하지 않는다. 민감한 저장소에서는 다음을 권장한다.

  • provider가 읽어도 되는 corpus root만 지정
  • --source-include로 최소 directory만 허용
  • secret, credential, production dump를 corpus에 포함하지 않음
  • provider CLI의 sandbox와 조직 정책 사용
  • 최종 provenance artifact의 접근 권한 제한

3. Reader-facing data minimization

citation_style=hidden의 목적은 내부 근거를 없애는 것이 아니라 노출 표면을 줄이는 것이다.

독자용 문서에서 금지:

  • source ID와 claim/decision ID
  • absolute/local repository path
  • access date
  • frontmatter와 status field
  • prompt tag
  • evidence-processing narration

내부 audit artifact에는 이 metadata가 남으므로, run directory 자체는 private data로 취급해야 한다.

4. Command execution

  • Codex 기본 설정은 read-only sandbox다.
  • writer/reviewer prompt는 shell 실행이나 file mutation을 요구하지 않는다.
  • options.command, provider binary path, extra args는 신뢰된 local config로만 설정한다.
  • 사용자 또는 source text에서 command option을 동적으로 만들지 않는다.

5. Destructive content

문서 안에 rm -rf, DROP DATABASE, kubectl delete, terraform destroy 등 파괴적 command가 있으면 주변에 다음이 모두 필요하다.

  • 영향 경고
  • backup/checkpoint/recovery
  • expected effect
  • read-only verification

이 검사는 command가 실제 환경에서 안전하다는 보증이 아니다.

6. Provenance integrity

manifest.json은 run artifact의 byte size와 SHA-256을 기록한다. manifest 생성 이후 파일이 바뀌면 재검산에서 드러난다. 전자서명이나 원격 attestation은 제공하지 않는다.

7. Provider credentials

Credential을 repository, brief, source pack, event log에 저장하지 않는다. Codex/Claude CLI와 Antigravity SDK의 표준 인증 방식을 사용한다. doctor는 설치 가능성만 확인하며 로그인, 권한, quota를 증명하지 않는다.

8. Known limits

  • lexical retrieval이 민감한 문서를 선택할 수 있으므로 corpus scope를 운영자가 통제해야 한다.
  • model이 source text를 재구성하면서 민감 정보를 노출할 수 있다.
  • hidden citation lint는 알려진 path와 marker pattern을 검사하지만 모든 비밀 문자열을 탐지하지 않는다.
  • private source에서 공개 가능한 결론을 만드는 책임은 프로젝트 소유자에게 있다.