Các phương pháp bảo mật tối ưu cho OpenFang

22 phút đọc

Bảo mật cho AI Agent tự chủ là vấn đề không thể xem nhẹ. Ngay từ khâu thiết kế, OpenFang đã tích hợp sẵn 16 lớp bảo vệ: 4 lớp cách ly sandbox, 4 lớp bảo mật mạng, 4 lớp bảo mật dữ liệu và 4 lớp tuân thủ kiểm toán. Bài viết này cung cấp ba mẫu cấu hình cài sẵn và danh sách kiểm tra bảo mật chi tiết.

Các phương pháp bảo mật tối ưu cho OpenFang: Chi tiết hệ thống phòng thủ 16 lớp

Slug: openfang-security-best-practices Phân loại: usage-guides (Hướng dẫn sử dụng) Từ khóa mục tiêu: Bảo mật OpenFang, Cấu hình bảo mật OpenFang, Phương pháp bảo mật Agent tối ưu Mục đích tìm kiếm: Thông tin (Người dùng muốn triển khai OpenFang an toàn) Số lượng từ mục tiêu: ~2000 từ Ngôn ngữ: vi


Tại sao bảo mật cho Agent lại quan trọng?

Các AI Agent tự chủ có khả năng thực thi lệnh, truy cập mạng, đọc và ghi tệp tin—nếu không được kiểm soát, những khả năng này có thể trở thành thảm họa bảo mật. Một Agent không có lớp bảo vệ có thể bị tấn công qua Prompt Injection để thực thi các lệnh nguy hiểm, làm rò rỉ dữ liệu nhạy cảm hoặc bị lợi dụng làm bàn đạp cho các cuộc tấn công khác.

OpenFang coi bảo mật là một phần cốt lõi trong kiến trúc ngay từ khi thiết kế, cung cấp cơ chế phòng thủ 16 lớp. Bài viết này sẽ hướng dẫn chi tiết cách cấu hình và các phương pháp tối ưu cho từng lớp.

Tổng quan kiến trúc bảo mật

Hệ thống phòng thủ 16 lớp của OpenFang được chia thành bốn nhóm chính:

Danh mụcLớpMục tiêu bảo vệ
Cách ly Sandbox1–4Hạn chế môi trường thực thi của Agent
Bảo mật mạng5–8Kiểm soát truy cập mạng của Agent
Bảo mật dữ liệu9–12Bảo vệ dữ liệu nhạy cảm khỏi bị rò rỉ
Kiểm toán & Tuân thủ13–16Ghi nhật ký và kiểm tra hành vi của Agent

Nhóm 1: Cách ly Sandbox

Lớp 1: Sandbox hệ thống tệp

Giới hạn các đường dẫn hệ thống tệp mà Agent có thể truy cập:

toml
[security.sandbox.filesystem]mode = "strict"                  # off / basic / strictallowed_paths = [    "./workspace/",    "/tmp/openfang/",]denied_paths = [    "/etc/",    "~/.ssh/",    "~/.aws/",]read_only_paths = [    "./config/",    "/usr/share/openfang/",]

Trong chế độ strict, Agent không thể truy cập bất kỳ đường dẫn nào không nằm trong allowed_paths. Chúng tôi khuyến nghị luôn tạo thư mục làm việc chuyên biệt cho Agent.

Lớp 2: Sandbox tiến trình

Giới hạn các lệnh hệ thống mà Agent có thể thực thi:

toml
[security.sandbox.process]allow_shell = false              # Cấm truy cập Shell trực tiếpallowed_commands = [    "git",    "curl",    "python3",    "node",]denied_commands = [    "rm",    "sudo",    "chmod",    "wget",]command_timeout = 30             # Thời gian thực thi lệnh tối đa (giây)

allow_shell = false là cấu hình bắt buộc trong môi trường sản xuất. Agent chỉ có thể tương tác với hệ thống thông qua các lệnh trong danh sách allowed_commands.

Lớp 3: Giới hạn bộ nhớ

Ngăn chặn Agent làm cạn kiệt tài nguyên hệ thống do rò rỉ bộ nhớ hoặc mã độc:

toml
[security.sandbox.memory]max_memory_mb = 512              # Giới hạn bộ nhớ Agentmax_per_hand_mb = 128            # Giới hạn bộ nhớ cho mỗi Handoom_policy = "kill_hand"         # kill_hand / restart / notify

Lớp 4: Giới hạn CPU

