Kiểu tấn công làm cạn kiệt tài nguyên

Một phần của tài liệu Nghiên cứu các hình thức tấn công mạng DDOS và phương pháp phòng chống study the patterns of networkl attacks and DDOS mitigation methods (Trang 30)

Theo định nghĩa: 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ụ user thông thƣờng khác đƣợc.

1.9.2.1.Protocol Exploit Attack:

+ TCP SYS 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..

Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK REPLY 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ẽ resend lại SYN/ACK REPLY cho đến hết thời gian timeout. Toàn bộ tài

TCP Client Client Port 1024-65535 SYS SYN/ACK ACK TCP Server Server Port 1-1023 80

31

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 REPLY đến một địa chỉ khá 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 = ACK Attack: Trong TCP protocol, các packet đƣợc chứa 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 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

Hình 1.17: Mô hình Client/Server Client Server SYN SYN/ACK ACK Server SYN SYN/ACK Attack/Agent SYN/ACK

Hình 1.16: Mô hình truyền – nhận dữ liệu (SYN/ACK REPLY)

Malicious TCP Client SYN SYN/ACK ? Victim TCP Server 80 SYS packet with a deliberately fraudulent

32

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.

1.9.2.2.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, làm hệ thống nạn nhân hết khả năng xử lý.

Kết luận chƣơng I

Trong chƣơng I, tác giả đã đi sâu nghiên cứu và nêu định nghĩa, các đặc tính, phân loại tấn công DoS và DDoS, đặc biệt là tấn công DDoS. Tất cả những cách tấn công trên đều nhằm mục đích làm giảm chức năng của hệ thống mạng và có thể dẫn đến đánh sập hệ thống, làm hệ thống không có khả năng hoạt động. Những cuộc tấn công DDoS có thể phân tán, rải rác, khiến cho việc xác định kẻ tấn công là rất khó khăn. Cần phải hiểu về hành vi, hoạt động của các luồng dữ liệu trong hệ thống để từ đó phát hiện sớm và có những biện pháp hiệu quả để giảm thiểu tấn công DDoS.

33

CHƢƠNG II

CÁC PHƢƠNG THỨC TẤN CÔNG VÀ PHÒNG CHỐNG DDOS

Ý nghĩa của mạng BOT

- Khi sử dụng một Tool tấn công DoS tới một máy chủ đôi khi không gây ảnh hƣởng gì cho máy chủ - Giả sử ta sử dụng tool Ping of Death tới một máy chủ, trong đó máy chủ kết nối với mạng tốc độ 100Mbps bạn kết nối tới máy chủ tốc độ 3Mbps - Vậy cuộc tấn công đó không có ý nghĩa gì.

- Nhƣng hãy thử tƣởng tƣợng có 1000 ngƣời cùng một lúc tấn công vào máy chủ kia khi đó toàn bộ băng thông của 1000 ngƣời cộng lại tối đa đạt 3Gbps và tốc độ kết nối của máy chủ là 100 Mbps vậy kết quả sẽ ra sao.

- Để tạo ra những máy tính để thực hiện việc tấn công, kẻ tấn công xây dựng một mạng gồm hàng nghìn máy tính kết Internet (có mạng BOT lên tới 400.000 máy). Khi có trong tay mạng BOT kẻ tấn công sử dụng những tool tấn công đơn giản để

34

tấn công vào một hệ thống máy tính. Dựa vào những truy cập hoàn toàn hợp lệ của hệ thống, cùng một lúc chúng sử dụng một dịch vụ của máy chủ.

Mạng BOT (adsbygoogle = window.adsbygoogle || []).push({});

- BOT từ viết tắt của từ RoBOT

- IRC là một dạng truyền dữ liệu thời gian thực trên Internet. Nó thƣờng đƣợc thiết kế sao cho một ngƣời có thể nhắn đƣợc cho một group và mỗi ngƣời có thể giao tiếp với nhau với một kênh khác nhau đƣợc gọi là – Channels.

- IRCbot – còn đƣợc gọi là zombie hay drone.

- Đầu tiên BOT kết nối kênh IRC với IRC Server và đợi giao tiếp giữa những ngƣời với nhau.

- Kẻ tấn công có thể điều khiển mạng BOT và sử dụng mạng BOT cũng nhƣ sử dụng nhằm một mục đích nào đó.

- Nhiều mạng BOT kết nối với nhau ngƣời ta gọi là BOTNET – botnet.

