1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng giải pháp chống tấn công DoS

40 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Giải Pháp Chống Tấn Công DoS
Tác giả XXX
Người hướng dẫn XXX
Trường học Học Viện Kỹ Thuật Mật Mã
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Môn Học
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 40
Dung lượng 1,65 MB

Cấu trúc

  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT (4)
    • 1.1 Tổng quan về tấn công từ chối dịch vụ (4)
      • 1.1.1 Khái niệm tấn công từ chối dịch vụ (4)
      • 1.1.2 Một số kiểu tấn công phổ biến (4)
      • 1.1.3 Phân loại tấn công (5)
    • 1.2 Một số giải pháp phòng chống tấn công DoS (6)
  • CHƯƠNG 2. GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG DoS (0)
    • 2.1 Sử dụng module mod_qos cho máy chủ web apache trong phòng chống DoS tầng ứng dụng(Slowloris) (7)
      • 2.1.1 Tìm hiểu giải pháp (7)
      • 2.1.2 Ứng dụng mod_qos cho máy chủ web Apache trong phòng chống DoS tầng ứng dụng(Slowloris) (9)
    • 2.2 Xây dựng thiết bị Anti-DoS (11)
      • 2.2.1 Giải pháp (11)
      • 2.2.2 Xây dựng Anti-DoS device (21)
  • CHƯƠNG 3. KẾT QUẢ THỰC NGHIỆM (27)
    • 3.1 Tầng ứng dụng (27)
      • 3.1.1 Triển khai hệ thống (27)
      • 3.1.2 Thử nghiệm phát hiện và chống tấn công DoS (28)
    • 3.2 Tầng mạng/tầng vận chuyển (32)
      • 3.2.1 Triển khai hệ thống (32)
      • 3.2.2 Thử nghiệm phát hiện và chống tấn công DoS (34)
  • KẾT LUẬN (40)

Nội dung

CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về tấn công từ chối dịch vụ 1.1.1 Khái niệm tấn công từ chối dịch vụ Tấn công từ chối dịch vụ DoS là một loại tấn công nhằm mục đích làm cho thiết bị hoặc

CƠ SỞ LÝ THUYẾT

Tổng quan về tấn công từ chối dịch vụ

1.1.1 Khái niệm tấn công từ chối dịch vụ

Tấn công từ chối dịch vụ (DoS) là một loại tấn công nhằm mục đích làm cho thiết bị hoặc tài nguyên mạng không khả dụng cho người dùng hợp pháp bằng cách làm gián đoạn tạm thời hoặc vô thời hạn các dịch vụ của máy chủ Tấn công từ chối dịch vụ thường được thực hiện bằng cách áp đảo hoặc làm ngập lụt thiết bị, tài nguyên được nhắm tới với các yêu cầu thừa nhằm cố gắng làm quá tải hệ thống và ngăn một số hoặc tất cả các yêu cầu hợp pháp được thực hiện Một cuộc tấn công DoS được đặc trưng bởi việc sử dụng một thiết bị duy nhất để khởi động cuộc tấn công

1.1.2 Một số kiểu tấn công phổ biến

SYN Flood khai thác điểm yếu trong chuỗi kết nối TCP, được gọi là bắt tay ba chiều Máy chủ sẽ nhận được một thông điệp đồng bộ (SYN) để bắt đầu "bắt tay" Máy chủ nhận tin nhắn bằng cách gửi cờ báo nhận (ACK) tới máy lưu trữ ban đầu, sau đó đóng kết nối Tuy nhiên, trong một SYN Flood, tin nhắn giả mạo được gửi đi và kết nối không đóng dẫn đến dịch vụ sập

User Datagram Protocol (UDP) là một giao thức mạng không session Một UDP Flood nhắm đến các cổng ngẫu nhiên trên máy tính hoặc mạng với các gói tin UDP Máy chủ kiểm tra ứng dụng tại các cổng đó nhưng không tìm thấy ứng dụng nào

HTTP Flood gần giống như các yêu cầu GET hoặc POST hợp pháp được khai thác bởi một hacker Nó sử dụng ít băng thông hơn các loại tấn công khác nhưng nó có thể buộc máy chủ sử dụng các nguồn lực tối đa

Slowloris cho phép kẻ tấn công sử dụng nguồn lực tối thiểu trong một cuộc tấn công và các mục tiêu trên máy chủ web Khi đã kết nối với mục tiêu mong muốn, Slowloris giữ liên kết đó mở càng lâu càng tốt với HTTP tràn ngập

Application Level Attacks khai thác lỗ hổng trong các ứng dụng Mục tiêu của loại tấn công này không phải là toàn bộ máy chủ, mà là các ứng dụng với những điểm yếu được biết đến

