ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thế Hùng XÁC THỰC CÁC THÀNH PHẦN TRONG HỆ
THỐNG PAC ĐỂ CHỐNG LỪA DỐI VÀ LỢI DỤNG
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thế Hùng XÁC THỰC CÁC THÀNH PHẦN TRONG HỆ
THỐNG PAC ĐỂ CHỐNG LỪA DỐI VÀ LỢI DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Mạng truyền thông
Cán bộ hướng dẫn: ThS. Đoàn Minh Phương HA NOI-2010
Chương 1: Tổng quan về DDoS 2
1.1. Tổng quan về tấn công DDoS 2
1.1.1. Khái niệm về DDoS 2
1.1.2. Tổ chức mạng lưới DDoS 3
1.1.2.1. Tuyển mộ mạng lưới Agent 3
1.1.2.2. Điều khiển mạng lưới Agents 5
1.1.3. Các loại tấn công DDoS …………………………………………………… 7
1.1.3.1. SYN flood attack: 8
1.1.3.2. UDP Flood attack 9
1.1.3.3. Smurf attack 14
1.1.3.4. DNS Zone Transfer based Flooding 10
1.1.3.5. Ping based attacks 16
1.1.3.6. CGI attacks(Common Gateway Interface) 16
1.2. Tổng quan về phòng thủ DDoS 17
1.2.1. T
ại sao DDoS khó giải quyết 17
1.2.2. Những thách thức khi xây dựng hệ thống phòng thủ DDoS 18
1.2.2.1. Về mặt kĩ thuật 18
1.2.2.2. Về mặt xã hội 19
1.2.3. Mục tiêu khi xây dựng hệ thống phòng thủ 20
1.2.4. Các hướng phòng thủ DDoS 21
1.2.4.1. Phòng ngừa và Phản ứng lại 21
1.2.4.2. Vị trí của hệ thống phòng thủ 17
Chương 2: Các nghiên cứu về phòng chống DDoS 25
2.1. Giao thức AITF 25
2.1.1. Giới thiệu … … 25
2.1.2. Tổng quan về giao thức AITF 25
2.1.3. Cơ chế hoạt động AITF 26
3.5.2. Nhược điểm 37
Chương 4: Phát triển chức năng rút gọn và xác thực cho giao thức lan tỏa ngược 38
4.1. Rút gọn 38
4.1.1. Ý tưởng 38
4.1.2. Cách thức xác định
địa chỉ IP của Agw 38
4.1.3. Thực thi quá trình rút gọn 40
4.1.4. Nhận xét 40
4.2. xác thực
35
4.2.1. Ý tưởng 41
4.2.2. Thực thi quá trình xác thực 41
4.2.3. Kết luận 42
Kết Luận 43
Mở đầu: Tính cấp thiết của đề tài
Sự bùng nổ về công nghệ thông tin và viễn thông kéo theo sự xuất hiện của nhiều
vấn đề nan giải liên quan đến mạng Internet. Tấn công DDoS là một trong những vấn đề
nóng hổi, luôn thu hút được sự quan tâm của cộng đồng Internet. Trong những năm gần
đây, ngày càng có nhiều các cuộc tấn công DDoS với qui mô lớn, gây ảnh hưởng nghiêm
trọng đến các tổ chức lớn như:
Vào ngày 15 tháng 8 năm 2003, Microsoft đã chịu đợt tấn công DDoS làm gián
đoạn websites trong vòng 2 giờ.
Vào lúc 15:09 giờ GMT ngày 27 tháng 3 năm 2003: toàn bộ phiên bản tiếng anh của
website Al-Jazeera bị tấn công làm gián đoạn trong nhiều giờ.
Tháng 6 năm 2004, một cuộc tấn công DDoS đánh sập Akamail name server, khiến
khách hàng không thể truy cập đến server dịch vụ, bao gồm cả công cụ tìm kiếm phổ biến
n công phân tán, khi rất nhiều máy tính kết
hợp với nhau cùng gửi các truy vấn đến nạn nhân cùng một thời điểm- hay còn gọi là
DDoS (distributed denial of sevice). Tấn công DDoS rất đa dạng, thường thì rất khó để
tìm ra đâu là kẻ tấn công thực sự mà chỉ dò ra được đến các máy tính bị lợi dụng, điều
khiển tham gia cuộc tấn công, do vậy rất khó để ngăn ngừa tấn công DDoS.
Những khái niệm sau đây thường
đi với tấn công DDoS: victim, agent, handle,
attacker và stepping stone. Victim là nạn nhân của cuộc tấn công, hay còn gọi là máy
mục tiêu. Agent là những máy trực tiếp gửi gói tin tấn công tới nạn nhân. Attacker là kẻ
tấn công thực sự, Attacker ra lệnh cho các Handle, mỗi Handle này sẽ chịu trách nhiệm
điểu khiển một lượng Agent trực tiếp tấn công vào nạn nhân. Khi truy tìm ngược lại các
vết tấn công, thường chỉ có thể tìm ra các Agent – máy tính bị lợi dụng, chứ khó có thể
tìm ra kẻ điều khiển thực sự. Ngoài ra, trong 1 số hệ thống DDoS, Attacker có thể sử
dụng thêm một máy tính nữa dùng để điều khiển hệ thống từ xa, được gọi là stepping
stone, nhằm che giấu hành tung của mình.
2
Xét về mặt cấu trúc gói tin, từng thông điệp gửi đến nạn nhân là hợp lệ. Mặt khác
các core router khi định tuyến chỉ quan tâm đến địa chỉ đích chứ không quan tâm đến địa
chỉ nguồn, nên nếu attacker giả mạo IP của Agent, sự phức tạp của việc xác định các
Agent cũng như các gói tin tấn công trở nên rất khó khăn.
1.1.2. Tổ chức mạng lưới DDoS
Tùy theo kế hoạch tấn công mà attacker có thể
huy động 1 số lượng lớn các máy
tính gián tiếp hay trực tiếp tham gia. Việc này có thể làm thủ công, bán thủ công hoặc
hoàn toàn tự động. Các attacker thường hay sử dụng công cụ phổ biến Trinoo và Shaft,
công cụ trên sẽ điều khiển những những tiến trình được cài đặt tự động tại các máy agents
để tấn công vào victim. Ngày nay attacker thường sử dụng những kịch bản tự động để cài
bản và cho phép điều khiển từ xa, cuối cùng là tải về kịch bản tấn công DDoS hoặc 1
chương trình thực thi, thậm chí cả viruts. Worm có khả năng sử dụng những cách thức
che giấu mình, biết lẩn tránh và disable chương trình antivirut . Trong lịch sử đã có
những con Worm lây nhiễm cho hàng trăm nghìn máy tính, làm thiệt hại hàng triệu USD
như MyDoom, Bagle, Slammer …
Ngày nay, với sự bùng nổ của các dịch vụ Web và các mạng chia sẻ ngang hàng,
Attacker đã có thêm nhiều cách thức khác nhau để thành lập được một mạng botnet lớn
một cách nhanh chóng. Theo cách này, Attacker thường khai thác những lỗi của phần
mềm, lợi dụng sự cả tin và những thói quen không an toàn của người sử dụng máy tính để
cài đặt 1 tiến trình trên máy tính, từ đó có thể từ xa tra lệnh cho máy tính tấn công Victim.
Điển hình ở Việt Nam đã có thời kì bùng nổ Virut, Trojan lan truyền qua Yahoo
Messenger. Kẻ tấn công đã lợi dụng 1 lỗ
i bảo mật trên trình duyệt Web Internet Explorer
để tạo 1 trang web, sao cho mỗi khi người dùng vào trang web đó là bị cài đặt 1 chương
trình chạy ngầm trên máy tính. Từ đó chương trình này tiếp tục quảng bá nó, dụ dỗ người
khác vào website kia bằng cách gửi tin nhắn chứa link đến tất cả bạn bè của người bị hại
qua phần mềm Yahoo Messenger, đặt status có chứa link đến trang web… Mỗi khi sử
dụng YM trên máy bị nhiễm, thì hàng chục, hàng trăm bạn bè trong friend list đều
được
‘giới thiệu’ đến Website độc hại đó. Và vì tin tưởng lẫn nhau, chỉ cần 1 người bạn lỡ dùng
IE mở website ấy lên là chương trình được nhân bản, và nó tiếp tục quảng bá đến hàng
chục, hàng trăm người khác. Chương trình ấy lây lan nhanh đến mức cơ quan quản lý
dịch vụ Yahoo Messenger Việt Nam đã phải chặn tất cả các tin nhắn offline có chứa link
lạ trong đó.
4
1.1.2.2. Điều khiển mạng lưới Agents
Khi mạng lưới các Agents đã trở lên rộng lớn, có thể lên tới hàng chục, hàng trăm
nghìn nên rất khó để Attacker liên lạc với từng agent, để điều khiền Agents, Attacker
phải lưu trữ những định nghĩa về các Agents, và đôi khi, chính những Agents cũng lưu
những giá trị để xác định Handler. Vì thế phương pháp ra lệnh trực tiếp thường tạo ra
nhiều hiện tượng bất thường trên mạng (ví dụ máy tính đột nhiên mở nhiều cổng lạ chờ
kết nối, Web server lại tự khởi tạo liên lạc với nhiều IP ngoài…), khiến cho người quản trị
nhanh chóng phát hiện ra dấu vết. Trong phương pháp ra lệnh trực tiếp thì Handler và
Agent luôn luôn phải ở trạng thái sẵn sàng đợi lệnh. Dù không có thông điệp nào truyền
tải giữa Attacker với Handler, giữa Handler với Agent thì người quản trị vẫn có thể phát
hiện ra có những tiến trình ngầm hoạt động trong máy tính, mở những cổng lạ để chờ đợi
lệnh điều khiể
n. Vì thế, Attacker cần phải viết trước những đoạn code để lập kịch bản
trước, tránh để cho các quản trị viên phát hiện ra.
Điển hình của phương pháp ra lệnh gián tiếp này là việc sử dụng hệ thống Internet
Relay Chat (IRC) để điều khiển 1 số lượng lớn Agents. Hai chương trình nổi tiếng đã
được sử dụng là Kaiten bot trên Unix và Power bot trên Windows. Đầu tiên, cả Attacker
và Agent (bot) đều kết n
ối tới 1 IRC Server như là 1 IRC Client bình thường. Tới khi hầu
hết các sites đều chấp nhận các kênh IRC cho người dùng, thì những giao tiếp DDoS đều
chưa tạo bất cứ 1 hiện tượng bất thường nào. Vai trò của Attacker chỉ được thể hiện như
là 1 kênh truyền bình thường tới IRC Server, và được bảo vệ bởi password. Có những
đoạn code chuẩn định nghĩa về kênh truyền mặc định ở trong các bot, đầu tiên nó sẽ học
6
kênh điều khiển hiện tại ở đâu, bot sẽ nhảy sang kênh đó, và có thể nhận các lệnh điều
khiển từ Attacker thông qua IRC Server.
(hình 2: mô hình IRC)
Trong trường hợp này, không có Handler chắn giữa Attacker và Agents, vì thế
Attacker thường sử dụng 1 máy khác, được gọi là Stepping Stone để che giấu tung tích
của mình với IRC Server, và để đề phòng khi các cơ quan an ninh điều tra.
1.1.3.2. UDP Flood attack
Khác với giao thức hướng kết nối TCP, UDP là giao thức không hướng kết nối. yếu
tố này có thể được kẻ tấn công lợi dụng để gửi một số lượng lớn luồng dữ liệu với địa chỉ
giả mạo tới một cổng sever nạn nhân. Server nạn nhân xử lý các gói tin này và sớm nhận
ra rằng đó không phải là yêu cầu cho một dịch vụ cụ thể. Vì v
ậy cpu của server nạn nhân
tốn hiệu năng vô ích vào việc xử lý những yêu cầu này. Với việc gửi một số lượng lớn các
luồng dữ liệu giả mạo như vậy, kẻ tấn công có thể khiến cpu của server nạn nhân quá tải ,
hơn nữa UDP không có cơ chế điều khiển tắc nghẽn, nó sẽ có xu hướng cắt bớt băng
thông khi tốc độ gửi các gói tin tă
ng nhanh và có thể ép những người dùng hợp lệ sử dụng
giao thức TCP(có cơ chế điều khiển tắc nghẽn) phải hạ thấp tốc độ gửi gói tin, gây ra sự
mất cân bằng trong phân phối dịch vụ.
1.1.3.3. Smurf attack
Kẻ tấn công gửi gói tin ping ICMP đến địa chỉ broadcast của mạng, điều này khiến
tất cả những host trong mạng phải gửi gói tin ICMP đáp lại, việc này thườ
ng tạo ra một
lượng lớn các luồng dữ liệu và có xu hướng tiêu tốn nhiều băng thông mạng.
.
(Hình 4: smurf attack)
9
1.1.3.4. DNS Zone Transfer based Flooding
Một Zone Transfer(vùng chuyển đổi ) yêu cầu thông tin về tên server (Name
Server) của tất cả các vùng còn lại. Cách này thường được sử dụng khi một server khác tự
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 mạng để từ đó phát hiện sớm và có những biện pháp hiệu quả để ngăn chặn tấn
công DDoS.
1.2. Tổng quan về phòng thủ DDoS
1.2.1. Tại sao DDoS khó giải quyết
Có 2 hướng để thực hiện tấn công DDoS: đó là nhằm vào điểm yếu (vulnerability
attack) và làm ngập mạng (flooding attack). Do có 1 số đặc tính về kĩ thuật như sau làm
khó giải quyết được triệt để các cuộc t
ấn công DDoS:
- Sự đơn giản: Một người sử dụng máy tính bình thường không rành về mạng cũng
có thể thực hiện 1 cuộc tấn công DDoS. Bởi vì đã có sẵn rất nhiều công cụ DDoS trên
mạng và cả hướng dẫn sử dụng rất chi tiết để thực hiện.
- Sự đa dạng của các gói tin tấn công: Sự giống nhau giữa các traffic tấn công và
các traffic hợp lệ làm quản trị viên khó có thể phân bi
ệt được. Khác với các nguy cơ bảo
mật như virut, worm, adware… cần phải có những gói tin mánh khóe, mẹo mực lợi dụng
vào lỗ hổng, nhưng flood attack chỉ cần lưu lượng lớn traffic và header cũng như nội dung
packet đều có thể tùy ý theo Attacker
- Sự giả mạo IP làm cho các luồng dữ liệu tấn công từ agents đến như là từ những
người dùng hợp lệ. Vì thế quản trị viên rất khó phân biệt để có th
ể phát hiện các cuộc tấn
công.
- Lượng traffic lớn, gửi với tần suất cao: Lượng traffic khổng lồ mà DDoS tạo ra
không chỉ làm ngập tài nguyên của Victim, mà còn làm quản trị viên rất khó mô tả, phân
tích và tách biệt được packet hợp lệ và packet tấn công chúng.
12
- Khó thử nghiệm trên thực tế: Những hệ thống thử nghiệm DDoS ở phòng thí
nghiệm không thể phản ánh đúng thực tế rộng lớn, phong phú trên mạng Internet được.
Trong khi đó nếu muốn triển khai để thử nghiệm thật qua Internet thì các điều luật không
cho phép, vì tấn công DDoS không chỉ ảnh hưởng đến Victim, mà còn liên quan đến rất
nhiều các thành phần khác như router, switch… của ISP quản lý ở phần lõi Mạng. Còn
nế
u thử nghiệm luôn trên 1 hệ thống thật đang bị tấn công thì lại thiếu thông tin cần đo
đạc ở Agent, Handler, Attacker…
- Chưa có chuẩn đánh giá các hệ thống phòng thủ: Có nhiều vendor đã công bố
rằng giải pháp của họ có thể giải quết được DDoS. Nhưng hiện tại chưa có 1 lộ trình
chuẩn nào để kiểm thử các hệ thống phòng thủ DDoS. Từ đó dẫn đến 2 vấ
n đề: thứ nhất là
những người phát triển hệ thống phòng thủ tự test chính họ, do đó những thiết kế sẽ luôn
phù hợp nhất để hệ thống đó hoạt động thuận lợi. Thứ hai là những nghiên cứu về DDoS
không thể so sánh hiệu suất thực tế của các hệ thống phòng thủ khác nhau, thay vào đó,
họ chỉ có thể nhận xét về từng giải pháp trên môi trường thử nghiệm mà thôi.
1.2.2.2. Về mặt xã hội
Một thử thách lớn khi muốn giải quyết triệt để vấn nạn tấn công DDoS là về yếu tố
Xã hội. Có rất nhiều điều luật về an ninh, bảo mật của nhiều đất nước, nhiều ISP khác
nhau mà người triển khai khó có thể thỏa mãn tất cả để thực hiện hệ thống phòng thủ của
mình. Ví dụ ISP không cho bạn s
ơ đồ chi tiết cấu hình Mạng, không cho phép bạn tự do
cài đặt chương trình trên các router của họ… Đối với các nạn nhân của DDoS, thông
thường là các doanh nghiệp, thì việc đầu tiên là họ sẽ cố gắng tự mình giải quyết, nếu
thành công thì sẽ giấu kín, không công bố cho bên ngoài là mình đang bị tấn công vì lo
ngại ảnh hưởng đến danh tiếng của công ty. Chỉ khi nào dịch vụ của họ bị chết hẳn, không
thể t
ự cứu thì mới liên hệ với các ISP và chính quyền.
nhiều điểm yế
u của giao thức, của mạng hoặc thay đổi thông số bên trong packet. Vì thế
nếu hệ thống chỉ có thể phòng thủ được 1 số cách tấn công nhất định, thì khi attacker thay
đổi, hệ thống đó sẽ sụp đổ hoàn toàn.
15
- Cung cấp dịch vụ cho tất cả các traffic hợp lệ: đây là yêu cầu quan trọng nhất
khi triển khai một hệ thống phòng thủ DDoS.
- Chi phí phát triển và điều hành thấp
1.2.4. Các hướng phòng thủ DDoS
Có thể phân loại các phương pháp giải quyết DDoS theo hai tiêu chí là thời gian và
vị trí. Xét theo thời gian, có hai xu hướng: trước (phòng ngừa) và sau (phản ứng lại khi
cuộc tấn công xảy ra). Xét theo vị trí đặt trung tâm đi
ều khiển việc xử lý phòng chống
DDoS, thì có các vị trí: gần Victim, gần Attacker, trong phần lõi của Internet hoặc kết
hợp nhiều vị trí
1.2.4.1. Phòng ngừa và Phản ứng lại
Phương pháp phòng ngừa áp dụng các chính sách để kẻ tấn công không thể hoặc
khó tấn công hệ thống. Phương pháp này có thể được thực hiện bằng cách tăng cường sức
mạnh của hệ thống: năng lực xử lý các yêu cầ
u dịch vụ, băng thông… để giảm thiểu tối
đa tác hại của cuộc tấn công DDoS. Nhưng do mạng lưới tấn công có đặc điểm phân tán,
là tập trung của nhiều máy tính cấu hình trung bình nên dễ tập hợp được số lượng lớn để
hội tụ thành một lượng băng thông gấp nhiều lần so với hệ thống của victim. Vì vậy việc
tăng cường sức mạnh không thực sự có hiệu quả.
Phương pháp phản ứng lại chấp nhận cho cuộc tấn công xảy ra, sau đó truy tìm và
tiêu diệt các hướng tấn công, làm giảm thiểu rủi ro hoặc chấm dứt cuộc tấn công. Bằng
cách phát hiện chính xác kẻ tấn công, nạn nhân sẽ có chính sách cấm những truy nhập, từ
đó giảm thiểu được tác hại của cuộc tấn công. Phương pháp này hiện là hướng nghiên cứu
cũng như sự đảm bảo chắc chắn về tính hiệu quả đem lại khi tăng sự phức tạp của phần
lõi.
(hình 9: mô hình đặt tại phần lõi của Internet)
18
Phương pháp cuối cùng và hay được nghiên cứu hiện nay là phương pháp kết hợp
nhiều vị trí: nạn nhân phát hiện và bắt đầu xử lý, sau đó cố gắng đẩy vị trí phòng chống ra
hệ thống mạng gần kẻ tấn công nhất có thể, từ đó giúp giảm tải cho toàn mạng Internet
chứ không chỉ cho Victim nữa.
(hình 10: Kết hợp nhiều vị trí)
19