Mạng BOTNET

- Mạng Botnet bao gồm nhiều máy tính.

- Nó đƣợc sử dụng cho mục đích tấn công DDoS.

- Một mạng Botnet nhỏ có thể chỉ bao gồm 1000 máy tính nhƣng bạn thử tƣởng tƣợng mỗi máy tính này kết nối tới Internet tốc độ chỉ là 128Kbps thì mạng Botnet này đã có khả năng tạo băng thông là 1000*128 ~ 100Mbps – Đây là một con số thể hiện băng thông mà khó một nhà Hosting nào có thể share cho mỗi trang web của mình.

Mục đích sử dụng mạng BOTNETs

+ Botnet đƣợc sử dụng cho tấn công DDoS: Spamming.

+ Mở một SOCKS v4/v5 proxy server cho việc Spamming: Sniffing traffic. + Bot cũng có thể sử dụng các gói tin nó sniffer (tóm đƣợc các giao tiếp trên mạng) sau khi tóm đƣợc các gói tin nó cố gắng giải mã gói tin để lấy đƣợc các nội dung có ý nghĩa nhƣ tài khoản ngân hàng và nhiều thông tin có giá trị khác của ngƣời sử dụng: Keylogging.

35

+ Với sự trợ giúp của Keylogger rất nhiều thông tin nhạy cảm của ngƣời dùng có thể sẽ bị kẻ tấn công khai thác nhƣ tài khoản trên e-banking, cũng nhƣ nhiều tài khoản khác: Cài đặt và lây nhiễm chƣơng trình độc hại.

+ Botnet có thể sử dụng để tạo ra mạng những mạng BOT mới: Cài đặt những quảng cáo Popup.

+ Tự động bật ra những quảng cáo không mong muốn với ngƣời sử dụng: Google Adsense abuse.

+ Tự động thay đổi các kết quả tìm kiếm hiển thị mỗi khi ngƣời dùng sử dụng dịch vụ tìm kiểm của Google, khi thay đổi kết quả nó sẽ lừa ngƣời dùng kích vào những trang web nguy hiểm: Tấn công vào IRC Chat Networks.

+ Nó đƣợc gọi là clone attack: Phishing.

+ Mạng botnet còn đƣợc sử dụng để phishing mail nhằm lấy các thông tin nhạy cảm của ngƣời dùng.

Các dạng của mạng BOTNET

- Đây là những bot đƣợc viết bằng C++ trên nền tảng Cross-platform và mã nguồn đƣợc tìm trên GPL. Agobot đƣợc viết bởi Ago nick name đƣợc ngƣời ta biết đến là Wonk, một thanh niên trẻ ngƣời Đức – đã bị bắt hồi tháng 5 năm 2004 với tội danh về tội phạm máy tính.

- Agobot có khả năng sử dụng NTFS Alternate Data Stream và nhƣ một loại Rootkit nhằm ẩn các tiến trình đang chạy trên hệ thống

- SDBot đƣợc viết bằng ngồn ngữ C và cũng đƣợc public bởi GPL. Nó đƣơc coi nhƣ là tiền thân của Rbot, RxBot, UrBot, UrXBot, JrBot

- GT đƣợc viết tắt từ hai từ Global Threat và tên thƣờng đƣợc sử dụng cho tất cả các mIRC-scripted bots. Nó có khả năng sử dụng phần mềm IM là mIRC để thiết lập một số script và một số đoạn mã khác.

Các bƣớc xây dựng mạng BotNet?

Để hiểu hơn về xây dựng hệ thống mạng BotNet chúng ta nghiên cứu từ cách lây nhiễm vào một máy tính, cách tạo ra một mạng Bot và dùng mạng Bot này tấn công vào một đích nào đó của mạng Botnet đƣợc tạo ra từ Agobot’s.

36

Bƣớc : Cách lây nhiễm vào máy tính.

- Đầu tiên kẻ tấn công lừa cho ngƣời dùng chạy file "chess.exe", một Agobot thƣờng copy chúng vào hệ thống và sẽ thêm các thông số trong Registry để đảm bảo sẽ chạy cùng với hệ thống khi khởi động. Trong Registry có các vị trí cho các ứng dụng chạy lúc khởi động tại. (adsbygoogle = window.adsbygoogle || []).push({});

HKLM\Software\Microsoft\Windows\CurrentVersion\Run

HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices

Bƣớc Cách lây lan và xây dựng tạo mạng BOTNET

