← Về danh sách
Bảo mật & Quyền riêng tư
#VEX#VulnerabilityExploitabilityExchange#SBOM#SCA#소프트웨어공급망#취약점관리#OpenVEX#CSAF
Cập nhật lần cuối · 2026-09-26

Phân tích tác động lỗ hổng SBOM dựa trên VEX (Vulnerability Exploitability eXchange) và ứng phó chuỗi cung ứng

1. Tổng quan

A. Định nghĩa

VEX (Vulnerability Exploitability eXchange) là định dạng tư vấn bảo mật (advisory) trong đó nhà cung cấp tuyên bố mối quan hệ giữa một sản phẩm phần mềm cụ thể và một lỗ hổng bằng giá trị trạng thái máy đọc được kèm căn cứ, qua đó truyền đạt lỗ hổng đó có ảnh hưởng đến sản phẩm hay không và cần hành động gì.

Phần mềm hiện đại thường có tỷ trọng thành phần bên ngoài — hệ điều hành, thư viện mã nguồn mở, container image, plugin build, runtime mô hình — lớn hơn so với mã tự viết. Khi một CVE mới được công bố, công cụ SCA (Software Composition Analysis) đối chiếu SBOM với cơ sở dữ liệu lỗ hổng để tạo ra các cảnh báo tiềm năng. Tuy nhiên, việc một thành phần có tồn tại khác với việc đường mã dễ bị tổn thương thực sự được thực thi trong sản phẩm.

Ví dụ, dù sản phẩm có chứa thư viện chuyển đổi ảnh, bộ phân tích (parser) dễ bị tổn thương có thể đã bị vô hiệu hóa, hoặc chỉ được dùng trong chức năng phía máy chủ mà kẻ tấn công không thể tiếp cận. Ngược lại, nếu do cấu hình runtime mà một plugin bình thường không lộ diện lại xử lý đầu vào từ bên ngoài, thì chỉ dựa vào số phiên bản là không đủ để kết luận. VEX mở rộng khoảng trống này từ câu hỏi “thành phần có tồn tại không” sang “trong ngữ cảnh sản phẩm này, lỗ hổng đang ở trạng thái nào”.

CISA mô tả VEX là một tư vấn bảo mật cho biết sản phẩm có bị ảnh hưởng bởi lỗ hổng đã biết hay không, và cho rằng khi dùng cùng SBOM có thể đánh giá tác động thực tế của lỗ hổng nhanh hơn (CISA SBOM). Do đó, VEX không phải danh sách thay thế SBOM mà là tầng phán định tác động kết nối SBOM, thông tin lỗ hổng và kết quả phân tích sản phẩm.

B. Bối cảnh ra đời và sự cần thiết

Thứ nhất, quy mô cảnh báo lỗ hổng đã vượt quá năng lực rà soát thủ công. Khi một sản phẩm có hàng trăm phụ thuộc bắc cầu, một lỗ hổng công khai xuất hiện dưới dạng cảnh báo lặp lại trên nhiều phiên bản và bản phân phối. Nếu xử lý mọi cảnh báo với cùng mức khẩn cấp, đội bảo mật sẽ tốn thời gian cho các cảnh báo không thể khai thác nhiều hơn cho lỗ hổng thực sự lộ ra Internet.

Thứ hai, chuỗi cung ứng phần mềm vượt ra ngoài ranh giới của một tổ chức. Dự án mã nguồn mở dù biết lỗ hổng của thư viện cũng khó biết đường gọi thực tế của sản phẩm cuối có chứa thư viện đó. Nhà cung cấp sản phẩm có thể phân tích cấu trúc build, cấu hình và lời gọi của mình, nên phải giải thích tác động của lỗ hổng trong thành phần cấp dưới lên thành phẩm theo đơn vị sản phẩm.

Thứ ba, khách hàng cần biết “hiện nay phải vận hành sản phẩm như thế nào” hơn là một danh sách “có CVE”. Nếu bị ảnh hưởng thì cần bản vá hoặc biện pháp giảm thiểu; nếu không bị ảnh hưởng thì cần căn cứ phán định và điều kiện rà soát lại. VEX truyền đạt quyết định này đồng thời dưới dạng giải thích cho con người đọc và giá trị trạng thái cho công cụ xử lý.

C. Mục tiêu và phi mục tiêu

Mục tiêu của VEX là biểu diễn trạng thái tác động lên sản phẩm theo từng lỗ hổng bằng định danh và căn cứ đáng tin cậy, để nhà cung cấp, người vận hành và kiểm toán viên cùng tái sử dụng một sự thật. Để đạt mục tiêu này, phạm vi phiên bản sản phẩm, định danh lỗ hổng, thời điểm thay đổi trạng thái, chủ thể soạn thảo và căn cứ điều tra phải truy vết được lẫn nhau.

Ngược lại, VEX không phải là “giấy miễn tội” để che giấu sự tồn tại của lỗ hổng. Muốn ghi “NOT AFFECTED” phải có căn cứ như cấu hình sản phẩm, khả năng gọi tới, biện pháp kiểm soát giảm thiểu, và khi căn cứ thay đổi thì phải đánh giá lại trạng thái. Ngoài ra, VEX không tự động thay thế hệ thống quản lý bản vá hay phê duyệt chấp nhận rủi ro.

2. Khái niệm cốt lõi và cấu trúc tổng thể

A. Quan hệ giữa SBOM, thông tin lỗ hổng và VEX

SBOM mô tả các thành phần cấu thành sản phẩm và quan hệ phụ thuộc. Dữ liệu lỗ hổng mô tả sự thật rằng một thành phần hay đoạn mã cụ thể có lỗi đã biết, mức độ nghiêm trọng, các phiên bản bị ảnh hưởng và phiên bản sửa lỗi. VEX áp hai thông tin đó vào ngữ cảnh build, cấu hình và thực thi thực tế của sản phẩm, rồi tuyên bố trạng thái tác động ở cấp sản phẩm.

Phải tách biệt ba tầng này thì trách nhiệm mới rõ ràng. Thiếu SBOM thì không biết phải đánh giá cái gì; thông tin lỗ hổng lỗi thời thì tín hiệu rủi ro đến muộn. Không có phân tích VEX thì mọi cảnh báo tiềm năng trông như nhau, và nếu VEX không có căn cứ thì bên sử dụng không thể kiểm chứng tuyên bố của nhà cung cấp.

Tầng Câu hỏi cốt lõi Sản phẩm đầu ra tiêu biểu Trách nhiệm chính
Minh bạch cấu thành Sản phẩm chứa những gì? SBOM, quan hệ phụ thuộc, hash Nhà cung cấp build/sản phẩm
Tri thức lỗ hổng Lỗi nào tồn tại ở phiên bản nào? CVE, CWE, CVSS, phiên bản sửa lỗi Tổ chức về lỗ hổng, nhà cung cấp
Phán định tác động Sản phẩm này có thực sự bị ảnh hưởng không? VEX statement, căn cứ trạng thái Nhà cung cấp sản phẩm, người vận hành
Thực thi ứng phó Hành động gì, khi nào? Ticket, bản vá, giảm thiểu, phê duyệt ngoại lệ Vận hành dịch vụ, chủ sở hữu rủi ro

Trong quan hệ này, không được xem VEX đơn thuần là “bộ lọc danh sách lỗ hổng”. Bộ lọc có thể xóa cảnh báo, còn VEX lưu lại lý do giảm cảnh báo và phạm vi sản phẩm được áp dụng. Vì vậy, VEX vừa là bằng chứng của quản lý lỗ hổng vừa đóng vai trò hợp đồng giao tiếp trong chuỗi cung ứng.

B. Kiến trúc tham chiếu VEX

flowchart LR
    B[Mã nguồn·Build·Triển khai] --> S[Tạo SBOM<br/>SPDX·CycloneDX]
    S --> I[Chuẩn hóa định danh thành phần·sản phẩm]
    V[Nguồn cấp lỗ hổng<br/>CVE·tư vấn nhà cung cấp] --> M[Ánh xạ lỗ hổng]
    I --> M
    M --> A[Phân tích ngữ cảnh sản phẩm<br/>đường gọi·cấu hình·phơi nhiễm·giảm thiểu]
    A --> X[Soạn VEX<br/>trạng thái·căn cứ·phạm vi·thời điểm]
    X --> P[Ký·công bố·gửi khách hàng]
    P --> C[SCA·quản lý rủi ro phía bên sử dụng]
    C --> T[Vá·giảm thiểu·ngoại lệ·đánh giá lại]
    T -. Sự kiện thay đổi .-> B
    T -. Cập nhật trạng thái .-> X

Trung tâm của cấu trúc trên là phân tích ngữ cảnh sản phẩm. Phép nối đơn thuần giữa SBOM và dữ liệu lỗ hổng chỉ tạo ra “ứng viên khả dĩ”, còn trạng thái VEX thực tế phải được quyết định sau khi xác nhận đường mã và điều kiện triển khai của sản phẩm. Cùng một phiên bản thư viện nhưng tác động có thể khác nhau tùy feature flag, tùy chọn biên dịch, bản vá hệ điều hành và mức phơi nhiễm mạng.

C. Statement biểu diễn quan hệ giữa sản phẩm và lỗ hổng

Đơn vị cơ bản của VEX là sự kết hợp giữa một sản phẩm cụ thể, một lỗ hổng cụ thể, trạng thái, cùng chủ thể và thời điểm đưa ra phán định đó. Sản phẩm không chỉ ghi tên mà phải dùng định danh giúp bên sử dụng tìm đúng đối tượng như phiên bản, package URL (PURL), hash, định danh nhà cung cấp. Lỗ hổng cũng không chỉ phụ thuộc vào CVE mà có thể dùng kèm ID tư vấn của nhà cung cấp hoặc các định danh chuẩn khác.

Một tài liệu có thể chứa nhiều statement, nhưng phạm vi áp dụng của mỗi statement không được mơ hồ. So với câu có phạm vi rộng như “toàn bộ sản phẩm an toàn”, việc chỉ rõ giao điểm sản phẩm–phiên bản–lỗ hổng như “trong cấu hình cụ thể của sản phẩm 4.2.1, CVE-XXXX là NOT AFFECTED” có lợi hơn cho kiểm chứng và tự động hóa.

