Phân tích lỗ hổng nghiêm trọng của WordPress, Drupal và cách khắc phục

eragon

Moderator
14/08/2013
0
4 bài viết
Phân tích lỗ hổng nghiêm trọng của WordPress, Drupal và cách khắc phục
Hiện nay hầu hết các website được cài đặt WordPress và Drupal đều bị ảnh hưởng bởi một lỗ hổng nghiêm trọng trong tiến trình phân tích PHP XML, dẫn tới bị tấn công từ chối dịch vụ (DoS). Nguyên nhân là do quá trình phân tích mở rộng các “thực thể” (Entity) XML làm cho CPU, bộ nhớ bị quá tải và số lượng các kết nối đến cơ sở dữ liệu của website đạt đến mức tối đa. Các web server sẽ bị tê liệt hoàn toàn chỉ trong vài giây.

1490893058WP_Drupal.jpg


Lỗ hổng được phát hiện bởi Nir Goldshlager, một nhà nghiên cứu bảo mật của Selaforce.com. Nó ảnh hưởng đến hầu hết tất cả các phiên bản mặc định của WordPress từ 3.5 đến 3.9 và Drupal từ 6.x đến 7.x.
Chúng ta sẽ cùng phân tích cách thức khai thác và cách khắc phục lỗ hổng này.

Cách thức khai thác lỗ hổng:

Lỗ hổng này sử dụng phương pháp tấn công được gọi là XML Quadratic Blowup Attack, một dạng tấn công tương tự như “Billion Laugh”. Tuy nhiên thay vì sử dụng các entity lồng nhau bên trong một file XML, thì chỉ cần lặp đi lặp lại các entity với kích thước đủ lớn. Với dạng tấn công này một file XML với kích thước vài Megabytes (MB) sau quá trình phân tích mở rộng có thể đạt đến kích thước hàng Gigabytes và làm server bị quá tải.

Nếu một attacker định nghĩa một Entity là “&x;” có kích thước 55000 bytes, sau đó tham chiếu đến Entity đó 55000 lần. Việc phân tích cú pháp XML Quadratic Blowup với kích thước nhỏ hơn 200KB được mở rộng lên đến 2,5GB. Việc mở rộng này đủ để làm sập quá trình phân tích.




&x;&x;&x;&x;&x;&x;&x;&x;&x;...



Mặc định, giới hạn kích thước bộ nhớ cấp phát cho PHP (ngôn ngữ được sử dụng để xây dựng WordPress và Drupal) là 128MB trong một request XML. Đối với Apache (web server phổ biến) và MySQL (hệ quản trị cơ sở dữ liệu mà WordPress và Drupal sử dụng) thì thuộc tính “MaxClients” và “MaxConnections” được thiết lập tương ứng là 256 và 151. Như vậy khi gửi các yêu cầu đến server chúng ta sẽ nhận được 19328MB (128*151) và được cấp phát trong bộ nhớ của server.

Tin tặc có thể lợi dụng việc này để thực hiện một cuộc tấn công từ chối dịch vụ và làm tê liệt server. Để thực hiện được việc này, kẻ tấn công sẽ ghi đè lên bộ nhớ vượt quá giới hạn của PHP. Server sẽ từ chối các yêu cầu ghi đè, và thông báo cuộc tấn công không thành công. Kết quả trả về được chèn thêm đoạn dữ liệu với kích thước lớn (payload), quá trình này làm cho CPU và bộ nhớ của server tăng đột biến, dẫn đến hiện tượng quả tải và tê liệt hệ thống.

Cách khắc phục:

Một tin tốt đối với các nhà phát triển là WordPress và Drupal đã công bố các bản vá cho các ứng dụng này. Người sử dụng chỉ đơn giản là cập nhập lên phiên bản mới nhất để bảo vệ và chống lại lỗ hổng này.

Người dùng Drupal 7 cần nâng cấp lên phiên bản 7.31 và Drupal 6 lên phiên bản 6.33. Các phiên bản WordPress từ 3.7 trở lên sẽ được tự động cập nhật bản vá. Tuy nhiên lỗ hổng còn ảnh hưởng đến cả các phiên bản WordPress từ 3.5 nên quản trị viên cần kiểm tra và đảm bảo website của mình được cập nhật phiên bản mới nhất là 3.9.2


Bkav

 
Chỉnh sửa lần cuối bởi người điều hành:
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
Re: Phân tích lỗ hổng nghiêm trọng của WordPress, Drupal và cách khắc phục

Mình thấy nội dung chưa làm rõ được mà mới chỉ là đi dịch thôi. Khả năng là người phân tích cũng chưa hiểu bản chất của vấn đề.

