Tutorial 29: Security Deep Dive
Tutorial 29: Security Deep Dive — easy-to-understand guide based on official docs
Hướng dẫn 29: Tìm hiểu sâu về Bảo mật
Chào mừng trở lại, những người quản lý đại lý! Hôm nay chúng ta sẽ đội mũ bảo hộ và tìm hiểu sâu về mô hình bảo mật của Hermes Agent. Nếu bạn từng thắc mắc điều gì xảy ra đằng sau hậu trường để giữ cho các phiên làm việc của mình an toàn, thì hướng dẫn này dành cho bạn.
Bức tranh tổng thể: Tám lớp phòng thủ
Hermes không chỉ dựa vào một ổ khóa duy nhất trên cửa. Thay vào đó, nó sử dụng phương pháp phòng thủ theo chiều sâu với tám lớp bảo mật riêng biệt. Hãy nghĩ về nó như một lâu đài: ngay cả khi ai đó vượt qua được hào nước, họ vẫn phải đối mặt với các bức tường, cổng thành và lính canh bên trong.
Đây là danh sách:
- Ủy quyền người dùng — ai được phép trò chuyện với đại lý
- Phê duyệt lệnh nguy hiểm — con người kiểm tra các hành động phá hoại
- An toàn ghi tệp — danh sách chặn và hộp cát cho các thao tác tệp
- Cô lập container — hộp cát Docker/Singularity/Modal
- Lọc thông tin xác thực MCP — giữ bí mật tránh xa các tiến trình con
- Quét tệp ngữ cảnh — phát hiện tiêm prompt trong các tệp dự án
- Cô lập giữa các phiên — các phiên không thể nhìn trộm dữ liệu của nhau
- Làm sạch đầu vào — chặn tiêm shell qua các tham số thư mục làm việc
Mỗi lớp đều quan trọng, nhưng hôm nay chúng ta sẽ tập trung vào lớp mà bạn sẽ tương tác nhiều nhất: phê duyệt lệnh nguy hiểm.
Cách thức hoạt động của Phê duyệt Lệnh Nguy hiểm
Trước khi Hermes chạy bất kỳ lệnh nào, nó sẽ kiểm tra lệnh đó với một danh sách các mẫu nguy hiểm được tuyển chọn. Nếu có sự trùng khớp, bạn sẽ quyết định điều gì xảy ra tiếp theo.
Bạn kiểm soát hành vi này thông qua phần approvals trong ~/.hermes/config.yaml:
approvals:
mode: smart # smart | manual | off
timeout: 300 # số giây chờ phản hồi từ người dùng
cron_mode: deny # deny | approve
single_query_mode: deny # deny | approve
mcp_reload_confirm: true # xác nhận trước khi tải lại các công cụ MCP
destructive_slash_confirm: true # xác nhận trước khi /clear, /new, v.v.
Ba chế độ phê duyệt
Khóa mode cung cấp cho bạn ba lựa chọn:
| Chế độ | Hành vi |
|---|---|
| smart (mặc định) | Sử dụng một LLM phụ trợ để đánh giá rủi ro. Các lệnh rủi ro thấp (như python -c "print('hello')") được tự động phê duyệt. Các lệnh thực sự nguy hiểm bị tự động từ chối. Các trường hợp không chắc chắn sẽ được chuyển lên để nhắc nhở thủ công. |
| manual | Luôn hỏi bạn phê duyệt đối với các lệnh nguy hiểm. Không có ngoại lệ. |
| off | Vô hiệu hóa tất cả các kiểm tra phê duyệt. Tương đương với việc chạy với cờ --yolo. |
⚠️ Cảnh báo: Đặt
approvals.mode: offsẽ vô hiệu hóa tất cả các lời nhắc an toàn. Chỉ thực hiện điều này trong các môi trường đáng tin cậy như đường ống CI/CD hoặc các container dùng một lần.
Chế độ YOLO: Nút màu đỏ lớn
Chế độ YOLO bỏ qua tất cả các lời nhắc phê duyệt lệnh nguy hiểm cho phiên hiện tại. Bạn có thể kích hoạt nó theo ba cách:
- Cờ CLI:
hermes --yolohoặchermes chat --yolo - Lệnh gạch chéo: Gõ
/yolotrong một phiên - Biến môi trường: Đặt
HERMES_YOLO_MODE=1
Lệnh /yolo là một công tắc bật/tắt — mỗi lần sử dụng sẽ bật hoặc tắt nó:
> /yolo
⚡ Chế độ YOLO BẬT — tất cả các lệnh được tự động phê duyệt. Sử dụng một cách thận trọng.
> /yolo
⚠ Chế độ YOLO TẮT — các lệnh nguy hiểm sẽ yêu cầu phê duyệt.
Khi YOLO đang hoạt động, Hermes đảm bảo bạn không thể quên nó. Bạn sẽ thấy một biểu ngữ màu đỏ khi bắt đầu phiên và một phần ⚠ YOLO trong thanh trạng thái, được cập nhật trực tiếp khi bạn bật/tắt.
⚠️ Nguy hiểm: Chế độ YOLO vô hiệu hóa tất cả các kiểm tra an toàn lệnh nguy hiểm — ngoại trừ danh sách chặn cứng. Chỉ sử dụng nó khi bạn hoàn toàn tin tưởng các lệnh đang được tạo (ví dụ: các tập lệnh tự động hóa đã được kiểm tra kỹ trong các môi trường dùng một lần).
Mới trong phiên bản này: Các khóa cấu hình thông minh hơn
Hai khóa cấu hình mới đáng được chú ý đặc biệt:
mcp_reload_confirm (mặc định: true) — Khi được đặt là true, /reload-mcp sẽ hỏi trước khi xây dựng lại bộ công cụ MCP. Tại sao? Bởi vì việc xây dựng lại sẽ làm mất hiệu lực bộ nhớ cache prompt của nhà cung cấp, nghĩa là tin nhắn tiếp theo sẽ gửi lại toàn bộ token đầu vào. Đó là một chi phí mà bạn có thể muốn phê duyệt trước.
destructive_slash_confirm (mặc định: true) — Khi được đặt là true, các lệnh phiên mang tính phá hoại (/clear, /new, /reset, /undo) sẽ nhắc trước khi loại bỏ trạng thái hội thoại. Bạn sẽ nhận được một hộp thoại ba tùy chọn: Phê duyệt một lần / Luôn phê duyệt / Hủy. Trên Telegram, Discord và Slack, điều này được chuyển qua các nút có/không gốc. Ở những nơi khác, nó sẽ chuyển sang dạng văn bản.
TUI cũng tôn trọng cài đặt này cho các cửa sổ modal /clear, /new và /reset của nó. Và nếu bạn đang tự động hóa mọi thứ, HERMES_TUI_NO_CONFIRM=1 sẽ buộc bỏ qua hoàn toàn cửa sổ modal đó.
Phiên không đầu: Cron và Truy vấn đơn
Điều gì xảy ra khi một công việc cron hoặc một phiên hermes chat -q một lần gặp phải một lệnh nguy hiểm? Không có con người đang chờ để trả lời lời nhắc.
Đó là lúc cron_mode và single_query_mode phát huy tác dụng:
deny(mặc định) — Chặn lệnh. Đại lý phải tìm một con đường khác.approve— Tự động phê duyệt mọi thứ trong ngữ cảnh đó.
Cả hai đều mặc định là deny vì lý do chính đáng: cẩn tắc vô áy náy khi không có ai theo dõi.
Tổng kết
Mô hình bảo mật của Hermes Agent là trao cho bạn quyền kiểm soát mà không cản trở bạn. Chế độ phê duyệt thông minh xử lý những việc nhàm chán một cách tự động, trong khi chế độ thủ công cho bạn toàn quyền giám sát khi cần. Và nếu bạn đang ở trong một môi trường đáng tin cậy, chế độ YOLO cho phép bạn hành động nhanh chóng.
Chỉ cần nhớ: quyền lực càng lớn, trách nhiệm càng cao. Hãy sử dụng YOLO một cách khôn ngoan!
Lần tới, chúng ta sẽ khám phá cách tùy chỉnh hệ thống phê duyệt cho quy trình làm việc cụ thể của bạn. Cho đến lúc đó, hãy giữ an toàn nhé!
📖 Tài liệu chính thức
この記事は Hermes Agent のTài liệu chính thứcに基づいています:Tài liệu chính thức › user-guide/security