🤖HermesBlog
Hermes Official Tutorials · 파트 298/9/2026

Tutorial 29: Security Deep Dive

Tutorial 29: Security Deep Dive — easy-to-understand guide based on official docs

Hermes tutorial

튜토리얼 29: 보안 심층 분석

에이전트 조련사 여러분, 환영합니다! 오늘은 안전모를 쓰고 Hermes Agent의 보안 모델에 대해 깊이 파고들어 보겠습니다. 세션을 안전하게 지키기 위해 뒤에서 어떤 일이 벌어지는지 궁금하셨다면, 이 튜토리얼이 바로 여러분을 위한 것입니다.

큰 그림: 8중 방어 계층

Hermes는 문 하나에 자물쇠 하나를 걸어두는 방식에 의존하지 않습니다. 대신 심층 방어(defense-in-depth) 접근 방식을 사용하여 8개의 개별 보안 계층을 구축합니다. 성을 떠올려 보세요. 누군가 해자를 건너더라도 여전히 성벽, 성문, 그리고 내부의 경비병들과 맞서야 합니다.

구성은 다음과 같습니다:

  1. 사용자 인증 — 에이전트와 대화할 수 있는 사람
  2. 위험 명령 승인 — 파괴적인 작업에 대한 인간의 확인
  3. 파일 쓰기 안전 — 파일 작업에 대한 차단 목록 및 샌드박스
  4. 컨테이너 격리 — Docker/Singularity/Modal 샌드박싱
  5. MCP 자격 증명 필터링 — 하위 프로세스로부터 비밀 정보 보호
  6. 컨텍스트 파일 스캔 — 프로젝트 파일에서 프롬프트 인젝션 감지
  7. 세션 간 격리 — 세션 간 서로의 데이터를 볼 수 없음
  8. 입력 정화 — 작업 디렉토리 매개변수를 통한 셸 인젝션 차단

각 계층이 중요하지만, 오늘은 여러분이 가장 많이 마주하게 될 위험 명령 승인에 집중하겠습니다.

위험 명령 승인 작동 방식

Hermes는 명령을 실행하기 전에 위험한 패턴 목록과 대조합니다. 일치하는 항목이 있으면 다음에 무엇을 할지 결정할 수 있습니다.

이 동작은 ~/.hermes/config.yamlapprovals 섹션에서 제어합니다:

approvals:
  mode: smart                     # smart | manual | off
  timeout: 300                    # seconds to wait for user response
  cron_mode: deny                 # deny | approve
  single_query_mode: deny         # deny | approve
  mcp_reload_confirm: true        # confirm before reloading MCP tools
  destructive_slash_confirm: true # confirm before /clear, /new, etc.

세 가지 승인 모드

mode 키는 세 가지 선택지를 제공합니다:

모드 동작
smart (기본값) 보조 LLM을 사용하여 위험도를 평가합니다. 위험도가 낮은 명령(예: python -c "print('hello')")은 자동 승인됩니다. 실제로 위험한 명령은 자동 거부됩니다. 불확실한 경우 수동 프롬프트로 상향 조정됩니다.
manual 위험한 명령에 대해 항상 승인을 요청합니다. 예외 없음.
off 모든 승인 확인을 비활성화합니다. --yolo 플래그로 실행하는 것과 동일합니다.

⚠️ 경고: approvals.mode: off로 설정하면 모든 안전 프롬프트가 비활성화됩니다. CI/CD 파이프라인이나 일회용 컨테이너와 같은 신뢰할 수 있는 환경에서만 이렇게 하세요.

YOLO 모드: 빨간 큰 버튼

YOLO 모드는 현재 세션에서 모든 위험 명령 승인 프롬프트를 우회합니다. 세 가지 방법으로 활성화할 수 있습니다:

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

/yolo 명령은 토글입니다 — 사용할 때마다 켜고 끕니다:

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

> /yolo
  ⚠ YOLO 모드 꺼짐 — 위험한 명령은 승인이 필요합니다.

YOLO가 활성화되면 Hermes는 잊어버릴 수 없게 만듭니다. 세션 시작 시 빨간 배너가 표시되고 상태 표시줄에 ⚠ YOLO 조각이 표시되며, 토글할 때마다 실시간으로 업데이트됩니다.

⚠️ 위험: YOLO 모드는 모든 위험 명령 안전 검사를 비활성화합니다 — , 강력한 차단 목록은 제외입니다. 생성되는 명령을 완전히 신뢰할 때만 사용하세요 (예: 일회용 환경에서 잘 테스트된 자동화 스크립트).

이 버전의 새로운 기능: 더 스마트한 구성 키

두 가지 새로운 구성 키가 특별한 주의를 기울일 가치가 있습니다:

mcp_reload_confirm (기본값: true) — true로 설정하면 /reload-mcp가 MCP 도구 세트를 재구축하기 전에 확인을 요청합니다. 왜일까요? 재구축하면 공급자 프롬프트 캐시가 무효화되어 다음 메시지에서 전체 입력 토큰이 다시 전송되기 때문입니다. 승인하기 전에 고려해야 할 비용입니다.

destructive_slash_confirm (기본값: true) — true로 설정하면 파괴적인 세션 명령(/clear, /new, /reset, /undo)이 대화 상태를 버리기 전에 프롬프트를 표시합니다. 한 번 승인 / 항상 승인 / 취소의 세 가지 옵션 대화상자가 표시됩니다. Telegram, Discord, Slack에서는 기본 제공 예/아니오 버튼으로 표시됩니다. 그 외 환경에서는 텍스트로 대체됩니다.

TUI도 /clear, /new, /reset 모달에서 이 설정을 적용합니다. 그리고 자동화하는 경우 HERMES_TUI_NO_CONFIRM=1로 해당 모달을 완전히 건너뛸 수 있습니다.

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

cron 작업이나 일회성 hermes chat -q 세션이 위험한 명령을 만나면 어떻게 될까요? 프롬프트에 응답할 사람이 없습니다.

이때 cron_modesingle_query_mode가 필요합니다:

  • deny (기본값) — 명령을 차단합니다. 에이전트는 다른 경로를 찾아야 합니다.
  • approve — 해당 컨텍스트에서 모든 것을 자동 승인합니다.

둘 다 기본값이 deny인 데는 이유가 있습니다. 아무도 지켜보지 않을 때는 안전한 것이 최선입니다.

마무리

Hermes Agent의 보안 모델은 방해하지 않으면서도 제어권을 제공하는 데 중점을 둡니다. 스마트 승인 모드는 지루한 작업을 자동으로 처리하고, 수동 모드는 필요할 때 완전한 감독을 제공합니다. 그리고 신뢰할 수 있는 환경에 있다면 YOLO 모드로 빠르게 작업할 수 있습니다.

기억하세요: 큰 힘에는 큰 책임이 따릅니다. YOLO를 현명하게 사용하세요!

다음에는 특정 워크플로우에 맞게 승인 시스템을 사용자 정의하는 방법을 살펴보겠습니다. 그때까지 안전하게 지내세요!


📖 공식 문서

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