Access Hub Scanner
Đang phát triểnĐồng bộ từ mã nguồn lúc 10:57, 03/10/2026
Skip to content

Kết quả spike P0 (rút gọn: S2, S3, S4, S5) ​

Ngày đo: 2026-10-02, trên máy thử duy nhất (Ubuntu 24.04, 4 vCPU, 16 GB, đồng thời chạy Access Hub production). Dữ liệu nguồn tải cùng ngày. Bản thô đã xóa sau khi đo (giới hạn đĩa); muốn đo lại thì tải lại theo URL dưới đây.

8 phút đọcCập nhật 03/10/2026access-hub-scanner, docs/spikes/README.md

S2. Nguồn dữ liệu Debian và Ubuntu ​

NguồnTải vềGiải nénBản ghiĐộ tươiGiấy phép
Debian Security Tracker JSON (security-tracker.debian.org/tracker/data/json)12,9 MB gzip, 3,3 s80 MB, parse 0,7 s4.053 gói nguồn; bookworm 64.596, trixie 63.107 bản ghi (gói, CVE)Sinh lại khoảng mỗi giờ (cache-control: max-age=3600)Repo tracker không có tệp giấy phép (đã kiểm qua API salsa): cần pháp chế (Q9)
Debian OSV (osv-vulnerabilities/Debian/all.zip)74 MB237 MB, 69.401 bản ghiDebian 12: 55.948 mục affectedDẫn xuất từ trackerTheo nguồn
Ubuntu OSV (osv-vulnerabilities/Ubuntu/all.zip)771 MB, 106 s7,8 GB (do liệt kê versions), 69.421 bản ghi22.04: 865.796 mục (167.933 có bản sửa); 24.04: 473.938 (118.268)Bản ghi đổi lúc 05:45Z có trong zip lúc 06:02Z; có modified_id.csv (3,4 MB) để tải tăng dầnCC BY-SA 4.0 (repo canonical/ubuntu-security-notices)
Ubuntu OVAL CVE (security-metadata.canonical.com/oval/)8 đến 12 MB bz2 mỗi bản phát hành207 MB XML (noble)noble 33.126 định nghĩaSinh hằng ngày (bản 2026-10-01T22:29)"Copyright Canonical", không ghi giấy phép trong tệp
Ubuntu VEX (security-metadata.canonical.com/vex/vex-all.tar.xz)65 MB xzkhoảng 20 GB JSON76.994 tệpHằng ngàyCC BY-SA 4.0; trang có thông báo sẽ đổi nền tảng ("TBD")

So sánh OSV và OVAL (cặp CVE, gói nguồn):

Bản phát hànhCặp OVALCặp OSVTrùngCùng bản sửaKhác
24.04128.643472.231128.643128.6412 (OSV mới hơn: USN ra lúc 05:57Z, OVAL sinh lúc 22:29Z hôm trước)
22.04180.421862.444180.421180.4192 (cùng lý do)
20.04112.146626.45688.16188.161OVAL focal gộp bản sửa ESM (23.985 cặp), OSV để ở Ubuntu:Pro:20.04:LTS

Phần OSV có thêm chủ yếu là biến thể kernel chưa sửa. Không nguồn nào trong OSV, OVAL phân biệt được needed, needs-triage, deferred, ignored với mục chưa sửa; VEX phân biệt được (câu action_statement) nhưng quá nặng.

