Làm thế nào để chống lại tấn công httpslow?

tepriu

W-------
25/12/2014
0
21 bài viết
Làm thế nào để chống lại tấn công httpslow?
Như 2 bài viết trước, tôi đã trình bày với bạn đọc về 3 kiểu tấn công httpslow, tôi cũng xin trình bày qua về đặc điểm chung của các kiểu tấn công httpslow đều là kĩ thuật khai thác giao thức http. Do thiết kế của giao thức http đòi hỏi phải nhận hoàn chỉnh một yêu cầu trước khi server xử lý. Nếu như một yêu cầu không đầy đủ, hoặc tốc độ truyền tải rất thấp, server sẽ được duy trì kết nối để chờ đợi phần còn lại của yêu cầu. Trong bài viết này, tôi sẽ mô tả một số bước đơn giản để chống lại các cuộc tấn công httpslow và để làm cho các cuộc tấn công giảm khả năng thành công.

Anh-whitehat-vn.png

Cách bảo vệ

  • Hạn chế các header và body của thông điệp với độ dài hợp lý tối thiểu. Thiết lập giới hạn URL như số lượng các trường hoặc như độ lớn của phần nội dung.
  • Nếu có thể, ta sẽ thiết lập một thời gian chờ kết nối tuyệt đối. Tất nhiên, nếu thời gian chờ quá ngắn, Webserver có nguy cơ giảm các kết nối chậm hợp pháp và nếu thời gian chờ quá dài, Webserver không được bất kì sự bảo vệ khỏi các cuộc tấn công. Ta nên thiết lập một giá trị thời gian chờ dựa trên thống kê thời gian kết nối của server, ví dụ như một thời chờ lớn hơn một chút so với thời gian trung bình của các kết nối cần đáp ứng của các client hợp pháp.
  • Xác định tốc độ tối thiểu tiếp nhận dữ liệu của server và thả các kết nối chậm hơn so với tốc độc đó. Cần phải chú trọng không để thiết lập tối thiểu quá thấp, hoặc có thể server sẽ có nguy cơ giảm các kết nối hợp pháp.

Khuyến nghị với một số Server thông dụng

Apache

  • Đặt Timeout và KeepAlive Timeout một cách hợp lý. Giá trị mặc định là 300 giây là quá mức cần thiết với hầu hết các tình huống.
  • Giá trị mặc định (ListenBackLog) là 511 có thể được tăng lên. Việc này sẽ hữu ích khi server không thể nhận được những kết nối chậm.
  • Tăng giá trị MaxRequestWorker cho phép tăng số lượng xử lý đồng thời.
  • Một số module Apache đã giảm thiểu những tác hại từ các cuộc tấn công httpslow, ví dụ như RequestReadTimeOut trong mod_reqtimeout giúp kiểm soát những kết nối chậm bằng cách thiết lập thời gian chờ và tốc độ dữ liệu tối thiểu để nhận một yêu cầu.

Nginx

  • Đặt các giá tri sau thấp nhất có thể: client_body_timeout, client_header_timeout.
  • Cân nhắc việc sử dụng HttpLimitReqModule và HttpLimitZoneModule để hạn chế số lượng yêu cầu hoặc số lượng kết nối đồng thời tại một thời điểm nào đó hoặc trong một trường hợp đặc biệt với cùng một địa chỉ.
  • Cấu hình worker_processes và worker_connections dựa trên số CPU/lõi, nội dung và băng thông tải. Công thức là max_clients = worker_processes * worker_connections.

IIS 6

Đặt các giá trị connectionTimeout, HeaderWaitTimeout and MaxConnections trong Metabase để giảm thiểu những tác động của các cuộc tấn công httpslow. Làm việc với Metabase có thể rất phức tạp, nên tôi khuyên bạn nên tham khảo các tài liệu hướng dẫn trên Microsoft.

IIS 7

Các bạn có thể tham khảo qua link để nắm rõ hơn những thông tin tôi đưa ra

Hạn chế các thuộc tính trong yêu cầu phía client thông qua phần tử , đặc biệt là thuộc tính maxAllowedContentLength, maxQueryString, và maxUrl.

Bật các thuộc tính connectionTimeout, headerWaitTimeout và minBytesPerSecond trong thuộc tính và để giảm thiểu tác động của các cuộc tấn công httpslow.

Tổng kết

Trên đây là một số những biện pháp đối phó đơn giản và chung nhất để giảm thiểu tác động. Điều chỉnh cấu hình các Webserver một cách hiệu quả mặc dù có thể giảm thiểu các cuộc tấn công httpslow, tương đương với việc là từ chối kết nối các yêu cầu hợp pháp chậm.

Ngoài việc cấu hình Webserver, bạn có thể thực hiện các lớp bảo vệ khác như cân bằng tải hoặc sử dụng các hệ thống phát hiện xâm nhập/phòng để ngăn chặn các kết nối có nghi ngờ.

Hi vọng loạt bài viết về httpslow của tôi sẽ giúp ích cho các bạn trong việc phòng chống và bảo vệ Webserver của mình một cách an toàn và tránh bị ảnh hưởng từ các cuộc tấn công httpslow.
 
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
Thẻ
httpslow tấn công httpslow
Bên trên