1.1.3.1 Dựa trên phương pháp tấn công

− Tấn công tràn bộ nhớ đệm (Buffer overflow attacks)

Tấn công tràn bộ nhớ đệm có thể khiến máy sử dụng tất cả dung lượng ổ cứng, bộ nhớ RAM hoặc CPU time Hình thức khai thác này thường dẫn đến sự chậm chạp, các sự cố hệ thống hoặc các hành vi có hại khác dẫn đến việc từ chối dịch vụ

− Tấn công gây ngập lụt (Flooding attacks)

Bằng cách bão hòa một máy chủ được nhắm tới với số lượng gói tin quá lớn, tác nhân độc hại có thể làm bão hòa dung lượng máy chủ, dẫn đến từ chối dịch vụ Để một cuộc tấn công DoS flood thành công, tác nhân độc hại phải có nhiều băng thông khả dụng hơn mục tiêu

1.1.3.2 Dựa trên giao thức mạng

− Tấn công tầng mạng hoặc giao vận Ở dạng này, các gói tin TCP, UDP và ICMP được sử dụng để thực hiện tấn công Mục tiêu tấn công nhắm tới nằm ở tầng ba và tầng bốn (network layer/transport layer) trong mô mình OSI

− Tấn công tầng ứng dụng Ở dạng này, các tấn công thường hướng đến các dịch vụ thông dụng ứng với các giao thức tầng ứng dụng như HTTP, DNS và SMTP.

Một số giải pháp phòng chống tấn công DoS

− Nâng cấp phần cứng thiết bị

Là một giải pháp đơn giản nhất để chống tất công DoS Việc nâng cấp thiết bị làm tăng tính khả dụng cho hệ thống đồng nghĩa với việc hacker sẽ khó khăn hơn nếu muốn tấn công DoS dựa vào cơ chế Flood attacks Nhưng giải pháp này đòi hỏi chi phí cao cũng như không giải quyết triệt để vấn đề

− Lọc gói tin vào/ra hệ thống

Sử dụng tính năng lọc gói tin của các thiết bị như router/firewall để loại bỏ các gói tin không mong muốn, giảm lượng lưu thông trên mạng cũng như tránh được các giói tin độc hại được truyền vào trong hệ thống

− Cập nhật các bản vá hệ thống thường xuyên

Nếu bị tấn công do lỗi của phần mềm hay thiết bị thì cần phải nhanh chóng cập nhật các bản sửa lỗi cho hệ thống đó hoặc thay thế

− Sử dụng thiết bị chuyên dụng

Hiện nay, rất nhiều các công ty công nghệ đã và đang tung ra thị trường các sản phẩm thiết bị anti DoS/DDoS Việc chi một khoản tiền để được các tổ chức có chuyên môn tham gia bảo vệ hệ thống của mình là hoàn toàn hợp lý

− Hệ thống dự phòng Đảm bảo luôn có các thành phần dự phòng trong hệ thống giúp tránh được tình trạng dịch vụ/hệ thống bị sập khiến người dùng không thể truy cập và sử dụng dịch vụ.

GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG DoS

Sử dụng module mod_qos cho máy chủ web apache trong phòng chống DoS tầng ứng dụng(Slowloris)

Mod_qos là mô-đun chất lượng dịch vụ (QoS) cho máy chủ Apache HTTP,triển khai các cơ chế kiểm soát,có thể cung cấp mức độ ưu tiên khác nhau cho các yêu cầu khác nhau

Máy chủ web chỉ có thể phục vụ một số lượng hạn chế các yêu cầu đồng thời QoS được sử dụng để đảm bảo rằng các tài nguyên quan trọng luôn sẵn sàng khi máy chủ tải cao Mod_qos được sử dụng để từ chối các yêu cầu đối với các tài nguyên không quan trọng trong khi cấp quyền truy cập vào các ứng dụng quan trọng hơn Cũng có thể vô hiệu hóa các hạn chế truy cập, ví dụ, đối với các yêu cầu với các tài nguyên rất quan trọng hoặc đối với những người dùng rất quan trọng

− Các cơ chế kiểm soát có sẵn ở các cấp độ sau:

+ Kiểm soát mức yêu cầu: mod_qos kiểm soát số lượng yêu cầu đồng thời đối với không gian tên (URL) Nó được sử dụng để xác định các mức độ ưu tiên khác nhau cho các trang hoặc ứng dụng khác nhau trong một máy chủ web

+ Kiểm soát mức độ kết nối: mod_qos kiểm soát số lượng kết nối TCP tới máy chủ web Điều này giúp hạn chế các kết nối đến từ một ứng dụng khách hoặc từ các mạng không xác định, để giảm số lượng tối đa các kết nối đồng thời tới một máy chủ ảo hoặc để triển khai các cài đặt duy trì HTTP động

+ Kiểm soát mức băng thông: điều chỉnh các yêu cầu / phản hồi đối với một số URL nhất định trên máy chủ web

+ Dòng yêu cầu chung và bộ lọc tiêu đề loại bỏ các URL yêu cầu hoặc tiêu đề HTTP đáng ngờ

− Các trường hợp sử dụng mod_qos:

Trường hợp sử dụng đầu tiên cho thấy cách mod_qos có thể tránh ngừng dịch vụ của máy chủ web do phản hồi chậm của một ứng dụng Trong trường hợp một ứng dụng (ví dụ A) rất chậm, các yêu cầu sẽ đợi cho đến khi hết thời gian chờ xảy ra Do nhiều yêu cầu đang chờ, máy chủ web hết kết nối TCP miễn phí và không thể xử lý các yêu cầu khác tới ứng dụng B hoặc

C Mod_qos giới hạn các yêu cầu đồng thời đối với một ứng dụng để đảm bảo tính khả dụng của các tài nguyên khác

Phần mở rộng HTTP 1.1 tiếp tục tồn tại,cho phép các kết nối TCP liên tục cho nhiều yêu cầu / phản hồi Điều này tăng tốc độ truy cập vào máy chủ web do lưu lượng mạng ít hơn và được tối ưu hóa Nhược điểm của các kết nối liên tục này là tài nguyên máy chủ bị chặn mặc dù không có dữ liệu nào được trao đổi giữa máy khách và máy chủ Mod_qos cho phép máy chủ hỗ trợ duy trì hoạt động miễn là có đủ kết nối miễn phí, dừng hỗ trợ duy trì hoạt động khi đạt đến ngưỡng kết nối xác định

+ Máy khách mở nhiều kết nối đồng thời

Một máy khách có thể mở nhiều kết nối TCP đồng thời để tải xuống nội dung khác nhau từ máy chủ web Mặc dù máy khách có nhiều kết nối nhưng người dùng khác có thể không truy cập được vào máy chủ vì không còn kết nối miễn phí nào cho họ Mod_qos có thể giới hạn số lượng kết nối đồng thời cho một địa chỉ nguồn IP

+ Nhiều yêu cầu đối với một URL duy nhất

Mod_qos giới hạn số lượng yêu cầu tối đa mỗi giây đối với URL này Mô- đun cũng có thể kiểm soát băng thông Chỉ cần chỉ định băng thông tối đa cho phép và moq_qos bắt đầu điều chỉnh khi cần thiết

+ Giảm thiểu các cuộc tấn công từ chối dịch vụ băng thông thấp (điển hình là slowloris) Được đề cập kĩ hơn ở phần sau

2.1.2 Ứng dụng mod_qos cho máy chủ web Apache trong phòng chống DoS tầng ứng dụng(Slowloris)

2.1.2.1 Chi tiết về kiểu tấn công Slowloris Đây là kĩ thuật tương tự như SYN flood (tạo nửa kết nối để làm cạn kiệt tài nguyên máy chủ) nhưng diễn ra ở lớp HTTP (lớp ứng dụng) Để tấn công, tin tặc gửi yêu cầu HTTP đến máy chủ, nhưng không gửi toàn bộ yêu cầu, mà chỉ gửi một phần (header) và bổ sung nhỏ giọt, để khỏi bị ngắt kết nối Với hàng trăm kết nối như vậy, tin tặc chỉ tốn rất ít tài nguyên, nhưng đủ để làm treo máy chủ, không thể tiếp nhận các kết nối từ người dùng hợp lệ

Cấu trúc của môt HTTP request:

: dòng Request-line

: Không có hoặc có thêm các header (General|Request|Entity) theo sau bởi một ký hiệu CRLF (carriage return line feed – báo hiệu trở về đầu dòng tiếp theo) Một dòng trống (VD một dòng mà không có gì ở trước CRLF) báo hiệu kết thúc phần header

: Có hoặc không có phần nội dung thông điệp

"-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0" "-"

192.168.1.40 - - [24/Aug/2021:10:51:58 +0700] "GET /?64004357733126 HTTP/1.1" 400 0 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; NET CLR 1.1.4322; NET CLR 2.0.503l3; NET CLR 3.0.4506.2152; NET CLR 3.5.30729; MSOffice 12)" "-"