Trong statement, tính thời gian quan trọng không kém trạng thái. Khi sản phẩm được build lại hoặc cấu hình thay đổi, phán định NOT AFFECTED trước đó có thể không còn đúng. Vì vậy cần quản lý ngày phát hành, ngày sửa đổi tài liệu, phạm vi hiệu lực của trạng thái, điều kiện rà soát tiếp theo, và giúp bên sử dụng xác định đâu là tài liệu mới nhất cho cùng một sản phẩm.

3. Ý nghĩa trạng thái và mô hình dữ liệu

A. Bốn trạng thái cốt lõi

Các trạng thái tiêu biểu do CISA tổng hợp là NOT AFFECTED, AFFECTED, FIXED, UNDER INVESTIGATION (CISA VEX Use Cases). Thay vì chỉ lưu nguyên văn tên trạng thái, tổ chức cần định nghĩa luôn công cụ của mình sẽ nối trạng thái đó với hành động nào.

Trạng thái Ý nghĩa Hành động mặc định Cách dùng sai
NOT AFFECTED Trong ngữ cảnh sản phẩm, không bị lỗ hổng ảnh hưởng Đóng cảnh báo nhưng lưu giữ căn cứ, điều kiện đánh giá lại Xóa cảnh báo mà không có căn cứ
AFFECTED Lỗ hổng ảnh hưởng đến sản phẩm và cần hành động Vá, nâng cấp, giảm thiểu, chặn phơi nhiễm Chỉ nhìn CVSS rồi kết luận tác động lên sản phẩm
FIXED Bản sửa đã được áp dụng vào phiên bản hoặc bản build tương ứng Triển khai phiên bản đã sửa và kết thúc phiên bản cũ Chỉ sửa mã nguồn mà không kiểm chứng sản phẩm phân phối
UNDER INVESTIGATION Chưa xác định được có bị ảnh hưởng hay không Đặt hạn điều tra, giảm thiểu tạm thời, ticket theo dõi Dùng trạng thái đang điều tra như một cách đóng dài hạn

NOT AFFECTED khác với “lỗ hổng không tồn tại”. Dù thành phần dễ bị tổn thương có trong SBOM, trạng thái này có thể có nghĩa là sản phẩm không dùng hàm hay đường mã dễ bị tổn thương đó. Ngược lại, AFFECTED không nhất thiết có nghĩa là đã xác nhận thực thi mã từ xa, mà là phán định rằng trong điều kiện sản phẩm có khả năng bị ảnh hưởng và cần ứng phó.

FIXED cũng không phải bảo đảm rằng sản phẩm an toàn vĩnh viễn. Phiên bản sửa lỗi có thể chứa lỗ hổng mới, và khách hàng có thể tiếp tục triển khai image hay cache cũ dễ bị tổn thương. Do đó, trạng thái đã sửa phải được gắn với định danh bản phát hành sản phẩm và kết quả kiểm chứng triển khai.

UNDER INVESTIGATION không phải trạng thái che giấu rủi ro mà là trạng thái nêu rõ sự bất định. Khi gặp trạng thái này, bên sử dụng phải áp dụng giảm thiểu tạm thời hoặc cô lập dựa trên mức nghiêm trọng, phơi nhiễm bên ngoài và dấu hiệu khai thác. Nhà cung cấp phải đưa ra ngày mục tiêu hoàn tất điều tra và điều kiện phát hành tài liệu tiếp theo.

B. Lý giải cho NOT AFFECTED

Chất lượng của NOT AFFECTED phụ thuộc vào lý do biện minh hơn là tên trạng thái. Nếu mã dễ bị tổn thương không được đưa vào sản phẩm, chỉ build bằng phiên bản không bị ảnh hưởng, chức năng dễ bị tổn thương đã bị loại khỏi biên dịch/cấu hình, hay cấu trúc khiến không thể tiếp cận mã đó, thì mỗi trường hợp cần biện pháp kiểm soát và điều kiện rà soát lại khác nhau.

Các góc độ biện minh tiêu biểu như sau.

  1. Không có thành phần: Sản phẩm phân phối thực tế trong SBOM của sản phẩm không chứa thành phần dễ bị tổn thương.
  2. Không dùng chức năng dễ bị tổn thương: Thành phần có tồn tại nhưng hàm, mô-đun, giao thức dễ bị tổn thương không được dùng trong build hay runtime.
  3. Không thể tiếp cận: Quyền, mạng, cấu trúc lời gọi bị giới hạn để kẻ tấn công không thể đưa đầu vào tới đường mã dễ bị tổn thương.
  4. Đã áp dụng giảm thiểu: Dù không phải bản vá, các biện pháp như cấu hình, sandbox, kiểm tra đầu vào, cô lập đã loại bỏ tác động của lỗ hổng hoặc hạ xuống mức chấp nhận được.
  5. Không khớp phạm vi tác động: Hệ điều hành, kiến trúc, tùy chọn build mà lỗ hổng yêu cầu khác với môi trường sản phẩm.

Không nên dừng lời biện minh ở mức “lập trình viên đã xác nhận”, mà phải tham chiếu bằng chứng như phiên bản công cụ phân tích, kết quả kiểm thử, đường mã, tệp cấu hình, phiên bản sản phẩm. Ngoài ra, với NOT AFFECTED dựa vào giảm thiểu, cần liên kết sự kiện để tự động rà soát lại khi biện pháp giảm thiểu bị gỡ bỏ hoặc cấu hình thay đổi.

C. Các phần tử dữ liệu tối thiểu

