Tutorial 29: Security Deep Dive
Tutorial 29: Security Deep Dive — easy-to-understand guide based on official docs
Tutorial 29: Menyelami Keamanan Secara Mendalam
Selamat datang kembali, para pengendali agen! Hari ini kita akan memakai helm proyek dan menyelami model keamanan Hermes Agent secara mendalam. Jika Anda pernah bertanya-tanya apa yang terjadi di balik layar untuk menjaga sesi Anda tetap aman, tutorial ini untuk Anda.
Gambaran Besar: Delapan Lapis Pertahanan
Hermes tidak mengandalkan satu kunci di pintu. Sebaliknya, ia menggunakan pendekatan pertahanan berlapis dengan delapan lapisan keamanan yang berbeda. Anggap saja seperti kastil: bahkan jika seseorang berhasil melewati parit, mereka masih harus menghadapi tembok, gerbang, dan para penjaga di dalamnya.
Berikut susunannya:
- Otorisasi pengguna — siapa yang boleh berbicara dengan agen
- Persetujuan perintah berbahaya — pemeriksaan manusia untuk tindakan destruktif
- Keamanan penulisan file — daftar blokir dan sandbox untuk operasi file
- Isolasi kontainer — sandboxing Docker/Singularity/Modal
- Penyaringan kredensial MCP — menjaga rahasia agar tidak bocor ke subproses
- Pemindaian file konteks — mendeteksi injeksi prompt di file proyek
- Isolasi antar-sesi — sesi tidak bisa mengintip data satu sama lain
- Sanitasi input — memblokir injeksi shell melalui parameter direktori kerja
Setiap lapisan penting, tetapi hari ini kita fokus pada satu yang paling sering Anda gunakan: persetujuan perintah berbahaya.
Cara Kerja Persetujuan Perintah Berbahaya
Sebelum Hermes menjalankan perintah apa pun, ia memeriksanya terhadap daftar pola berbahaya yang telah dikurasi. Jika ada kecocokan, Anda yang memutuskan apa yang terjadi selanjutnya.
Anda mengontrol perilaku ini melalui bagian approvals di ~/.hermes/config.yaml:
approvals:
mode: smart # smart | manual | off
timeout: 300 # detik untuk menunggu respons pengguna
cron_mode: deny # deny | approve
single_query_mode: deny # deny | approve
mcp_reload_confirm: true # konfirmasi sebelum memuat ulang alat MCP
destructive_slash_confirm: true # konfirmasi sebelum /clear, /new, dll.
Tiga Mode Persetujuan
Kunci mode memberi Anda tiga pilihan:
| Mode | Perilaku |
|---|---|
| smart (default) | Menggunakan LLM tambahan untuk menilai risiko. Perintah berisiko rendah (seperti python -c "print('hello')") otomatis disetujui. Yang benar-benar berbahaya otomatis ditolak. Kasus yang tidak pasti dinaikkan ke prompt manual. |
| manual | Selalu meminta persetujuan Anda untuk perintah berbahaya. Tanpa pengecualian. |
| off | Menonaktifkan semua pemeriksaan persetujuan. Setara dengan menjalankan dengan --yolo. |
⚠️ Peringatan: Mengatur
approvals.mode: offmenonaktifkan semua prompt keselamatan. Hanya lakukan ini di lingkungan tepercaya seperti pipeline CI/CD atau kontainer sekali pakai.
Mode YOLO: Tombol Merah Besar
Mode YOLO melewati semua prompt persetujuan perintah berbahaya untuk sesi saat ini. Anda bisa mengaktifkannya dengan tiga cara:
- Flag CLI:
hermes --yoloatauhermes chat --yolo - Perintah slash: Ketik
/yoloselama sesi berlangsung - Variabel lingkungan: Setel
HERMES_YOLO_MODE=1
Perintah /yolo adalah saklar — setiap penggunaan menyalakan atau mematikannya:
> /yolo
⚡ Mode YOLO AKTIF — semua perintah disetujui otomatis. Gunakan dengan hati-hati.
> /yolo
⚠ Mode YOLO NONAKTIF — perintah berbahaya akan memerlukan persetujuan.
Saat YOLO aktif, Hermes memastikan Anda tidak bisa melupakannya. Anda akan melihat banner merah di awal sesi dan fragmen ⚠ YOLO di bilah status, diperbarui secara langsung saat Anda mengaktifkannya.
⚠️ Bahaya: Mode YOLO menonaktifkan semua pemeriksaan keselamatan perintah berbahaya — kecuali daftar blokir garis keras. Gunakan hanya jika Anda sepenuhnya mempercayai perintah yang dihasilkan (misalnya, skrip otomasi yang teruji baik di lingkungan sekali pakai).
Baru di Versi Ini: Kunci Konfigurasi yang Lebih Cerdas
Dua kunci konfigurasi baru layak mendapat perhatian khusus:
mcp_reload_confirm (default: true) — Jika true, /reload-mcp akan bertanya sebelum membangun ulang kumpulan alat MCP. Mengapa? Karena pembangunan ulang membatalkan cache prompt penyedia, yang berarti pesan berikutnya akan mengirim ulang token input penuh. Itu biaya yang mungkin ingin Anda setujui terlebih dahulu.
destructive_slash_confirm (default: true) — Jika true, perintah sesi yang destruktif (/clear, /new, /reset, /undo) akan meminta konfirmasi sebelum membuang status percakapan. Anda mendapat dialog tiga opsi: Setujui Sekali / Selalu Setujui / Batal. Di Telegram, Discord, dan Slack, ini dialihkan melalui tombol ya/tidak bawaan. Di tempat lain, ini kembali ke teks.
TUI juga menghormati pengaturan ini untuk modal /clear, /new, dan /reset-nya. Dan jika Anda mengotomatiskan sesuatu, HERMES_TUI_NO_CONFIRM=1 memaksa melewati modal itu sepenuhnya.
Sesi Tanpa Kepala: Cron dan Single-Query
Apa yang terjadi ketika pekerjaan cron atau sesi hermes chat -q sekali jalan menemui perintah berbahaya? Tidak ada manusia yang menunggu untuk menjawab prompt.
Di sinilah cron_mode dan single_query_mode berperan:
deny(default) — Memblokir perintah. Agen harus mencari jalan lain.approve— Menyetujui otomatis semua hal dalam konteks itu.
Keduanya default ke deny dengan alasan yang baik: lebih aman daripada menyesal ketika tidak ada yang mengawasi.
Penutup
Model keamanan Hermes Agent adalah tentang memberi Anda kendali tanpa menghalangi Anda. Mode persetujuan cerdas menangani hal-hal yang membosankan secara otomatis, sementara mode manual memberi Anda pengawasan penuh saat Anda membutuhkannya. Dan jika Anda berada di lingkungan tepercaya, mode YOLO memungkinkan Anda bergerak cepat.
Ingat saja: dengan kekuatan besar datang tanggung jawab besar. Gunakan YOLO dengan bijak!
Lain kali, kita akan menjelajahi cara menyesuaikan sistem persetujuan untuk alur kerja spesifik Anda. Sampai nanti, tetap aman di luar sana!
📖 Dokumentasi resmi
この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/security