Quyết định cho P1 (ADR 0004 điểm 3 được đáp ứng): Debian dùng tracker JSON (đầy đủ trạng thái no-dsa, ignored, postponed, unimportant, nhỏ). Ubuntu dùng OSV UBUNTU-CVE-* (bản sửa trùng OVAL 99,998%, tươi hơn vài giờ, có kênh Pro/ESM). VEX để P3 làm giàu wont_fix. Lưu ý:

  • Debian 11 (bullseye) đã rời LTS ngày 2026-08-31 và không còn trong tracker của Debian. Bản đầu ghi SUPPORT_EOL không dữ liệu. Sửa theo chính sách 2026-10-02 ("lỗ hổng vẫn là lỗ hổng"): dữ liệu Debian 10, 11 lấy từ Freexian ELTS tracker (cùng định dạng, vẫn cập nhật trạng thái open); fixture Debian 11 có 148 lỗ hổng cộng finding release_eol (Trivy 146, Grype 111 trên cùng fixture).
  • Dữ liệu lỗi đã gặp: Ubuntu OSV có fixed: "2024-08-16" cho CVE-2024-6716 (tiff). secdb-build từ chối phiên bản sửa dạng ngày và đếm vào bad_versions.
  • Sự cố: giải nén VEX ra đĩa làm đầy ổ production (xem docs/12-roadmap.md mục Trạng thái tạm dừng). Mọi nguồn lớn phải đọc theo luồng.

secdb v1 dựng từ hai nguồn (không NVD): 63.526 lỗ hổng, 2.309.931 mục affected, tệp secdb.pb.zst 13,6 MB (290 MB giải nén); bản đầu dựng 68 s, RSS 2,8 GB; nạp và lập chỉ mục ở secmatch 4,2 s, RSS 1,9 GB. Phần lớn mục là biến thể kernel chưa sửa của Ubuntu. Sau tối ưu (2026-10-02 tối, dữ liệu cùng ngày): secdb-build 58 s, RSS đỉnh 0,75 GB (lưu gọn, ghi theo luồng); secmatch nạp và lập chỉ mục 4 s, RSS đỉnh 0,30 GB (đọc theo luồng, chỉ mục gọn); nội dung DB và kết quả so khớp giống hệt bản trước.

S3. Chuẩn đối chiếu (ground truth) ​

Công cụ đã tải (bản ghim, kiểm SHA-256 với checksums.txt của bản phát hành; đã xóa khỏi ~/.local/opt khi tạm dừng):

Công cụTệpSHA-256
Trivy v0.74.0trivy_0.74.0_Linux-64bit.tar.gz2ae6fe3ee734b7fdf11335663e18c75ea12dccc76062f09f164a3b0f8be4371a
Grype v0.119.0grype_0.119.0_linux_amd64.tar.gz3fa2dc4b924621ab65404cf08d0b8438d896d80ab949c9d5a4ca283c36004c9b

DB của công cụ: Trivy 1,4 GB (cập nhật 2026-10-02T06:55Z), Grype 3,0 GB (build 2026-10-02T06:31Z). Chỉ quét thư mục gốc giả chứa var/lib/dpkg/status và os-release (không quét /): 5 fixture ảnh gốc (Ubuntu 20.04.5, 22.04.5, 24.04.3, Debian 11, 12) và bản sao dpkg/status của máy này (741 gói, không commit). Quy trình: tools/accuracy chuẩn hóa về (CVE, gói nguồn), bỏ gói kernel không chạy (chính sách 04 mục 5).

FixtureOursTrivyGrypeTrùng TrivyTrùng GrypeChỉ oursChỉ công cụ
Ubuntu 22.0419814317914317955 / 19 (chưa phân loại từng mục)0 / 0
Ubuntu 24.0416912715012715042 / 19, đều no_fix0 / 0
Debian 121021011001011001 / 2 (undetermined, wont_fix)0 / 0
Máy này (24.04)4.3663.8554.2703.8554.265612: 610 no_fix, 2 là lỗi dữ liệu tiff ở trên0 / 5 (libheif, libxpm chưa có trong OSV)
Ubuntu 20.041873516735167bản sửa ESM (+esm), công cụ khác không dùng dữ liệu Pro0 / 0
Debian 110 (148 sau khi đổi chính sách)146111Lúc đo: release_eol không finding; nay giữ finding (ELTS tracker)