Tài liệu yêu cầu tối thiểu năm 2023 của CISA định nghĩa siêu dữ liệu tài liệu, thông tin sản phẩm, thông tin lỗ hổng và trạng thái sản phẩm một cách độc lập với định dạng và cách triển khai VEX (CISA Minimum Requirements for VEX). Tổ chức có thể bổ sung các trường kiểm soát nội bộ, chữ ký, căn cứ vào các phần tử tối thiểu này, nhưng vì khả năng tương tác không được tự ý thay đổi ý nghĩa cốt lõi.

Siêu dữ liệu tài liệu gồm định danh định dạng, định danh tài liệu, tác giả và vai trò, dấu thời gian, phiên bản tài liệu. Thông tin sản phẩm không chỉ gồm nhà cung cấp, tên sản phẩm, phiên bản mà nếu có thể còn đưa PURL, CPE, hash, định danh dòng sản phẩm và thành phần con để giảm sự mơ hồ về đối tượng.

Thông tin lỗ hổng gồm CVE hoặc ID lỗ hổng của nhà cung cấp, mô tả lỗ hổng và tài liệu tham khảo liên quan. Trạng thái sản phẩm gồm một trong bốn trạng thái và phạm vi sản phẩm áp dụng trạng thái, đồng thời phải có căn cứ quyết định trạng thái và hành động khuyến nghị để bên sử dụng có thể thực hiện cả tự động hóa lẫn rà soát của con người.

Vùng dữ liệu Câu hỏi bắt buộc phải trả lời Thông tin bổ sung cho vận hành
Siêu dữ liệu tài liệu Ai tạo tài liệu nào, khi nào? Chữ ký, phiên bản công cụ, quan hệ hủy bỏ/thay thế tài liệu
Sản phẩm Áp dụng cho sản phẩm, phiên bản, bản build nào? PURL, hash, kênh phân phối, hồ sơ môi trường
Lỗ hổng Đã đánh giá lỗi nào? CVE, ID nhà cung cấp, CVSS, thông tin khai thác
Trạng thái Có bị ảnh hưởng không, đã sửa chưa? Biện minh, giảm thiểu, SLA, điều kiện rà soát lại
Khả năng truy vết Phán định dựa trên căn cứ nào? Kiểm thử, phân tích mã, ticket phê duyệt, nhật ký kiểm toán

4. Định dạng, tiêu chuẩn và khả năng tương tác

A. Định dạng là cách biểu diễn, ý nghĩa phải tách riêng

VEX không chỉ một định dạng tệp duy nhất. Cùng một trạng thái tác động lên sản phẩm có thể được biểu diễn bằng hồ sơ CSAF VEX, OpenVEX, CycloneDX, SPDX Security Profile, v.v. Do đó, trước khi phụ thuộc vào lược đồ JSON của một công cụ cụ thể, tổ chức cần định nghĩa nội bộ mô hình ngữ nghĩa gồm sản phẩm, lỗ hổng, trạng thái, căn cứ.

OpenVEX là một cách triển khai gọn nhẹ, có thể nhúng, được thiết kế để đáp ứng yêu cầu tối thiểu của VEX, và xem statement là sự kết hợp của sản phẩm, lỗ hổng, trạng thái (OpenVEX specification). Tuy nhiên, như kho mã chính thức nêu rõ, cần xác nhận mức độ trưởng thành của đặc tả và phạm vi hỗ trợ của công cụ trước khi chọn làm tiêu chuẩn vận hành.

CycloneDX cung cấp chức năng VEX trong mô hình mở rộng được, biểu diễn đồng thời SBOM và thông tin chuỗi cung ứng, tập trung vào việc truyền đạt lỗ hổng có thực sự khai thác được trong ngữ cảnh sản phẩm cụ thể hay không (CycloneDX VEX). Dòng SPDX 3 có thể biểu diễn quan hệ tác động và sửa lỗi giữa lỗ hổng và sản phẩm trong Security Profile, nên các tổ chức muốn tích hợp tài sản SPDX hiện có với VEX có thể cân nhắc (SPDX Security).

CSAF cung cấp cấu trúc tài liệu và hồ sơ chuẩn hóa để trao đổi tư vấn bảo mật, phù hợp khi nhà cung cấp phân phối thông báo lỗ hổng và trạng thái sản phẩm giữa các doanh nghiệp. Dù chọn định dạng nào, điều cốt lõi là công cụ của nhà cung cấp và bên sử dụng dùng cùng định danh sản phẩm và ý nghĩa trạng thái, và không làm mất thông tin biện minh hay thời gian trong quá trình chuyển đổi.

B. Pipeline tạo và tiêu thụ VEX

sequenceDiagram
    participant Build as Pipeline build
    participant SCA as SCA·phân tích lỗ hổng
    participant Owner as Người chịu trách nhiệm sản phẩm
    participant VEX as Kho lưu trữ VEX
    participant Ops as Vận hành·khách hàng
    Build->>Build: Cố định sản phẩm phân phối·tạo SBOM
    SCA->>Build: Chuyển ứng viên CVE và thành phần bị ảnh hưởng
    Owner->>SCA: Rà soát đường gọi·cấu hình·điều kiện phơi nhiễm
    SCA-->>Owner: Đề xuất căn cứ và trạng thái khuyến nghị
    Owner->>VEX: Phê duyệt trạng thái·phạm vi sản phẩm·biện minh·thời hạn
    VEX-->>Ops: Công bố·thông báo VEX đã ký
    Ops->>VEX: Đối chiếu phiên bản sản phẩm·môi trường vận hành
    Ops-->>Owner: Phản hồi kết quả vá·giảm thiểu·rà soát lại

