Tải bản đầy đủ - 0 (trang)
Discard là dịch vụ ứng dụng tiêu hủy bất cứ gói tin nào đi vào cổng dịch vụ ấy. Nó tương tự như /dev/null cho stdin, stdout và stderr nhưng đặc biệt dành cho internet protocols (TCP và UDP). Dịch vụ này có sẵn trên hầu hết các hệ điều hành Unix và Linux v

Discard là dịch vụ ứng dụng tiêu hủy bất cứ gói tin nào đi vào cổng dịch vụ ấy. Nó tương tự như /dev/null cho stdin, stdout và stderr nhưng đặc biệt dành cho internet protocols (TCP và UDP). Dịch vụ này có sẵn trên hầu hết các hệ điều hành Unix và Linux v

Tải bản đầy đủ - 0trang

TRƯỜNG CAO ĐẲNG NGHỀ iSPACE



240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM

Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn

Tel: (848) 6267 8999 - Fax: (848) 6283 7867



4.1.4. Cài đặt và cấu hình ModSecurity.

Trong đồ án này, ta sẽ cấu hình cho ModSecurity phòng chống lại các kiểu tấn cơng

Wordpress pingback, tấn công bằng liên kết Facebook và liên kết với iptables qua bảng

MODSEC đã tạo để ngăn chặn các host bị block tiếp tục tấn công.

Để cài đặt ModSecurity trên Ubuntu, ta dùng lệnh:

# apt-get install libapache2-mod-security2 -y

# a2enmod security2

4.1.4.1.



Phân tích hình thức tấn cơng Wordpress pingback



XML-RPC là chức năng được Wordpress dùng để hỗ trợ việc quản lý từ xa thông qua

ngôn ngữ XML. Tuy nhiên, hiện này chức năng này lại thường xuyên bị lợi dụng để

tấn công DDoS và có thể tạo ra một lượng traffic khổng lồ đi vào website của nạn

nhân.

Lỗ hổng này có thể thực hiện bằng một lệnh đơn giản như sau:



Hình 34: Một ví dụ về tấn cơng Pingback.

Như hình trên, hacker gửi một request đến một website Wordpress có sử dụng chức

năng xmlrpc và yêu cầu nó ping đến một website khác. Nếu như hacker có danh sách

lớn các website sử dụng Wordpress thì lượng request đến server trong một giây sẽ rất

khủng khiếp và có thể làm một server có cấu hình thấp nào đó bị sập ngay lập tức.

Điều khó khăn của hình thức tấn cơng này đối với việc phòng thủ là nó hoạt động ở

tầng ứng dụng nên ta buộc phải cản lọc ở ModSecurity. Tuy nhiên khi đã nhận dạng

được các IP tấn cơng Pingback ta có thể khiến ModSecurity điều khiển iptables ngăn

chặn các cuộc tấn cơng này ngay từ tầng Internet.

Tuy nhiên, hiệu quả hình thức tấn cơng này còn phụ thuộc rất nhiều vào danh sách

website mà hacker có.



53



TRƯỜNG CAO ĐẲNG NGHỀ iSPACE



240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM

Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn

Tel: (848) 6267 8999 - Fax: (848) 6283 7867



4.1.4.2.



Phân tích tấn cơng với liên kết Facebook.



Facebook là mạng xã hội lớn nhất hiện nay. Nhu cầu chia sẻ và quảng bá thông qua

Facebook cũng ngày một phổ biến. Khi người dùng chia sẻ liên kết qua mạng xã hội,

Facebook sẽ tự động tạo một truy cập đến website đó để lấy về một hình ảnh ngẫu

nhiên và tiêu đề và hiển thị nó lên trên bài đăng để người dùng biết được nội dung của

liên kết. Khi người dùng bấm vào bài đăng, Facebook sẽ hiện ra liên kết như sau:

https://www.facebook.com/l.php?u=http://www.example.com/?

parameter=string_ngau_nhien



Hình 35: Chức năng Facbook Preload.

Lúc này, tuy người dùng chưa cần bấm vào “Truy cập liên kết” nhưng Facebook lại tự

gửi một gói tin HTTP đến website đó để xác nhận. Đây là tính năng Preload của

Facebook. Request được Apache log ghi nhận như sau:

173.252.90.96 - - [03/Apr/2017:21:53:05 +0700] "GET /?

parameter=string_ngau_nhien HTTP/1.1" 403 366 "-" "facebookexternalhit/1.1