Apache mở socket và nhận data từ client (3-way handshakes đã hoàn tất) cho mọi request đi vào Trong trường hợp slowloris tấn công ở đây, nó cố tình không gửi một cái CRLF để hoàn tất request header cho nên apache cứ việc chờ Trạng thái chờ này sẽ kéo dài cho đến khi timeout (theo mặc định apache hiện chờ 300 giây- 5 phút) Quá

5 phút này, socket ấy sẽ bị hủy Kẹt ở chỗ là trong vòng 5 phút ấy slowloris đã mở thêm 3000 sockets nếu không có cái gì giới hạn ở phía apache hoặc phía trước apache

Cứ thế, cứ chồng chất lên Với mặc định 150 MaxClients thì mất 15s apache sẽ không còn phục vụ được ai nữa Ưu điểm khác của Slowloris là trong suốt quá trình tấn công, do kết nối chưa hoàn chỉnh, sẽ không có thông tin gì trong log Chỉ đến khi ngưng kết nối, sẽ có hàng loạt lỗi 400 trong log do truy vấn sai

Hình 2-1 Một đoạn nội dung file access.log sau khi tấn công Slowloris kết thúc

Không phải mọi máy chủ đều bị ảnh hưởng bởi kiểu tấn công này Các máy chủ như Microsoft IIS hoặc nginx ít bị ảnh hưởng trước Slowloris

Có nhiều cách để khắc phục kiểu tấn công này, mỗi cách đều có ưu điểm riêng:

+ Không dùng Apache nữa! Nếu dùng Apache sau proxy nghịch, thì chỉ cho nghe trên cổng 127.0.0.1 hoặc các IP cục bộ

+ Giảm Timeout cho Apache Tuy nhiên cách này không mấy hiệu quả, tin tặc chỉ phải gửi thêm nhiều gói tin mà thôi

+ Giới hạn số kết nối đến Apache cho mỗi IP Có thể dùng mod_qos chẳng hạn để làm việc này

+ Giải quyết ở lớp dưới: cấu hình firewall để giới hạn số kết nối đến cổng 80 trên mỗi IP

Nếu dùng nginx làm reverse proxy, tuy nhiên nếu Apache chạy phía sau vẫn nghe trên IP public (vì còn chạy một website thử nghiệm khác, không qua proxy) nên vẫn dễ bị tấn công Việc xây dựng nginx-reverse proxy mang lại nhiều vấn đề rắc rối, đó là chi phí cho việc xây dựng server, công sức, trong khi đó chúng ta có thể giải quyết việc này rất dễ dàng bằng cách sử dụng các module có sẵn cung cấp cho máy chủ Apache điển hình là mod_qos

− QS_SrvMaxConnPerIP : được sử dụng để giới hạn các kết nối mà một IP được phép mở (quan trọng)

− MaxClients: giới hạn số lượng tối đa các kết nối TCP đang hoạt động

− QS_SrvMaxConnClose : xác định số lượng kết nối tối đa cho máy chủ (máy chủ ảo) hỗ trợ HTTP duy trì Nếu số lượng kết nối đồng thời vượt quá ngưỡng này, các kết nối TCP sẽ bị đóng sau mỗi yêu cầu Chỉ định số lượng kết nối này theo tỷ lệ phần trăm MaxClients.(ví dụ 70% giá trị MaxClients)

Xây dựng thiết bị Anti-DoS

2.2.1 Giải pháp Ý tưởng ở đây là sử dụng một thiết bị biên đứng tại rìa mạng làm Thiết bị này đứng trước các thiết bị/dịch vụ cần bảo vệ, hứng tất cả lưu lượng đi vào hệ thống Thực hiện kiểm tra các gói tin dựa trên dấu hiệu và chính sách, cuối cùng quyết định chúng có được phép đi vào hệ thống hay không

Như vậy thiết bị của ta cần đảm bảo ba yếu tố sau:

- Có khả năng định tuyến các gói tin

- Có khả năng lọc các gói tin bất thường dựa trên các dấu hiệu đã biết của một cuộc tấn công DoS

- Có khả năng thực thi các chính sách giới hạn băng thông, lưu lượng trên đường truyền do người quản trị thiết lập

Hình 2-2 Mô hình giải pháp

Khái niệm định tuyến Định tuyến là quá trình xác định đường đi tốt nhất trên một mạng máy tính để gói tin tới được đích theo một số thủ tục nhất định nào đó thông qua các nút trung gian là bộ định tuyến

Trên các hệ điều hành Server phổ biến hiện nay như CentOS, Ubuntu server, đều có thể hoạt động như một router mạng, định tuyến các gói dữ liệu IP giữa các mạng Dịch vụ router này cho phép các LAN và WAN được kết nối chéo với nhau một cách dễ dàng