Ở giai đoạn tạo, phải cố định đồng thời hash của sản phẩm build và SBOM. Nếu soạn VEX chỉ dựa vào khai báo phụ thuộc trong kho mã nguồn, có thể bỏ sót kết quả phân giải của trình quản lý gói, cờ build, lớp container, gói hệ điều hành. Ở giai đoạn tiêu thụ, trước tiên phải đối chiếu định danh sản phẩm mà VEX áp dụng với phiên bản đang triển khai, và không tự ý áp dụng tài liệu không khớp.

Chữ ký giúp xác nhận tài liệu được phát hành bởi một nhà cung cấp cụ thể và không bị giả mạo khi truyền. Tuy nhiên, chữ ký không bảo đảm tính chính xác của phán định trạng thái. Cùng với việc xác minh chữ ký, bên sử dụng phải đánh giá chính sách tin cậy đối với chủ thể phát hành, độ mới của tài liệu, tính đầy đủ của căn cứ và phạm vi phiên bản sản phẩm.

C. Xung đột và thứ tự ưu tiên

Đối với một sản phẩm, dự án mã nguồn mở, nhà cung cấp hệ điều hành và nhà cung cấp ứng dụng có thể phát hành các VEX khác nhau. Khi đó, ưu tiên vô điều kiện cho “NOT AFFECTED” có phạm vi rộng nhất là nguy hiểm. Nếu nhà cung cấp sản phẩm nắm được cả bản build và cấu hình cuối cùng thì ưu tiên tư vấn của sản phẩm cuối, nhưng vẫn phải lưu giữ căn cứ và lịch sử thay đổi trạng thái của nhà cung cấp cấp dưới.

Tổ chức phải quy định bằng chính sách về thứ tự ưu tiên tài liệu, điều kiện khớp định danh sản phẩm, cách xác định độ mới, và quy trình rà soát thủ công khi xảy ra xung đột. Ví dụ, có thể coi chữ ký của nhà cung cấp có hash sản phẩm khớp là độ tin cậy cao nhất, còn tuyên bố bên ngoài chỉ khớp chuỗi phiên bản được xem là thông tin ứng viên.

5. Quy trình vận hành và chiến lược triển khai

A. Từ phát hiện đến quyết định trạng thái

  1. Xác lập đường cơ sở tài sản: Nhận diện sản phẩm, phiên bản, image triển khai, hồ sơ cấu hình đang vận hành.
  2. Thu thập SBOM: Liên kết SBOM tạo lúc build với hash của sản phẩm phân phối, bao gồm cả phụ thuộc bắc cầu và gói hệ điều hành.
  3. Tạo ứng viên lỗ hổng: Thu thập CVE, tư vấn nhà cung cấp, dấu hiệu khai thác, kết quả kiểm thử nội bộ làm ứng viên.
  4. Ánh xạ phạm vi tác động: Xác nhận thành phần dễ bị tổn thương có thực sự nằm trong sản phẩm hay không và phạm vi phiên bản.
  5. Phân tích ngữ cảnh sản phẩm: Rà soát lời gọi hàm dễ bị tổn thương, khả năng đầu vào tiếp cận, quyền, phơi nhiễm mạng, biện pháp giảm thiểu.
  6. Quyết định trạng thái và hành động: Chọn một trong bốn trạng thái và quyết định hạn vá, giảm thiểu, điều tra.
  7. Phê duyệt và phát hành: Người chịu trách nhiệm bảo mật sản phẩm rà soát căn cứ và phát hành VEX có thể ký.
  8. Thông báo bên sử dụng và đánh giá lại: Gửi tới khách hàng và hệ thống vận hành, đánh giá lại khi có bản build, cấu hình hay thông tin lỗ hổng mới.

Phải liên kết sản phẩm đầu ra của từng bước thì khi kiểm toán mới giải thích được “tại sao đóng lỗ hổng này”. Đặc biệt, nếu không cố định phiên bản triển khai của sản phẩm trước khi quyết định trạng thái, mã đã kiểm thử và mã khách hàng chạy có thể khác nhau. Từ góc nhìn Kỹ sư chuyên nghiệp (Professional Engineer), điều cốt lõi là thiết kế VEX như một luồng ra quyết định của DevSecOps chứ không phải công việc soạn thảo tài liệu.

B. Phân công giữa tự động hóa và rà soát của con người

Các vùng phù hợp để tự động hóa gồm tạo SBOM, chuẩn hóa PURL, đối chiếu ứng viên lỗ hổng, phân phối cùng một tài liệu, xác minh chữ ký, thông báo thay đổi trạng thái. Ngược lại, khả năng tiếp cận thực chất của đường gọi, tác động nghiệp vụ, kiểm soát bù đắp, chấp nhận rủi ro khó xác định chỉ bằng kết quả phân tích tĩnh nên cần con người rà soát.

