Công cụ ODGen mới phát hiện 180 Zero-Days trong thư viện Node.js Trí thông minh dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Công cụ ODGen mới khai quật 180 ngày không trong thư viện Node.js

Các nhà nghiên cứu tại Đại học Johns Hopkins gần đây đã phát hiện ra 180 lỗ hổng zero-day đáng kinh ngạc trên hàng nghìn thư viện Node.js bằng cách sử dụng một công cụ phân tích mã mới mà họ phát triển riêng cho mục đích này, có tên là ODGen.

Bảy mươi trong số những lỗ hổng đó đã nhận được mã định danh lỗ hổng và mức độ phơi nhiễm (CVE) phổ biến. Chúng bao gồm các lỗ hổng chèn lệnh, lỗ hổng truyền tải đường dẫn, sự cố thực thi mã tùy ý và lỗ hổng tập lệnh chéo trang — một số trong số đó xuất hiện trong các ứng dụng được sử dụng rộng rãi.

Trong một bài báo được phát hành tại Hội nghị chuyên đề bảo mật Usenix hồi đầu tháng này, các nhà nghiên cứu của Johns Hopkins – Song Li, Mingqing Kang, Jianwei Hou và Yinzhi Cao – đã mô tả ODGen như một giải pháp thay thế tốt hơn cho phân tích mã hiện tại và cái gọi là dựa trên truy vấn đồ thị. các phương pháp tìm kiếm lỗ hổng Node.js.

Các phương pháp tiếp cận dựa trên phân tích chương trình đã tỏ ra hữu ích trong việc giúp phát hiện các loại lỗ hổng riêng lẻ, chẳng hạn như lỗi chèn mã trong JavaScript. Nhưng các nhà nghiên cứu cho biết, chúng không thể dễ dàng mở rộng để phát hiện tất cả các loại lỗ hổng có thể có trong nền tảng Node.js. Tương tự, các phương pháp phân tích mã dựa trên biểu đồ - trong đó mã đầu tiên được biểu diễn dưới dạng biểu đồ, sau đó truy vấn các lỗi mã hóa cụ thể - hoạt động tốt trong các môi trường như C++ và PHP. Tuy nhiên, họ lưu ý rằng các phương pháp tiếp cận dựa trên biểu đồ không hiệu quả trong việc khai thác các lỗ hổng JavaScript do ngôn ngữ lập trình sử dụng rộng rãi các tính năng động.

Phương pháp tiếp cận 'mới' để tìm lỗ hổng JavaScript

Vì vậy, thay vào đó, các nhà nghiên cứu đã phát triển cái mà họ mô tả là một phương pháp “mới” và tốt hơn được gọi là Đồ thị phụ thuộc đối tượng (ODG) có thể được sử dụng để phát hiện các lỗ hổng Node.js. Họ cho biết họ đã triển khai ODGen để tạo ra “ODG” cho các chương trình Node.js nhằm phát hiện các lỗ hổng.

Cao, trợ lý giáo sư khoa học máy tính tại Đại học Johns Hopkins và là đồng tác giả của báo cáo nghiên cứu, sử dụng một số phép loại suy để mô tả phân tích mã dựa trên biểu đồ nói chung và Biểu đồ phụ thuộc mục tiêu được đề xuất của họ. “Nếu chúng ta coi lỗ hổng là một mẫu đặc biệt - chẳng hạn như nút màu xanh lá cây được kết nối với nút màu đỏ và sau đó là nút đen - thì trước tiên, công cụ phân tích mã dựa trên biểu đồ sẽ chuyển đổi chương trình thành biểu đồ có nhiều nút và cạnh,” Cao nói. . “Sau đó, công cụ này sẽ tìm kiếm các mẫu như vậy trong biểu đồ để xác định lỗ hổng.”

Biểu đồ phụ thuộc đối tượng mà các nhà nghiên cứu đã đề xuất cải tiến cách tiếp cận này bằng cách biểu diễn các đối tượng JavaScript dưới dạng nút và thêm các tính năng – bao gồm cả sự phụ thuộc giữa các đối tượng – dành riêng cho ngôn ngữ lập trình, sau đó truy vấn lỗi. Cao mô tả cách thức hoạt động của phương pháp này bằng cách sử dụng các hạt trong một nắm gạo: Nếu tất cả các hạt trông giống nhau trước khi đun sôi nhưng có hai màu khác nhau sau khi đun sôi - một màu tượng trưng cho hạt tốt và hạt kia xấu - thì việc phát hiện và loại bỏ sẽ dễ dàng hơn những hạt xấu. Cao cho biết: “Giải thích trừu tượng giống như quá trình đun sôi chuyển đổi gạo - tức là các chương trình - thành các vật thể có màu sắc khác nhau” nên dễ phát hiện ra lỗi hơn.

Một loạt các lỗi

Để xem liệu phương pháp của họ có hiệu quả hay không, trước tiên, các nhà nghiên cứu đã thử nghiệm ODGen dựa trên mẫu gồm 330 lỗ hổng được báo cáo trước đó trong các gói Node.js trên kho lưu trữ trình quản lý gói nút (npm). Thử nghiệm cho thấy máy quét xác định chính xác 302 trong số 330 lỗ hổng. Phấn khích nhờ tỷ lệ chính xác tương đối cao, các nhà nghiên cứu đã chạy ODGen dựa trên khoảng 300,000 gói Java trong npm. Máy quét đã báo cáo tổng cộng 2,964 lỗ hổng tiềm ẩn trên các gói. Các nhà nghiên cứu đã kiểm tra 264 trong số đó – tất cả đều có trung bình hơn 1,000 lượt tải xuống mỗi tuần – và có thể xác nhận 180 lỗ hổng là lỗ hổng hợp pháp. Bốn mươi ba trong số đó ở cấp độ ứng dụng, 122 trong các gói được nhập bởi các ứng dụng hoặc mã khác và 15 trong số đó nằm trong các gói gián tiếp.

Phần lớn (80) lỗ hổng đã được xác nhận mà ODGen phát hiện là các luồng lệnh chèn cho phép kẻ tấn công thực thi mã tùy ý ở cấp hệ điều hành thông qua một ứng dụng dễ bị tấn công. Ba mươi là sai sót trong quá trình truyền tải đường dẫn; 24 lỗi cho phép giả mạo mã và 19 lỗi liên quan đến một kiểu tấn công tiêm lệnh cụ thể được gọi là ô nhiễm nguyên mẫu.

Dấu thời gian:

Thêm từ Đọc tối