ping
VIP Members
-
19/06/2013
-
58
-
101 bài viết
Tổng quan về an ninh trên CMS Drupal
Tóm tắt - Trong tài liệu này tôi sẽ trình bày một số điểm đáng chú ý về thực trạng an toàn thông tin trên CMS Drupal, có sử dụng các tư liệu thống kê từ Drupal Security Team.
Từ khóa: Information Security, Web, Drupal
1. Về Drupal
Drupal là một hệ quản trị nội dung(CMS) mã nguồn mở được viết bằng ngôn ngữ PHP. Dự án Drupal có hai thành phần chính, phần core và phần mở rộng bao gồm các module, plugin, theme do cộng đồng đóng góp. Thường rất hiếm khi người sử dụng Drupal chỉ dùng nguyên bản phân phối gốc, người dùng thường thêm vào các module họ tự phát triển hoặc sử dụng lại, hay thậm chí là chỉnh sửa core để phù hợp với nhu cầu, cải thiện hiệu suất và sửa chữa một số lỗi nào đấy.
Giống như phần lớn các ứng dụng web viết bằng php khác, Drupal thường được deploy trên một hạ tầng nguồn mở như Linux, Apache, MySQL, PHP. Thế nên khi nghiên cứu về an ninh trên drupal chúng ta phải xét hết các nguy cơ ở cả các lớp hạ tầng này.
2. Lịch sử an ninh trên Drupal
Giống như phần lớn các sản phẩm khác, nhóm chịu trách nhiệm đảm bảo an toàn cho cho Drupal (Drupal Security Team) hoạt động trên nguyên tắc công khai có giới hạn các lỗi bảo mật cho đến khi được vá hoàn toàn. Các vấn đề an ninh mới phát hiện sẽ được gửi đến nhóm phát triển core hoặc các nhà phát triển tự do. Trong trường hợp các khuyến cáo của Drupal Security Team không được đáp ứng, họ sẽ phát hành một bản tư vấn an ninh ( Security Advisory) góp ý cho người dùng không nên sử dụng module đấy [1].
Dưới đây là một số thống kê về Drupal
Bảng 1 - Thống kê các lỗi bảo mật được phát hiện trong core và các module cộng đồng phát triển của Drupal theo các năm [2]
Hình 1 - Thống kê các lỗi trên drupal core và các module cộng đồng phát triển [3]
Hình 2 - Thống kê lỗi theo năm và các kiểu lỗi trong core Drupal tính đến năm 2014 [4]
Trên tổng số 647 lỗi ở các module, có đến 373 lỗi XSS. Hình 2 và hình 3 đều cho thấy XSS là lỗ hổng thưởng gặp nhất ở Drupal. Các lỗi ở core Drupal thường khó khai thác hơn rất nhiều, chẳng hạn lỗi XSS được công bố mã SA-CORE-2009-005 chỉ khai thác được trên trình duyệt Internet Explorer có hỗ trợ encode UTF7 hay XSS SA-CORE-2009-009 yêu cầu kẻ tấn công phải có quyền Admin (mặc định không được trao cho user).
Cũng phải nói thêm, core drupal được kiểm duyệt rất nghiêm ngặt khi có thay đổi mới, chỉ một vài thành viên được quyền commit code, các module ngoài thường chỉ có một thành viên commit và ít được kiểm tra kỹ như core.
Gần như các lỗ hổng xuất phát từ việc chỉnh sửa code. Một thống kê từ Greenopolis.com cho thấy trên 120 lỗi tìm thấy trên website drupal của họ thì có đến 90% lỗi xuất phát từ theme [5].
Tất cả các lỗ hổng của drupal core được công bố đều có bản vá đi kèm. Gần đây nhất một lỗi SQLi được phát hiện với mã CVE-2014-3704 cho phép tạo user với quyền admin, ảnh hưởng đến tất cả phiên bản Drupal 7.x thấp hơn 7.32. Trước đấy một lỗi nằm trong thư viện XML-RPC ảnh hưởng đến tất cả các module sử dụng thư viện này nhưng chưa phát hiện tấn công trên diện rộng.
Tháng 5/2013, website chính thức của dự án Drupal là drupal.org thông báo họ bị tấn công và bị xâm nhập dữ liệu người dùng. Lỗ hổng từ một plugin của bên thứ 3, đây là kẽ hở gần như các ứng dụng web dùng CMS đều mắc phải.
Trong các bài tiếp, tôi sẽ trình bày chi tiết hơn về kỹ thuật khai thác một số lỗi cụ thể trên Drupal và cách vá lỗi.
3. Tài liệu tham khảo
[1] D. S. Team, "Security advisories," Drupal.org, [Online]. Available: https://www.drupal.org/security/.
[2] D. S. Team, "Security track record," Drupal.org, [Online]. Available: https://www.drupal.org/about/security-track-record.
[3] Benjamin James Jeavons, Gregory James Knaddison, "Drupal Security White Paper 1.3," 2014.
[4] "Drupal Vulnerability Statistics," 2015. [Online]. Available: http://www.cvedetails.com/vendor/1367Drupal.
[5] E. Beyrent, "DrupalCamp CT 2010," 2010. [Online]. Available: http://2010.drupalcampct.org/sites/default/files/slides-docs/Hack-Proof Your Drupal App.pdf.
Từ khóa: Information Security, Web, Drupal
1. Về Drupal
Drupal là một hệ quản trị nội dung(CMS) mã nguồn mở được viết bằng ngôn ngữ PHP. Dự án Drupal có hai thành phần chính, phần core và phần mở rộng bao gồm các module, plugin, theme do cộng đồng đóng góp. Thường rất hiếm khi người sử dụng Drupal chỉ dùng nguyên bản phân phối gốc, người dùng thường thêm vào các module họ tự phát triển hoặc sử dụng lại, hay thậm chí là chỉnh sửa core để phù hợp với nhu cầu, cải thiện hiệu suất và sửa chữa một số lỗi nào đấy.
Giống như phần lớn các ứng dụng web viết bằng php khác, Drupal thường được deploy trên một hạ tầng nguồn mở như Linux, Apache, MySQL, PHP. Thế nên khi nghiên cứu về an ninh trên drupal chúng ta phải xét hết các nguy cơ ở cả các lớp hạ tầng này.
2. Lịch sử an ninh trên Drupal
Giống như phần lớn các sản phẩm khác, nhóm chịu trách nhiệm đảm bảo an toàn cho cho Drupal (Drupal Security Team) hoạt động trên nguyên tắc công khai có giới hạn các lỗi bảo mật cho đến khi được vá hoàn toàn. Các vấn đề an ninh mới phát hiện sẽ được gửi đến nhóm phát triển core hoặc các nhà phát triển tự do. Trong trường hợp các khuyến cáo của Drupal Security Team không được đáp ứng, họ sẽ phát hành một bản tư vấn an ninh ( Security Advisory) góp ý cho người dùng không nên sử dụng module đấy [1].
Dưới đây là một số thống kê về Drupal
Bảng 1 - Thống kê các lỗi bảo mật được phát hiện trong core và các module cộng đồng phát triển của Drupal theo các năm [2]
Hình 1 - Thống kê các lỗi trên drupal core và các module cộng đồng phát triển [3]
Hình 2 - Thống kê lỗi theo năm và các kiểu lỗi trong core Drupal tính đến năm 2014 [4]
Trên tổng số 647 lỗi ở các module, có đến 373 lỗi XSS. Hình 2 và hình 3 đều cho thấy XSS là lỗ hổng thưởng gặp nhất ở Drupal. Các lỗi ở core Drupal thường khó khai thác hơn rất nhiều, chẳng hạn lỗi XSS được công bố mã SA-CORE-2009-005 chỉ khai thác được trên trình duyệt Internet Explorer có hỗ trợ encode UTF7 hay XSS SA-CORE-2009-009 yêu cầu kẻ tấn công phải có quyền Admin (mặc định không được trao cho user).
Cũng phải nói thêm, core drupal được kiểm duyệt rất nghiêm ngặt khi có thay đổi mới, chỉ một vài thành viên được quyền commit code, các module ngoài thường chỉ có một thành viên commit và ít được kiểm tra kỹ như core.
Gần như các lỗ hổng xuất phát từ việc chỉnh sửa code. Một thống kê từ Greenopolis.com cho thấy trên 120 lỗi tìm thấy trên website drupal của họ thì có đến 90% lỗi xuất phát từ theme [5].
Tất cả các lỗ hổng của drupal core được công bố đều có bản vá đi kèm. Gần đây nhất một lỗi SQLi được phát hiện với mã CVE-2014-3704 cho phép tạo user với quyền admin, ảnh hưởng đến tất cả phiên bản Drupal 7.x thấp hơn 7.32. Trước đấy một lỗi nằm trong thư viện XML-RPC ảnh hưởng đến tất cả các module sử dụng thư viện này nhưng chưa phát hiện tấn công trên diện rộng.
Tháng 5/2013, website chính thức của dự án Drupal là drupal.org thông báo họ bị tấn công và bị xâm nhập dữ liệu người dùng. Lỗ hổng từ một plugin của bên thứ 3, đây là kẽ hở gần như các ứng dụng web dùng CMS đều mắc phải.
Trong các bài tiếp, tôi sẽ trình bày chi tiết hơn về kỹ thuật khai thác một số lỗi cụ thể trên Drupal và cách vá lỗi.
3. Tài liệu tham khảo
[1] D. S. Team, "Security advisories," Drupal.org, [Online]. Available: https://www.drupal.org/security/.
[2] D. S. Team, "Security track record," Drupal.org, [Online]. Available: https://www.drupal.org/about/security-track-record.
[3] Benjamin James Jeavons, Gregory James Knaddison, "Drupal Security White Paper 1.3," 2014.
[4] "Drupal Vulnerability Statistics," 2015. [Online]. Available: http://www.cvedetails.com/vendor/1367Drupal.
[5] E. Beyrent, "DrupalCamp CT 2010," 2010. [Online]. Available: http://2010.drupalcampct.org/sites/default/files/slides-docs/Hack-Proof Your Drupal App.pdf.
Chỉnh sửa lần cuối bởi người điều hành: