CVE Lite CLI: Công cụ giúp lập trình viên phát hiện và sửa lỗi phụ thuộc trong vài giây
CVE Lite CLI là công cụ dòng lệnh mã nguồn mở giúp quét dự án JavaScript/TypeScript trong vài giây để tìm lỗ hổng. Được OWASP Incubator chấp nhận, công cụ này cung cấp giải pháp sửa chữa tức thì, giúp tiết kiệm thời gian so với các phương pháp quét truyền thống trong CI.

CVE Lite CLI: Công cụ giúp lập trình viên phát hiện và sửa lỗi phụ thuộc trong vài giây
Việc sử dụng các gói npm trong các dự án phát triển phần mềm giúp tiết kiệm thời gian nhưng cũng có thể vô tình đưa vào những lỗ hổng bảo mật đã được biết đến nhưng chưa được phát hiện.
CVE Lite CLI là một trình quét bảo mật dòng lệnh nhẹ nhàng, hoạt động trên các tệp khóa (lockfiles) trong quá trình phát triển phần mềm. Công cụ này tập trung vào các tệp JavaScript và TypeScript, là trình quét phụ thuộc được hỗ trợ bởi OSV và tương thích với npm, pnpm và Yarn.
Mã hóa và phát triển phần mềm
Đây là công cụ mã nguồn mở do Sonu Kapoor phát triển, hiện đã được cộng đồng hỗ trợ và mới đây được chính thức chấp nhận là một Dự án OWASP Incubator.
Vấn đề của sự "mù mờ" về phụ thuộc
Sonu Kapoor là một nhà phát triển phần mềm với 25 năm kinh nghiệm, người đã trải qua và thấu hiểu tất cả những sự cố và trì hoãn trong quy trình phát triển phần mềm an toàn. Chính những sự cố này là động cơ để ông tạo ra CVE Lite CLI.
"Mỗi dự án bạn xây dựng không chỉ chứa mã của riêng bạn. Nó kéo theo hàng trăm gói mã nguồn mở. Mỗi gói đó có thể kéo theo các gói khác với các phụ thuộc của riêng chúng, cho đến khi một dự án JavaScript điển hình có thể liên quan đến hàng nghìn phụ thuộc như vậy," ông giải thích.
Đa số các nhà phát triển có thể chưa từng nghe tên phần lớn các gói này và không biết chúng được đưa vào dự án như thế nào. Ở giai đoạn này, nhà phát triển đang hoạt động mà không có thông tin cần thiết. "Bất kỳ gói nào trong số đó cũng có thể có một lỗ hổng bảo mật đã biết – và hầu hết các nhà phát triển không biết nó tồn tại ở đó."
Tại sao các phương pháp hiện tại chưa đủ?
SBOM (Software Bill of Materials) được giới thiệu để giải quyết vấn đề này, đặc biệt là trong phần mềm mã nguồn mở. Về lý thuyết, chúng nên giải quyết được vấn đề; nhưng SBOM không thể được tin tưởng hoàn toàn. Các nhà phát triển phải sử dụng trình quét để định vị lỗ hổng trong các gói npm được bao gồm tự động nhưng chưa được biết đến.
Các trình quét hiện có thường chỉ có thể được sử dụng vào một thời điểm không tối ưu và không cung cấp sự hỗ trợ hoàn hảo. Ngày nay, rất nhiều công việc lập trình được thực hiện với sự trợ giúp của tác nhân lập trình AI. Một cách tiếp cận khác là để AI thực hiện việc quét; nhưng điều này cũng tạo ra những vấn đề riêng của nó.
Với AI, quá trình quét trong CI (Continuous Integration) thường là bước cuối cùng xảy ra sau tất cả các nhiệm vụ khác như chạy build, linting, kiểm tra đơn vị, xây dựng hình ảnh – và sau đó mới chạy quét CI. Tùy thuộc vào quy mô dự án, điều này có thể mất 10 phút, nhưng ở hầu hết các công ty doanh nghiệp, nó mất từ một đến hai hoặc ba giờ. Thậm chí, điều này còn phụ thuộc vào việc một tác nhân có trống hay không. Nếu trong CI không có tác nhân trống, bạn có thể phải đợi thêm vài giờ nữa để xem kết quả quét.
Đó là vấn đề đầu tiên: lãng phí thời gian. Rất ít nhà phát triển có thời gian để chỉ ngồi và đợi hàng giờ. Đa số sẽ chuyển sang bắt đầu dự án tiếp theo – điều này dẫn đến vấn đề thứ hai: mất ngữ cảnh của dự án đầu tiên.
Hầu hết các lần quét AI này chỉ cung cấp một nhật ký lớn các vấn đề nhưng không đưa ra bất kỳ bản sửa lỗi nào. Chúng có thể đưa ra một lệnh thô sơ như "Gói này có CVE này: hãy sửa nó", nhưng chúng không cho biết cách sửa.
Giải pháp tức thì từ CVE Lite CLI
"CVE Lite CLI là một công cụ dòng lệnh mã nguồn mở miễn phí quét dự án của bạn trong vài giây và cho bạn biết chính xác gói nào chứa lỗ hổng. Nhưng nó không chỉ cho bạn biết cái gì bị hỏng – nó cho bạn biết cách sửa chữa nó: nó không chỉ là một nhật ký khổng lồ hay danh sách cảnh báo," Kapoor tiếp tục.
Công cụ sử dụng thuật toán nội bộ để phân tích bất kỳ phụ thuộc nào có lỗ hổng và cung cấp lệnh an toàn nhất để bao gồm một gói thay thế không có lỗ hổng sẽ không làm hỏng ứng dụng.
Bảo mật phần mềm
Kết quả là sự kết hợp giữa lãng phí thời gian và sự thất vọng gia tăng, tất cả đều có thể được loại bỏ bằng cách bảo mật mã và các bao gồm npm, pnpm hoặc Yarn của nó ngay khi chúng được thêm vào trong quá trình phát triển. Mỗi lần chạy CVE Lite CLI đều hoạt động trên thiết bị của chính nhà phát triển, có thể được sử dụng ngay lập tức theo yêu cầu, hoàn thành quá trình quét trong vài giây và giúp khắc phục mọi bao gồm có lỗ hổng được phát hiện.
Đương nhiên, nó tự động quét gói npm mới mà lệnh đề xuất của nó mang lại, đảm bảo rằng bản sửa lỗi được đề xuất là một bản sửa chữa thực sự. Kapoor dẫn chứng một ví dụ từ kinh nghiệm, nơi nhà phát triển phải trải qua hơn 25 lần lặp lại riêng biệt để tìm kiếm một giải pháp thay thế an toàn cho một gói npm có lỗ hổng.
"Hãy tưởng tượng sự thất vọng đó," ông nói. "Bạn phải cài đặt gói. Quét CI nói nó chứa lỗ hổng, vì vậy bạn thử một npm khác. Bạn đẩy nó lên CI, bạn đợi CI chạy, và CI nói bạn vẫn bị lỗ hổng. Được rồi, vì vậy bạn thử phiên bản tiếp theo. Và bạn lặp lại vòng lặp đó một lần nữa: bạn đẩy lên, bạn đợi CI, và nó lại báo cho bạn biết là nó vẫn bị lỗ hổng." Hãy tưởng tượng làm điều này 25 lần. Đó là một sự lãng phí thời gian khổng lồ và gây ức chế.
Vấn đề lớn nhất là khi sự thất vọng và lãng phí thời gian như vậy trở nên phiền toái. "Điều có thể xảy ra sau đó," ông thêm, "là một số nhà phát triển bắt đầu bỏ qua lỗ hổng vì sự bực bội thuần túy khi họ nên sửa chữa nó. CVE Lite CLI ngăn chặn điều này bằng cách chạy các lần quét cục bộ trong vài giây, cho phép nhà phát triển nhìn thấy vấn đề, sửa chữa vấn đề, và sau đó tiếp tục công việc."



