ADR 0005Chấp nhận
ADR 0005. Không thực thi mã từ xa
- Trạng thái: Đã chấp nhận (phát biểu lại tại repo này từ ràng buộc nền tảng đã chấp nhận ngày 2026-09-30, để tài liệu của agent không phụ thuộc repo khác)
- Ngày: 2026-09-30
Bối cảnh
Agent chạy trên máy chủ của khách hàng, thường với quyền cao hơn người dùng thường và trên hàng nghìn máy. Nếu agent nhận và chạy lệnh, script hay plugin từ trung tâm thì việc chiếm được Collector, Access Hub hoặc kênh truyền sẽ thành chiếm được mọi máy đã cài.
Quyết định
- Agent không có bộ thực thi lệnh, không chạy script, không tải hay nạp plugin, không mở shell cho bên khác.
- Mọi dữ liệu nhận từ trung tâm (phản hồi enroll, cấu hình từ xa, manifest cập nhật) chỉ được phân tích theo lược đồ đã biết. Khóa lạ bị bỏ qua và ghi log.
- Cấu hình từ xa không chứa lệnh, đường dẫn thực thi hay đường dẫn tệp tùy ý (ADR 0003).
- Các kiểm tra chủ động (
checks) chỉ là danh sách kiểu cố định (service, port, tcp, http, cert), tham số được kiểm tra và giới hạn (ví dụ chặn địa chỉ link-local theo mặc định). - Cập nhật tự động (AGT-12, chưa xây) chỉ thay binary của chính agent, sau khi kiểm tra chữ ký Ed25519 bằng khóa nhúng, checksum và khởi chạy thử. Đây không phải đường thực thi mã tùy ý.
- Đảo ngược quyết định này (ví dụ hành động từ xa theo danh sách trắng ở giai đoạn 4) cần một ADR mới, đánh dấu "thay thế ADR 0005", kèm đánh giá bảo mật.
Hệ quả
- Chiếm quyền trung tâm không đủ để chạy mã trên máy chủ, chỉ ảnh hưởng số liệu và kết quả kiểm tra nhẹ.
- Agent không thể dùng làm kênh quản trị máy chủ. Nhu cầu đó nằm ngoài phạm vi (phi mục tiêu ở L1 mục 2).
- Kiểm thử bảo mật cấu hình độc hại là bắt buộc trong CI (xem ADR 0003).
Phương án đã cân nhắc
| Phương án | Lý do không chọn |
|---|---|
| Cho phép chạy lệnh theo danh sách trắng từ trung tâm | Mở rộng bề mặt tấn công quá mức ở giai đoạn 1 đến 3, khó chứng minh an toàn |
| Plugin nạp động | Mất tính chất binary tĩnh (ADR 0001), khó kiểm soát chuỗi cung ứng |