Rủi ro và câu hỏi mở
1. Sổ rủi ro
Xác suất (X) và tác động (T): T = thấp, V = vừa, C = cao.
| # | Rủi ro | X | T | Giảm thiểu |
|---|---|---|---|---|
| R1 | Độ chính xác thấp (dương tính giả, bỏ sót) làm mất niềm tin khách hàng | V | C | Nguồn distro là chuẩn (ADR 0004), ground truth và benchmark mỗi bản phát hành (11), chặn phát hành khi chỉ số giảm, ngoại lệ dương tính giả |
| R2 | Nguồn dữ liệu đổi định dạng, điều khoản hoặc ngừng (ví dụ kế hoạch ngừng OVAL của Red Hat, tồn đọng làm giàu của NVD) | C | V | Bộ chuyển đổi theo nguồn, kiểm tra hợp lý, nhiều nguồn cho cùng hệ, giám sát secdb-build, theo dõi thông báo của nhà phát hành |
| R3 | Pháp lý: phân phối lại dữ liệu trong gói Dedicated, dùng nội dung CIS trong sản phẩm thương mại | V | C | Rà soát pháp chế ở P0 (Q9), mã AHS-* riêng, tệp NOTICE, trang Nguồn dữ liệu |
| R4 | Lỗ hổng trong scanner đặc quyền bị khai thác | Thấp | Rất cao | Tách đặc quyền (ADR 0001), một capability, không mạng, không ghi tệp hệ thống, fuzz parser, Go không CGO |
| R5 | Quét làm chậm máy sản xuất (lượt siêu dữ liệu) | Thấp | C | Ngân sách SNFR, CPUQuota, MemoryMax, IOSchedulingClass=idle, trần inode, tắt từ Access Hub hoặc systemctl disable accesshub-scanner.timer. Lượt nội dung: R18 |
| R6 | CVE phổ biến mới (ví dụ thư viện có mặt trên mọi máy) gây bão sự kiện và tải MySQL của Access Hub | V | V | Lô 200, upsert theo khóa, digest thay vì thông báo từng finding, chỉ phát rescored khi ưu tiên đổi, kiểm thử tải 10 mục 6.2 |
| R7 | DB bị đầu độc hoặc lộ khóa ký | Thấp | Rất cao | Khóa trong KMS hoặc HSM, cổng duyệt thay đổi hàng loạt, dựng lại độc lập để so, nhiều khóa công khai để xoay |
| R8 | Quá nhiều finding gây mệt mỏi cảnh báo | C | V | Ưu tiên theo EPSS, KEV, phơi nhiễm; tách no_fix; digest; ngoại lệ có hạn |
| R9 | Phụ thuộc lịch phát hành Access Hub Agent (phương án b2 cần Agent mới) | V | V | Phần Agent nhỏ (đọc spool, gửi), làm đầu P1, trạng thái collector_unsupported để tương thích ngược |
| R10 | Distro cũ (CentOS 7, systemd 219, kernel 3.10) hộp cát yếu hơn | C | V | Spike S4, phương án dự phòng ở 09 mục 2.2, có thể chỉ hỗ trợ inventory (không kiểm tra cấu hình) trên distro đã hết vòng đời |
| R11 | Dữ liệu cá nhân trong bằng chứng và đường dẫn (tên tài khoản, tên tệp chứa tên người) | V | V | Q12, tối thiểu hóa, xóa khi xóa máy hoặc công ty, tài liệu cho khách hàng biết dữ liệu nào rời máy (scan --print); đường dẫn finding nội dung chỉ hiện cho người có quyền tương ứng (ADR 0011 mục 6) |
| R12 | Mở rộng phạm vi (bí mật, dữ liệu cá nhân, kiểm kê mở rộng, Windows, container, khắc phục tự động) làm chậm bản Linux | C | V | Mốc M1 chỉ gồm P0 đến P2; dữ liệu cá nhân và kiểm kê mở rộng sau; Windows, container có cổng quyết định của chủ dự án (Q7, Q18, Q19) |
| R13 | Rò rỉ chéo tenant qua API tìm gói mới | Thấp | C | company_id bắt buộc ở lớp truy cập, kiểm thử hai công ty, fuzz tham số |
| R14 | Gói từ kho bên thứ ba bị so sai | C | V | Nhận diện VENDOR, nhãn third_party, origin_unknown (04 mục 6) |
| R15 | Ước lượng sai vì chưa có số đo thật | V | V | Dự phòng 25% đến 40%, xem lại sau P0 |
| R16 | Dương tính giả cao ở detector chung (gán mật khẩu, số 12 chữ số không ngữ cảnh) gây mệt mỏi và mất niềm tin | C | V | Độ tin cậy low, medium, high, ẩn low mặc định; allowlist; ngữ cảnh; ngưỡng số lượng cho dữ liệu cá nhân; ngoại lệ theo mẫu đường dẫn; bộ mẫu và chặn phát hành khi precision giảm (11 mục 2.2) |
| R17 | Bản build scanner độc hại hoặc chuỗi cung ứng bị chiếm giấu giá trị trong trường fingerprint, đường dẫn (kênh ngầm) | Thấp | Rất cao | Gói ký, SBOM, dựng tái lập, review hai người cho mã trong ranh giới che giấu, govulncheck; kiểm tra định dạng ở Access Hub Collector chỉ là lớp phụ, không ngăn được hoàn toàn (ADR 0011 Hệ quả) |
| R18 | Lượt nội dung làm chậm máy sản xuất (IO, đẩy page cache, atime) | V | C | Unit riêng, khung giờ yên tĩnh, CPUQuota=25%, IOSchedulingClass=idle, giới hạn 16 MiB/s và 1 GiB mỗi lượt, PSI, POSIX_FADV_DONTNEED, tăng dần theo chỉ mục, local.conf để quản trị viên tắt (ADR 0009); đo p99 ở S9 và T-4b |
| R19 | Pháp lý dữ liệu cá nhân: sản phẩm xử lý dữ liệu cá nhân trên máy khách hàng, đường dẫn tệp chứa dữ liệu cá nhân là thông tin nhạy cảm (Nghị định 13/2023/NĐ-CP, Luật Bảo vệ dữ liệu cá nhân 2025) | V | C | Dữ liệu cá nhân tắt mặc định, khách hàng bật và chọn gốc; giá trị không rời máy; rà soát pháp chế trước khi bật cho khách hàng (Q42, LEG-1); điều khoản xử lý dữ liệu trong hợp đồng; tài liệu cho khách hàng |
| R20 | Dò ngược fingerprint của giá trị không gian nhỏ (số điện thoại, CCCD, mật khẩu yếu) | V | C | K_host không rời máy cho mọi dữ liệu cá nhân và bí mật entropy thấp; K_company chỉ cho bí mật entropy cao; HMAC-SHA256 đầy đủ 256 bit (ADR 0011 mục 3) |
| R21 | Danh sách vị trí bí mật trong Access Hub là bản đồ tấn công nếu tài khoản Access Hub bị chiếm | V | C | Quyền tách riêng security.secrets.view, security.pii.view; không đường dẫn, preview trong thông báo, webhook; audit khi xem chi tiết; khuyến nghị bắt buộc 2FA cho vai trò có quyền này |
| R22 | Scanner đọc bí mật vào bộ nhớ làm tăng giá trị của nó như mục tiêu tấn công | Thấp | C | Không mạng, một capability, LimitCORE=0, không thường trú, bộ đệm dùng lại, Go an toàn bộ nhớ, fuzz bộ phân tích |
| R23 | Bộ quy tắc lỗi thời (định dạng token mới, đầu số mới, mã tỉnh mới) làm giảm recall | C | V | Rà soát quy tắc mỗi quý, rules_version trong báo cáo, thống kê ẩn danh về độ phủ detector, phát hành scanner thường xuyên |
| R24 | Độ phủ thấp (baseline chưa xong, tệp quá lớn, nhị phân, nén) bị hiểu là "sạch" | V | V | Báo cáo độ phủ, giao diện hiện "chưa quét xong", danh sách large_unscanned_data, tài liệu nêu rõ giới hạn đã biết |
2. Câu hỏi mở
Cột "Chặn" là giai đoạn không thể bắt đầu nếu chưa có câu trả lời.
| # | Câu hỏi | Phương án | Khuyến nghị | Chặn |
|---|---|---|---|---|
| Q1 | Kiến trúc trên máy | (a) mô-đun trong Agent; (b1) scanner riêng có mạng, dùng chung thư viện enroll, transport; (b2) scanner riêng không mạng, Agent chuyển tiếp qua spool; (c) không agent, SSH từ trung tâm | Đã trả lời 2026-10-02: duyệt (b2) tách đặc quyền, nhưng theo Q25 bộ gửi là thành phần không đặc quyền riêng của gói Scanner (accesshub-scan-uploader), không phải Agent (ADR 0001, Chấp nhận) | P0 |
| Q2 | So khớp ở đâu | Trên máy với DB tải xuống; tập trung | Đã trả lời 2026-10-02: duyệt so khớp tập trung (ADR 0002, Chấp nhận) | P0 |
| Q3 | Secmatch đặt ở đâu | Vai trò mới trong binary Collector; dịch vụ riêng trong repo này; trong Access Hub (PHP) | Đã trả lời 2026-10-02: duyệt secmatch là dịch vụ riêng trong repo này; thêm vai trò ingest cho bộ gửi Scanner (Q25, SMT-6) | P0 |
| Q4 | Lưu gói theo máy ở đâu | MySQL của Access Hub; kho riêng của secmatch có API tra cứu | Kho riêng của secmatch (secmatch cần nó để so khớp lại), Access Hub chỉ giữ finding và vòng đời. ADR 0008. Hệ quản trị kho: MySQL (đội đã vận hành) hay PostgreSQL | P0 |
| Q5 | Tự xây hay dùng lại engine mã nguồn mở | (i) nhúng Trivy (Apache-2.0) làm thư viện trong secmatch; (ii) nhúng Grype (Apache-2.0); (iii) OpenSCAP (LGPL-2.1, thư viện C, cần CGO); (iv) Vuls (GPL-3.0); (v) engine mỏng tự viết bằng Go, dùng lại thư viện nhỏ giấy phép dễ dãi (đọc rpmdb), các công cụ trên chỉ làm chuẩn đối chiếu trong kiểm thử | Đã trả lời 2026-10-02: duyệt engine mỏng tự viết có sửa: nguồn dữ liệu cắm được, bản ghi chuẩn hóa theo nguồn, nguồn gốc trên mọi finding, cờ đồng ý và không đồng ý, chính sách ưu tiên nguồn theo distro, "nguồn nhanh nhất thắng, nguồn khác xác nhận" (ADR 0007, Chấp nhận; ADR 0012) | P0 |
| Q6 | Quyền của scanner | Root đầy đủ; tài khoản riêng với CAP_DAC_READ_SEARCH; root giới hạn bounding set | Đã trả lời 2026-10-02: duyệt tài khoản riêng với CAP_DAC_READ_SEARCH (bộ đọc, không mạng) | P0 |
| Q7 | Khắc phục chỉ tư vấn hay tự động | (a) chỉ tư vấn: hướng dẫn văn bản, lệnh gợi ý để người dùng tự chạy; (b) bật một số thiết lập an toàn cục bộ khi quản trị viên máy cho phép bằng cấu hình cục bộ; (c) hành động khắc phục từ xa theo danh sách trắng, ký, đi qua luồng phê duyệt của Access Hub | (a) cho mọi giai đoạn hiện tại (ADR 0003). (c) đảo ngược ADR 0005 của Agent và ADR 0010 của Collector, cần ADR mới, đánh giá bảo mật riêng và quyết định của chủ dự án | Trước mọi việc liên quan khắc phục |
| Q8 | Lỗ hổng chưa có bản sửa (no_fix) | Ẩn; hiện chung; hiện tách riêng | Hiện tách riêng, tính vào điểm rủi ro, không tính vào SLA cho đến khi có bản sửa | P3 |
| Q9 | Giấy phép dữ liệu và CIS | Phân phối lại dữ liệu nguồn trong gói Dedicated; dùng số mục CIS | Đã trả lời 2026-10-02: chủ dự án tự rà soát pháp lý. Việc của nhóm: ghi chính xác từng nguồn (nhà phát hành, URL, giấy phép như đã công bố hoặc "không tìm thấy" kèm ngày kiểm, ghi công, nhịp cập nhật, phần phân phối lại) ở 03 mục 4 và trong NOTICE của mỗi phiên bản DB (đã làm) | P0 (dữ liệu), P5 (CIS) |
| Q10 | Gói và hạn mức | Bảng đề xuất ở 08 mục 6 | Dùng bảng đề xuất; số máy quét giới hạn qua monitoring_agents. Khóa mới cho bí mật, dữ liệu cá nhân, kiểm kê mở rộng: Q39 | P3 |
| Q11 | Tần suất quét mặc định và nút "Quét ngay" | Chỉ theo lịch; cho phép yêu cầu quét sớm qua cấu hình | Mặc định 01 mục SNFR-20 đến 22. Cho phép "Quét ngay" dưới dạng gợi ý lịch trong SecurityConfig (scan_requested_at), tối đa 1 lần mỗi giờ mỗi máy, có hiệu lực ở lần timer kế tiếp: không phải lệnh thực thi, chỉ dời lịch của việc vốn sẽ chạy. Không áp cho lượt nội dung (Q38) | P1 |
| Q12 | Gửi tên tài khoản trong bằng chứng (AHS-AUTH-001, 002, 006) | Gửi tên; chỉ gửi số lượng | Gửi tên (cần để khắc phục), không bao giờ gửi băm. Có tùy chọn theo công ty "chỉ số lượng" nếu có yêu cầu riêng tư | P5 |
| Q13 | Ngưỡng k cho thống kê nền tảng | 3, 5, 10 | 5 | P7 |
| Q14 | Duyệt ngoại lệ | Luồng hai người đơn giản; dùng lại ApprovalWorkflow nhiều bước có SLA | Hai người đơn giản ở P7, tích hợp ApprovalWorkflow sau nếu khách hàng cần nhiều bước | P7 |
| Q15 | Trường hợp distro đặc biệt | Ubuntu Pro (ESM), RHEL EUS, AUS; dữ liệu Alma, Rocky suy ra từ RHSA khi chưa có errata riêng; Amazon Linux (ALAS); vá nóng kernel; distro dẫn xuất (Linux Mint) | Đã trả lời 2026-10-03: chủ dự án đồng ý khuyến nghị. P3: phát hiện ESM và gắn nhãn bản sửa chỉ có ở ESM; nhãn derived cho dữ liệu suy ra; vá nóng chỉ cảnh báo | P3 |
| Q16 | Đọc luật tường lửa cần CAP_NET_ADMIN | Cấp; chỉ kiểm tra trạng thái dịch vụ | Chỉ trạng thái (capability này cho phép sửa luật) | P5 |
| Q17 | Năng lực bổ sung cho kiểm tra: ánh xạ cổng sang tiến trình (cần quyền kiểu ptrace), kiểm tra TLS (cần mạng) | Cấp CAP_SYS_PTRACE cho scanner; không ánh xạ; TLS ở scanner với ngoại lệ mạng loopback; TLS ở Agent bằng kiểu check cố định mới tls_probe | Không ánh xạ cổng sang tiến trình mặc định (ptrace quá mạnh), có thể thêm công tắc cục bộ do quản trị viên máy bật. TLS ở Agent bằng tls_probe (thay đổi hợp đồng ở Collector) | P5 |
| Q18 | Windows: có làm không, khi nào, nguồn dữ liệu | Sau P7; song song P5; không làm | Sau P7 (sau M2) nếu có khách hàng yêu cầu; nguồn Microsoft (MSRC), phụ thuộc Agent Windows (AGT-7). Quét nội dung trên Windows cần ADR quyền riêng | P8 |
| Q19 | Container và hệ sinh thái ngôn ngữ | Quét image container đang chạy trên máy (cần socket Docker hoặc containerd, tương đương root); quét image trong registry từ trung tâm; tệp khóa phụ thuộc trong thư mục chọn | Hệ sinh thái ngôn ngữ: P6, ở vị trí hệ thống (/usr/lib/python3*, npm toàn cục, /opt, binary Go) và thư mục quản trị viên chọn. Container: registry từ trung tâm trước, chỉ cho lỗ hổng (không thêm quyền trên máy); container đang chạy sau với ADR riêng. Bí mật và dữ liệu cá nhân trong image chỉ quét trên máy, không kéo image về trung tâm (ADR 0011) | P6 (ngôn ngữ), P9 (container) |
| Q20 | Giữ lịch sử finding đã đóng, sự kiện | Theo gói; cố định | Theo security_history_days của gói, hạ gói có ân hạn 30 ngày như quy tắc retention số liệu | P3 |
| Q21 | Đóng gói | Gói riêng accesshub-scanner phụ thuộc Agent; gộp vào gói Agent (cài sẵn, tắt) | Đã trả lời 2026-10-02: gói riêng, dựng và phát hành như một artifact độc lập (.deb, .tar.gz, scripts/package.sh), không dùng kho gói chung, không phụ thuộc cứng gói Agent (Recommends). Tên binary accesshub-scanner được xác nhận | P1 |
| Q22 | Module path và nơi chứa mã | gitlab.com/thienpn2/access-hub-scanner như hai repo kia; repo này chứa cả scanner, secmatch, secdb-build | Đồng ý cả hai: một repo, ba lệnh trong cmd/. Repo hiện chỉ có git cục bộ, chưa có remote | P0 |
| Q23 | Khóa ký DB: ai giữ, ở đâu; cổng tải cho Dedicated | KMS của cloud; HSM; tệp ngoại tuyến | Đã trả lời 2026-10-02: tạm thời là tệp ngoại tuyến sinh cục bộ, lưu ngoài repo ở ~/.config/accesshub-scan/keys (0600), không commit; khóa công khai nhúng trong secmatch (internal/secdb/trustedkeys/) hoặc cấu hình bằng --pubkey. Mã ký qua giao diện Signer để thay bằng KMS sau. Khóa hiện tại secdb-2026-a. Cổng tải Dedicated vẫn ở P10 | P1 (khóa), P10 (cổng) |
| Q24 | API key NVD | Đăng ký theo tổ chức của nền tảng; không dùng key | Đã trả lời 2026-10-02: chủ dự án tạo key sau. secdb-build chạy được không có key: chế độ auto bỏ qua NVD và ghi log rõ, --nvd=slow chạy theo giới hạn công khai; key đọc từ SECDB_NVD_API_KEY hoặc --nvd-api-key-file, chỉ gửi trong header, không ghi cache hay gói DB | P1 |
| Q25 | Cài scanner không cần Agent | Không cho; cho (cần phương án b1) | Đã trả lời 2026-10-02: gói Scanner độc lập hoàn toàn với Agent: sản phẩm và gói cước riêng, các công cụ là gói riêng không bao giờ phụ thuộc nhau. Bộ gửi riêng của Scanner có danh tính, enroll và giấy phép riêng; máy cài cả hai sản phẩm có hai danh tính; mã dùng chung chỉ bằng cách chép (ADR 0001) | P1 |
| Q26 | SLA mặc định | Bảng 06 mục 2 (7, 30, 90, 180 ngày); theo khuyến nghị của tổ chức khách hàng | Dùng bảng đề xuất, cho tùy chỉnh theo gói (security_custom_sla) | P3 |
| Q27 | Quét không agent qua SSH cho thiết bị không cài được Agent | Không làm; làm sau với thông tin đăng nhập mã hóa ENC-2 | Không làm trước P10; nếu làm cần ADR mới (đi vào máy, giữ thông tin đăng nhập) | Sau P10 |
| Q28 | Người duyệt cổng thay đổi hàng loạt của DB (09 mục 3) | Trực bảo mật của nền tảng; tự động sau ngưỡng thời gian | Trực bảo mật của nền tảng, có hạn xử lý 4 giờ, quá hạn thì giữ DB cũ và cảnh báo | P1 |
| Q29 | Trường được phép trong finding nội dung ngoài danh sách cứng (mã detector, đường dẫn, dòng, preview, fingerprint, mức độ, mốc thời gian) | Chỉ danh sách cứng; thêm match_count, confidence, exposure (không suy ra được giá trị); thêm cả tên khóa cấu hình | Thêm match_count, confidence, exposure, không gửi tên khóa cấu hình hay đoạn ngữ cảnh (ADR 0011 mục 2) | P2 |
| Q30 | Preview của bí mật | Không preview; 4 ký tự cuối; tối đa 4 đầu và 2 cuối | Tối đa 4 đầu và 2 cuối, chỉ khi giá trị dài từ 16 ký tự; không preview cho khóa riêng, mật khẩu chung, lịch sử lệnh; dữ liệu cá nhân luôn không preview | P2 |
| Q31 | Fingerprint theo công ty để thấy cùng một bí mật trên nhiều máy | Chỉ khóa theo máy; thêm khóa theo công ty cho bí mật entropy cao | Thêm K_company chỉ cho bí mật entropy cao, lưu ENC-2, không dùng cho dữ liệu cá nhân (ADR 0011 mục 3) | P2 |
| Q32 | Phạm vi bí mật mặc định có gồm thư mục nhà không (cần ProtectHome=read-only) | Chỉ vị trí đích; vị trí đích cộng quét rộng /home, /root; không thư mục nhà | Vị trí đích luôn bật; quét rộng thư mục nhà bật mặc định cho bí mật (tệp văn bản tới 4 MiB). Quản trị viên máy tắt được qua deny_roots | P2 |
| Q33 | Gốc tùy chọn từ trung tâm (mở rộng phạm vi đọc) | Không cho; cho có giới hạn; cho tự do | Cho, có giới hạn: tối đa 16 đường dẫn, quyền security.content.manage, audit, danh sách cấm cứng, quản trị viên máy có quyền phủ quyết (allow_central_roots = false) | P2 |
| Q34 | Bộ máy phát hiện: tự viết hay dùng lại | (i) tự viết, quy tắc khởi đầu từ gitleaks (MIT); (ii) nhúng gitleaks; (iii) trufflehog (AGPL-3.0, xác thực sống); (iv) gọi binary bên ngoài | (i) (ADR 0010). (iii) loại vì AGPL với gói Dedicated và vì xác thực sống gửi bí mật ra ngoài | P0 |
| Q35 | Dữ liệu cá nhân bật mặc định hay không | Tắt, khách hàng bật và chọn gốc; bật với hồ sơ web, home | Tắt mặc định, bật theo công ty, chọn hồ sơ và gốc; chờ ý kiến pháp chế (Q42) | P4 |
| Q36 | Loại dữ liệu cá nhân của phiên bản đầu | Như 14 mục 5.3 | CCCD, CMND, điện thoại, email, thẻ, hộ chiếu ở P4; mã số thuế, BHXH, số tài khoản, ngày sinh sau P4 khi có nhu cầu. Không nhận dạng tên người | P4 |
| Q37 | Định dạng tệp | Văn bản và dữ liệu cấu trúc; thêm OOXML; thêm tệp nén, PDF | Văn bản, CSV, JSON, YAML, dump SQL ở P2, P4; OOXML ở P4; tệp nén, PDF, ảnh không làm (giới hạn đã biết, ghi trong tài liệu) | P4 |
| Q38 | Khung giờ yên tĩnh và "Quét ngay" cho lượt nội dung | 01:00 đến 05:00 giờ máy; theo múi giờ công ty; cho "Quét ngay" từ trung tâm | 01:00 đến 05:00 giờ máy, công ty chỉnh được, quản trị viên máy chỉnh cục bộ được; không cho "Quét ngay" lượt nội dung từ trung tâm, chỉ CLI trên máy | P2 |
| Q39 | Gói và hạn mức cho phạm vi mới | Đề xuất ở 08 mục 6 | Bí mật từ Pro trở lên (Free chỉ thấy số đếm), dữ liệu cá nhân từ Expert và Team trở lên, kiểm kê dịch vụ và phần mềm mọi gói | P2 (bí mật), P4 (dữ liệu cá nhân) |
| Q40 | Log (/var/log) trong phạm vi | Loại mặc định; quét phần đuôi; quét đầy đủ | Loại mặc định, hồ sơ logs để công ty bật khi cần (tốn IO, nhiều dương tính giả) | P2 |
| Q41 | Audit khi xem finding bí mật | Không; audit khi mở chi tiết; audit mọi lần xem danh sách | Audit khi mở chi tiết và khi xuất | P2 |
| Q42 | Rà soát pháp lý dữ liệu cá nhân | Trước P4; sau khi phát hành | Trước khi bật P4 cho khách hàng: vai trò của nền tảng khi phần mềm xử lý dữ liệu cá nhân trên máy khách hàng, việc lưu đường dẫn và số đếm ở trung tâm, điều khoản hợp đồng | P4 |
| Q43 | Tên sản phẩm và định danh kỹ thuật | Đổi tên gói, binary, dịch vụ theo "Access Hub Scanner"; giữ định danh kỹ thuật hiện có | Tên sản phẩm "Access Hub Scanner", gọi tắt "Scanner" (đổi ngày 2026-10-03), trên giao diện và tài liệu; giữ accesshub-scanner, accesshub-secmatch, secdb-build, mã AHS-* (đã dùng trong hợp đồng và ADR) | P0 |
| Q44 | Trạng thái dịch vụ qua D-Bus | Gọi phương thức chỉ đọc của systemd qua D-Bus hệ thống (AF_UNIX); chỉ đọc tệp unit và /run/systemd | D-Bus chỉ đọc nếu S10 cho thấy chạy được trong hộp cát và không cần quyền thêm; nếu không, chỉ tệp | P6 |
| Q45 | Dạng API giữa Scanner và Access Hub | Như 07 mục 3.0; khác | Đã trả lời 2026-10-03: duyệt nguyên văn 07 mục 3.0 (enroll, registry scan-hosts, xoay khóa, settings); giao HUB-SEC-21 | P1 |
| Q46 | Giới hạn tốc độ và khử trùng của ingest theo từng bản | Theo từng bản trong bộ nhớ; kho dùng chung (Redis) | Đã trả lời 2026-10-03: chấp nhận theo từng bản ở giai đoạn này. Hạn chế: với N bản sau load balancer, giới hạn hiệu lực tới N lần, khử trùng chỉ trong một bản (matcher vẫn bỏ báo cáo trùng theo scanned_at_ms), mất khi khởi động lại. Chuyển sang kho dùng chung khi chạy quá 2 bản hoặc khi phép đo B5 cho thấy cần (10 mục 2, 15 B5) | P1 |
| Q47 | Máy đo riêng cho phép đo quy mô lớn | Đo trên máy production (cấm sau 2026-10-02); máy thử riêng | Đã trả lời 2026-10-03: chủ dự án đồng ý cấp máy riêng; danh sách phép đo và cấu hình máy ở 15-benchmarks.md | P1 (S5, SNFR-40, SNFR-43) |
2b. Quyết định của chủ dự án ngày 2026-10-02
| Quyết định | Ảnh hưởng |
|---|---|
| Khóa ký DB là tệp ngoại tuyến, thiết kế để thay bằng KMS | Q23 đã trả lời; ADR 0005 cần sửa điểm 2 |
API key NVD tạo sau, secdb-build phải chạy không có key | Q24 đã trả lời |
| Chưa có kho gói: scanner dựng và phát hành như artifact riêng | Q21 đã trả lời; phụ thuộc "kho gói (Q2 của Collector)" của P1 bỏ |
| Thí điểm trên máy thử duy nhất thay cho 20 máy; 20 máy giữ làm cổng sau | Tiêu chí ra P1 sửa ở 12. Máy thử chạy Access Hub production: mọi lần quét chỉ đọc, nice, ionice idle, giới hạn CPU, IO; không chạm /var/www/access-hub, CSDL, .env, ~/.ssh, bí mật trong ~/.config, /home/ubuntu/backups; không cài gì toàn hệ thống, không sudo |
Tên binary accesshub-scanner được xác nhận | Q43 giữ nguyên |
| Tạm dừng Access Hub Scanner đến khi nâng cấp đĩa (sau hai sự cố đầy đĩa) | Xem 12 mục Trạng thái tạm dừng |
| Q1, Q2, Q3, Q6 duyệt theo khuyến nghị | ADR 0001 (sau sửa theo Q25) và ADR 0002 chấp nhận |
| Q25: Scanner độc lập hoàn toàn với Agent | ADR 0001 viết lại và chấp nhận: bộ gửi riêng SCN-4, vai trò ingest SMT-6, HUB-SEC-21; bỏ AGT-SEC-*, COL-SEC-*; gói không còn Recommends: accesshub-agent; báo cáo chuyển sang gói proto accesshub.scan.v1 |
| Q5 duyệt có sửa: nguồn cắm được, đối chiếu nhiều nguồn | ADR 0007 chấp nhận có sửa; ADR 0012 (nguồn nhanh, delta mỗi giờ) đề xuất; SDB-2, SDB-3 ở 12 |
| Q15 đồng ý khuyến nghị (2026-10-03) | ADR 0004 chấp nhận |
| ADR 0012 duyệt (2026-10-03), nhịp có thể chỉnh sau | ADR 0012 chấp nhận |
| Q9: chủ dự án tự rà soát pháp lý | 03 mục 4 và NOTICE ghi chính xác từng nguồn |
| Bản phát hành hết hỗ trợ (Debian 11): "lỗ hổng vẫn là lỗ hổng" | Giữ mọi finding (dữ liệu từ Freexian ELTS tracker), đánh dấu no_distro_fix khi distro sẽ không sửa, cộng một finding release_eol khuyến nghị nâng cấp kèm ngày hết hỗ trợ (04 mục 4.1, 08 mục 11.3) |
Q45: dạng API Scanner và Access Hub ở 07 mục 3.0 duyệt nguyên văn (2026-10-03) | Giao HUB-SEC-21 theo đúng dạng JSON đó |
| Q46: giới hạn tốc độ và khử trùng theo từng bản ingest được chấp nhận tạm (2026-10-03) | Ghi hạn chế ở 07 mục 3.0, 10 mục 2; chuyển sang kho dùng chung khi mở rộng |
| Q47: có máy đo riêng (2026-10-03) | 15-benchmarks.md: mọi phép đo, cấu hình máy, lệnh, ngưỡng |
Rủi ro mới: R25 thử nghiệm trên máy dùng chung với production làm cạn đĩa hoặc bộ nhớ (đã xảy ra hai lần ngày 2026-10-02). Giảm thiểu: đọc nguồn lớn theo luồng, giới hạn GOMEMLIMIT, kiểm tra dung lượng trống trong vòng ghi, đo quy mô lớn chỉ trên máy riêng.
3. Câu hỏi chủ dự án cần trả lời trước khi viết mã
Q1, Q2, Q3, Q4, Q5, Q6, Q9 (phần dữ liệu), Q22, Q34, Q43. Câu hỏi chặn P1 cần thêm: Q11, Q21, Q23, Q24, Q25, Q28, cộng Q2 và Q3 của repo Collector (kho gói, khóa ký gói) nếu muốn phát hành cho khách hàng. Câu hỏi chặn P2 (mốc M1): Q29, Q30, Q31, Q32, Q33, Q38, Q39 (phần bí mật), Q40, Q41. Câu hỏi chặn P4: Q35, Q36, Q37, Q42.
4. Spike
Chi tiết ở 12 mục P0: S1 (rpmdb Go thuần), S2 (nguồn dữ liệu, kích thước, độ phủ, giấy phép), S3 (chuẩn đối chiếu Trivy, Grype, OpenSCAP), S4 (quyền và hộp cát theo distro), S5 (hiệu năng trên máy và so khớp lại 10.000 máy), S6 (thông lượng bộ máy phát hiện, chỉ mục cục bộ), S7 (quy tắc bí mật, giấy phép, chuẩn đối chiếu gitleaks và trufflehog), S8 (bộ xác thực dữ liệu cá nhân Việt Nam), S9 (ảnh hưởng máy sản xuất), S10 (nguồn kiểm kê dịch vụ và phần mềm).
5. Nợ thiết kế đã ghi nhận
- Chưa thiết kế chi tiết lược đồ kho inventory của secmatch (chờ Q4) và định dạng tệp DB (chờ S2).
- Chưa có thiết kế giao diện chi tiết (wireframe) cho các trang
08mục 5. - Ghi đè cấu hình quét theo tag hoặc theo máy (hiện chỉ theo công ty) để sau P5.
- Chưa có cơ chế báo dương tính giả ngược về nhà phát hành distro ngoài thống kê ẩn danh.
- Chưa thiết kế định dạng chỉ mục cục bộ (chờ S6) và lược đồ lưu phần mềm, dịch vụ ở secmatch (chờ P6).
- Chưa có wireframe cho bản đồ dữ liệu cá nhân và trang finding bí mật.
- Document root lấy từ cấu hình nginx, Apache để tính phơi nhiễm
web_rootchính xác hơn: để sau P5. - Theo dõi thay đổi thời gian thực (
fanotify) thay cho quét theo lịch: để sau, cần xem lại ADR 0001.