Lỗ hổng nghiêm trọng gây ra mối đe dọa khai thác trong các trường hợp sử dụng Windows cụ thể

Lỗ hổng nghiêm trọng gây ra mối đe dọa khai thác trong các trường hợp sử dụng Windows cụ thể

Lỗ hổng nghiêm trọng gây ra mối đe dọa khai thác trong các trường hợp sử dụng Windows cụ thể PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Dự án Rust đã phát hành bản cập nhật cho thư viện tiêu chuẩn của mình, sau khi một nhà nghiên cứu lỗ hổng phát hiện ra một chức năng cụ thể được sử dụng để thực thi các tệp bó trên hệ thống Windows có thể bị khai thác bằng cách sử dụng lỗ hổng chèn.

Tập hợp các chức năng phổ biến có trong ngôn ngữ lập trình Rust, được gọi là thư viện tiêu chuẩn, cung cấp khả năng — trong số nhiều khả năng khác — để thực thi các tệp bó Windows thông qua Command API. Tuy nhiên, hàm này không xử lý dữ liệu đầu vào của API đủ nghiêm ngặt để loại bỏ khả năng đưa mã vào quá trình thực thi, theo tư vấn của Nhóm làm việc về phản ứng bảo mật của Rust xuất bản ngày 9 tháng XNUMX.

Yair Mizrahi, nhà nghiên cứu lỗ hổng cấp cao tại công ty bảo mật ứng dụng JFrog, cho biết mặc dù Rust nổi tiếng với các tính năng an toàn bộ nhớ nhưng vụ việc này nhấn mạnh rằng ngôn ngữ lập trình không phải là bằng chứng chống lại các lỗi logic.

Ông nói: “Nhìn chung, tính an toàn trong bộ nhớ của Rust là một lợi thế đáng chú ý, nhưng các nhà phát triển cũng phải hết sức chú ý đến khả năng xảy ra các lỗi logic để đảm bảo tính bảo mật và độ tin cậy tổng thể của các ứng dụng dựa trên Rust của họ”. “Để giải quyết các vấn đề logic như vậy, Rust khuyến khích quy trình kiểm tra và đánh giá mã nghiêm ngặt, cũng như sử dụng các công cụ phân tích tĩnh để xác định và giảm thiểu các lỗi logic.”

Rust đã nổi tiếng là ngôn ngữ lập trình rất an toàn vì nó không để các ứng dụng gặp phải loại lỗi thường nghiêm trọng được gọi là lỗ hổng an toàn bộ nhớ. Google đã quy kết giảm mã không an toàn cho bộ nhớ đến việc chuyển sang các ngôn ngữ an toàn bộ nhớ, chẳng hạn như Rust và Kotlin, trong khi Microsoft nhận thấy rằng cho đến năm 2018, khi họ chuyển sang ngôn ngữ an toàn bộ nhớ, những lỗ hổng như vậy thường xuyên xuất hiện. chiếm 70% tất cả các vấn đề bảo mật.

Windows đặt ra một loạt vấn đề

Vấn đề mới nhất không phải là lỗ hổng an toàn bộ nhớ mà là vấn đề với logic được sử dụng để xử lý dữ liệu đầu vào không đáng tin cậy. Một phần thư viện tiêu chuẩn của Rust cho phép nhà phát triển gọi một hàm để gửi một tập tin batch tới máy Windows để xử lý. Joel Marcey, giám đốc công nghệ tại Rust Foundation, tổ chức hỗ trợ những người duy trì ngôn ngữ lập trình và hệ sinh thái Rust, cho biết có nhiều lý do để gửi mã đến máy chủ dưới dạng tệp bó.

Ông nói: “Các tệp hàng loạt được chạy vì nhiều lý do trên hệ thống và Rust cung cấp API để cho phép bạn thực thi những tệp đó khá dễ dàng”. “Vì vậy, mặc dù đây không hẳn là trường hợp sử dụng phổ biến nhất đối với Rust, nhưng API, trước khi bản vá cố định được triển khai, đã cho phép các tác nhân độc hại về mặt lý thuyết chiếm quyền kiểm soát hệ thống của bạn bằng cách chạy các lệnh tùy ý và đây chắc chắn là một lỗ hổng nghiêm trọng.”

Thông thường, nhà phát triển có thể chuyển tiếp khối lượng công việc đến máy chủ Windows để thực thi dưới dạng quy trình hàng loạt thông qua giao diện lập trình ứng dụng lệnh (API), một phần của thư viện chuẩn. Thông thường, Rust đảm bảo sự an toàn cho bất kỳ lệnh gọi nào tới Command API, nhưng trong trường hợp này, Rust Project không thể tìm ra cách ngăn chặn việc thực thi tất cả các đối số, chủ yếu là do Windows không tuân thủ bất kỳ loại tiêu chuẩn nào và rằng API có thể cho phép kẻ tấn công gửi mã để thực thi mã sau đó.

Theo Rust Security Response WG, “Thật không may, có thông tin cho rằng logic thoát của chúng tôi không đủ kỹ lưỡng và có thể vượt qua các đối số độc hại dẫn đến việc thực thi shell tùy ý”.

Dự án Rust chứng tỏ khả năng đáp ứng

Các chuyên gia cho biết, mặc dù việc xử lý bất kỳ lỗ hổng nào có thể là một vấn đề đau đầu, nhưng Rust Project đã cho thấy rằng nhóm này giải quyết vấn đề nhanh chóng. Lỗ hổng thư viện tiêu chuẩn, CVE-2024-24576, cuối cùng là sự cố xảy ra với sự cố xử lý hàng loạt của Windows và ảnh hưởng đến các ngôn ngữ lập trình khác nếu chúng không phân tích đầy đủ các đối số được gửi đến quy trình hàng loạt của Windows. Mizrahi của JFrog cho biết: Dự án Rust dường như là dự án đầu tiên đưa ra bản sửa lỗi để chuyển các đối số sang quy trình Windows CMD.exe.

Rust Project cho biết các nhóm không thể loại bỏ hoàn toàn vấn đề, nhưng Command API sẽ không trả về lỗi khi bất kỳ phần bổ sung nào được chuyển đến chức năng có thể không an toàn. 

Mizrahi của JFrog kêu gọi Rust mở rộng việc sử dụng thử nghiệm bảo mật ứng dụng tĩnh và mở rộng việc sử dụng thử nghiệm làm mờ và thử nghiệm động.

Ông nói: “Nhìn chung, Rust đang đi đúng hướng bằng cách nhấn mạnh đến sự an toàn của bộ nhớ và khuyến khích thực hành kiểm tra nghiêm ngặt”. “Kết hợp những nỗ lực này với những tiến bộ liên tục trong phân tích tĩnh và làm mờ có thể giúp cộng đồng Rust và ngành công nghiệp phần mềm nói chung đạt được những bước tiến đáng kể trong việc giải quyết các lỗi logic và lỗi xác thực đầu vào trong những năm tới.”

Dấu thời gian:

Thêm từ Đọc tối