(+http://www.facebook.com/externalhit_uatext.php)"

Nếu như có một attacker liên tục gửi các HTTP Request vào liên kết

https://www.facebook.com/l.php?u=http://www.example.com/?

parameter=string_ngau_nhien thì lúc đó sẽ liên tục gửi request đến website đích. Hơn

nữa lượng IP mà Facebook sử dụng cho các cú request này là rất nhiều và rất đa dạng.

Ưu điểm của kiểu tấn công này là:

-



Lợi thế về tốc độ: Việc gửi request lên Facebook rõ ràng sẽ nhanh hơn rất nhiều

so với việc gửi trực tiếp request đến mục tiêu, do đó sẽ gửi được nhiều request

hơn.



-



Lợi thế về băng thơng: Vì attacker chỉ có nhiệm vụ gửi gói tin mà khơng cần

lấy kết quả trả về, trong khi đó giữa Facebook và mục tiêu phải thực hiện đầy

đủ các bước gửi nhận của giao thức HTTP. Thế nên trong khoảng thời gian X

cho trước, attacker gửi được Y request thì Facebook chỉ có thể thực hiện được

Z request đến mục tiêu với Z luôn nhỏ hơn Y. Chính vì thế lượng (Y - Z)

request sẽ được Facebook đưa vào hàng đợi. Và trong khi lượng request thừa

đó chưa được xử lý thì attacker đã gửi thêm một lượng lớn request khác tới.

54



TRƯỜNG CAO ĐẲNG NGHỀ iSPACE



240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM

Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn

Tel: (848) 6267 8999 - Fax: (848) 6283 7867



Khi số lượng request lớn thì Facebook buộc phải dùng tới nhiều server để cùng

xử lý mớ request này. Lúc này mục tiêu sẽ phải đối mặt với cuộc tấn công từ rất

nhiều server khác nhau.

-



Lợi thế về mặt địa chỉ IP: Rõ ràng khi Facebook phải huy động một lượng lớn

server để xử lý thì số lượng địa chỉ IP nguồn sẽ tăng, do đó việc cản lọc dựa

trên địa chỉ IP sẽ bị hạn chế.



-



Lợi thế về số lượng: Giả sử có một ai đó gắn đoạn HTML sau vào một trang

web có lượng truy cập cao thì khi đó Facebook sẽ nuốt trơi băng thơng của bạn

trong nháy mắt.













4.1.4.3. Cản lọc bằng ModSecurity.

Để cản lọc loại hình tấn công Pingback, ta thấy đặc điểm quan trọng nhất là phần

User-Agent của gói HTTP ln có tên và phiên bản Wordpress cùng với chuỗi

“pingback”. Như vậy phần signature của Wordpress pingback chính là chuỗi

“wordpress.*pingback from” trong User-Agent header (Lưu ý: signature “wordpress|

pingback” hay “wordpress” có thể sẽ chặn nhầm các tác vụ cronjob của Wordpress).

Ta thêm rule sau vào file /etc/modsecurity/modsecurity.conf

SecRule REQUEST_HEADERS:User-Agent "(wordpress.*pingback from)"

"phase:1,log,id:1025,msg:'Wordpress pingback DDoS',

t:lowercase,exec:/etc/modsecurity/denyhost.sh,deny,status:403"

Còn đối với kiểu tấn cơng bằng Facebook, trong phần UserAgent lại có chuỗi

“facebookexternalhit”, ta cản lọc tương tự Pingback.

SecRule REQUEST_HEADERS:User-Agent "(facebookexternalhit)"

"phase:1,log,id:1026,msg:'Facebook DDoS',

t:lowercase,exec:/etc/modsecurity/denyhost.sh,deny,status:403"



55



TRƯỜNG CAO ĐẲNG NGHỀ iSPACE



240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM

Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn

Tel: (848) 6267 8999 - Fax: (848) 6283 7867



Hình 36: Cấu hình ModSecurity.

Trong các rule trên, có một action là exec có nhiệm vụ thực thi bash script

/etc/modsecurity/denyhost.sh . Script này là một script đơn giản có chức năng ghi

nhận IP tấn cơng vào file /proc/net/xt_recent/MODSEC. MODSEC này chính là một

bảng mà ta đã định nghĩa qua module recent của iptables. Tất cả các địa chỉ IP nằm

trong bảng này sẽ không được gửi dữ liệu đến server trong vòng 5 ngày. Nội dung file

denyhost.sh như sau:



Hình 37: Nội dung file denyhost.sh

Lưu ý là file /proc/net/xt_recent/MODSEC và /etc/modsecurity/denyhost.sh cần

được chmod 777.

4.1.5. Cài đặt và cấu hình Monit.

Đối với phiên bản Ubuntu 14.04 thì đã có sẵn dịch vụ Upstart có khả năng tự khởi động

lại dịch vụ MySQL khi dịch vụ bị crash nên MySQL trên Database server ta khơng cần

cấu hình gì thêm. PHP-Fpm trên Web server cũng vậy. Tuy nhiên Upstart lại không hoạt

động tốt với Apache nên ta cần cài đặt thêm Monit để khởi động lại Apache nếu như

Apache bị crash.

Cài đặt Monit:

# sudo apt-get install monit



56



TRƯỜNG CAO ĐẲNG NGHỀ iSPACE



240 Võ Văn Ngân, Phường Bình Thọ, Quận Thủ Đức, TpHCM

Website: www.ispace.edu.vn Email: ispace@ispace.edu.vn

Tel: (848) 6267 8999 - Fax: (848) 6283 7867



Hình 38: Cài đặt dịch vụ Monit.

Điều chỉnh cấu hình:

# vi /etc/monit/monitrc

Tìm đến các dòng sau và bỏ dấu comment:



Hình 39: Cấu hình dịch vụ Monit.

Thêm mã khởi động Apache cho Monit vào cuối file:



Hình 40: Giám sát Apache với Monit.

Khởi động Monit và các dịch vụ được monitor:

# monit

# monit start all

Kiểm tra trạng thái:

# monit status

57



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Discard là dịch vụ ứng dụng tiêu hủy bất cứ gói tin nào đi vào cổng dịch vụ ấy. Nó tương tự như /dev/null cho stdin, stdout và stderr nhưng đặc biệt dành cho internet protocols (TCP và UDP). Dịch vụ này có sẵn trên hầu hết các hệ điều hành Unix và Linux v

Tải bản đầy đủ ngay(0 tr)

×