Cần phân tích mấu chốt của vấn đề hơn.

xmlrpc.php là gì vậy và tại sao lại cần sử dụng?



eragon;14742 đã viết:
Hiện nay hầu hết các website được cài đặt WordPress và Drupal đều bị ảnh hưởng bởi một lỗ hổng nghiêm trọng trong tiến trình phân tích PHP XML, dẫn tới bị tấn công từ chối dịch vụ (DoS). Nguyên nhân là do quá trình phân tích mở rộng các “thực thể” (Entity) XML làm cho CPU, bộ nhớ bị quá tải và số lượng các kết nối đến cơ sở dữ liệu của website đạt đến mức tối đa. Các web server sẽ bị tê liệt hoàn toàn chỉ trong vài giây.

1490893058WP_Drupal.jpg


Lỗ hổng được phát hiện bởi Nir Goldshlager, một nhà nghiên cứu bảo mật của Selaforce.com. Nó ảnh hưởng đến hầu hết tất cả các phiên bản mặc định của WordPress từ 3.5 đến 3.9 và Drupal từ 6.x đến 7.x.
Chúng ta sẽ cùng phân tích cách thức khai thác và cách khắc phục lỗ hổng này.

Cách thức khai thác lỗ hổng:

Lỗ hổng này sử dụng phương pháp tấn công được gọi là XML Quadratic Blowup Attack, một dạng tấn công tương tự như “Billion Laugh”. Tuy nhiên thay vì sử dụng các entity lồng nhau bên trong một file XML, thì chỉ cần lặp đi lặp lại các entity với kích thước đủ lớn. Với dạng tấn công này một file XML với kích thước vài Megabytes (MB) sau quá trình phân tích mở rộng có thể đạt đến kích thước hàng Gigabytes và làm server bị quá tải.

Nếu một attacker định nghĩa một Entity là “&x;” có kích thước 55000 bytes, sau đó tham chiếu đến Entity đó 55000 lần. Việc phân tích cú pháp XML Quadratic Blowup với kích thước nhỏ hơn 200KB được mở rộng lên đến 2,5GB. Việc mở rộng này đủ để làm sập quá trình phân tích.




&x;&x;&x;&x;&x;&x;&x;&x;&x;...



Mặc định, giới hạn kích thước bộ nhớ cấp phát cho PHP (ngôn ngữ được sử dụng để xây dựng WordPress và Drupal) là 128MB trong một request XML. Đối với Apache (web server phổ biến) và MySQL (hệ quản trị cơ sở dữ liệu mà WordPress và Drupal sử dụng) thì thuộc tính “MaxClients” và “MaxConnections” được thiết lập tương ứng là 256 và 151. Như vậy khi gửi các yêu cầu đến server chúng ta sẽ nhận được 19328MB (128*151) và được cấp phát trong bộ nhớ của server.

Tin tặc có thể lợi dụng việc này để thực hiện một cuộc tấn công từ chối dịch vụ và làm tê liệt server. Để thực hiện được việc này, kẻ tấn công sẽ ghi đè lên bộ nhớ vượt quá giới hạn của PHP. Server sẽ từ chối các yêu cầu ghi đè, và thông báo cuộc tấn công không thành công. Kết quả trả về được chèn thêm đoạn dữ liệu với kích thước lớn (payload), quá trình này làm cho CPU và bộ nhớ của server tăng đột biến, dẫn đến hiện tượng quả tải và tê liệt hệ thống.

Cách khắc phục:

Một tin tốt đối với các nhà phát triển là WordPress và Drupal đã công bố các bản vá cho các ứng dụng này. Người sử dụng chỉ đơn giản là cập nhập lên phiên bản mới nhất để bảo vệ và chống lại lỗ hổng này.

Người dùng Drupal 7 cần nâng cấp lên phiên bản 7.31 và Drupal 6 lên phiên bản 6.33. Các phiên bản WordPress từ 3.7 trở lên sẽ được tự động cập nhật bản vá. Tuy nhiên lỗ hổng còn ảnh hưởng đến cả các phiên bản WordPress từ 3.5 nên quản trị viên cần kiểm tra và đảm bảo website của mình được cập nhật phiên bản mới nhất là 3.9.2


Bkav

 
Chỉnh sửa lần cuối bởi người điều hành:
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
Comment
Re: Phân tích lỗ hổng nghiêm trọng của WordPress, Drupal và cách khắc phục

Rất cảm ơn bạn, Mình vừa cập nhật lại tất cả những web mà mình đang dùng wordpress. Không đọc qua chắc sau này ko hiểu vì sao đơ :D
 
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
Comment
Bên trên