toml
[security.sandbox.cpu]max_cores = 2                    # Sử dụng tối đa 2 nhân CPUpriority = "low"                 # low / normal / highcfs_period_us = 100000cfs_quota_us = 50000             # Hạn mức 50% CPU

Nhóm 2: Bảo mật mạng

Lớp 5: Cách ly mạng

Kiểm soát truy cập mạng đi ra (outbound) của Agent:

toml
[security.network]mode = "allowlist"               # allowlist / blocklist / unrestrictedallowed_domains = [    "api.anthropic.com",    "api.openai.com",    "github.com",]allowed_ports = [443, 80]block_ip_ranges = [    "10.0.0.0/8",                # Chặn truy cập mạng nội bộ    "172.16.0.0/12",    "192.168.0.0/16",]dns_over_https = true            # Sử dụng DNS mã hóa

Lớp 6: Mã hóa lưu lượng

toml
[security.network.tls]min_version = "1.2"verify_certificates = truecertificate_pinning = [    { domain = "api.anthropic.com", pin = "sha256/..." },]

Lớp 7: Giới hạn tốc độ (Rate limiting)

Ngăn chặn việc Agent bị lạm dụng để gửi lượng lớn yêu cầu:

toml
[security.network.rate_limit]requests_per_minute = 60tokens_per_minute = 100000burst_multiplier = 2cooldown_after_exceeded = "5m"

Lớp 8: Kiểm soát Proxy và cổng ra

Toàn bộ lưu lượng của Agent đi qua proxy doanh nghiệp:

toml
[security.network.proxy]http_proxy = "${HTTP_PROXY}"https_proxy = "${HTTPS_PROXY}"no_proxy = ["localhost", "127.0.0.1"]enforce_proxy = true             # Bắt buộc mọi lưu lượng qua proxy

Nhóm 3: Bảo mật dữ liệu

Lớp 9: Làm sạch dữ liệu đầu vào

Phòng chống tấn công Prompt Injection:

toml
[security.data.input_guard]enabled = truemode = "strict"[security.data.input_guard.rules]detect_jailbreak = truedetect_prompt_leak = truedetect_code_injection = truemax_input_length = 8000sanitize_markdown = true

Bộ lọc đầu vào sẽ quét các cuộc tấn công tiềm ẩn trước khi Agent xử lý, bao gồm các câu lệnh bẻ khóa (jailbreak), cố gắng rò rỉ prompt và chèn mã độc.

Lớp 10: Lọc dữ liệu đầu ra

Ngăn chặn rò rỉ dữ liệu nhạy cảm qua phản hồi của Agent:

toml
[security.data.output_guard]enabled = true[security.data.output_guard.patterns]credit_cards = trueapi_keys = true                  # Phát hiện và chặn định dạng API keyemails = "mask"                  # mask / block / allowphone_numbers = "mask"custom_patterns = [    "\\b(?:sk|pk)_[a-zA-Z0-9]{32,}\\b",    "\\bAKIA[A-Z0-9]{16}\\b",   # AWS Access Key]

Lớp 11: Mã hóa dữ liệu nhạy cảm

toml
[security.data.encryption]encrypt_workspace = trueencrypt_logs = truekey_derivation = "argon2id"rotation_days = 30

Lớp 12: Tối thiểu hóa dữ liệu

toml
[security.data.minimization]log_user_inputs = false          # Không ghi nhật ký đầu vào người dùnglog_agent_outputs = false        # Không ghi nhật ký đầu ra của Agentretention_days = 7               # Lưu nhật ký trong 7 ngàystrip_pii = true                 # Tự động loại bỏ thông tin định danh cá nhân (PII)

Nhóm 4: Kiểm toán & Tuân thủ

Lớp 13: Kiểm toán thao tác

toml
[security.audit]enabled = truelog_level = "info"[security.audit.events]command_execution = truefile_access = truenetwork_request = trueconfig_change = truehand_start_stop = true

Nhật ký kiểm toán ở định dạng JSON, bao gồm dấu thời gian, loại thao tác, người thực hiện, chi tiết và kết quả:

json
{  "timestamp": "2026-07-10T08:30:15.123Z",  "event": "command_execution",  "hand": "researcher",  "command": "git clone https://github.com/...",  "sandbox": "strict",  "result": "allowed",  "duration_ms": 1240}

Lớp 14: Phát hiện bất thường

toml
[security.audit.anomaly_detection]enabled = truebaseline_days = 7sensitivity = "medium"           # low / medium / highalert_on = ["unusual_command", "off_hours_activity", "unusual_destination"]

