Hướng dẫn kiểm tra VPS/Server bị tấn công DDOS

1. Định nghĩa về tấn công DoS.

Tấn công DoS là một dạng tấn công vào mạng, làm nghẽn mạng với những với những lưu lượng băng thông không sử dụng, Ngoài ra DoS còn tấn công vào những ứng dụng, tài nguyên của hệ thống dẫn đến hệ thống không có khả năng phục vụ người dùng.

2. Các dạng tấn công DoS cơ bản : trong bài viết này mình chỉ đề cập tới vài dạng tấn công DoS đơn giản.

A) TCP/SYN Flooding

Bước 1: Khách hàng gửi một TCP SYN packet đến cổng dịch vụ của máy chủ
Khách hàng -> SYN Packet -> Máy chủ
Bước 2 : Máy chủ sẽ phản hồi lại khách hàng bằng 1 SYN/ACK Packet và chờ nhận một 1 ACK packet từ khách hàng
Máy chủ -> SYN/ACK Packet -> Khách hàng
Bước 3: Khách hàng phản hồi lại Máy chủ bằng một ACK Packet và việc kết nối hoàn tất Khách hàng và máy chủ thực hiện công việc trao đổi dữ liệu với nhau.
Khách hàng -> ACK Packet -> Máy chủ

Trong trường hợp Hacker thực hiện việc SYN Flooding bằng cách gửi tới tấp, hàng loạt TCP SYN packet đến cổng dịch vụ của máy chủ sẽ làm máy chủ bị quá tải và không còn khả năng đáp ứng được nữa.

B) HTTP Get or Post Flooding.

Http flood là một kiển tấn công không sử dụng các gói dữ liệu bị thay đổi hoặc giả mạo mà tấn công  trực tiếp vào máy chủ web hoặc ứng dụng. Http flood tấn công với mục đích làm máy chủ web phân bố tài nguyên tối đa dẫn đến treo hoặc làm chậm các ứng dụng.
3. Phát hiện tấn công DoS.
Dấu hiệu đầu tiên để xác định tấn công DoS dưa trên các kiến thức là ở trên là server của khách hàng đột nhiên load cao, mọi xử lý của server đều chậm chạp, truy cập vào các dịch vụ khó khăn, Khách hàng có thể thử các cách dưới đây để phát hiện tấn công DoS :
– Dùng lệnh top -c để xác định user sử dụng nhiều tài nguyên (Đối với cpanel server, hoặc các server có cấu hình vhost dựa trên các user), tiếp tục truy cập vào access log của vhost tương ứng để xác định các ip truy cập nhiều.
Ví dụ :
183.80.63.252 – – [13/May/2012:18:19:48 -0700] “GET /@4rum/index.php HTTP/1.1″ 403 301 “-”“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)”
183.80.63.252 – – [13/May/2012:18:19:48 -0700] “GET /@4rum/index.php HTTP/1.1″ 403 301 “-”“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)”
183.80.63.252 – – [13/May/2012:18:19:48 -0700] “GET /@4rum/index.php HTTP/1.1″ 403 301 “-”“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)”
183.80.63.252 – – [13/May/2012:18:19:48 -0700] “GET /@4rum/index.php HTTP/1.1″ 404 297 “-”“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)”
183.80.63.252 – – [13/May/2012:18:19:48 -0700] “GET /@4rum/index.php HTTP/1.1″ 403 301 “-”“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)”
Với đoạn log như trên khách hàng có thể xác định được IP DoS, khách hàng có thể bị tấn công vào cùng vào một vị trí nhưng nhiều ip khách nhau khách hàng nên chú ý tới các user-agent để tránh nhầm lẫn với ip thành viêc thục.
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
– Dùng lệnh “netstat -anp |grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n” để lấy danh sách các ip kết nối nhiều tới server, hoặc “netstat -n | grep :80 |wc -l” để lấy số lương kết nối vào cổng 80, hoặc lệnh “netstat -n | grep :80 | grep SYN |wc -l” để lấy số lượng kết nối tới cổng 80 ở trạng thái SYN. Với các thông số trả về trên khách hàng phải đối chiếu với lượng truy cập hằng ngày và trạng thái server để xác định server có bị DoS hay không.

Giới thiệu về tác giả

Reply