Với finding có bản sửa, mọi cặp trùng đều cùng phiên bản sửa; recall so với hợp của hai công cụ trên bản phát hành đang hỗ trợ là 99,9% (thiếu 5 mục Grype có, OSV chưa có). Khác biệt còn lại thuộc nhóm "có chủ đích" (11 mục 3): mục chưa sửa (OSV không phân biệt needs-triage), kênh ESM, bản phát hành hết hỗ trợ. Ground truth phân loại thủ công chưa làm (cần người duyệt), nên chưa công bố precision theo SNFR-40.

S4. Quyền và hardening systemd ​

  • Unit packaging/systemd/accesshub-scanner.service: User=accesshub-scanner, chỉ CAP_DAC_READ_SEARCH (ambient và bounding), RestrictAddressFamilies=AF_UNIX, IPAddressDeny=any, ProtectSystem=strict, ProtectHome=yes, ProtectProc=invisible, SystemCallFilter=@system-service ~@privileged @resources, Nice=19, IOSchedulingClass=idle, CPUSchedulingPolicy=idle, MemoryMax=192M, CPUQuota=50%, LimitCORE=0.
  • systemd-analyze security --offline (systemd 255): 1,1 (Access Hub Agent hiện tại 1,7). Các điểm còn lại là có chủ đích: capability đọc, AF_UNIX, không PrivateNetwork (P5 cần /proc/net của namespace máy).
  • Chạy thật trong hộp cát của user manager (seccomp, AF_UNIX, NoNewPrivileges, MemoryMax): quét thành công; curl trong cùng hộp cát không tạo được socket mạng.
  • Spool là thư mục setgid (2750), thư mục trạng thái 0710. Lúc spike nhóm đọc là accesshub-agent; sau quyết định Q25 là nhóm accesshub-scan-uploader của bộ gửi trong chính gói Scanner: bộ gửi đọc được báo cáo mà bộ đọc không cần là thành viên nhóm nào khác.
  • Chưa làm (cần root hoặc máy khác): ambient capability thật, CentOS 7 và systemd cũ, IPAddressDeny (cần BPF).

S5. Kích thước inventory và chi phí ​

ĐoKết quả
Quét máy này (741 gói)10 đến 20 ms CPU, RSS 9,3 MB, spool 14,2 KB (--print JSON 167 KB, gzip 14,5 KB)
Tổng hợp 3.000 gói30 ms, RSS 11,9 MB, spool 17,5 KB
Tổng hợp 20.000 gói0,27 s CPU, RSS 22 MB, 105 KB
Tổng hợp 45.000 gói0,61 s CPU, RSS 40 MB, 3 phần, 213 KB
Tháo khi không đổi (unchanged)dưới 5 ms, RSS 5,5 MB
Binary accesshub-scanner5,2 MB (đích SNFR-08: 25 MB)
So sánh phiên bản dpkg186 ns mỗi cặp

Ngân sách SNFR-01 (3 s CPU cho 3.000 gói), SNFR-04 (128 MB) và SNFR-11 (150 KB) đạt với dư địa lớn.

So khớp lại 10.000 máy: chưa đo. Lần chạy thử đã làm đầy đĩa production và bị dừng. Theo yêu cầu của chủ dự án, phép đo đầy đủ chỉ chạy trên máy thử riêng. Ước tính: mỗi máy 3.000 gói, khoảng 1.000 gói có trong DB, trung bình khoảng 30 mục mỗi gói, nên khoảng 30.000 phép so sánh, tức 6 ms CPU mỗi máy. 10.000 máy khoảng 60 s CPU, cộng đọc và ghi kho. Ghi nhớ theo inventory_hash gom các máy giống hệt nhau. Đích SNFR-43 (30 phút trên 4 vCPU) có vẻ dư, nhưng phải đo. Rủi ro thật là khối lượng finding chưa sửa (biến thể kernel, gói nhiều CVE): trạng thái và sự kiện có thể lên tới hàng GB. Cần giới hạn và nén trạng thái trước khi mở rộng.

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-scanner lúc 10:57, 03/10/2026. Khi tài liệu và mã khác nhau, mã thắng.