Lớp 15: Báo cáo tuân thủ

toml
[security.compliance]generate_reports = trueschedule = "0 0 1 * *"           # Tạo báo cáo hàng thángframeworks = ["SOC2", "ISO27001"]export_format = "pdf"

Lớp 16: Phản ứng sự cố bảo mật

toml
[security.incident_response]auto_contain = true              # Tự động cách ly Agent khi phát hiện bất thườngcontainment_action = "pause_all_hands"notify_channels = ["slack:#security", "email:[email protected]"]forensic_snapshot = true         # Lưu ảnh chụp nhanh hiện trường khi kích hoạt

Mẫu cấu hình bảo mật nhanh

Tùy theo kịch bản triển khai, hãy chọn mẫu cấu hình bảo mật tương ứng:

Môi trường phát triển (Yêu cầu bảo mật thấp)

bash
openfang security preset development

Môi trường sản xuất (Yêu cầu bảo mật tiêu chuẩn)

bash
openfang security preset production

Môi trường bảo mật cao (Tài chính/Y tế/Chính phủ)

bash
openfang security preset hardened

Sự khác biệt chính giữa ba mẫu cấu hình:

Cấu hìnhDevelopmentProductionHardened
Hệ thống tệpbasicstrictstrict
Truy cập ShellCho phépCấmCấm
Chế độ mạngblocklistallowlistallowlist
Lọc đầu raTắtBậtBật
Nhật ký kiểm toánTắtBậtBật
Mã hóa dữ liệuTắtBậtBật
Phát hiện bất thườngTắtmediumhigh
Tự động cách lyTắtTắtBật

Danh sách kiểm tra bảo mật

Trước khi triển khai lên môi trường sản xuất, hãy sử dụng lệnh openfang security audit để xác thực từng mục:

bash
openfang security audit# Ví dụ kết quả:# ✅ [1/16] Filesystem sandbox: strict# ✅ [2/16] Process sandbox: no shell access# ✅ [3/16] Memory limit: 512 MB# ✅ [4/16] CPU limit: 2 cores# ✅ [5/16] Network: allowlist mode# ⚠️ [6/16] TLS cert pinning: not configured# ✅ [7/16] Rate limiting: enabled# ...# Score: 14/16 — 2 khuyến nghị đang chờ xử lý

Câu hỏi thường gặp

Phải làm gì nếu cấu hình bảo mật quá nghiêm ngặt khiến Agent không hoạt động bình thường?
Hãy sử dụng chiến lược nới lỏng dần dần. Bắt đầu với cấu hình hardened, quan sát hành vi của Agent. Đối với các thao tác cần thiết bị chặn, hãy sử dụng nhật ký kiểm toán để xác định mục bị chặn, sau đó thêm vào danh sách cho phép (allowlist) một cách có mục tiêu.
Liệu có thực sự phòng thủ được Prompt Injection không?
Bộ lọc đầu vào của OpenFang cung cấp khả năng phòng thủ nhiều lớp, nhưng không có cơ chế nào là hoàn hảo. Phương pháp tốt nhất là kết hợp nhiều lớp bảo vệ: làm sạch đầu vào + hạn chế sandbox + cách ly mạng. Ngay cả khi Injection vượt qua được bộ lọc đầu vào, các hạn chế về sandbox và mạng vẫn có thể giảm thiểu tối đa thiệt hại.
Làm thế nào để chồng lớp bảo mật trong môi trường container (Docker/K8s)?
Các lớp bảo mật của OpenFang và bảo mật ở tầng ứng dụng là mối quan hệ bổ sung, không thay thế nhau. Các cấu hình seccomp/AppArmor của Docker có thể đóng vai trò là lớp bảo vệ bổ sung (lớp 0), nhưng không nên thay thế các cơ chế bảo mật tích hợp sẵn của OpenFang.
Phải làm gì khi xảy ra sự cố bảo mật?
1. Kiểm tra nhật ký kiểm toán để xác định phạm vi sự cố.
2. Nếu đã cấu hình auto_contain = true, Agent đã được tự động cách ly.
3. Tải xuống ảnh chụp nhanh pháp y: openfang security forensics download --run-id xxx.
4. Phân tích nguyên nhân gốc rễ và vá lỗ hổng.
5. Khôi phục từ ảnh chụp nhanh hoặc khởi tạo lại Agent.

Bước tiếp theo