Hình 2-3 Minh họa sử dụng Linux server làm thiết bị định tuyến

Berkeley Packet Filter (BPF) là một máy ảo có mục đích đặc biệt để lọc các gói mạng, đây một công nghệ được sử dụng trong một số hệ điều hành nhất định cho các 0000JIT vitual machine trong Linux kernel) Nó cung cấp giao diện thô cho data link layer, cho phép raw link-layer gửi và nhận gói tin BPF có sẵn trên hầu hết các hệ điều hành giống Unix và eBPF cho Linux và Windows

Hình 2-4 Hiệu suất của từng loại BPF

Vì nó đang chạy cùng với hạt nhân, nên có một số biện pháp giới hạn số lượng mã có thể được thực thi và những gì nó có thể làm Ví dụ, nó không thể chứa các vòng lặp (chỉ các vòng lặp bị giới hạn), có một số giới hạn các lệnh eBPF và các hàm trợ giúp Giới hạn lệnh tối đa cho mỗi chương trình được giới hạn ở 4096 lệnh BPF, có nghĩa là bất kỳ chương trình nào cũng sẽ kết thúc nhanh chóng Đối với nhân mới hơn 5.1, giới hạn này đã được nâng lên thành 1 triệu lệnh BPF eXpress Data Path

Express Data Path (XDP) là một “đường dẫn dữ liệu” hiệu suất cao dựa trên eBPF, được hợp nhất trong nhân Linux kể từ bản 4.8 XDP cho phép người dùng cài đặt các chương trình xử lý gói tin vào kernel Chương trình sẽ thực thi cho mỗi gói đến trước khi kernel thực hiện bất kỳ quá trình xử lý nào khác trên dữ liệu

Hình 2-5 Luồng đi của gói tin và hoạt động của XDP Ý tưởng đằng sau XDP là thêm một hook sớm trong đường dẫn RX của nhân kernel và để chương trình eBPF do người dùng cung cấp quyết định số phận của gói tin Hook được đặt trong trình điều khiển NIC ngay sau quá trình xử lý ngắt và trước bất kỳ phân bổ bộ nhớ nào do chính ngăn xếp mạng cần Vì vậy, tất cả điều này xảy ra trước khi SKB (cấu trúc dữ liệu cơ bản nhất trong mã mạng Linux) được cấp phát Trên thực tế, điều này có nghĩa là điều này được thực thi trước những thứ như tc và iptables

Kết thúc chương trình, một mã hành động sẽ xác định những việc cần làm với gói đó:

+ XDP_PASS: gói tin tiếp tục thông qua network stack

+ XDP_DROP: loại bỏ gói tin

+ XDP_ABORTED: tương tự như DROP, nhưng cho biết đã xảy ra lỗi khi xử lý

+ XDP_TX: trả lại gói tin đã nhận ra khỏi cùng một NIC mà nó đã đến Điều này thường được kết hợp với việc sửa đổi nội dung gói, chẳng hạn như viết lại địa chỉ IP và Mac

+ XDP_REDIRECT: chuyển hướng gói tin đến một nơi khác, một CPU khác hoặc NIC khác

XDP cho phép xử lí các gói tin chuyển dịch tới hệ thống với hiệu năng tối đa, cho phép các chương trình được tích hợp vào trong kernel để chuyển hướng có chọn lọc các gói tin đến một socket user-space, bỏ qua ngăn xếp các gói mạng thông thường, và có thể hoạt động ở mức thấp hơn Chế độ này khá giống với cách thức hoạt động như Netmap và PF_Ring

Cũng có thể coi XDP hoạt động như một "phần mềm giảm tải” có thể xử lý tốt với việc giảm tải quá trình xử lí không cần thiết và không thiết truy cập các chức năng hỗ trợ của lõi kernel để tăng hiệu suất tối đa, trong khi các ứng dụng khác tương tác với stack mạng thông thường

Các tính năng nổi bật trong XDP như :

+ Tích hợp các stack mạng với nhau, giữ lại toàn bộ quyền kiểm soát phần cứng trong Kernel Giúp cho việc bảo mật kernel và không yêu cầu thay đổi cấu hình mạng Ngoài ra, các cổng mạng với driver của Linux có thể được hỗ trợ bởi XDP, không yêu cầu các thiết bị phần cứng quá chuyên dụng,các driver có sẵn chỉ cần được chỉnh sửa đơn giản để có thể thêm XDP vào

+ Có thể sử dụng chọn lọc các stack mạng trong kernel với các tính như sử dụng bảng định tuyến và TCP stack, giữ các cấu hình cổng interface mạng giống nhau