Không nên lập tức quyết định NOT AFFECTED chỉ vì công cụ đánh dấu “mã không được sử dụng”, mà phải kiểm tra các đường vòng như plugin runtime, reflection, nạp động, mở rộng bằng script. Tự động hóa không nhằm loại bỏ người phán định mà phải giảm công việc lặp lại, giúp người phán định tập trung vào những phần cần căn cứ.

Trên nền tảng vận hành, hiển thị trạng thái VEX như bằng chứng của ticket lỗ hổng nhưng lưu kèm tài liệu gốc và kết quả xác minh chữ ký. Cũng có thể thiết kế chính sách: khi trạng thái chuyển sang FIXED thì tự động tạo ticket vá, và khi căn cứ của NOT AFFECTED hết hiệu lực thì đưa về UNDER INVESTIGATION.

C. Chỉ số và mức dịch vụ

Nếu chỉ đánh giá hiệu quả áp dụng VEX bằng số tài liệu phát hành, có thể chỉ tăng về hình thức. Việc quản lý các chỉ số sau cùng với rủi ro sản phẩm là phù hợp.

Chỉ số Ý nghĩa Lưu ý khi diễn giải
Thời gian từ cảnh báo đến quyết định trạng thái Tốc độ điều tra, phán định Mục tiêu không phải đóng mọi cảnh báo thật nhanh
Tỷ lệ trạng thái có kèm căn cứ Khả năng giải thích của tuyên bố Kiểm tra tính hợp lệ của liên kết bằng chứng hơn là sao chép mẫu
Tỷ lệ nhận diện thành công sản phẩm áp dụng Mức độ bên sử dụng tự động đối chiếu tài liệu Chỉ khớp theo tên phiên bản có thể gây dương tính giả
Tỷ lệ hoàn tất xử lý AFFECTED Mức giảm rủi ro thực tế Kiểm tra xem có chỉ giảm thiểu mà trì hoãn vá không
Tỷ lệ UNDER INVESTIGATION tồn đọng lâu Sự tích lũy bất định Phải gắn thời hạn, chủ sở hữu, kiểm soát tạm thời
Tỷ lệ bỏ sót cập nhật VEX Mức ứng phó với sự kiện thay đổi Đối chiếu với sự kiện phát hành, cấu hình, CVE mới

Mức dịch vụ được phân hóa theo mức nghiêm trọng của lỗ hổng và phơi nhiễm bên ngoài. Lỗ hổng vượt qua xác thực lộ ra Internet được đặt mục tiêu điều tra và giảm thiểu ngắn, còn các mục rủi ro thấp chỉ truy cập được từ tác vụ batch nội bộ thì lưu căn cứ phân tích nhưng có thể cho phép thời gian xử lý ở mức nhất định. Điều quan trọng là giá trị trạng thái phải dẫn tới thứ tự ưu tiên ứng phó và ticket thực tế.

6. So sánh và trường hợp áp dụng

A. So sánh SBOM, VEX, SCA, CSAF

SBOM tập trung vào minh bạch cấu thành, SCA vào đối chiếu tự động thành phần với lỗ hổng, VEX vào trạng thái tác động trong ngữ cảnh sản phẩm, còn CSAF vào cấu trúc trao đổi tư vấn bảo mật. Nếu bố trí chúng như quan hệ thay thế nhau, sự thiếu hụt của một tầng sẽ không được tầng khác bù đắp.

Phân loại SBOM SCA VEX CSAF
Mục đích chính Công khai thành phần và quan hệ Phát hiện, ưu tiên lỗ hổng ứng viên Truyền đạt trạng thái tác động sản phẩm và căn cứ Tiêu chuẩn trao đổi tài liệu tư vấn
Câu hỏi Chứa những gì? Khớp với lỗ hổng nào? Có thực sự ảnh hưởng đến sản phẩm không? Phân phối, diễn giải tư vấn thế nào?
Đầu ra chính Tài liệu SPDX, CycloneDX Cảnh báo, ticket, báo cáo Statement trạng thái Tài liệu, hồ sơ CSAF
Giới hạn Không kết luận được có bị ảnh hưởng không Thiếu khả năng tiếp cận mã và ngữ cảnh nghiệp vụ Cần SBOM và căn cứ chính xác Bản thân không thực hiện phân tích sản phẩm

Ví dụ, khi SCA phát hiện CVE của Log4j sẽ tạo cảnh báo, còn VEX giải thích sản phẩm có dùng chức năng JNDI tương ứng không hay có phải bản phân phối đã vá không. Ngược lại, khi VEX phát hành AFFECTED, thứ tự ưu tiên cảnh báo SCA và ticket vá phải được nối với hành động thực tế.

B. Trường hợp 1: Nhà cung cấp SaaS thương mại

Giả sử một nhà cung cấp SaaS thương mại build container image hàng tuần. Mỗi lần build lưu image digest và SBOM, khi có CVE mới thì SCA tìm các image và gói có thể bị ảnh hưởng. Đội bảo mật sản phẩm kiểm tra cấu hình vận hành, đường mạng, kiểm thử lời gọi để soạn VEX và đăng tài liệu mới nhất lên cổng thông tin khách hàng.

Khi đó, khách hàng phải đối chiếu VEX theo digest và định danh bản phát hành sản phẩm chứ không phải theo image tag. Nếu image tag được dùng lại, tài liệu “FIXED” có thể bị áp nhầm cho image cũ. Khi image mới được triển khai, nhà cung cấp phải kết thúc phạm vi áp dụng của VEX cũ và thông báo cho khách hàng đối tượng cần thay thế và hạn chót.

