🤖HermesBlog
Hermes Feature Guides · 파트 98/9/2026

보안 — 8중 보호 계층

Plugin System — Endless Extensions — easy-to-understand guide based on official docs (updated 2026-08-09)

hermes-feature-9-plugins

보안 — 8중 보호 계층

AI 에이전트가 여러분의 머신에서 명령어를 실행하도록 허용할 때, 안전하다는 확신이 필요합니다. Hermes Agent는 심층 방어 보안 모델(Defense-in-Depth) 로 이 문제를 진지하게 다룹니다 — 여러분이 통제권을 유지하도록 함께 작동하는 8중 보호 계층으로 말이죠.

은행 금고를 떠올려 보세요. 단 하나의 자물쇠로는 충분하지 않습니다. 문 앞의 경비원, 금고 문, 경보 시스템, CCTV 영상이 모두 필요합니다. Hermes도 같은 철학을 따릅니다.

8개 계층은 다음과 같습니다:

  1. 사용자 인증(User authorization) — 승인된 사람만 에이전트와 대화할 수 있습니다
  2. 위험 명령어 승인(Dangerous command approval) — 파괴적인 작업은 여러분의 승인을 받아야 합니다
  3. 파일 쓰기 보호(File write safety) — 원치 않는 쓰기로부터 파일을 보호합니다
  4. 컨테이너 격리(Container isolation) — 위험한 작업을 샌드박스에서 실행합니다 (Docker, Singularity, Modal)
  5. MCP 자격증명 필터링(MCP credential filtering) — 하위 프로세스로부터 비밀정보를 보호합니다
  6. 컨텍스트 파일 스캐닝(Context file scanning) — 프로젝트 파일에서 프롬프트 인젝션을 탐지합니다
  7. 세션 간 격리(Cross-session isolation) — 세션 간에 서로의 데이터를 들여다볼 수 없습니다
  8. 입력 정화(Input sanitization) — 작업 디렉토리 트릭을 통한 셸 인젝션을 차단합니다

계층이 꽤 많죠. 가장 자주 마주하게 될 계층인 위험 명령어 승인에 대해 자세히 알아보겠습니다.

스마트 승인: 인간 개입 루프(Human-in-the-Loop)

Hermes는 명령어를 실행하기 전에 위험 패턴 목록과 대조합니다. 위험해 보이는 것이 있으면 승인을 요청합니다.

하지만 여기서 핵심은 — 승인 시스템에 세 가지 모드가 있다는 것입니다. ~/.hermes/config.yaml에서 설정합니다:

approvals:
  mode: smart                     # smart | manual | off
  timeout: 300                    # seconds to wait for user response
  cron_mode: deny                 # deny | approve — for cron jobs
  single_query_mode: deny         # deny | approve — for -q sessions
  mcp_reload_confirm: true        # /reload-mcp asks before rebuilding tools
  destructive_slash_confirm: true # /clear, /new, /reset, /undo prompt first

각 모드가 하는 일은 다음과 같습니다:

모드 동작
smart (기본값) 보조 LLM을 사용해 위험도를 판단합니다. python -c "print('hello')" 같은 안전한 명령어는 자동 승인됩니다. 정말 위험한 명령어는 자동 거부됩니다. 애매한 경우에는 여러분에게 묻습니다.
manual 위험한 명령어에 대해 항상 승인을 요청합니다. 자동화 없음.
off 모든 검사를 비활성화합니다 — --yolo와 동일합니다. 신뢰할 수 있는 환경에서만 사용하세요.

smart 모드가 가장 이상적입니다. “우편물 확인”과 “금고 열기”의 차이를 아는 보안요원이 있는 것과 같습니다.

YOLO 모드: 주의해서 진행하세요

때로는 에이전트가 귀찮게 묻지 않고 빠르게 실행되기를 원할 때가 있습니다. 그럴 때 사용하는 것이 YOLO 모드입니다 — 현재 세션에서 모든 위험 명령어 승인 프롬프트를 우회합니다.