+ Đảm bảo tính ổn định cho cả bộ tính năng, chỉ dẫn của eBPF và API

+ Không yêu cầu truyền tải lại các gói tin tốn tài nguyên từ user-space vào trong kernel khi đang hoạt động các công việc dựa trên các lớp socket thông thường

+ Có tính chất “trong suốt” với các ứng dụng đang chạy trên máy chủ, cho phép các công việc triển khai mới vẫn được xử lí, chẳng hạn như việc bảo vệ hệ thống chế độ inline khỏi các cuộc tấn công DoS

+ Không yêu cầu sử dụng toàn bộ CPU core để xử lí các gói tin với XDP Điều này đem lại hiệu quả và tầm quan trọng trong việc tiết kiệm tài nguyên của hệ thống

KẾT QUẢ THỰC NGHIỆM

Tầng ứng dụng

Hình 3-1 Mô hình hệ thống

3.1.1.2 Cài đặt hệ thống a Web server apache:

+ Sửa đổi cài đặt tường lửa để có thể truy cập vào các cổng web mặc định:

+ Kiểm tra máy chủ web:

+ Truy cập website từ bên ngoài http://192.168.189.131/ trên trình duyệt để kiểm tra

# sudo apt-get -y install libapache2-mod-qos b Kali-attack:

− Download file thực thi tấn công Slowloris DoS trên Github:

# wget https://raw.githubusercontent.com/Ogglas/Orignal-Slowloris-HTTP- DoS/master/slowloris.pl

− Cấp quyền để file có quyền thực thi:

# chmod 755 slowloris.pl c Client-win7:

− Cài đặt trình duyệt web Firefox để truy cập vào website vừa tạo

3.1.2 Thử nghiệm phát hiện và chống tấn công DoS

− Kịch bản 1: Máy chủ web chưa cài đặt và cấu hình mod_qos

+ Thực hiện tấn công Slowloris DoS từ máy kali có địa chỉ IP 192.168.189.130 đến máy chủ web Apache có địa chỉ IP 192.168.189.131 trong trường hợp máy chủ web chưa cài mod_qos

+ Truy cập vào trang web từ máy client win 7 có địa chỉ IP 192.168.189.136 xem web còn phản hồi không?

− Kịch bản 2: Máy chủ web đã cài đặt và cấu hình mod_qos

+ Thực hiện tấn công Slowloris DoS từ máy kali có địa chỉ IP 192.168.189.130 đến máy chủ web Apache có địa chỉ IP 192.168.189.131 trong trường hợp máy chủ web khi đã cài mod_qos

+ Truy cập vào trang web từ máy client win 7 có địa chỉ IP 192.168.189.136 xem web còn phản hồi không?

− Trên máy Kali thực hiện tấn công Slowloris vào máy chủ web với dòng lệnh sau:

# /slowloris.pl -dns "192.168.189.131" -port 80 -timeout 1 -num 10000 -cache

− Cấu hình mod_qos trong file qos.conf:

# nano /etc/apache2/mods-available/qos.conf

− Sửa file cấu hình theo sau:

# Xử lí các kết nối lên đến 100000 IP khác nhau

# Cho phép 50 kết nối với mỗi IP

# Giới hạn số lượng tối đa các kết nối TCP đang hoạt động 150 (mặc định apache MPM:prefork)

# Vô hiệu hóa tính năng keep-alive khi 70% (105) kết nối TCP bị chiếm dụng QS_SrvMaxConnClose 105

# Tốc độ request/response tối thiểu

# (từ chối các ứng dụng khách chậm chặn máy chủ, giữ cho các kết nối luôn mở mà không yêu cầu bất kỳ điều gì)

− Kịch bản 1: Máy chủ web chưa cài đặt và cấu hình mod_qos

+ Truy cập vào trang web từ máy client win 7 máy chủ không phản hồi (từ chối dịch vụ):

Hình 3-2 Client win 7 không truy cập được vào web

− Kịch bản 2: Máy chủ web đã cài đặt và cấu hình mod_qos

+ Truy cập vào trang web từ máy client win 7 máy chủ phản hồi bình thường:

Hình 3-3 Client win 7 truy câp được vào web

+ Mở file access.log trên apache ta thấy request của client win 7 vẫn nhận được respond từ server Đây là truy cập thành công, webserver phản hồi lại code 200, kích thước body không bao gồm header mà server trả về cho người truy cập là 3624

Hình 3-4 Dòng log truy cập thành công của client win 7 vào web server apache

Tầng mạng/tầng vận chuyển

Hình 3-5 Mô hình hệ thống thực nghiệm Cấu hình thiết bị:

- Attacker: Ubuntu - 1GB RAM – 2 CPU – 50GB Disk

- Anti-DoS: Ubuntu - 1GB RAM – 2 CPU – 50GB Disk

- Victim: Ubuntu - 1GB RAM – 2 CPU – 50GB Disk

3.2.1.2 Cài đặt hệ thống a Cấu hình mạng

Hình 3-6 Cấu hình interface trên máy của Attacker

Hình 3-7 Cấu hình interface trên máy của Victim

Hình 3-8 Cấu hình interface trên thiết bị Anti-DoS

Hình 3-9 Cấu hình định tuyến trên thiết bị Anti-DoS

- Kiểm tra kết nối giữa hai mạng

Hình 3-10 Attacker đã có thể kết nối tới Victim

+ Loại bỏ gói tin có trường type trong ethernet header nhỏ hơn 0

+ Loại bỏ gói ICMP phân mảnh

+ Loại bỏ gói ICMP có kích thước lớn hơn 1024 byte

+ Loại bỏ gói SYN phân mảnh

Sử dụng chính sách giới hạn số lượng gói tin tối đa mỗi giây mà một địa chỉ IP được phép gửi tới IP trong chính sách

Bảng dưới đây mô tả cấu trúc chính sách có ID 1, giới hạn số gói tin tối đa mỗi giây mà một địa chỉ IP được phép gửi đến thiết bị có địa chỉ IP 10.10.10.10 là

3.2.2 Thử nghiệm phát hiện và chống tấn công DoS

Mô phỏng một cuộc tấn công DoS bằng cách sử dụng công cụ hping3 được cài trên máy của Attacker tấn công vào máy của Victim với các cách thức tấn công khác nhau

Thiết bị Anti-DoS đứng giữa Attacker và Victim đảm nhiệm vai trò bảo vệ thiết bị của Victim khỏi cuộc tấn

- Kịch bản 1: Attacker gửi các gói tin bất thường tới máy của Victim

- Kịch bản 2: Attacker gửi một lượng lớn gói tin trong thời gian ngắn tới máy của Victim

3.2.2.2 Thử nghiệm kịch bản 1 a Cách thức tấn công

Từ máy Attacker tiến hành thực hiện tấn công bằng các lệnh sau

- Gửi các gói ICMP phân mảnh

- Gửi các gói SYN phân mảnh

- Gửi các gói ICMP lớn hơn 1024 byte

# hping3 icmp -d 1024 10.10.10.10 b Kết quả đạt được

- Phát hiện và loại bỏ gói ICMP phân mảnh

Thiết bị đã phát hiện và loại bỏ các gói tin ICMP bị phân mảnh

Hình 3-12 Anti-DoS ngăn chặn các gói ICMP phân mảnh

Do các gói ICMP phân mảnh đã bị loại bỏ nên phía Attacker không thể nhận được phản hồi từ máy Victim (100% loss)

Hình 3-13 Attcker không thể gửi các gói ICMP phân mảnh tới Victim

- Phát hiện và loại bỏ gói SYN phân mảnh

Thiết bị đã phát hiện và loại bỏ các gói tin SYN bị phân mảnh

Hình 3-14 Anti-DoS ngăn chặn các gói SYN phân mảnh

Do các gói SYN phân mảnh đã bị loại bỏ nên phía Attacker không thể nhận được phản hồi từ máy Victim (100% loss)

Hình 3-15 Attcker không thể gửi các gói SYN phân mảnh tới Victim

- Phát hiện và loại bỏ gói ICMP kích thước lớn

Thiết bị đã phát hiện và loại bỏ các gói tin ICMP có kích thước vượt quá quy định

Hình 3-16 Anti-DoS ngăn chặn các gói ICMP có kích thước quá giới hạn

Do các gói ICMP lớn đã bị loại bỏ nên phía Attacker không thể nhận được phản hồi từ máy Victim (100% loss)

Hình 3-17 Attcker không thể gửi các gói ICMP lớn tới Victim

3.2.2.3 Thử nghiệm kịch bản 2 a Cách thức tấn công

Từ máy Attacker thực thi câu lệnh sau để tiến hành tấn công Câu lệnh sẽ gửi 120 gói tin trong 500 micro giây tới máy Victim

Hình 3-18 Attcker gửi một lượng lớn gói tin tới Victim b Kết quả đạt được

Thiết bị Anti-DoS đã phát hiện thiết bị có IP 10.10.30.10 (địa chỉ IP của Attacker) gửi một lượng gói tin vượt quá ngưỡng quy định của thiết bị có địa chỉ IP 10.10.10.10 (địa chỉ IP của Victim)

Hình 3-19 Anti-DoS phát hiện và chặn địa chỉ IP vi phạm chính sách

+ Trong thời gian bị chặn

Trong thời gian này, máy của Attacker không thể tiếp tục gửi các gói tin đến máy của Victim (100% loss)

Hình 3-20 Attacker không thể gửi gói tin đến Victim do bị chặn

+ Sau khi được mở khóa

Vì đã được Anti-DoS mở khóa, máy của Attacker giờ đây có thể tiếp tục gửi các gói tin đến máy của Victim

Hình 3-21 Attacker có thể gửi gói tin đến Victim sau khi hết thời gian chặn

Sau khi được tích hợp thiết bị Anti-DoS, hệ thống đã có thể tránh được một số dạng tấn công DoS cơ bản Cũng như thế có thể nắm được địa chỉ IP của kẻ tấn công và từ đó điều tra sâu hơn để có thể truy tìm ra kẻ chủ mưu và ngăn chặn các mối nguy hại tiềm tàng

Ngày đăng: 07/11/2024, 11:17

HÌNH ẢNH LIÊN QUAN

Hình 2-2 Mô hình giải pháp - Xây dựng giải pháp chống tấn công DoS
Hình 2 2 Mô hình giải pháp (Trang 12)
Hình 2-3 Minh họa sử dụng Linux server làm thiết bị định tuyến - Xây dựng giải pháp chống tấn công DoS
Hình 2 3 Minh họa sử dụng Linux server làm thiết bị định tuyến (Trang 13)
Hình 2-4 Hiệu suất của từng loại BPF - Xây dựng giải pháp chống tấn công DoS
Hình 2 4 Hiệu suất của từng loại BPF (Trang 14)
Hình 2-5 Luồng đi của gói tin và hoạt động của XDP - Xây dựng giải pháp chống tấn công DoS
Hình 2 5 Luồng đi của gói tin và hoạt động của XDP (Trang 15)
Hình 2-6 Vị trí hoạt động của chương trình XDP - Xây dựng giải pháp chống tấn công DoS
Hình 2 6 Vị trí hoạt động của chương trình XDP (Trang 18)
Hình 2-7 Mô tả quá trình chia sẻ dữ liệu giữa kernel và userspace - Xây dựng giải pháp chống tấn công DoS
Hình 2 7 Mô tả quá trình chia sẻ dữ liệu giữa kernel và userspace (Trang 20)
Hình 2-8 Mô tả quá trình hoạt động của chương trình phía kernel - Xây dựng giải pháp chống tấn công DoS
Hình 2 8 Mô tả quá trình hoạt động của chương trình phía kernel (Trang 25)
Hình 2.9 Mô tả quá trình hoạt động của chương trình phía userspace - Xây dựng giải pháp chống tấn công DoS
Hình 2.9 Mô tả quá trình hoạt động của chương trình phía userspace (Trang 26)
Hình 3-3 Client win 7 truy câp được vào web - Xây dựng giải pháp chống tấn công DoS
Hình 3 3 Client win 7 truy câp được vào web (Trang 31)
Hình 3-8 Cấu hình interface trên thiết bị Anti-DoS - Xây dựng giải pháp chống tấn công DoS
Hình 3 8 Cấu hình interface trên thiết bị Anti-DoS (Trang 33)
Hình 3-13 Attcker không thể gửi các gói ICMP phân mảnh tới Victim - Xây dựng giải pháp chống tấn công DoS
Hình 3 13 Attcker không thể gửi các gói ICMP phân mảnh tới Victim (Trang 35)
Hình 3-14 Anti-DoS ngăn chặn các gói SYN phân mảnh - Xây dựng giải pháp chống tấn công DoS
Hình 3 14 Anti-DoS ngăn chặn các gói SYN phân mảnh (Trang 36)
Hình 3-16 Anti-DoS ngăn chặn các gói ICMP có kích thước quá giới hạn - Xây dựng giải pháp chống tấn công DoS
Hình 3 16 Anti-DoS ngăn chặn các gói ICMP có kích thước quá giới hạn (Trang 37)
Hình 3-17 Attcker không thể gửi các gói ICMP lớn tới Victim - Xây dựng giải pháp chống tấn công DoS
Hình 3 17 Attcker không thể gửi các gói ICMP lớn tới Victim (Trang 37)
Hình 3-19 Anti-DoS phát hiện và chặn địa chỉ IP vi phạm chính sách - Xây dựng giải pháp chống tấn công DoS
Hình 3 19 Anti-DoS phát hiện và chặn địa chỉ IP vi phạm chính sách (Trang 38)

TỪ KHÓA LIÊN QUAN

w