C. Trường hợp 2: Nền tảng mã nguồn mở nội bộ của tổ chức tài chính

Giả sử một tổ chức tài chính triển khai nền tảng Java dùng chung cho dịch vụ của nhiều công ty thành viên. Dù dùng cùng thư viện, mỗi dịch vụ có API công khai, đường mạng, mô-đun được kích hoạt khác nhau. Nếu đội bảo mật trung tâm áp đặt một VEX cho mọi dịch vụ, có thể bỏ sót phơi nhiễm thực tế của một dịch vụ cụ thể.

Do đó, mô hình phân tầng là phù hợp: nền tảng trung tâm cung cấp thông tin thành phần chung, bản vá và phân tích cơ bản, còn chủ sở hữu từng dịch vụ soạn thêm statement cho hồ sơ thực thi của mình. Biện minh “không thể tiếp cận” phải được tự động đánh giá lại khi đặc tả API theo dịch vụ hoặc cấu hình tường lửa, quyền thay đổi.

D. Trường hợp 3: Sản phẩm nhúng và thiết bị y tế

Với sản phẩm nhúng, phiên bản cài đặt tại hiện trường được duy trì lâu, và việc cập nhật có thể gắn với phê duyệt pháp quy hoặc thử nghiệm an toàn. Trong trường hợp này, dù phát hiện lỗ hổng AFFECTED cũng khó thay ngay toàn bộ firmware. VEX trở thành phương tiện phân biệt mẫu và phiên bản firmware bị ảnh hưởng, đồng thời truyền đạt các biện pháp giảm thiểu như vô hiệu hóa, cô lập mạng, hướng dẫn người dùng cho đến khi có bản vá.

Ở thiết bị y tế và thiết bị công nghiệp, phán định NOT AFFECTED cũng có thể tương tác với chức năng an toàn, nên cần có sự phê duyệt của người phụ trách an toàn, chất lượng, pháp quy sản phẩm thay vì chỉ đội bảo mật phán định. Tài liệu trạng thái phải được duy trì suốt vòng đời sản phẩm, và không được xóa thông tin bảo mật khách hàng cần chỉ vì mẫu đã ngừng sản xuất.

7. Chuyên sâu: Xu hướng mới nhất và liên hệ đề thi

A. Từ trọng tâm tiêu thụ SBOM đến quản lý rủi ro dựa trên bằng chứng

Tài liệu SBOM của CISA giải thích rằng SBOM cung cấp danh sách thành phần và VEX bổ sung ngữ cảnh tác động lỗ hổng cho danh sách đó (CISA SBOM FAQ). Xu hướng thực tiễn gần đây không dừng ở việc nộp SBOM, mà chuyển sang hướng nhà cung cấp và bên sử dụng tự động trao đổi cùng định danh, trạng thái, căn cứ.

Hướng dẫn chuỗi cung ứng phần mềm của NIST cũng đưa ra định hướng rằng nhà cung cấp phải có khả năng cung cấp thông tin tác động lỗ hổng dưới dạng tư vấn tự động hóa, máy đọc được (NIST Software Security in Supply Chains). Vì vậy, Kỹ sư chuyên nghiệp có thể trình bày VEX không phải như một chức năng của một công cụ, mà là yếu tố quản trị nối kết yêu cầu mua sắm, chính sách bảo mật sản phẩm, ứng phó sự cố và hợp đồng nhà cung cấp.

B. Cấu trúc bài làm dự kiến và chủ đề liên quan

Trong bài thi, nếu chỉ viết đối chiếu “SBOM là danh sách, VEX là trạng thái tác động” thì nông. Bài làm tốt trình bày tuần tự giới hạn của minh bạch cấu thành, phân tích ngữ cảnh sản phẩm, biện minh trạng thái, khả năng tương tác định dạng, chữ ký và kiểm toán, ranh giới giữa tự động hóa và rà soát của con người. Cuối cùng phải liên kết, từ góc nhìn Kỹ sư chuyên nghiệp, rủi ro chuỗi cung ứng khi VEX sai hoặc cập nhật chậm với chiến lược thực thi để giảm rủi ro đó.

Các chủ đề có thể liên hệ gồm SBOM, SCA, DevSecOps, CSAF, Zero Trust, bảo mật chuỗi cung ứng phần mềm, quản lý lỗ hổng, bảo mật mua sắm. Đặc biệt, nếu nhấn mạnh rằng VEX không trùng lặp với SBOM mà là tầng chuyển “sự thật cấu thành” của SBOM thành “phán định tác động” của sản phẩm, quan hệ giữa các khái niệm sẽ rõ ràng.

8. Những điều cần cân nhắc và hàm ý

A. Tính nhất quán của định danh

Tên sản phẩm và chuỗi phiên bản có thể được ghi khác nhau giữa các tổ chức, nên cần quản lý đồng thời PURL, hash, CPE, định danh nhà cung cấp. Nếu định danh lệch nhau, ngay cả VEX đúng cũng không khớp với SCA của bên sử dụng, khiến cảnh báo còn tồn tại hoặc bị đóng sai. Chuẩn hóa định danh không phải vấn đề kỹ thuật mà là một phần của hợp đồng nhà cung cấp và chính sách quản lý phát hành.

