Máy chủ ứng dụng Java mắc lỗi thực thi mã từ xa

16/06/2015
83
672 bài viết
Máy chủ ứng dụng Java mắc lỗi thực thi mã từ xa
Một vài ứng dụng Java phổ biến tồn tại một lỗ hổng nghiêm trọng có thể bị hacker lợi dụng để thực thi từ xa mã tùy ý.

Cuối tuần trước, FoxGlove Security chỉ ra cách các lỗ hổng phục hồi trạng thái của đối tượng (deserialization) trong các ứng dụng Java có thể bị khai thác để thực thi từ xa thông qua thư viện Apache Commons Collections của Java.


Dựa trên nghiên cứu trước đây của Qualcomm, FoxGlove Security chứng minh rằng những kẻ tấn công có thể dễ dàng khai thác máy chủ trên nền tảng Java và những sản phẩm khác sử dụng Apache Commons Collections, bao gồm Oracle WebLogic, IBM WebSphere, Red Hat’s JBoss, Jenkins, và OpenNMS.

FoxGlove cho biết thư viện này được khá nhiều dự án sử dụng – một cuộc khảo sát trên GitHub cho thấy hơn 1.300 dự án đang sử dụng bộ thư viện này.

Trong khi phương thức khai thác FoxGlove mô tả được dựa trên Apache Commons Collection và lớp Invoker Transformer, nghiên cứu của Qualcomm lại chỉ ra rằng nguyên nhân của những nguy cơ này không phải từ một lỗ hổng thực tế tồn tại trong thư viện, mà bắt nguồn từ khả năng của lập trình viên.

Serialization (chuyển đổi trạng thái) là quá trình chuyển đổi một đối tượng sang một định dạng có thể lưu trữ hoặc truyền tải vào bộ nhớ hoặc vào một tập tin. Quá trình phục hồi đối tượng đó trở lại trạng thái ban đầu được gọi là deserialization và có thể dẫn đến các vấn đề an ninh quan trọng nếu không được xử lý đúng cách. Các lỗ hổng serialization được IBM tìm thấy gần đây trong hệ điều hành Android.

Vấn đề ở đây dường như là những nhà phát triển của các ứng dụng này đã không thể đảm bảo rằng dữ liệu chuyển đổi không đáng tin cậy không được chấp nhận cho quá trình phục hồi.

Sau khi FoxGlove đăng tải thông tin này, các thành viên của Apache Software Foundation đã tìm cách để giảm thiểu vấn đề này trong Apache Commons Collections bằng cách giới thiệu một cơ chế được thiết kế để điều khiển quá trình chuyển đổi.

Jenkins phát hành một script giảm thiểu và OpenNMS đã đưa ra một số hướng dẫn đơn giản để bảo vệ các cài đặt trước những cuộc tấn công tiềm tàng. Matthias Kaiser của Code White cũng đã tiến hành nghiên cứu về việc khai thác các lỗ hổng deserialization trong Java và thông báo với Oracle về vấn đề này trong tháng 7 vừa qua.

Chuyên gia Luca Carettoni phát hành thư viện deserialization cho Java để bảo vệ các ứng dụng khỏi đầu vào không đáng tin cậy, và nhà phát triển Charles Miller đã viết một bài chỉ dẫn các nhà phát triển làm thế nào để tránh các sai sót tương tự trong chương trình của họ.

Theo Securityweek
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên