Access Hub Collector
Đồng bộ từ mã nguồn lúc 10:57, 03/10/2026
Skip to content

Bảo mật ​

Mô hình đe dọa và biện pháp cho toàn bộ chuỗi agent, collector, Access Hub. Phần bảo mật nội bộ của agent do dự án Agent quản lý, tài liệu này chỉ nêu các yêu cầu Collector đặt lên agent.

8 phút đọcCập nhật 01/10/2026access-hub-collector, docs/07-security.md

1. Tài sản cần bảo vệ ​

Tài sảnRủi ro chính
Token agentBị đánh cắp để gửi dữ liệu giả mạo một máy chủ
LicenseBị lộ để đăng ký agent trái phép
Số liệu và kiểm kê của công tyĐọc chéo tenant
Token quản trị collector, token dịch vụ của Access HubChiếm quyền điều khiển hạ tầng giám sát
Kênh cập nhật agent (GĐ 3)Đẩy mã độc lên hàng nghìn máy chủ (rủi ro cao nhất)
Tính khả dụng của collectorTừ chối dịch vụ bằng dữ liệu rác hoặc bão kết nối

2. Mô hình đe dọa (STRIDE rút gọn) ​

Đe dọaKịch bảnBiện pháp
SpoofingKẻ tấn công dùng token đánh cắp để nói dối về một máyToken riêng cho mỗi agent, thu hồi tức thì (60 giây), xoay 30 ngày, phát hiện machine_id lệch, mTLS tùy chọn GĐ 3
SpoofingEnroll giả để vào công ty khácLicense băm, hạn ngắn, giới hạn số lần dùng, gắn công ty và tùy chọn gắn Server, giới hạn tốc độ theo IP, tài khoản khóa
TamperingAgent gửi nhãn company_id của công ty khácDanh tính chỉ lấy từ registry theo token, nhãn cùng tên trong payload bị bỏ
TamperingSửa cấu hình agent trên đường truyềnTLS, cập nhật có chữ ký Ed25519
RepudiationNgười dùng phủ nhận thu hồi hoặc sửa luậtAudit qua AuditRecorder, Auditable trên token, agent, luật
Information disclosureTruy vấn số liệu đọc chéo tenantAccess Hub tự chọn company_id, server_id, collector chèn bộ lọc, không nhận PromQL thô, kiểm thử tự động (NFR-12)
Information disclosureToken lộ trong log hoặc danh sách tiến trìnhKhông ghi token vào log, License nhận qua biến môi trường, tệp hoặc stdin, không qua argv; tệp thông tin đăng nhập quyền 0600 hoặc ACL
DoSHàng nghìn agent gửi dồn hoặc gửi payload khổng lồGiới hạn kích thước, số series, tốc độ theo agent, jitter, bus có giới hạn, 503 kèm Retry-After, ingest không trạng thái để scale ngang
DoSBùng nổ cardinality làm sập TSDBDanh sách nhãn trắng, giới hạn series mỗi agent, cắt giá trị nhãn, cảnh báo tổng series
ElevationChạy lệnh từ xa qua agentKhông hỗ trợ thực thi lệnh từ xa ở GĐ 1 đến 3. Kiểm tra chỉ gồm kiểu cố định (port, tcp, http, cert, service), không nhận script (ADR 0010)
ElevationKiểm tra dùng như SSRF trong mạng nội bộKiểm tra chạy từ máy đã cài agent, đích cấu hình bởi quản trị viên công ty, tùy chọn allow_cidrs giới hạn đích, không theo chuyển hướng ra ngoài mặc định

3. Xác thực và phân quyền ​

Agent -> collector ​

  • Token mờ (opaque), 256 bit ngẫu nhiên, mã hóa dạng ahat_<base64url> (tiền tố giúp máy quét bí mật nhận ra khi bị lộ).
  • Lưu phía hub chỉ là SHA-256 của token. Collector và Access Hub không lưu bản rõ.
  • Xoay: 30 ngày, chồng lấn 24 giờ. Xoay thủ công bất cứ lúc nào từ Access Hub.
  • Thu hồi: Access Hub đẩy DELETE /internal/v1/agents/{id}, ghi sẵn vào registry, hiệu lực ngay khi mọi node ingest nhận được (cache tối đa 60 giây nếu đẩy thất bại, do đó có đối soát định kỳ).

Collector -> Access Hub ​

  • Bearer token Sanctum của user dịch vụ, vai trò chỉ chứa monitoring.collector. Xoay định kỳ, lưu trong kho bí mật của nền tảng triển khai (biến môi trường hoặc secret manager), không ghi vào repo.
  • IP allowlist phía Access Hub (tùy chọn) cho các endpoint collector.

Access Hub -> collector (admin) ​

  • Token admin riêng, chỉ mở trên mạng nội bộ, TLS, có thể thêm mTLS. Endpoint admin không bao giờ ra Internet.

Người dùng -> dữ liệu giám sát ​

  • Không bao giờ truy cập trực tiếp collector. Toàn bộ qua Access Hub với quyền monitoring.view và ràng buộc công ty của Server (CompanyScope).