세 가지 방법으로 활성화할 수 있습니다:

  1. CLI 플래그: hermes --yolo 또는 hermes chat --yolo
  2. 슬래시 명령어: 세션 중에 /yolo 입력
  3. 환경 변수: HERMES_YOLO_MODE=1 설정

/yolo 명령어는 토글(toggle) 방식입니다 — 사용할 때마다 켜고 끕니다:

> /yolo
  ⚡ YOLO 모드 ON — 모든 명령어 자동 승인. 주의해서 사용하세요.

> /yolo
  ⚠ YOLO 모드 OFF — 위험한 명령어는 승인이 필요합니다.

YOLO가 활성화되면 Hermes는 여러분이 잊지 않도록 합니다. 세션 시작 시 빨간 배너가 표시되고, 상태 표시줄에 ⚠ YOLO 표시기가 토글할 때마다 실시간으로 업데이트됩니다.

⚠️ 경고: YOLO 모드는 모든 위험 명령어 안전 검사를 비활성화합니다 — 하드라인 블록리스트는 제외하고요. 완전히 신뢰할 수 있는 작업(예: 일회용 환경에서의 검증된 자동화 스크립트)에서만 사용하세요.

알아두면 좋은 새로운 설정 키

최신 업데이트에서는 승인 설정에 두 가지 중요한 키가 추가되었습니다:

mcp_reload_confirm (기본값: true) — /reload-mcp를 실행할 때 Hermes는 MCP 도구 세트를 재구축하기 전에 확인을 요청합니다. 왜일까요? 재구축하면 공급자 프롬프트 캐시가 무효화되어 다음 메시지에서 전체 입력 토큰이 다시 전송되기 때문입니다(비용 증가). 항상 승인(Always Approve) 을 클릭하면 이 값이 false로 바뀝니다.

destructive_slash_confirm (기본값: true) — /clear, /new, /reset, /undo 같은 파괴적인 세션 명령어는 이제 대화 상태를 삭제하기 전에 확인을 요청합니다. 한 번 승인 / 항상 승인 / 취소 의 세 가지 옵션 대화상자가 표시됩니다. Telegram, Discord, Slack에서는 기본 예/아니오 버튼을 사용합니다. 그 외의 환경에서는 텍스트로 대체됩니다. TUI에서도 이 기능이 적용되며, HERMES_TUI_NO_CONFIRM=1로 모달을 강제로 건너뛸 수 있습니다.

헤드리스 세션: Cron 및 단일 쿼리

아무도 프롬프트에 응답할 사람이 없는 경우를 처리하는 두 가지 새 설정이 있습니다:

  • cron_mode (기본값: deny) — cron 작업이 위험한 명령어를 만나면 deny는 차단합니다(에이전트는 다른 경로를 찾아야 합니다). approve는 cron 컨텍스트에서 모든 것을 자동 승인합니다.
  • single_query_mode (기본값: deny) — 일회성 hermes chat -q 세션에도 같은 개념이 적용됩니다. -q 세션은 한 턴만 실행하고 종료됩니다 — 응답할 사용자가 없습니다. deny는 명령어를 차단하고, approve는 자동 승인합니다.

둘 다 기본값이 deny인 데는 이유가 있습니다: 인간이 개입하지 않을 때는 추측보다 차단이 더 안전합니다.

결론

Hermes Agent의 보안 모델은 실제 사용 환경을 위해 설계되었습니다. 스마트 승인 모드는 무모함 없이 자동화를 제공합니다. YOLO 모드는 필요할 때 속도를 제공합니다 — 잊지 않도록 시각적 알림과 함께요. 그리고 새로운 설정 키는 헤드리스 세션과 파괴적인 명령어에 대한 세밀한 제어를 제공합니다.

철학은 간단합니다: 에이전트가 자율적으로 작동할 때도, 통제권은 여러분에게 있습니다.

📖 공식 문서

この記事は Hermes Agent の공식 문서に基づいています:공식 문서 › user-guide/features/plugins