권한과 보안
권한 모드, 리뷰어, 허용 디렉터리, 샌드박스, 감사 로그.
권한 모드
- 쓰기만 확인
- 기본값. 읽기는 허용하고 바꾸는 작업은 승인을 요청합니다.
- 모두 확인
- 읽기를 포함한 모든 도구에 승인을 요청합니다.
- 자동 검증
- 저위험 작업은 처리하고, 헤드리스 실행과 대화의 나머지 요청은 권한 리뷰어가 검증합니다.
- 모두 허용
- 하드 차단 밖은 자동으로 허용합니다. 허용 디렉터리 밖 접근은 따로 승인을 받습니다.
도구 호출은 읽기, 쓰기, 셸, 네트워크, 메타로 나뉘고, 위험도는 낮음, 중간, 높음입니다.
판정 순서
- 하드 차단 규칙이 언제나 먼저 돕니다. 민감한 경로, 잘못된 매니페스트, 샌드박스 한계가 여기에 걸립니다.
- 리뷰어 설정은 검증 끔(자동 통과), 규칙 기반 검증, LLM 검증, 엄격(모두 보류) 중 하나입니다. LLM 검증은 위험도를 올릴 수만 있고 낮추지 못합니다.
- 리뷰어가 실패하면 통과가 아니라 보류입니다.
- 헤드리스 실행에서 저위험이 아닌 요청은 나중에 처리할 대기열로 갑니다.
승인
승인 요청은 화면 아래 독에 나타나고 대화를 가리지 않습니다. 버튼은 거절, 한 번만 허용, 항상 허용입니다. 항상 허용은 정확히 그 도구, 그 입력, 그 작업 폴더에만 묶입니다. 대상 이름에 와일드카드가 들어 있으면 규칙을 저장하지 않고 한 번만 허용을 권합니다.
플러그인이 제안한 대화(오버레이 제안)는 내가 받아들여야 시작되고, 그 안의 쓰기, 셸, 네트워크 도구는 다시 확인을 받습니다.
허용 디렉터리와 민감한 경로
허용 디렉터리는 프로젝트 루트, ~/.ave, 그리고 전용 임시 폴더에서 시작하고, 설정의 permissions.additionalDirectories 로 넓힙니다. 그 밖에 접근하면 따로 승인을 받습니다.
~/.ssh 의 키, .env 파일 같은 민감한 경로는 어떤 모드에서도 막힙니다.
사용자와 관리자가 각각 policy.json 을 둘 수 있고, 올바른 관리자 정책이 있으면 사용자가 그 항목을 바꿀 수 없습니다.
OS 샌드박스
도구 실행을 운영체제 수준에서 가두는 선택 기능입니다. 기본값은 꺼짐이고, 켜면 다시 시작해야 합니다.
- macOS
- Seatbelt. 파일, 프로세스, 네트워크를 가둡니다.
- Linux
- bwrap. 파일, 프로세스, 네트워크를 가둡니다.
- Windows
- srt-win. 파일과 네트워크를 가두며, 프로세스 격리는 없습니다.
켜져 있으면 네트워크는 기본 차단입니다. 플러그인끼리의 격리는 macOS와 Linux에서만 됩니다.
감사 로그와 가림
~/.ave/audit.log 는 HMAC 체인으로 이어져 있어 중간을 바꾸면 드러납니다. 감사 기록에는 비밀 값을 넣지 않습니다. 비밀 값과 개인정보는 모델로 보내기 전에 가려지고, 가린 사실은 감사 로그에 남습니다.