4. Bảo vệ truyền tải ​

  • TLS 1.2 trở lên, ưu tiên 1.3, bộ mã hiện đại. Chứng chỉ công khai (Let's Encrypt hoặc CA doanh nghiệp) cho endpoint agent.
  • Agent xác minh chứng chỉ máy chủ theo kho tin cậy của hệ điều hành. Tùy chọn ghim CA riêng (ca_file) cho môi trường nội bộ. Không có cờ tắt xác minh trong bản phát hành (chỉ tồn tại trong build dev có cờ biên dịch).
  • mTLS tùy chọn GĐ 3: agent có chứng chỉ máy khách cấp khi enroll, ràng buộc với agent_id.

5. Cô lập tenant ​

Các lớp phòng thủ chồng nhau:

  1. Danh tính từ registry theo token, không tin nội dung.
  2. Nhãn company_id, server_id do collector gắn, xóa nhãn trùng tên từ agent.
  3. Truy vấn: Access Hub xác định đối tượng, collector chèn matcher, danh sách chỉ số trắng, không PromQL thô, giới hạn khoảng thời gian và số điểm.
  4. Xóa dữ liệu theo tenant qua API nội bộ có company_id bắt buộc.
  5. Kiểm thử tự động "hai công ty" ở cả hai repo: agent công ty A không thể ghi vào series của B, truy vấn của A không trả dữ liệu B, purge A không đụng B.

6. Bảo mật chuỗi cung ứng và cập nhật ​

  • Gói cài đặt ký: GPG cho .deb, .rpm (kho gói ký), Authenticode cho .msi và .exe (chứng chỉ ký mã, khuyến nghị EV để tránh SmartScreen), cosign hoặc SHA-256 kèm chữ ký cho tar và script.
  • Script cài xác minh checksum và chữ ký trước khi chạy.
  • Cập nhật tự động (GĐ 3): manifest ký Ed25519, khóa công khai được nhúng trong agent lúc build, khóa riêng chỉ ở HSM hoặc kho khóa CI bảo vệ, xoay khóa có kế hoạch (nhúng nhiều khóa công khai). Agent kiểm tra chữ ký manifest, SHA-256 của tệp, phiên bản chỉ tăng (chống hạ cấp), giữ bản cũ để quay lui.
  • Phụ thuộc: khóa phiên bản, govulncheck và osv-scanner trong CI, SBOM (CycloneDX) cho mỗi bản phát hành, build tái lập được khi khả thi.
  • Repo: bảo vệ nhánh chính, review bắt buộc, bí mật ký chỉ có trong môi trường CI phát hành.

7. Bảo mật vận hành collector ​

  • Chạy không dùng root, bộ mô tả systemd với NoNewPrivileges, ProtectSystem=strict, PrivateTmp, giới hạn địa chỉ.
  • Container: hình ảnh distroless, không shell, chỉ đọc hệ thống tệp.
  • Log JSON, không ghi token, License, header Authorization. Có bộ lọc che (redaction) ở tầng log, có kiểm thử.
  • Redis: bật mật khẩu và TLS, mạng riêng. Khuyến nghị cân nhắc Valkey do thay đổi giấy phép Redis (xem 13).
  • Dữ liệu ở trạng thái nghỉ: đĩa TSDB và outbox mã hóa theo nền tảng lưu trữ nếu chính sách công ty yêu cầu.

8. Quyền riêng tư và dữ liệu thu thập ​

  • Chỉ thu chỉ số hệ thống tổng hợp và kiểm kê phần cứng. Không thu dòng lệnh tiến trình, nội dung tệp, nội dung mạng, biến môi trường, danh sách người dùng.
  • Danh sách dịch vụ và port chỉ gửi cho những mục quản trị viên khai báo trong cấu hình kiểm tra.
  • Địa chỉ MAC mặc định không gửi. Hostname và IP được coi là dữ liệu vận hành nội bộ của công ty.
  • Xóa dữ liệu khi xóa tenant hoặc máy chủ (FR-43). Tài liệu chính sách lưu trữ hiển thị cho người dùng.

9. Ghi nhận và phát hiện ​

Sự kiện bảo mật cần ghi và cảnh báo: enroll thất bại lặp lại, token bị từ chối hàng loạt từ một IP, agent có machine_id trùng ở nhiều hostname, tăng vọt số series bị bỏ, thay đổi cấu hình từ xa, cập nhật thất bại chữ ký. Đẩy về Access Hub dưới dạng sự kiện hệ thống hoặc metric collector.

10. Danh sách kiểm tra trước khi phát hành mỗi giai đoạn ​

  • [ ] Kiểm thử cô lập tenant đạt trên cả hai repo.
  • [ ] govulncheck, quét bí mật, quét container sạch.
  • [ ] Không có token hoặc bí mật trong log (kiểm thử redaction).
  • [ ] Cờ bỏ xác minh TLS không tồn tại trong bản release.
  • [ ] Gói ký và xác minh chữ ký thành công trên máy sạch.
  • [ ] Tài liệu vận hành cập nhật: xoay token, thu hồi khẩn cấp, xử lý lộ khóa ký.
Trang này có giúp được bạn không?
Sửa trang này

Nội dung đồng bộ từ kho mã access-hub-collector lúc 10:57, 03/10/2026. Khi tài liệu và mã khác nhau, mã thắng.