Bài viết giúp bạn phát hiện VPS/Server bị tấn công DDOS. Nếu cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 hoặc email về support@vinahost.vn.
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
2.1 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.
2.2 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ị DDoS hay không.