B. Căn cứ và khả năng giải thích

Căn cứ đặc biệt quan trọng với NOT AFFECTED và FIXED. Lưu kết quả phân tích mã, ca kiểm thử, cấu hình, commit vá, digest image triển khai dưới dạng liên kết có thể kiểm toán, và đặt chính sách lưu giữ để căn cứ không bị mất. Việc tự động đóng trạng thái không có căn cứ cải thiện chỉ số ngắn hạn nhưng làm tổn hại niềm tin dài hạn.

C. Độ mới và vòng đời

VEX có thể thay đổi sau khi phát hành theo bản phát hành sản phẩm, cấu hình, thông tin khai thác mới, đính chính lỗ hổng. Không chỉ quản lý ngày phát hành và ngày sửa đổi mà cả phạm vi sản phẩm áp dụng, tài liệu thay thế, điều kiện hết hạn, và tự động cảnh báo các UNDER INVESTIGATION tồn đọng lâu. Với sản phẩm đã ngừng, cũng phải thiết kế việc lưu giữ tài liệu và thông báo phù hợp với hợp đồng hỗ trợ và yêu cầu pháp quy.

D. Phân tách trách nhiệm giữa nhà cung cấp và bên sử dụng

Nhà cung cấp chịu trách nhiệm phân tích ngữ cảnh sản phẩm và tuyên bố trạng thái chính xác, còn bên sử dụng chịu trách nhiệm về cấu hình triển khai và điều kiện phơi nhiễm của mình. Dù VEX của nhà cung cấp là NOT AFFECTED, nếu bên sử dụng thêm gói dễ bị tổn thương khác hay cấu hình tùy biến thì không thể mở rộng nguyên vẹn phán định đó. Hợp đồng cần ghi rõ định dạng tài liệu, thời điểm nộp, thông báo thay đổi trạng thái, phạm vi hợp tác khi có sự cố.

E. Tính bảo mật và niềm tin

Kho VEX là tài sản cốt lõi của bảo mật chuỗi cung ứng nên phải phòng chống giả mạo tài liệu, tấn công phát lại, lạm dụng quyền. Áp dụng chữ ký, mã hóa đường truyền, kiểm soát truy cập, phiên bản tài liệu, lịch sử hủy bỏ/thay thế, nhật ký kiểm toán, nhưng không để VEX công khai lộ đường dẫn nội bộ không cần thiết hay thông tin vận hành nhạy cảm.

F. Giới hạn của tự động hóa

Phân tích tĩnh vượt qua không có nghĩa có thể khẳng định an toàn cả với nạp động, reflection, plugin, cấu hình của người vận hành. Ưu tiên dùng tự động hóa cho tạo ứng viên và đối chiếu lặp lại, còn ngữ cảnh nghiệp vụ và khả năng tiếp cận tấn công của sản phẩm được bổ sung bằng rà soát của người phụ trách bảo mật, phát triển, vận hành. Chính sách tự động đóng trạng thái cần có điều kiện ngoại lệ và kiểm toán lấy mẫu định kỳ.

G. Ưu tiên dựa trên rủi ro

Nếu chỉ dựa vào điểm CVSS để xếp thứ tự ứng phó, có thể bỏ sót mức quan trọng của tài sản và phơi nhiễm thực tế. Cần đánh giá đồng thời phơi nhiễm Internet, yêu cầu xác thực, mã khai thác công khai, độ nhạy cảm dữ liệu, khả năng giảm thiểu, chi phí phục hồi, và nối trạng thái VEX với thứ tự ưu tiên ticket. VEX không phải tài liệu xóa bỏ rủi ro mà là dữ liệu phán định giúp phân bổ chính xác hơn nguồn lực ứng phó có hạn.

H. Chiến lược chuyển đổi

Thay vì yêu cầu VEX hoàn hảo cho mọi sản phẩm ngay từ đầu, hãy xây dựng đường cơ sở từ các sản phẩm lộ ra Internet và chuỗi cung ứng cốt lõi. Tự động tạo SBOM trong pipeline build, thí điểm phát hành VEX có căn cứ cho các cảnh báo mức nghiêm trọng cao, rồi chuẩn hóa định dạng, định danh, phê duyệt, SLA. Sau đó liên kết với mua sắm, cổng thông tin khách hàng và ứng phó sự cố thì tài liệu sẽ chuyển hóa thành giá trị vận hành thực tế.

Tài liệu tham khảo

  1. CISA Software Bill of Materials (SBOM)
  2. CISA Minimum Requirements for Vulnerability Exploitability eXchange (VEX)
  3. CISA Vulnerability Exploitability eXchange (VEX) – Use Cases
  4. CISA SBOM FAQ 2024
  5. NIST Software Security in Supply Chains
  6. OpenVEX Specification
  7. CycloneDX VEX Capabilities
  8. SPDX Security Profile

Tóm tắt một câu: VEX là tư vấn bảo mật máy đọc được, áp các ứng viên lỗ hổng do SBOM phát hiện vào ngữ cảnh sản phẩm, phiên bản và thực thi để truyền đạt trạng thái NOT AFFECTED, AFFECTED, FIXED, UNDER INVESTIGATION kèm căn cứ, kết nối phát hiện, phán định, ứng phó và đánh giá lại trong chuỗi cung ứng.