Các cách thức tấn công từ chối dịch vụ (Phần 1)

1. Tấn công thông qua kết nối

Tấn công bằng cách gây lụt - SYN Flood Attack

- Được xem là một trong những kiểu tấn công DoS kinh điển nhất. Lợi dụng sơ hở của thủ tục TCP khi “bắt tay ba chiều”, mỗi khi client (máy khách) muốn thực hiện kết nối (connection) với server (máy chủ) thì nó thực hiện việc bắt tay ba lần (three – ways handshake) thông qua các gói tin (packet).

 

Bước 1: Client (máy khách) sẽ gửi các gói tin (packet chứa SYN = 1) đến máy chủ để yêu cầu kết nối.

Bước 2: Khi nhận được gói tin này, server sẽ gửi lại gói tin SYN/ACK để thông báo cho client biết là nó đã nhận được yêu cầu kết nối và chuẩn bị tài nguyên cho việc yêu cầu này. Server sẽ giành một phần tài nguyên hệ thống như bộ nhớ đệm (cache) để nhận và truyền dữ liệu. Ngoài ra, các thông tin khác của client như địa chỉ IP và cổng (port) cũng được ghi nhận.

Bước 3: Cuối cùng, client hoàn tất việc bắt tay ba lần bằng cách hồi âm lại gói tin chứa ACK cho server và tiến hành kết nối.

Hình 1. Quá trình bắt tay ba bước trong giao thức TCP

- Do TCP là thủ tục tin cậy trong việc giao nhận (end- to- end) nên trong lần bắt tay thứ hai,server gửi các gói tin SYN/ACK trả lời lại client mà không nhận lại được hồi âm của client để thực hiện kết nối thì nó vẫn bảo lưu nguồn tài nguyên chuẩn bị kết nối đó và lập lại việc gửi gói tin SYN/ACK cho client đến khi nào nhận được hồi đáp của máy client.

- Điểm mấu chốt là ở đây là làm cho client không hồi đáp cho Server. Và có hàng nhiều, nhiều client như thế trong khi server vẫn “ngây thơ” lặp lại việc gửi packet đó và giành tài nguyên để chờ “người về” trong lúc tài nguyên của hệ thống là có giới hạn! Các hacker tấn công sẽ tìm cách để đạt đến giới hạn đó.


Hình 2. Tấn công giả mạo trong quá trình gửi gói tin TCP

- Nếu quá trình đó kéo dài, server sẽ nhanh chóng trở nên quá tải, dẫn đến tình trạng crash (treo) nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứng được. Có thể hình dung quá trình này cũng giống hư khi máy tính cá nhân (PC) hay bị “treo” khi mở cùng lúc quá nhiều chương trình cùng lúc vậy .

- Thông thường, để giả địa chỉ IP gói tin, các hacker có thể dùng Raw Sockets (không phải gói tin TCP hay UDP) để làm giả mạo hay ghi đè giả lên IP gốc của gói tin. Khi một gói tin SYN với IP giả mạo được gửi đến server, nó cũng như bao gói tin khác, vẫn hợp lệ đối với server và server sẽ cấp vùng tài nguyên cho đường truyền này, đồng thời ghi nhận toàn bộ thông tin và gửi gói SYN/ACK ngược lại cho Client. Vì địa chỉ IP của client là giả mạo nên sẽ không có client nào nhận được gói tin SYN/ACK này để hồi đáp cho máy chủ. Sau một thời gian không nhận được gói tin ACK từ client, server nghĩ rằng gói tin bị thất lạc nên lại tiếp tục gửi tiếp SYN/ACK, cứ như thế, các kết nối (connections) tiếp tục mở.

Hình 3. Máy chủ TCP phản hồi liên tục cho gói tin giả mạo

 
- Nếu như kẻ tấn công tiếp tục gửi nhiều gói tin SYN đến server thì cuối cùng server đã không thể tiếp nhận thêm kết nối nào nữa, dù đó là các yêu cầu kết nối hợp lệ. Việc không thể phục nữa cũng đồng nghĩa với việc máy chủ không tồn tại. Việc này cũng đồng nghĩa với xảy ra nhiều tổn thất do ngưng trệ hoạt động, đặc biệt là trong các giao dịch thương mại điện tử trực tuyến.

- Đây không phải là kiểu tấn công bằng đường truyền cao, bởi vì chỉ cần một máy tính nối internet qua ngã dial-up đơn giản cũng có thể tấn công kiểu này (tất nhiên sẽ lâu hơn chút).

Thêm bình luận

Plain text

  • Không được dùng mã HTML.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.