Professional Documents
Culture Documents
Mục tiêu: Cung cấp học viên khái niệm cơ bản về tấn công từ chối dịch vụ/từ chối
dịch vụ phân tán, các kỹ thuật thực hiện tấn công, phương pháp phát hiện và đề
xuất phương án ngăn chặn tấn công từ chối dịch vụ.
Nội dung thực hành: Mô phỏng tấn công và xây dựng giải pháp phòng chống.
Những dạng tấn công được đề cập trong nội dung bài thực hành gồm:
- Tấn công quét cổng
- Tấn công SYN Flood
- Tấn công Ping of Death
- Tấn công Slowloris
Theo thống kê của IMPERVA, SYN Flood là hình thức tấn công từ chối dịch vụ
phổ biến nhất, chiếm 94,6% các cuộc tấn công DDoS trong năm 2020. Tiếp theo
đó là Ping of Death và Slowloris. Tuy nhiên, học viên được khuyến khích thử
nghiệm cũng như đề xuất giải pháp phòng chống một số dạng tấn công từ chối dịch
vụ khác như NTP Amplification, HTTP Flood, DNS Amplification.
Mạng WAN Phân vùng DMZ
10.0.1.x/24 10.0.2.1
10.0.1.1:8080 → 10.0.2.2:80
Hình 1. Mô hình triển khai hệ thống (Bài thực hành tấn công từ chối dịch vụ)
I. Mô hình triển khai hệ thống và tổ chức thực hành
Môi hình bài thực hành trong hệ thống được thiết lập gồm 03 máy ảo như minh
họa tại Hình 1. Máy tấn công cài đặt hệ điều hành Kali Linux với đầy đủ công cụ
như quét cổng, hping3 và tấn công slowloris. Máy thứ 2 được đặt trong phân vùng
mạng DMZ, đóng vai trò là máy chủ cung cấp dịch vụ. Ngoài ra còn một máy
pfSense, có nhiệm vụ thu thập, phát hiện, cảnh báo và ngăn chặn tấn công từ bên
ngoài. Mỗi nội dung thực hành được thực hiện bởi 06 học viên, chia thành 02
nhóm:
- Red team: Thực hiện tấn công DoS vào máy chủ dịch vụ.
- Blue team: Đảm bảo dịch vụ luôn hoạt động và tài nguyên hệ thống không
bị chiếm dụng.
II. Nội dung thực hành
Chuẩn bị, khảo sát và tìm hiểu hệ thống bài thực hành
Các công cụ cần tìm hiểu để thực hiện bài thực hành gồm hping3, Saddam (DDoS
Amplification Tools), top và iftop.
1.1. Kết nối tới máy thực hành
Các kịch bản được xây dựng trên hệ thống ảo hóa của phòng thí nghiệm. Học viên
cần thực hiện truy cập từ xa vào các máy ảo để tiến hành các thao tác:
- Bước 1: Nhận địa chỉ IP của máy thực hành từ hướng dẫn.
- Bước 2: Đặt IP tĩnh cho máy đang dùng cùng mạng với máy thực hành.
- Bước 3: Mở tiện ích Remote Desktop Connection. Điền địa chỉ IP của máy
cần truy cập từ xa và nhấn Connect. Nếu xuất hiện thông báo cảnh báo, chọn
Yes để bỏ qua.
- Bước 4: Điền thông tin tài khoản truy cập máy ảo và chọn OK.
Thông tin về giao diện mạng mạng (Sử dụng lệnh ip a):
1.3. Giám sát gói tin vào/ra tường lửa pfSense với Wireshark
- Yêu cầu: Máy tính dùng để thu thập lưu lượng cài đặt hệ điều hành Linux và
phần mềm Wireshark.
- Bước 1: Bật dịch vụ SSH trên tường lửa pfSense bằng cách chọn mục 14 trên
giao diện pfSense như minh họa tại Hình 2.
Như minh họa tại Hình 4, phần mềm Wireshark bắt được gói tin địa chỉ 10.0.2.1
và thực hiện giám sát cổng em0 (ứng với mạng WAN)
Hình 3. Tạo và gửi khóa từ máy thu thập đến tường lửa pfSense
Hình 4. Minh họa giám sát lưu lượng từ pfSense với Wireshark
Hình 10. Sử dụng Wireshark để phát hiện tấn công SYN flood
sysctl -w net.ipv4.tcp_syncookies=1
- Bước 2: Kiểm tra log để thấy cảnh báo tấn công SYN Flood đã xảy ra
tail -f /var/log/messages
b) Sử dụng Proxy
Chỉ chuyển tiếp các kết nối TCP đã được thiết lập tới máy mục tiêu.
Tấn công Ping of Death
4.1. Nhận diện tấn công
Trên tường lửa thấy lưu lượng mạng tăng bất thường từ các địa chỉ ngẫu nhiên.
Có thể tải tệp tin lưu lượng pcap của tường lửa xuống để phân tích.
- Nhận xét: Nhiều gói tin ICMP phân mảnh từ một gói tin ICMP có kích thước
lớn, nội dung gói tin gồm là các ký tự vô nghĩa.
4.2. Ngăn chặn tấn công
Cấu hình tường lửa chặn ICMP. Sử dụng Snort chặn ICMP bị phân mảnh có kích
thước lớn.
alert icmp any any -> any any (msg:"Ping of Death Detected"; dsize:>1000;
itype:8; icode:0; detection_filter:track by_src, count 30, seconds 1;
sid:2000004; classtype:denial-of-service; rev:3;)
Có thể thấy thấy địa chỉ 192.168.31.128 có số lượng connection cao bất thường
(>300). Trường hợp dịch vụ bị sập, kiểm tra tệp tin /var/log/apache2/error.log.
Trong trường hợp này, error.log có thông báo tiến trình xử lý vượt ngưỡng
MaxRequestWorkers.
5.2. Ngăn chặn tấn công
a) Sử dụng mod_antiloris
- Bước 1: Tải về têp tin mod_antiloris.so và cài đặt.
▪ Bước 1.1: Sao chép mod_antiloris.so tới thư mục Apache modules
(/usr/lib64/apache2/modules/).
▪ Bước 1.2: Thêm dòng vào tệp tin cấu hình Apache (httpd.conf hoặc kiểu
Included like /etc/apache2/conf.modules.d/mod_antiloris.conf):
LoadModule antiloris_module modules/mod_antiloris.so
- Bước 2: Cấu hình mod_antiloris
Tham số Mặc Mô tả Phiên
định bản
IPTotalLimit 30 Số kết nối đồng thời (bất kỳ trạng thái nào) >=
mỗi địa chỉ IP tối đa. Nếu đặt bằng 0 giới 0.7
hạn này không được áp dụng. Giới hạn này
được ưu tiên hơn các giới hạn còn lại.
IPOtherLimit 10 Số kết nối đồng thời (ở trạng thái idle) mỗi >=
địa chỉ IP tối đa. Nếu đặt bằng 0 giới hạn 0.6
này không được áp dụng.
WhitelistIPs none Danh sách địa chỉ, dải mạng IPv4, IPv6 >=
(ngăn cách bởi dấu phẩy) không bị giới 0.7
hạn.
b) Sử dụng IPtables
Trên tường lửa (pfsense hay iptables của máy chủ dịch vụ web), cấu hình ngưỡng
số kết nối (rate-limit) cho từng địa chỉ IP. VD:
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 --
connlimit-mask 20 -j DROP
Học viên hãy điều chỉnh 2 tham số cho phù hợp cấu hình và nhu cầu hệ thống.