LỜI CẢM ƠN
Qua thời gian học tập lâu dài và hoàn thành báo cáo đồ án tốt nghiệp em
chân thành cảm ơn thầy Nguyễn Đức Bình đã tận tình hướng dẫn,giúp đỡ em
trong suốt thời gian thực hiện để ngày càng hoàn thiện đề tài “Xây dựng
chương trình ngăn chặn một số dạng tấn công từ chối dịch vụ Web server cho
Công ty Trách nhiệm hữu hạn GM Việt Nam”. Em đã nhận được sự quan tâm,
giúp đỡ nhiệt tình của các tập thể, cá nhân trong và ngoài nhà trường.
Em xin chân thành cảm ơn sự giúp đỡ và đóng góp ý kiến của các thầy, cô
giáo trong bộ môn Mạng và Truyền thông – Khoa Công nghệ thông tin- Đại học
Công nghệ thông tin và Truyền thông – Đại Học Thái Nguyên.
Mặc dù em đã cố gắng hoàn thành đề tài rất nhiều trong phạm vi kiến thức
cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót kính mong thầy
cô và các bạn bổ sung để đề tài hoàn thiện hơn.
Em xin chân thành cảm ơn !
1
LỜI CAM ĐOAN
Em xin cam đoan toàn bộ đồ án: “Xây dựng chương trình ngăn chặn một
số dạng tấn công từ chối dịch vụ Web server cho Công ty Trách nhiệm hữu
hạn GM Việt Nam”. Là do bản thân tìm hiểu, nghiên cứu. Không có sự sao chép
nội dung từ các đồ án khác. Tất cả nội dung hoặc hình ảnh minh họa đều có
nguồn gốc xuất xứ rõ ràng từ các tài liệu tham khảo ở nhiều nguồn khác nhau mà
xây dựng nên. Ngoài ra còn có sự góp ý và định hướng của thầy giáo Th.S
Nguyễn Đức Bình.
Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin
hoàn toàn chịu trách nhiệm trước Hội đồng.
Thái Nguyên, tháng 6 năm 2012.
Sinh viên
Dương Văn Thắng
2
MỤC LỤC
LỜI CẢM ƠN........................................................................................................1
LỜI CAM ĐOAN...................................................................................................2
MỤC LỤC............................................................................................................. 3
DANH MỤC HÌNH ẢNH......................................................................................4
DANH MỤC BẢNG..............................................................................................5
LỜI NÓI ĐẦU.......................................................................................................5
CHƯƠNG 1..........................................................................................................7
GIỚI THIỆU CHUNG..........................................................................................7
1.1. Tổng quan đề tài.......................................................................................7
1.1.1. Lý do chọn đề tài...............................................................................8
1.1.2. Hướng giải quyết...............................................................................9
1.1.3. Tóm tắt kết quả................................................................................10
1.2. Tổng quan về tấn công từ chối dịch vụ....................................................11
1.2.1. Giới thiệu chung về DDoS...............................................................11
1.2.2. Phân loại các kiểu tấn công DDoS..................................................11
1.2.3. Sơ đồ mạng Botnet...........................................................................16
1.2.4. Các phương pháp xây dựng tài nguyên tấn công.............................18
1.2.5. Một số kiểu tấn công DDoS và các công cụ tấn công DDoS...........21
1.2.6. Phòng chống DDoS.........................................................................25
............................................................................................................................ 31
CHƯƠNG 2........................................................................................................32
KHẢO SÁT VÀ TỔNG QUAN VỀ IPTABLES VÀ SNORT..................................32
2.1. Khảo sát hiện trạng công ty trách nhiệm hữu hạn GM Việt Nam............32
2.1.1. Giới thiệu về công ty........................................................................32
2.1.2. Mô hình mạng của công ty...............................................................32
2.2. Tổng quan về Iptables..............................................................................33
2.2.1. Giới thiệu chung về Iptables............................................................33
2.2.2. Cấu trúc của Iptables......................................................................34
2.3. Tổng quan về Snort..................................................................................41
2.3.1. Giới thiệu chung về Snort và Snort inline........................................41
2.3.2. Tổng quan về Snort..........................................................................42
CHƯƠNG 3........................................................................................................59
XÂY DỰNG GIẢI PHÁP PHÒNG CHỐNG DDoS CHO MÁY CHỦ WEB.......59
3.1. Mô hình triển khai thực tế.......................................................................59
3.2. Mô hình mạng triển khai hệ thống phòng chống......................................60
3.2.1. Cài đặt iptables................................................................................60
3.2.2. Cài đặt Snort...................................................................................62
3.2.3. Cài đặt BASE và ADODB................................................................63
3.3. Giải pháp.................................................................................................64
3.4. Thử nghiệm, đánh giá..............................................................................66
............................................................................................................................ 67
............................................................................................................................ 67
KẾT LUẬN..........................................................................................................69
TÀI LIỆU THAM KHẢO.....................................................................................71
3
DANH MỤC HÌNH ẢNH
4
DANH MỤC BẢNG
LỜI NÓI ĐẦU
Dưới sự hướng dẫn của thầy giáo Th.s Nguyễn Đức Bình qua một thời gian
nghiên cứu, tìm hiểu em đã hoàn thành bản báo cáo đồ án tốt nghiệp của mình. Trong
giới hạn bài báo cáo đồ án tốt nghiệp này, em có tìm hiểu về các vấn đề sau:
5
- Nghiên cướu tìm hiểu về DDoS ,phân loại DDoS ,giới thiệu một số công
cụ tấn công DDoS và giải pháp phòng chống nói chung.
- Xây dựng giải pháp phòng chống DDoS cho web server ,sử dụng
Iptables và Snort inline.
Một lần nữa, em xin chân thành cảm ơn thầy giáo Th.s Nguyễn Đức Bình
,các thầy cô trong khoa CNTT - Đại Học Công nghệ thông tin và Truyền thông
và các bạn đã giúp đỡ em hoàn thành báo cáo này.
Sinh viên thực hiện
Dương Văn Thắng
6
CHƯƠNG 1
GIỚI THIỆU CHUNG
1.1. Tổng quan đề tài
Ngày 7/3/2000, yahoo.com đã phải ngưng phục vụ hàng trăm triệu user
trên toàn thế giới nhiều giờ liền. Vài giờ sau, Yahoo đã tìm ra nguyên nhân gây
nên tình trạng này, họ đang phải gánh chịu một đợt tấn công DDoS với quy mô
vài ngàn máy tính liên tục gửi hàng triệu request đến các server dịch vụ làm các
server này không thể phục vụ các user thông thường khác.
Vài ngày sau, một sự kiện tương tự diễn ra nhưng có quy mô lớn hơn
do một trong các nạn nhân mới là hãng tin CNN, amazon.com, buy.com,
Zdnet.com, E-trade.com, Ebay.com. Tất cả các nạn nhân là nh ững gã khổng
lồ trên Internet thuộc nhiều lĩnh vực khác nhau. Theo Yankke Group, tổng
thiệt hại do cuộc tấn công lên đến 1.2 triệu USD, nhưng không đáng kể
bằng sự mất mát về lòng tin của khách hàng, uy tín của các công ty là
không thể tính được.
Một doanh nghiệp làm thương mại điện tử có nguy cơ phá sản do các
server bị tấn công từ chối dịch vụ.Là một trong những doanh nghiệp có vốn đầu
tư nước ngoài đầu tiên tại việt nam , Công ty TNHH Ô tô GM Việt Nam chuyên
hoạt động trong lĩnh vực sản xuất , lắp ráp và kinh doanh ô tô , phụ tùng các loại
mang nhãn hiệu Daewoo và Chevrolet.Vì vậy đã là một doanh nghiệp tham gia
vào thương mại điện tử thì vấn đề an toàn , an ninh phải đặt lên hàng đầu cho các
doanh nghiệp do vậy cần thiết xây dựng chương trình phát hiện ngăn chặn tấn
công trên mạng là rất cần thiết hiện nay.
Khi xây dựng chương trình cần đảm bảo chống lại một số dạng tấn công
từ chối dịch vụ phổ biến hiện nay cho công ty TNHH Ô tô GM Việt Nam , đảm
bảo sự hoạt động tốt nhất của hệ thống để phục vụ ,đảm bảo quyền lợi khách
hàng của công ty tốt nhất. Như vậy xây dựng một hệ thống phát hiện và ngăn
chặn tấn công trái phép IDS/IPS cho công ty là một giải pháp rất cần thiết đối với
việc đảm bảo an toàn bảo mật hệ thống thông tin.
7
Không những phục vụ cho nhu cầu của bản thân mà còn giúp nâng cao ý
thức của người dùng mạng Internet, làm sao để tránh hoặc ít nhất giảm được thiệt
hại khi bị DDoS , em đã lựa chọn đề tài : “Xây dựng biện pháp phòng chống
DDoS cho máy chủ web” .
Nhận thấy vừa là một đề tài tốt nghiệp, vừa có vai trò ứng dụng trong thực
tế và với sự giúp đỡ tận tình của thầy Nguyễn Đức Bình, em đã cố gắng hết sức
để thực hiện tốt đề tài của mình.
1.1.1. Lý do chọn đề tài
Một doanh nghiệp làm thương mại điện tử có nguy cơ phá sản do các
server bị tấn công từ chối dịch vụ.Là một trong những doanh nghiệp có vốn đầu
tư nước ngoài đầu tiên tại việt nam , Công ty TNHH Ô tô GM Việt Nam chuyên
hoạt động trong lĩnh vực sản xuất , lắp ráp và kinh doanh ô tô , phụ tùng các loại
mang nhãn hiệu Daewoo và Chevrolet.Vì vậy đã là một doanh nghiệp tham gia
vào thương mại điện tử thì vấn đề an toàn , an ninh phải đặt lên hàng đầu cho các
doanh nghiệp do vậy cần thiết xây dựng chương trình phát hiện ngăn chặn tấn
công trên mạng là rất cần thiết hiện nay.
Khi xây dựng chương trình cần đảm bảo chống lại một số dạng tấn công
từ chối dịch vụ phổ biến hiện nay cho công ty TNHH Ô tô GM Việt Nam , đảm
bảo sự hoạt động tốt nhất của hệ thống để phục vụ ,đảm bảo quyền lợi khách
hàng của công ty tốt nhất. Công ty sử dụng một hệ thống mạng rất lớn trong việc
lưu trữ tất cả các dữ liệu của công ty và phục vụ cho công việc kinh doanh. Là
một Công ty lớn nên luôn đặt việc quản lý và đảm bảo an toàn mạng lên hàng
đầu, từ việc bảo mật thông tin các dự án, thông tin khách hàng,….đến việc trao
đổi mua bán qua website của Công ty. Yêu cầu về an toàn thông tin được đặt ra
phải đảm bảo được 3 đặc tính cơ bản của bảo mật thông tin là : Tính bí mật thông
tin, Tính toàn vẹn, Tính sẵn sàng.
Quá trình khảo sát mô hình công ty TNHH Ô tô GM Việt Nam : một ADSL
modem dùng để kết nối với Internet , phòng server gồm Server , Webserver ,
MailServer . có 4 Switch 8 cổng , 3 Switch 24 cổng để chia vào các phòng ban.
8
Trong đó , Máy chủ web có :
- Sử dụng hệ điều hành Linux .
- Cài đặt apache, php, mysql là máy chủ web.
Đây là một môi trường mạng rất phổ biến tại Viêt Nam vì những lý do sau:
-
Dễ dàng triển khai (vì mô hình mạng đơn giản)
-
Giá thành rẻ (Linux, apache, php, mysql đều không mất phí).
-
Dễ dàng vận hành, quản lý (do mô hình mạng đơn giản).
Đồ án có 2 mục tiêu chính :
-
Nghiên cứu tìm hiểu về DDoS, phân loại DDoS, giới thiệu một số công cụ
tấn công DDoS và giải pháp phòng chống nói chung
-
Xây dựng giải pháp phòng chống DDoS cho web server, sử dụng Iptables
và Snort .
Do tính chất đa dạng của DDoS nên không có giải pháp phòng chống
DDoS nào là tối ưu nhất cho mọi trường hợp. Giải pháp mà đồ án đề cập đến
là dành cho mô hình mạng chỉ có một server kết nối với Internet bằng một
liên kết.
1.1.2. Hướng giải quyết
Hiện nay, trên thế giới có rất nhiều cách phòng chống DDoS nói chung và
phòng chống DDoS cho máy chủ web nói riêng như sử dụng firewall, triển khai
IPS (Intrusion Prevention System- Hệ thống chống xâm nhập), load balancing
(cân bằng tải) ...Có thể đơn cử ra một vài ví dụ cụ thể như :
-
Firewall mềm:
+ Skyeagle anti-DDoS firewall
+ FortGuard Anti-DDoS Firewall Standard />
-
IPS :
+ Lokkit
+ Snort
+ Untangle
Trong đồ án này, em lựa chọn giải pháp sử dụng IPS gồm Snort inline
và Iptables để xây dựng giải pháp phòng chống DDoS cho máy chủ web.
9
Lý do lựa chọn xây dựng mô hình IPS gồm Snort và Iptables là:
-
Đối với Snort : Snort được biết đến với các ưu điểm như dễ cấu hình,
miễn phí, sử dụng rộng rãi, chạy trên nhiều nền tảng (Windows, Unix,
Linux), liên tục được cập nhật. Snort inline là một “module” của snort,
thay vì lắng nghe trên cổng chỉ định và theo dõi tất cả các traffic đi qua
cổng đấy, Snort inline chỉ theo dõi các traffic đặc biệt được chỉ định trước,
do đó làm tăng khả năng và hiệu suất của Snort.
-
Iptables mà nền tảng là Netfilter cũng có những ưu điểm như dễ cấu hình,
tốc độ sử lý nhanh, được tích hợp sẵn trong Kernel Linux 2.6 trở lên.
-
Việc sử dụng kết hợp Iptables với Snort sẽ tạo được một hệ thống IPS
hoạt động ổn định, dễ cấu hình, dễ dàng tinh chỉnh khi cần thiết.
1.1.3. Tóm tắt kết quả
Theo yêu cầu đặt ra ban đầu là “Xây dựng chương trình ngăn chặn một số
dạng tấn công từ chối dịch vụ web server ”, cho đến thời điểm hiện tại, đồ án đã
làm được những nội dung sau :
-
Về lý thuyết :
+ Tìm hiểu được những kiểu tấn công của DDoS.
+ Tìm hiểu được mô hình mạng Botnet (mô hình, cách cài đặt, giao tiếp).
+ Một số công cụ tấn công DDoS.
+ Cách phòng chống DDoS.
+ Những vấn đề có liên quan đến DDoS.
-
Triển khai hệ thống phòng chống DDoS bao gồm
+ Tối ưu hóa server.
+ Cài đặt và cấu hình Iptables.
+ Cài đặt và cấu hình Snort .
+ Kiểm tra đánh giá hiệu quả.
10
1.2. Tổng quan về tấn công từ chối dịch vụ
1.2.1. Giới thiệu chung về DDoS
DDoS (distributed denial-of-service attack) là một kiểu tấn công đưa một hệ
thống cung cấp dịch vụ đến mức hoạt động tới hạn về tài nguyên, hay gây nhầm
lẫn logic dẫn đến hệ thống ngừng hoạt động.
Khác với DoS (denial-of-service attack) là chỉ cần một máy để tấn công,
DDoS sử dụng nhiều máy tính bị chiếm quyền điều khiển kết nối với nhau (mạng
Botnet) để tấn công nên sức hủy hoại là rất lớn.
1.2.2. Phân loại các kiểu tấn công DDoS
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 1.1 - Phân loại các kiểu tấn công DDoS
11
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.
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.
- 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.
Flood attack:
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.
12
- 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:
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.
Hình 1.2 - Amplification Attack
13
Có thể chia amplification attack thành hai loại, Smuft va Fraggle attack:
- Smuft 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.
- 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.
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.
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.
14
Hình 1.3 - Ba bước kết nối TCP/IP
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.
Hình 1.4 - Trường hợp IP nguồn giả
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 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
15
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ý.
1.2.3. Sơ đồ mạng Botnet
Sơ đồ Handler-Agent
Hình 1.5 - Sơ đồ Handler-Agent
Mạng Handler-Agent thông thường bao gồm 3 thành phần: Agent, Client và
Handler. Trong đó :
16
- 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, 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.
Sơ đồ IRC Base
Hình 1.6 - Sơ đồ IRC Base
17
Internet Relay Chat(IRC) là một hệ thống online chat nhiều người. IRC cho 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 message của mọi user khác trên cùng channel.
-
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.
1.2.4. 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ụ
18
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.
Hình 1.7 Các phương pháp xây dựng tài nguyên tấn công
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 (CVE), ở đâ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.
19
+ 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
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 cách bí mật. Microsoft Internet Explorer (IE) thường là mục tiêu của
cách cài đặt này, với các lỗi của ActiveX có thể cho phép trình duyệt IE tự động
download và cài đặt code trên máy của người dùng duyệt web.
+ Corrupted file: một phương pháp khác là nhúng code vào trong các file
thông thường. Khi user đọc hay thực thi các file này, máy của họ lập tức bị
nhiễm chương trình Agent software. Một trong những kỹ thuật phổ biến là đặt
tên file rất dài, do mặc định của các hệ điều hành chỉ hiển thị phần đầu của tên
file nên attacker có thể gửi kèm theo email cho nạn nhân file như sau:
iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, do chỉ thấy phần “Iloveyou.txt” hiển
thị nên user sẽ mở file này để đọc và lập tức file này được thực thi và Agent code
được cài vào máy nạn nhân. Ngoài ra còn nhiều cách khác như ngụy trang file,
ghép file…
Giao tiếp trên mạng Botnet
Protocol: giao tiếp trên mạng Botnetcó thể thực hiện trên nền các
protocol TCP, UDP, ICMP.
Mã hóa các giao tiếp: một vài công cụ DDoS hỗ trợ mã hóa giao tiếp
trên toàn bộ mạng Botnet. Tùy theo protocol được sử dụng để giao tiếp sẽ có các
20
phương pháp mã hóa thích hợp. Nếu mạng Botnet ở dạng IRC-based thì private
và secrect channel đã hỗ trợ mã hóa giao tiếp.
Cách kích hoạt Agent: có hai phương pháp chủ yếu để kích hoạt Agent.
Cách thứ nhất là Agent sẽ thường xuyên quét thăm dò Handler hay IRC channel
để nhận chỉ thị (active Agent). Cách thứ hai là Agent chỉ đơn giản là “nằm vùng”
chờ chỉ thị từ Handler hay IRC Channel.
1.2.5. Một số kiểu tấn công DDoS và các công cụ tấn công DDoS
Một số kiểu tấn công DDoS
Bên cạnh việc phân loại các kiểu tấn công theo mục đích tấn công, ta còn có thể
phân loại theo cách tấn công vào giao thức. Dưới đây là phân loại một số cách
tấn công DDoS theo giao thức :
- HTTP Flood
- SYN Flood
- ICMP Flood
- TCP Reset
- UDP Flood
Một số công cụ tấn công DDoS
Trinoo
Trinoo là một công cụ tấn công từ chối dịch vụ bằng kĩ thuật UDP Flood được
kết hợp từ nhiều nguồn.
Một cuộc tấn công DDoS bằng Trinoo được thực hiện bởi kết nối của
attacker đến một hay nhiều Trinoo Master và chỉ dẫn cho Master phát động tấn
công DDoS đến một hoặc nhiều mục tiêu. Master sẽ liên lạc với các daemons để
ra lệnh cho các daemons gửi các UDP packet đến mục tiêu.
Mô hình :
attacker(s)-->Master(s)-->daemon(s)-->victim(s)
- Attacker -----> Master : port 27665/TCP
- Master -----> Deamons : port 27444/UDP
- Daemon ------> Master : port 31335/UD
- Deamon -----> UDP Flood đến mục tiêu (random port) .
21
Tribe Flood Network (TFN/TFN2K)
Tương tự như Trinoo nhưng Tribe Flood Network còn cho phép attacker
sử dụng thêm ICMP flood, SYN flood và Smurf .
Mô hình :
attacker(s)-->client(s)-->daemon(s)-->victim(s)
Stacheldraht
Stacheldraht là sự kết hợp các tính năng của Trinoo và TFN, bên cạnh đó
còn thêm khả năng mã hóa giao tiếp giữa attacker và stacheldraht masters.
Stacheldraht cung cấp cho attacker khá nhiều phương thức tấn công từ
chối dịch vụ : ICMP flood, SYN flood, UDP flood và Smurf .
Mô hình :
client(s)-->handler(s)-->agent(s)-->victim(s)
- Client ---> handler(s) : port 16660/tcp
- Handler <----> agent(s): port 65000/tcp, ICMP ECHO REPLY
Trinity
Trinity có hầu hết các kỹ thuật tấn công bao gồm: UDP, TCP SYN, TCP
ACK, TCP fragment, TCP NULL, TCP RST, TCP random flag, TCP
ESTABLISHED packet flood. Nó có sẵn khả năng ngẫu nhiên hóa địa chỉ bên
gởi. Trinity cũng hỗ trợ TCP flood packet với khả năng ngẫu nhiên tập
CONTROL FLAG. Trinity có thể nói là một trong số các công cụ DDoS nguy
hiểm nhất.
Shaft
Shaft có các kĩ thuật tấn công UDP, ICMP và TCP flood. Có thể tấn
công phối hợp nhiều kiểu cùng lúc. Có thống kê chi tiết cho phép attacker biết
tình trạng tổn thất của nạn nhân, mức độ quy mô của cuộc tấn công để điều chỉnh
số lượng Agent.
Mô hình :
- client(s)-->handler(s)-->agent(s)-->victim(s)
- Client ----> handler(s): port 20432/tcp
- Handler ---> agent(s): port 18753/udp
- Agent ---> handler(s): port 20433/udp
22
X-flash
Vấn đề then chốt của hacker tấn công bằng hình thái cổ điển là nắm quyền
điều khiển càng nhiều máy tính càng tốt, sau đó anh ta sẽ trực tiếp phát động tấn
công hàng loạt từ xa thông qua một kênh điều khiển. Với quy mô mạng lưới tấn
công bao gồm vài trăm nghìn máy, hình thái này có thể đánh gục ngay lập tức bất
cứ hệ thống nào. Phối hợp với khả năng giả mạo địa chỉ IP, kiểu tấn công này sẽ
rất khó lần theo dấu vết.
Hình 1.8 - Mô hình mạng Classic DDoS
Tuy nhiên, mô hình này có một số nhược điểm:
-
Mạng lưới tấn công là cố định và tấn công xảy ra đồng loạt nên rất dễ điều
tra ngược tìm manh mối.
-
Software cài lên các Infected Agent là giống nhau và có thể dùng làm
bằng chứng kết tội hacker.
-
Phía nạn nhân có thể điều chỉnh hệ thống phòng vệ để ngăn chặn vì mạng
lưới tấn công là “khả kiến”.
23
-
Hacker buộc phải trực tiếp kết nối đến mạng lưới các máy tấn công tại
thời điểm tấn công để điều khiển nên rất dễ lần ra thủ phạm.
X-Flash xuất hiện sau khi DantruongX và nhóm BeYeu phát hiện ra
những lỗ hổng bảo mật của IE và Flash Player. Nó chỉ bằng cách đơn giản là gửi
yêu cầu tới web server dạng HTTP Request ( yêu cầu dạng POST hay GET) với
một tốc độ cực kì nhanh kiến web services bị crash.
Cách tấn công : Hacker treo một file flash trên một trang web trung gian
có nhiều người truy xuất, người dùng truy xuất trang web này file flash sẽ được
tải về máy và được chương trình Flash thực thi. Từ đây vô số các yêu cầu truy
xuất sẽ gởi đến trang web mục tiêu.
Hình 1.9 - Mô hình mạng X-Flash DdoS
Flash DDOS có một số đặc tính khiến cho việc ngăn chặn và phát hiện
gần như là không thể. Do mạng lưới tấn công phức tạp và tự hình thành :
- Không cần thiết phải nắm quyền điều khiển và cài DDOS software vào các
infected agent. Thay vào đó mọi user với một trình duyệt có hỗ trợ nội dung
Flash (có Flash Player) sẽ trở thành công cụ tấn công.
24
- Số lượng attack agent tùy thuộc vào số lượng user truy xuất các trang web
đã bị hacker “nhúng” nội dung flash, số lượng này thay đổi theo thời gian và
hoàn toàn không thể nhận biết địa chỉ IP nguồn, vì đây là các user thông thường.
- Không hề có quá trình gởi lệnh và nhận báo cáo giữa hacker và mạng lưới
tấn công, toàn bộ lệnh tấn công được “nhúng” trong nội dung flash và hacker
không cần nhận báo cáo do đây là mô hình tấn công bất đồng bộ.
- Tấn công bất đồng bộ: Việc tấn công diễn ra không cần có mệnh lệnh. Người
dùng truy xuất trang web , load nội dung flash về trình duyệt và Flash player thực
thi nội dung flash thì ngay lập tức máy của họ trở thành một attack agent-liên tục
gởi hàng trăm request đến máy chủ web nạn nhân.
- Quy mô tấn công phụ thuộc vào số lượng trang web bị lợi dụng và số lượng
người dùng thường xuyên truy xuất các trang web này. Chỉ tính trung bình
hacker lợi dụng được 10 trang web và mỗi trang web này có số lượng truy xuất
khoảng 100 user tại một thời điểm thì tổng số request mà server nạn nhân phải
hứng chịu tại một thời điểm lên đến con số vài chục ngàn. Đây là một số liệu
kinh hoàng với bất kỳ ai làm quản trị hệ thống của bất cứ trang web nào và kết
quả thường là hệ thống tê liệt ngay lập tức.
Tuy nhiên, hiện nay chương trình Flash player mới nhất đã được fix lỗi, cách tấn
công Flash đã phần nào được hạn chế.
1.2.6. Phòng chống DDoS
Có rất nhiều giải pháp và ý tưởng được đưa ra nhằm đối phó với các cuộc
tấn công kiểu DDoS. Tuy nhiên không có giải pháp và ý tưởng nào là giải quyết
trọn vẹn bài toán Phòng chống DDoS. Các hình thái khác nhau của DDoS liên
tục xuất hiện theo thời gian song song với các giải pháp đối phó, tuy nhiên cuộc
đua vẫn tuân theo quy luật tất yếu của bảo mật máy tính: “Hacker luôn đi trước
giới bảo mật một bước”.
Có ba giai đoạn chính trong quá trình Phòng chống DDoS:
- Giai đoạn ngăn ngừa: tối thiểu hóa lượng Agent, tìm và vô hiệu hóa các
Handler.
25