Phân loại tấn công DDoS

Một phần của tài liệu Nghiên cứu và xây dựng hệ quản lý luật hỗ trợ phát hiện tấn công mạng cho mã nguồn mở OSSEC (Trang 48)

Nhìn chung, có rất nhiều cách để phân loại các kiểu tấn công DDoS nhưng theo em cách phân loại theo mục đích tấn công là khá đầy đủ, đơn giản và dễ hiểu.

Dưới đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS dựa theo mục đích tấn công: làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống.

Hình 3.6: Phân loại các kiểu tấn công DDoS

3.2.1.1 Tấn công làm cạn kiệt băng thông

Tấn công làm cạn kiệt băng thông (BandWith Depletion Attack) được thiết kế nhằm làm tràn ngập mạng mục tiêu với những traffic không cần thiết, với mục địch làm giảm tối thiểu khả năng của các traffic hợp lệ đến được hệ thống cung cấp dịch vụ của mục tiêu thông qua các Botnet.

Có hai loại tấn công làm cạn kiệt băng thông :

Flood attack: Điều khiển các Agent gửi một lượng lớn traffic đến hệ

thống dịch vụ của mục tiêu, làm dịch vụ này bị hết khả năng về băng thông.

Trong phương pháp này, các Agent sẽ gửi một lượng lớn IP traffic làm hệ thống dịch vụ của mục tiêu bị chậm lại, hệ thống bị treo hay đạt đến trạng thái hoạt động bão hòa. Làm cho những người dùng thực sự của hệ thống không sử dụng được dịch vụ.

Ta có thể chia Flood Attack thành hai loại:

- UDP Flood Attack: do tính chất connectionless của UDP, hệ thống

nhận UDP message chỉ đơn giản nhận vào tất cả các packet mình cần phải xử lý. Một lượng lớn các UDP packet được gửi đến hệ thống dịch vụ của mục tiêu sẽ đẩy toàn bộ hệ thống đến ngưỡng tới hạn. Các UDP packet này có thể được gửi đến nhiều port tùy ý hay chỉ duy nhất một port. Thông thường là sẽ gửi đến nhiều port làm cho hệ thống mục tiêu phải căng ra để xử lý phân hướng cho các packet này. Nếu port bị tấn công không sẵn sàng thì hệ thống mục tiêu sẽ gửi ra một ICMP packet loại “destination port unreachable”. Thông thường các Agent software sẽ dùng địa chỉ IP giả để che giấu hành tung, cho nên các packet trả về do không có port xử lý sẽ dẫn đến một địa chỉ IP khác. UDP Flood attack cũng có thể làm ảnh hưởng đến các kết nối xung quanh mục tiêu do sự hội tụ của packet diễn ra rất mạnh.

- ICMP Flood Attack: được thiết kế nhằm mục đích quản lý mạng

cũng như định vị thiết bị mạng. Khi các Agent gửi một lượng lớn ICMP ECHO REQUEST đến hệ thống mục tiêu thì hệ thống này phải reply một lượng tương ứng Packet để trả lời, sẽ dẫn đến nghẽn đường truyền. Tương tự trường hợp trên, địa chỉ IP của các Agent có thể bị giả mạo.

Amplification attack: Điều khiển các Agent hay Client tự gửi packet đến

một địa chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửi packet đến hệ thống dịch vụ của mục tiêu. Phương pháp này làm gia tăng traffic không cần thiết, làm suy giảm băng thông của mục tiêu.

Amplification Attack nhắm đến việc sử dụng các chức năng hỗ trợ địa chỉ IP broadcast của các router nhằm khuyếch đại và hồi chuyển cuộc tấn công. Chức năng này cho phép bên gửi chỉ định một địa chỉ IP broadcast cho toàn subnet bên nhận thay vì nhiều địa chỉ. Router sẽ có nhiệm vụ gửi đến tất cả địa chỉ IP trong subnet đó packet broadcast mà nó nhận được.

Attacker có thể gửi broadcast packet trực tiếp hay thông qua một số Agent nhằm làm gia tăng cường độ của cuộc tấn công. Nếu attacker trực tiếp gửi packet, thì có thể lợi dụng các hệ thống bên trong broadcast network như một Agent.

Có thể chia amplification attack thành hai loại, Smurf và Fraggle attack:

- Smurf attack: trong kiểu tấn công này attacker gửi packet đến

network amplifier (router hay thiết bị mạng khác hỗ trợ broadcast), với địa chỉ của nạn nhân. Thông thường những packet được dùng là ICMP ECHO REQUEST, các packet này yêu cầu yêu cầu bên nhận phải trả lời bằng một ICMP ECHO REPLY packet. Network amplifier sẽ gửi đến ICMP ECHO REQUEST packet đến tất cả các hệ thống thuộc địa chỉ broadcast và tất cả các hệ thống này sẽ REPLY packet về địa chỉ IP của mục tiêu tấn công Smuft Attack. [7]

- Fraggle Attack: tương tự như Smuft attack nhưng thay vì dùng

ICMP ECHO REQUEST packet thì sẽ dùng UDP ECHO packet gửi đến mục tiêu. Thật ra còn một biến thể khác của Fraggle attack sẽ gửi đến UDP ECHO packet đến chargen port (port 19/UNIX) của mục tiêu, với địa chỉ bên gửi là echo port (port 7/UNIX) của mục tiêu, tạo nên một vòng lặp vô hạn. Attacker phát động cuộc tấn công bằng một ECHO REQUEST với địa chỉ bên nhận là một địa chỉ broadcast, toàn bộ hệ thống thuộc địa chỉ này lập tức gửi REPLY đến port echo của nạn nhân, sau đó từ nạn nhân một ECHO REPLY lại gửi trở về địa chỉ broadcast, quá trình cứ thế tiếp diễn. Đây chính là nguyên nhân Flaggle Attack nguy hiểm hơn Smuft Attack rất nhiều.[5]

3.2.1.2 Tấn công làm cạn kiệt tài nguyên

Tấn công làm cạn kiệt tài nguyên (Resource Deleption Attack) là kiểu tấn công trong đó Attacker gửi những packet dùng các protocol sai chức năng thiết kế, hay gửi những packet với dụng ý làm tắt nghẽn tài nguyên mạng làm cho các tài nguyên này không phục vụ những người dùng thông thường khác được. Nổi bật là kiểu tấn công SYN Flooding, được biết đến từ 1996.[6]

Protocol Exploit Attack

- TCP SYN Attack: Transfer Control Protocol hỗ trợ truyền nhận với

độ tin cậy cao nên sử dụng phương thức bắt tay giữa bên gửi và bên nhận trước khi truyền dữ liệu. Bước đầu tiên, bên gửi gửi một SYN REQUEST packet (Synchronize). Bên nhận nếu nhận được SYN REQUEST sẽ trả lời bằng SYN/ACK packet. Bước cuối cùng, bên gửi sẽ truyên packet cuối cùng ACK và bắt đầu truyền dữ liệu.

Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK nhưng không nhận được ACK packet cuối cùng sau một khoảng thời gian quy định thì nó sẽ gửi lại SYN/ACK cho đến hết thời gian timeout. Toàn bộ tài nguyên hệ thống “dự trữ” để xử lý phiên giao tiếp nếu nhận được ACK packet cuối cùng sẽ bị “phong tỏa” cho đến hết thời gian timeout.

Nắm được điểm yếu này, attacker gửi một SYN packet đến nạn nhân với địa chỉ bên gửi là giả mạo, kết quả là nạn nhân gửi SYN/ACK đến một địa chỉ khác và sẽ không bao giờ nhận được ACK packet cuối cùng, cho đến hết thời gian timeout nạn nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống. Tuy nhiên, nếu lượng SYN packet giả mạo đến với số lượng nhiều và dồn dập, hệ thống của nạn nhân có thể bị hết tài nguyên.

- PUSH và ACK Attack: Trong TCP protocol, các packet được chứa (adsbygoogle = window.adsbygoogle || []).push({});

trong buffer, khi buffer đầy thì các packet này sẽ được chuyển đến nơi cần thiết. Tuy nhiên, bên gửi có thể yêu cầu hệ thống unload buffer trước khi buffer đầy bằng cách gửi một packet với cờ PUSH và ACK mang giá trị là 1. Những packet này làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong TCP buffer ngay lập tức và gửi một ACK packet trở về khi thực hiện xong điều này, nếu quá trình được diễn ra liên tục với nhiều Agent, hệ thống sẽ không thể xử lý được lượng lớn packet gửi đến và sẽ bị treo.

Malformed Packet Attack

Malformed Packet Attack là cách tấn công dùng các Agent để gửi các packet có cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân bị treo.

Có hai loại Malformed Packet Attack:

- IP address attack: dùng packet có địa chỉ gửi và nhận giống nhau làm

cho hệ điều hành của nạn nhân không xử lý nổi và bị treo.

- IP packet options attack: ngẫu nhiên hóa vùng OPTION trong IP

packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ thống của nạn nhân phải tốn thời gian phân tích, nếu sử dụng số lượng lớn Agent có thể làm hệ thống nạn nhân hết khả năng xử lý.

Một phần của tài liệu Nghiên cứu và xây dựng hệ quản lý luật hỗ trợ phát hiện tấn công mạng cho mã nguồn mở OSSEC (Trang 48)