Lỗ hổng zero day jQuery File Upload

08:15 | 25/10/2018

Lỗ hổng zero day là một thuật ngữ để chỉ những lỗ hổng chưa được công bố hoặc chưa được khắc phục. Lợi dụng những lỗ hổng này, tin tặc có thể xâm nhập được vào hệ thống máy tính của các tổ chức, doanh nghiệp để đánh cắp hoặc thay đổi dữ liệu.

jQuery là một thư viện được xây dựng từ Javascript nhằm giúp lập trình viên xây dựng những chức năng có sử dụng Javascript trở nên dễ dàng hơn. jQuery được tích hợp nhiều module khác nhau từ module hiệu ứng cho đến module truy vấn selector. jQuery được sử dụng đến 99% trên tổng số website trên thế giới. Trong bộ thư viện này có một plugin rất quan trọng, jQuery File Upload được phát triển bới chuyên gia người Đức - Sebastian Tscha, plugin này hỗ trợ việc upload file lên máy chủ với rất nhiều tính năng ưu việt, thuận tiện cho người sử dụng trong việc viết các ứng dụng dựa trên nền tảng Apache Websever.

Tuy nhiên, một công bố mới đây của Nhà nghiên cứu về bảo mật Lary Cashdollar đã chỉ ra rằng, có tồn tại lỗ hổng cho phép việc tấn công chiếm quyền các máy chủ WebServer có sử dụng công cụ jQuery File Upload.

Báo cáo CVE-2018-9206 về phương thức tấn công lỗ hổng của công cụ jQuery File Upload

Vấn đề nghiêm trọng là plugin này đã được triển khai, sử dụng trong 8 năm. Nghiên cứu cho thấy, tin tặc đã âm thầm khai thác lỗ hổng tồn tại này ít nhất 3 năm mà không bị phát hiện ra. Dựa trên các thống kê của GitHub – trang web chuyên cung cấp các phần mềm mã nguồn mở trực tuyến, thì jQuery File Upload là một trong những công cụ được sử dụng rộng rãi, có khoảng 7.800 các ứng dụng có sử dụng công cụ này trong hàng nghìn các dự án khác nhau. Ngoài GitHub, còn rất nhiều những trang web cung cấp mã nguồn mở khác cũng có thể sử dụng jQuery File nên rất khó để có thể xác định được sức ảnh hưởng của lỗ hổng hệ thống này.

Sau khi công bố, Lary Cashdollar và Sebastian Tschan đã cùng làm việc với nhau để tìm ra nguyên nhân. Nguyên nhân được chỉ ra là do có cập nhật trong phiên bản mới của dịch vụ web server Apache HTTPD. Thay đổi mới này được thực hiện trong phiên bản Apache 2.3.9, trước 5 ngày so với ngày công bố đầu tiên của plugin jQuery Upload File. Upload này của Apache đã loại bỏ việc hỗ trợ cấu hình máy chủ thông qua .htaccess nhằm tăng tính bảo mật của hệ thống. Tuy nhiên, plugin jQuery Uploaf File lại dựa vào .htaccess để thi hành các tính năng bảo mật.

Lary Cashdollar khẳng định, việc Apache nâng cấp như vậy hoàn toàn hợp lý, nhưng sự thay đổi này cũng đã tác động không nhỏ đến các nhà phát triển cũng như các dự án, đặc biệt khi có sử dụng .htaccess như một tính năng bảo mật hệ thống.

Trong báo cáo CVE-2018-9206 của mình, Cashdollar đã chỉ ra rằng, các hướng dẫn khai thác lỗ hổng này thực tế đã được trình diễn, qua những video tràn lan trên Youtube từ năm 2015 và tìm kiếm trên Google cũng ra những kết quả tương tự.

Mặc dù Sebastian Tschan đã cải thiện vấn đề trong plugin jQuery Upload File phiên bản 9.22.1, tuy nhiên số lượng các phiên bản, các sản phẩm còn tồn tại lỗ hổng do có sử dụng công cụ này vẫn đang còn là ẩn số.