- Sau khi trong hệ thống mạng có một máy tính bị nhiễm Agobot, nó sẽ tự động tìm kiếm các máy tính khác trong hệ thống và lây nhiễm sử dụng các lỗ hổng trong tài nguyên đƣợc chia sẻ trong hệ thống mạng.

- Chúng thƣờng cố gắng kết nối tới các dữ liệu share mặc định dành cho các ứng dụng quản trị (administrator or administrative) ví dụ nhƣ: C$, D$, E$ và print$ bằng cách đoán usernames và password để có thể truy cập đƣợc vào một hệ thống khác và lây nhiễm.

- Agobot có thể lây lan rất nhanh bởi chúng có khả năng tận dụng các điểm yếu trong hệ điều hành Windows, hay các ứng dụng, các dịch vụ chạy trên hệ thống.

Bƣớc Kết nối vào IRC.

- Bƣớc tiếp theo của Agobot sẽ tạo ra một IRC-Controlled Backdoor để mở các yếu tố cần thiết, và kết nối tới mạng Botnet thông qua IRC-Controll, sau khi kết nối nó sẽ mở những dịch vụ cần thiết để khi có yêu cầu chúng sẽ đƣợc điều khiển bởi kẻ tấn công thông qua kênh giao tiếp IRC.

Bƣớc Điều khiển tấn công từ mạng BotNet.

- Kẻ tấn công điều khiển các máy trong mạng Agobot download những file .exe về chạy trên máy.

- Lấy toàn bộ thông tin liên quan và cần thiết trên hệ thống mà kẻ tấn công muốn.

- Chạy những file khác trên hệ thống đáp ứng yêu cầu của kẻ tấn công. - Chạy những chƣơng trình DDoS tấn công hệ thống khác.

37

Sơ đồ cách hệ thống bị lây nhiễm và sử dụng Agobot

38

Sơ đồ mạng Botnet 2.8.1 Sơ đồ Handler-Agent

Mạng Handler-Agent thông thƣờng bao gồm 3 thành phần: Agent, Client và

Handler. Trong đó :

- Client: Là phần mềm cơ sở để hacker điều khiển mọi hoạt động của mạng

Handler-Agent.

- Handler: Là một phần mềm trung gian giữa Agent và Client.

- Agent: Là một phần mềm thực hiện sự tấn công mục tiêu, nhận điều khiển từ

Client thông quan các Handler.

Attacker sẽ từ Client giao tiếp với Handler để xác định số lƣợng các Agent đang online, điều chỉnh thời điểm tấn công và cập nhật các Agent. Tuỳ theo cách attacker cấu hình mạng Botnet, các Agent sẽ chịu sự quản lý của một hay nhiều Handler.

Thông thƣờng Attacker sẽ đặt các Handler trên một Router hay Server có lƣợng lƣu thông lớn. Việc này nhằm làm cho các giao tiếp giữa Client, Handler và Agent khó bị phát hiện. Các giao thức này thƣờng diễn ra trên các giao thức TCP,

39

UDP hay ICMP. Chủ nhân thực sự của các Agent thƣờng không biết họ bị lợi dụng trong các cuộc tấn công DDoS, do họ không đủ kiến thức hoặc các chƣơng trình Backdoor Agent chỉ sử dụng rất ít tài nguyên hệ thống làm cho hầu nhƣ không thể thấy ảnh hƣởng gì đến hiệu năng của hệ thống.

2.8.2 Sơ đồ IRC Base

Hình 2.4: Sơ đồ IRC Base

Internet Relay Chat(IRC) là một hệ thống online chat nhiều ngƣời. IRC cho (adsbygoogle = window.adsbygoogle || []).push({});

phép ngƣời sử dụng tạo một kết nối đến nhiều điểm khác với nhiều ngƣời sử dụng khác nhau và chat thời gian thực. Kiến trúc cũ của IRC network bao gồm nhiều IRC server trên khắp Internet, giao tiếp với nhau trên nhiều kênh (channnel). IRC network cho phép user tao ba loại channel: Public, Private và Secrect. Trong đó :

Public channel: Cho phép user của channel đó thấy IRC name và nhận đƣợc

40

Private channel: Đƣợc thiết kế để giao tiếp với các đối tƣợng cho

phép.Không cho phép các user không cùng channel thấy IRC name và message trên channel. Tuy nhiên , nếu user ngoài channel dùng một số lệnh channel locator thì có thể biết đƣợc sự tồn tại của private channel đó.

Secrect channel: Tƣơng tự private channel nhƣng không thể xác định bằng

channel locator.

Mạng IRC-based cũng tƣơng tự nhƣ mạng Agent-Handler nhƣng mô hình này sử dụng các kênh giao tiếp IRC làm phƣơng tiện giao tiếp giữa Client và Agent (không sử dụng Handler). Sử dụng mô hình này, attacker còn có thêm một số lợi thế khác nhƣ :

Các giao tiếp dƣới dạng chat message làm cho việc phát hiện chúng là vô cùng khó khăn.

Lƣu thông IRC có thể di chuyển trên mạng với số lƣợng lớn mà không bị nghi ngờ.

Không cần phải duy trì danh sách các Agent, hacker chỉ cần logon vào IRC server là đã có thể nhận đƣợc report về trạng thái các Agent do các channel gửi về.

Sau cùng: IRC cũng là một môi trƣờng chia sẻ file tạo điều kiện phát tán các Agent code lên nhiều máy khác.

Các phƣơng pháp xây dựng tài nguyên tấn công

Có rất nhiều điểm chung của các công cụ DDoS attack. Có thể kể ra một số điểm chung nhƣ: cách cài chƣơng trình Agent, phƣơng pháp giao tiếp giữa các attacker, Handler và Agent, điểm chung về loại hệ điều hành hỗ trợ các công cụ này. Sơ đồ sau mô tả sự so sánh tƣơng quan giữa các công cụ tấn công DDoS này.

41

Hình 2.5: Các phƣơng pháp xây dựng tài nguyên tấn công

2.9.1 Cách thức cài đặt DDoS Agent

Attacker có thể dùng phƣơng pháp active và passive để cài đặt chƣơng trình Agent lên các máy khác nhằm thiết lập mạng tấn công kiểu Agent-Handler hay IRC-based.

- Các cách cài đặt sử dụng phƣơng pháp active nhƣ

+ Scaning: dùng các công cụ nhƣ Nmap, Nessus để tìm những sơ hở trên các

hệ thống đang online nhằm cài đặt chƣơng trình Agent. Chú ý, Nmap sẽ trả về những thông tin về một hệ thống đã đƣợc chỉ định bằng địa chỉ IP, Nessus tìm kiếm từ những địa chỉ IP bất kỳ về một điểm yếu biết trƣớc nào đó.

+ Backdoor: sau khi tìm thấy đƣợc danh sách các hệ thống có thể lợi dụng,

attacker sẽ tiến hành xâm nhập và cài chƣơng trình Agent lên các hệ thống này. Có rất nhiều thông tin sẵn có về cách thức xâm nhập trên mạng, nhƣ site của tổ chức Common Vulnerabilities and Exposures, ở đây liệt kê và phân loại trên 4.000 loại lỗi của tất cả các hệ thống hiện có. Thông tin này luôn sẵn sàng cho cả giới quản trị mạng lẫn hacker.

42

+ Trojan: là một chƣơng trình thực hiện một chức năng thông thƣờng nào đó,

nhƣng lại có một số chức năng tiềm ẩn phục vụ cho mục đích riêng của ngƣời viết mà ngƣời dùng không thể biết đƣợc. Có thể dùng Trojan nhƣ một chƣơng trình Agent.

+ Buffer Overflow: tận dụng lỗi buffer overflow, attacker có thể làm cho chu

trình thực thi chƣơng trình thông thƣờng bị chuyển sang chu trình thực thi chƣơng trình của hacker (nằm trong vùng dữ liệu ghi đè). Có thể dùng cách này để tấn công vào một chƣơng trình có điểm yếu buffer overflow để chạy chƣơng trình Agent.

- Cách cài đặt passive

+ Bug tr nh duyệt web: attacker có thể lợi dụng một số lỗi của trình duyệt (adsbygoogle = window.adsbygoogle || []).push({});

web để cài chƣơng trình Agent vào máy của user truy cập. Attacker sẽ tạo một trang web mang nội dung tiềm ẩn những code và lệnh để đặt bẫy user. Khi user truy cập nội dung của trang web, thì trang web download và cài đặt chƣơng trình Agent một

Một phần của tài liệu Nghiên cứu các hình thức tấn công mạng DDOS và phương pháp phòng chống study the patterns of networkl attacks and DDOS mitigation methods (Trang 30)