Tài liệu Khóa luận 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
HA NOI-2010
ĐẠ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
Tóm tắt nội dung luận văn
Giao thức lan tỏa ngược là một cơ chế để phòng chống lại các cuộc tấn công DDoS
theo phương pháp phản ứng lại và kết hợp nhiều vị trí. Giao thức lan tỏa ngược được
nhóm tác giả (ĐHCN) công bố lần đầu tại Hội nghị Khoa học Công nghệ Thái Nguyên
(2007). Sau đó tác giả Hoàng Văn Quân (K49 ĐHCN) đã trình bày chi tiết mô hình lý
thuyết và cài đặt thử nghiệm phần lõi của giao thức trong khóa luận tốt nghiệp đại học
(2008 - ĐHCN). Những phần còn lại trong mô ...
45 trang |
Chia sẻ: haohao | Lượt xem: 1017 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠ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
HA NOI-2010
ĐẠ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
Tóm tắt nội dung luận văn
Giao thức lan tỏa ngược là một cơ chế để phòng chống lại các cuộc tấn công DDoS
theo phương pháp phản ứng lại và kết hợp nhiều vị trí. Giao thức lan tỏa ngược được
nhóm tác giả (ĐHCN) công bố lần đầu tại Hội nghị Khoa học Công nghệ Thái Nguyên
(2007). Sau đó tác giả Hoàng Văn Quân (K49 ĐHCN) đã trình bày chi tiết mô hình lý
thuyết và cài đặt thử nghiệm phần lõi của giao thức trong khóa luận tốt nghiệp đại học
(2008 - ĐHCN). Những phần còn lại trong mô hình lý thuyết vẫn chưa được phát triển. Vì
vậy, dưới sự định hướng của giáo viên hướng dẫn và sự trợ giúp của tác giả, tôi thực hiện
khóa luận tốt nghiệp này với mục đích hoàn thiện đầy đủ các thành phần đã nêu trong mô
hình lý thuyết của giao thức.
MỤC LỤC
Mở đầu: Tính cấp thiết của đề tài ........................................................................................1
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
2.1.4. nhận xét ....................................................................................................... 27
2.2. Hệ thống D-WARD..............................................................................................27
2.2.1. Mục tiêu....................................................................................................... 27
2.2.2. Triển khai D-WARD................................................................................... 28
3.2.3. Nhận xét ...................................................................................................... 29
Chương 3: GIAO THỨC LAN TỎA NGƯỢC..................................................................29
3.1. Giới thiệu về giao thức Lan tỏa ngược.....................................................................29
3.1.1. Khái niệm chung............................................................................................... 29
3.1.2. Các thuật ngữ .................................................................................................... 30
3.1.2.1. Bộ lọc (Filter) ..............................................................................................30
3.1.2.2. Router/Gateway...........................................................................................30
3.1.2.3. Cơ chế “Lan tỏa ngược”..............................................................................30
3.2. Cơ chế hoạt động......................................................................................................31
3.2.1. Bước 1: Khởi động ........................................................................................... 31
3.2.2. Bước 2: Bắt đầu ................................................................................................ 32
3.2.3. Bước 3: Kiểm tra giả mạo................................................................................. 32
3.2.4. Bước 4: Rút gọn................................................................................................ 32
3.2.5. Bước 5: Ngăn chặn ........................................................................................... 33
3.2.6. Bước 6: Lan tỏa ngược ..................................................................................... 34
3.3. Chống lừa dối ...........................................................................................................35
3.3.1. Nguy cơ............................................................................................................. 35
3.3.2. Giải pháp........................................................................................................... 35
3.4. Chống lợi dụng giao thức.........................................................................................36
3.4.1. Nguy cơ............................................................................................................. 36
3.4.2. Giải pháp........................................................................................................... 36
3.5. Nhận xét ...................................................................................................................37
3.5.1. Ưu điểm ............................................................................................................ 37
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
Google và Yahoo, một tháng sau đó một cuộc tấn công khác làm tràn ngập Doubleclick
name server khiến các khách hàng của dịch vụ này tê liệt trong vòng 3 giờ.
Trên thế giới đã có nhiều nghiên cứu về phòng chống DDoS, nhưng thực sự tất cả
chỉ là những lý thuyết thử nghiệm, mới được triển khai qui mô nhỏ trong phòng thí
nghiệm, chưa được áp dụng rộng rãi. Tôi viết luận văn này nhằm mục đích đưa ra một cái
nhìn rõ ràng hơn về DDoS và giới thiệu một cách thức phòng chống DDoS-giao thức Lan
tỏa ngược, với những phần phát triển thêm vào.
1
Chương 1: Tổng quan về DDoS
1.1. Tổng quan về tấn công DDoS
1.1.1. Khái niệm về DDoS
Tấn công DoS (Denial of Service) là một hành động cố ý của những kẻ có ý định
xấu nhằm mục đích làm quá tải tài nguyên mạng, khiến mạng mất khả năng phục vụ
những người dùng hợp lệ. Phương pháp tấn công DDoS chủ yếu thường là tấn công tràn
ngập mạng thông qua việc gửi số lượng lớn các gói tin đến nạn nhân, việc làm này tiêu
tốn tài nguyên mạng như băng thông, bộ đệm router, khả năng xử lý của cpu. Một vài
phương pháp tấn công DDoS phổ biến có thể nêu tên như: SYN flooding, UDP flooding,
DNS base flooding, ICMP direct broadcast, Ping flood attack. Dựa trên số lượng các máy
tính tham gia để tiến hành một cuộc tấn công, tấn công DoS có thể được chia làm hai loại:
kẻ tấn công sử dụng tất cả băng thông sẵn có thông qua việc tạo ra một số lượng lớn các
gói tin từ một máy tính, hay là trường hợp tấ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
đặt những tiến trình ngầm vào các agents, hoặc thậm chí sử dụng những công cụ tự động
scan để dò tìm những lỗ hổng rồi lây nhiễm qua máy khác . Điều này đang ngày càng trở
lên nguy hiểm, bởi lẽ một khi đã có thể điều khiển 1 tiến trình trong máy Victim, thì
attacker có thể cài đặt virut, các phần mềm độc hại khác, ăn cắp dữ liệu,thông tin cá nhân,
tài khoản ngân hàng… chứ không chỉ đơn thuần nhằm tấn công DDoS nữa.
Có 3 bước thực hiện chung để tổ chức 1 mạng lưới DDoS: tuyển mộ mạng lưới
agent, điều khiển mạng botnet đó và thực hiện tấn công.
1.1.2.1. Tuyển mộ mạng lưới Agent
Muốn thành lập mạng botnet, attacker phải tìm kiếm được những máy tính dễ bị
lợi dụng (Vulnerable Machines). Quá trình này được gọi là quá trình thăm dò, attacker gửi
1 vài gói tin để thử xem những host nào có thể lợi dụng. Quá trình thăm dò có thể thực
hiện dễ dàng thông qua một số công cụ có sẵn, hoặc thực hiện tự động với sâu hay virut
máy tính .
Một bot (khái niệm này xuất phát từ robot) là 1 chương trình máy khách được chạy
ẩn trên máy tính bị hại, gửi thông báo cho attacker các thông tin trạng thái của máy tính bị
lợi dụng và chờ đợi lệnh điều khiển từ attacker để phát hành tấn công. Các chương trình
bot ngày nay thậm chí còn có khả năng tự động scan các máy trong cùng dải mạng để tìm
3
những máy tính có khả năng bị lợi dụng như mình rồi thông báo cho attacker để mở rộng
mạng botnet.
Những chương trình có thể tự động dò tìm, tự động lây nhiễm đến các máy có khả
năng bị lợi dụng được gọi là Internet Worm. Do cơ chế có thể hoạt động độc lập xây dựng
mạng botnet nên Worm rất được các attacker ưa thích. Worm có 3 chức năng chính là: dò
quét để tìm kiếm các máy tính có khả năng lợi dụng, khai thác lỗi nhằm lây nhiễm, nhân
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
thường sử dụng các công cụ kết nối “nhiều – nhiều”. Có 2 mục đích của việc làm này:
1 – Attacker ra lệnh rõ ràng, mạch lạc hơn
2 – Attacker dễ dàng thu thập được thông tin, hành vi của các Agents
Những công cụ tạo mạng lưới Agents trước đây như Trinoo, Tribe Flood Network
(TFN), và Shaft chỉ có thể tạo mạng botnet với vài trăm hoặc vài nghìn Agents. Nhưng
ngày nay số lượng 1 mạng botnet đã tăng lên rất lớn, điển hình là mạng Phatbot đã có đến
400.000 host.
Có một số cách thông dụng để Attacker có thể điều khiển mạng botnet của mình:
Ra lệnh trực tiếp
Một số công cụ như Trinoo xây dựng 1 mạng gồm 2 thành phần là handler và
agents. Attacker sẽ điều khiển mạng qua handler, còn handler sẽ gửi lệnh đó đến nhiều
agents (đôi khi sử dụng 1 bộ lệnh khác với attacker đã dùng) để chúng trực tiếp tấn công
Victim.
(hình 1: ra lệnh tấn công)
5
Trong thời kì đầu, những chương trình điều khiển theo cách này thì không mã hóa
khi truyền thông tin điều khiển hay có bất cứ authentication nào giữa Attacker – Handlers
và giữa Handler – Agents cả. Vì thế các Handler dễ bị phát hiện, thậm chí có thể bị 1
attacker khác lợi dụng. Những công cụ ngày nay đã cho phép mã hóa trên kênh truyền
lệnh giữa Attacker và Handler, hoặc yêu cầu password để điều khiển các Agents (ví dụ
như Stacheldraht)
Ra lệnh gián tiếp
Phương pháp ra lệnh trực tiếp có 1 số nhược điểm đối với Attacker. Handlers cần
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. Các loại tấn công DDoS
Một cuộc tấn công DDoS có thể tiêu tốn hoàn toàn băng thông mạng, bộ đệm gói tin
trên router, làm tê liệt khả năng xử lý cpu, ram của nạn nhân. Tôi sẽ tập trung chủ yếu vào
cách tấn công làm tràn ngập băng thông mạng và thảo luận về cách hoạt động của một
packet flood (gói tin gửi bởi kẻ tấn công).
7
1.1.3.1. SYN flood attack:
Loại tấn công này sử dụng cơ chế của giao thức TCP, là loại tấn công chủ yếu để
làm tràn ngập băng thông của nạn nhân. Một kết nối TCP được hình thành sử dụng cơ chế
bắt tay 3 bước. đầu tiên một gói tin SYN với địa chỉ nguồn giả yêu cầu được gửi từ host
của kẻ tấn công đến nạn nhân. Nạn nhân tiếp nhận yêu cầu là một SYN-ACK, truy cập
cấu trúc dữ liệu cho kết nối, và lưu trữ thông tin cần thiết cho kết nối vào hàng đợi, chờ kẻ
tấn công gửi gói tin yêu cầu SYN-ACK ở trên. Khi thực hiện xong điều này, hàng đợi xóa
thông tin kết nối, kết nối được thành lập. Nhưng nếu địa chỉ nguồn là địa chỉ giả mạo,
bước thứ 3 của quá trình bắt tay 3 bước ở trên không bao giờ được hoàn thành. Do vậy,
thông tin cần thiết cho việc kết nối được lưu trữ trong hàng đợi cho đến hết một khoảng
thời gian mặc định được thiết lập rồi mới bị loại bỏ. Mỗi server chỉ có một số lượng hạn
chế bộ nhớ, do vậy sẽ hạn chế số lượng các kết nối chờ cho tới khi kết nối được thiết lập ,
một kẻ tấn công gửi tói tin SYN-REQUEST sử dụng địa chỉ nguồn ảo với một tốc độ cao
có thể khiến hàng đợi kết nối quá tải, do vậy ngăn cản những người dùng hợp lệ yêu cầu
dịch vụ của server.
(hình 3: SYN food attack)
8
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ự
cập nhật thông tin bằng cách gửi yêu cầu đến server chính. Khi kẻ tấn công gửi những yêu
cập lập đi lặp lại đến name server có thể gây ra sự tiêu tốn băng thông mạng rất lớn vì
luồng dữ liệu cho mỗi yêu cầu là khá lớn.
(hình 5: DNS zone transfer)
10
1.1.3.5. Ping based attacks
Hay còn gọi là Ping of death hay “Long ICMP” khi mà host tấn công gửi một lượng
lớn các gói tin ICMP đến server nạn nhân. Những kẻ tấn công thường sử dụng các gói tin
có độ dài lớn hơn 65536 bytes, độ dài lớn nhất của gói tin được quản lý bởi giao thức
TCP. Cách tấn công này ảnh hưởng đến cả khả năng xử lý của cpu và băng thông mạng.
(hình 6: Ping base attack)
1.1.3.6. CGI attacks(Common Gateway Interface)
Cpu luôn tốn rất nhiều thời gian để xử lý các kịch bản CGI, vì vậy khi kẻ tấn công
gửi một số lượng lớn các kịch bản CGI đến server nạn nhân có thể làm chậm khả năng xử
lý của server.
11
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 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
- Số lượng lớn các Agents: Một trong những điểm mạnh của tấn công DDoS là có
thể huy động được 1 số lượng lớn Agent phân tán trên toàn Internet. Khi đó, luồng tấn
công sẽ lan tỏa trên nhiều nhánh tới Victim, điểm tụ tấn công sẽ gần sát nạn nhân, và hệ
thống phòng thủ sẽ rất khó có thể chống từ phía xa. Ngoài ra, hệ thống Agent phân tán
cũng đồng nghĩa với sự phức tạp, phong phú, khác biệt về mô hình quản lý mạng giữa các
ISP khác nhau, vì thế các cơ cơ chế phòng thủ yêu cầu sự phối hợp từ nhiều nơi sẽ triển
khai khó khăn hơn rất nhiều.
- Những điểm yếu trên mô hình mạng Internet: Có những cơ chế, giao thức mạng
mà khi thiết kế chưa lường trước được những điểm yếu có thể bị lợi dụng (ví dụ TCP
SYN, ping of Death, LAND Attack…). Đôi khi là lỗi của nhà quản trị khi cấu hình các
policy mạng chưa hợp lý.
1.2.2. Những thách thức khi xây dựng hệ thống phòng thủ DDoS
Do những tính chất phức tạp của DDoS như đã trình bày ở trên, nên xây dựng 1 hệ
thống phòng thủ DDoS là không đơn giản. Để làm được điều đó cần xử lý được cả trên 2
lĩnh vực: kĩ thuật và xã hội.
1.2.2.1. Về mặt kĩ thuật
- Xử lý phân tán từ nhiều điểm trên Internet: Vì các luồng tấn công xảy ra từ
nhiều nguồn khác nhau, đi qua toàn mạng Internet trong khi thường chỉ có một mình
Victim với ít thiết bị, quyền hạn, khả năng xử lý hạn chế nên không thể đạt được hiệu quả
cao. Sự tấn công phân tán thì cần sự phòng thủ phân tán thì mới giải quyết triệt để được.
- Thiếu thông tin chi tiết về các cuộc tấn công thực tế: Có không nhiều thông tin
về tác hại của DDoS gây lên cho các doanh nghiệp, nó thường chỉ có khi tác hại của nó là
rõ ràng và doanh nghiệp không thể tự xử lý được mà phải báo lên chính quyền. Vì thế lại
càng ít các thông tin chi tiết, như là bản log các traffic, sơ đồ mạng chi tiết của doanh
nghiệp.
13
- 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.
Một vấn đề khác là đôi khi cần phải sửa đổi một số điểm yếu của các kiến trúc
mạng để giảm tác hại của DDoS, ví dụ như giao thức TCP, IP, HTTP… Nhưng không dễ
14
làm được điều đó, vì hiện tại đã có rất nhiều hệ thống xây dựng trên nền tảng cũ, và
không thể ngày thay đổi trong ngày một ngày hai được.
Có một đặc điểm của DDoS là khi Victim bị tấn công, thì nếu muốn triệt để không
còn traffic DDoS nữa, thì phải làm sao yêu hàng nghìn Agent ngừng tấn công. Chỉ có 1
cách làm được điều này là tại các Agent phải cài đặt 1 phần mềm, hay hệ thống để ngăn
chặn gói tin DDoS ngay khi vừa sinh ra. Nhưng không dễ thuyết phục được các End User
làm điều đó, vì nó không mang lại lợi ích trực tiếp gì cho bản thân họ, đôi khi còn làm
ảnh hưởng đến hiệu năng mạng của End User.
Yếu tố cuối cùng là thiếu sự thống nhất về các điều luật, chế tài xử phạt các
Attacker, Handler, Agents giữa các bộ luật về Công nghệ thông tin của các nước và giữa
các quy định về bảo mật, an toàn của các Internet Service Provider.
1.2.3. Mục tiêu khi xây dựng hệ thống phòng thủ
Cho dù triển khai hệ thống phòng thủ theo cách thức nào thì cuối cùng cũng phải
hướng tới 4 mục tiêu chính như sau:
- Tính hiệu quả: yêu cầu các thành phần tham gia vào hệ thống phòng thủ: victim,
router… đều không phải chịu thêm tải quá nặng. Ví dụ khi bình thường CPU Usage của
Server chỉ chạy 10% để phục vụ cho các Client, nhưng sau khi cài đặt hệ thống phòng thủ
vào, cho dù chưa xảy ra DDoS thì CPU Usage do phải tính toán thêm nhiều nên đã lên
đến 20% là không chấp nhận được.
- Tính trọn vẹn: Một hệ thống phòng thủ tốt cần phải bảo vệ Victim được khỏi tất
cả các kiểu tấn công DDoS. Bởi vì đối với Attacker, một khi đã điều khiển được mạng
botnet thì hắn hoàn toàn có thể sử dụng nhiều kịch bản tấn công khác nhau, lợi dụng
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
chính trong việc giải quyết DDoS.
Nhược điểm chung của phương pháp phản ứng lại là việc giải quyết không triệt để
và không chủ động. Nạn nhân bị tấn công đã phải hứng chịu các hậu quả. Biện pháp này
chỉ giúp chấm dứt hậu quả sớm và giảm thiểu thiệt hại.
16
1.2.4.2. Vị trí của hệ thống phòng thủ
Phương pháp đặt gần victim là phương pháp đơn giản nhất do ít phụ thuộc vào các
tác nhân khác, nạn nhân tự giải quyết vấn đề. Phương pháp này thường dùng để phản ứng
lại sau khi nạn nhân phát hiện bị tấn công. Tuy nhiên cách tiếp cận này không thể giải
quyết tận gốc, quản trị viên chỉ có thể giảm thiểu thiệt hại chứ không thể chấm dứt cuộc
tấn công.
(hình 7:Mô hình đặt gần nạn nhân)
Phương pháp đặt gần attacker là phương pháp ngăn chặn các gói tin DDoS ngay khi
vừa được sinh ra tại nguồn. Nó có ưu điểm là giảm được tối đa tác hại của gói tin DDoS,
chống được giả mạo IP. Tuy nhiên lại rất khó thực hiện do phải thay đổi hệ thống mạng
trên quy mô lớn. Hiện mới chỉ có khoảng ba hướng nghiên cứu theo cách tiếp cận này.
Trong đó, D-WARD là có kết quả tốt nhất với khả năng hoạt động độc lập.
17
(hình 8: Mô hình đặt gần kẻ tấn công)
Một vị trí khác là đặt tại phần lõi của Internet. Cách tiếp cận này ít được quan tâm
rộng rãi do để tiếp cận được phần lõi của Internet cần có một khoản chi phí không nhỏ,
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
Chương 2: Các nghiên cứu về phòng chống DDoS
2.1. Giao thức AITF
2.1.1. Giới thiệu
Giao thức AITF được phát triển bởi nhóm nghiên cứu hệ thống phân tán trường đại
học Stanford nhằm ngăn chặn và phản ứng tức thời với những cuộc tấn công DDoS.
Nhóm tác giả đã nghiên cứu và thử nghiệm giao thức AITF với kết quả khá khả quan:
AITF có thể ngăn chặn tức thời hàng triệu luồng tấn công trong khi chỉ yêu cầu một sự
tham gia của một lượng nhỏ các router.
2.1.2. Tổng quan về giao thức AITF
( Hình 11: mô tả AITF)
Vgw thiết lập một kết nối đặc biệt tới Agw kèm theo một yêu cầu: ” không gửi các
gói tin mà tôi không cần nữa” . Khi kết nối đặc biệt trên hoàn thành, Vgw có thể gỡ bỏ bộ
lọc tạm thời trên. Nếu Agw không hợp tác, Vgw có thể lan tỏa yêu cầu đặt bộ lọc tới router
gần sát với Agw. Sự lan tỏa như trên được đệ qui theo dọc tuyết đường từ kẻ tấn công tới
nạn nhân cho tới khi kết nối đặc biệt nêu trên được thiết lập. Trong trường hợp xấu nhất,
20
khi không có router nào đáp trả yêu cầu kết nối, bộ lọc sẽ được đặt tại gateway của victim
Vgw. Tuy nhiên AITF có những cơ chế đặc biệt để hỗ trợ và khuyến khích các router gần
tới nguồn tấn công chặn các luồng tấn công DDoS.
2.1.3. Cơ chế hoạt động AITF
(Hình 12: hoạt động giao thức AITF)
Như hình 12, AITF có sự tham gia của 4 thực thể
- Victim V gửi yêu cầu lọc đến Vgw, chỉ rõ luồng dữ liệu không mong muốn F
- Victim gateway Vgw
b1: Cài đặt bộ lọc tạm thời để chặn luồng tấn công F trong thời gian Ttmp giây
b2: Khởi tạo quá trình bắt tay 3 bước với Agw
b3: Gỡ bỏ bộ lọc nếu hoàn thành quá trình bắt tay 3 bước
- Attack gateway Agw
b1: Đáp lại quá trình bắt tay 3 bước
b2: Cài đặt bộ lọc tạm thời để chặn luồng tấn công F trong thời gian Ttmp nếu quá
trình kết nối bắt tay 3 bước thành công
21
b3: Gửi yêu cầu lọc đến nguồn tấn công A, yêu cầu dừng luồng F trong khoảng thời
gian Tlong>>Ttmp
b4: Gỡ bỏ bộ lọc tạm thời nếu A tuân theo trong khoảng thời gian Ttmp, ngược lại ngắt
kết nối tới A
- Kẻ tấn công A
b1: Nguồn tấn công A dừng luồng F trong khoảng thời gian Tlong nếu không thì sẽ bị
ngắt kết nối tới Agw
2.1.4. nhận xét
AITF luôn luôn phải ghi thêm Route Record vào gói tin IP khiến cho tải của toàn
bộ Internet tăng lên đáng kể.
Do Victim_GW đẩy nhiệm vụ lọc gói tin cho Router gần Agent. Vì vậy sẽ sớm ngăn
chặn được các gói tin DDoS và đỡ tốn băng thông mạng và giảm tình trạng nút cổ chai ở
gần Victim.
Chặn được DDoS ngay cả khi từ Attacker đến Victim có nhiều đường đi và có sự
thay đổi động trên các router ở phần lõi Internet.
2.2. Hệ thống D-WARD
2.2.1. Mục tiêu
Phát hiện luồng tấn công và ngăn chặn chúng bằng cách điều khiển luồng.
Cung cấp một dịch vụ tốt để hợp pháp hóa giao dịch giữa Victim và mạng khi xảy ra tấn
công
D-WARD có thể hoạt động như là một hệ thống cô lập hay tham gia vào một hệ
thống phòng thủ phân tán. Khi xem xét D-WARD dưới khía cạnh hoạt động độc lập, D-
WARD phát hiện nguồn tấn công và có cơ chế phản ứng lại mà không kết hợp với các
thực thể khác. Khi hoạt động trong hệ thống kết hợp phòng thủ phân tán, D-WARD nâng
22
cao khả năng phát hiện tấn công thông qua việc nhận các báo động tấn công từ các thực
thể tham gia khác.
D-WARD chỉ kiểm soát những luồn dữ liệu đi ra từ mạng của mình, các luồng dữ
liệu có nguồn gốc từ các nguồn khác không được kiểm soát.
2.2.2. Triển khai D-WARD
Hệ thống D-WARD được cài đặt ở router nguồn được hoạt động như một gateway
giữa hệ thống mạng được triển khai và toàn mạng Internet
(hình 13: Hệ thống D-WARD)
Router nguồn được thừa nhận là điểm kết nối duy nhất giữa mạng nguồn và
phần còn lại của mạng Internet. D-WARD có thể giám sát tất cả các gói tin trao đổi giữa
mạng nguồn và toàn bộ Internet. Nếu có nhiều gateway trong vùng của mạng nguồn, mỗi
gateway là một lối vào cho một tập các địa chỉ từ các mạng ngoài, hệ thống D-WARD có
thể được cài đặt tại mỗi gateway và giám sát mọi gói tin giữa mạng nguồn và tập các địa
chỉ từ mạng ngoài.
23
3.2.3. Nhận xét
Triển khai hệ thống xử lý phân tán D-WARD , sẽ khá phức tạp và tốn kém. Một
phần vì cách định nghĩa của hệ thống: xử lý tập trung tại các máy quản lý policies, quản
lý tất cả các luồng dữ liệu ra vào mạng nên sẽ khá tốn tài nguyên phần cứng và băng
thông mạng. Hệ thống D-WARD kiểm soát tất cả các luồng dữ liệu, kể cả người dùng hợp
lệ, và sự kiểm soát chặt chẽ như vậy đôi khi là dư thừa và không cần thiết.
Chương 3: GIAO THỨC LAN TỎA NGƯỢC
3.1. Giới thiệu về giao thức Lan tỏa ngược
3.1.1. Khái niệm chung
Đây là một phương pháp mới để phòng chống lại các cuộc tấn công DDoS theo cơ
chế phản ứng lại và kết hợp nhiều vị trí. Tác giả Hoàng Văn Quân phát minh ra khi cùng
nhóm nghiên cứu khoa học ở trường Công nghệ nghiên cứu về DDoS ( nhóm gồm 4 sinh
viên dưới sự hướng dẫn của thày Đoàn Minh Phương) Giao thức này đã được trình bày
trong một hội thảo nghiên cứu cấp quốc gia của ở Thái Nguyên về các ứng dụng của
Công nghệ (tháng 12 năm 2007). Bản luận văn này đã được tác giả hoàn thiện phần lý
thuyết và thêm phần cài đặt, triển khai phần lõi của giao thức
Giao thức ‘Lan tỏa ngược’ dựa trên 3 nguyên tắc để ngăn chặn các cuộc tấn công:
+ Sử dụng các bộ lọc (Filter) trên các router để chặn các gói tin DDoS.
+ Dùng cơ chế ‘lan tỏa ngược’ để đẩy nhiệm vụ lọc cho các router gần Attacker.
+ Sử dụng một số giải thuật để nâng cao hiệu suất và chống lừa dối, lợi dụng giao
thức.
24
3.1.2. Các thuật ngữ
3.1.2.1. Bộ lọc (Filter)
Filter là 1 bộ các luật để xác định cách thức 1 router truyền hay ngăn chặn dữ liệu.
Cụ thể trong trường hợp này thì Filter của router có chức năng chặn tất cả các gói tin
DDoS có IP nguồn là IP của Agent, hoặc IP bị Agent giả mạo, và IP đích là IP của
Victim.
Trong giao thức, mỗi Filter không tồn tại mãi mãi trên router, chúng đều có 1 thời
gian thi hành nhất định. Riêng Filter cuối cùng gần attacker nhất thì sẽ có thời gian tồn tại
lâu hơn hẳn các Filter trên các router khác.
3.1.2.2. Router/Gateway
Trong bài báo này, router ở phần lõi của Internet ngoài chức năng định tuyến còn có
nhiệm vụ thực thi giao thức Lan tỏa ngược để phản ứng lại với DDoS.
Trong giao thức lan tỏa ngược, có tất cả 2 loại gateway: của victim và của agent. Vì
mạng có cơ chế NAT, nên khá khó có thể liên lạc trực tiếp với chính xác máy tính tấn
công. Do đó trong bài báo này, chúng tôi coi thiết bị mà có IP Internet của gói tin tấn
công đó là gateway của agent. Trong trường hợp thông thường thì gateway này nối giữa
mạng Local của agent và Internet, sử dụng NAT để chia sẻ cho nhiều máy. Một số trường
hợp đặc biệt khác là máy tính tấn công có địa chỉ IP tĩnh hoặc sử dụng 1 Internet proxy.
Khi đó thì giao thức coi chính Agent và Proxy kia là gateway. Khái niệm tương tự với
gateway của Victim, chỉ khác là không có trường hợp Victim sử dụng Internet proxy.
3.1.2.3. Cơ chế “Lan tỏa ngược”
Là phương pháp cho phép xác định được chính xác nguồn tấn công từ chối dịch vụ
bằng cách lan truyền bộ lọc trên các router qua cơ chế pushback.
Khi có 1 địa chỉ IP được xác định là nguồn tấn công. Trên gateway của Victim sẽ
bật 1 bộ lọc, vừa để loại bỏ các gói tin DDoS, vừa lắng nghe xem các gói tin ấy đến từ
interface nào. Sau khi xác định được thì sẽ gửi 1 yêu cầu qua interface ấy, đến router hàng
25
xóm yêu cầu lập Filter tương tự. Router hàng xóm lập Filter, lắng nghe rồi xác định gói
tin đến từ interface nào, và lại gửi yêu cầu lập Filter cho router kế tiếp. Cứ như vậy sẽ
xác định được router gần nguồn tấn công nhất, cho dù là IP nguồn tấn công có bị giả mạo
hay không.
(hình 14: lan truyền bộ lọc)
3.2. Cơ chế hoạt động
3.2.1. Bước 1: Khởi động
Victim xác nhận là có 1 địa chỉ IP a.b.c.d đang tấn công từ chối dịch vụ, gửi yêu cầu
khởi động giao thức “lan tỏa ngược” tới gateway (Victim_GW) với tham số là địa chỉ IP
của Agent và của chính mình. Để đảm bảo là thông tin khởi động dịch vụ này không bị
giả mạo thì giữa Victim và Victim_GW có 1 cơ chế chứng thực ví dụ sử dụng cặp khóa
được mã hóa bất đối xứng… Nếu Victim sử dụng IP internet tĩnh, và cài giao thức lên
chính mình, thì nó sẽ kiêm luôn vai trò của Victim_GW.
26
3.2.2. Bước 2: Bắt đầu
Victim_GW thiết lập 1 bộ lọc ngăn chặn các gói tin từ a.b.c.d trong khoảng thời gian
tstart.
3.2.3. Bước 3: Kiểm tra giả mạo
Victim_GW thử xác định xem địa chỉ ấy có thật hay là do giả mạo bằng cách ping
đến a.b.c.d
+ Nếu không có phản hồi tức là Agent nhiều khả năng đã giả mạo a.b.c.d, chuyển
sang thực hiện bước 6. Khoảng thời gian chờ phản hồi không thấy là tno-response.
+ Nếu có phản hồi trong khoảng thời gian là t response, a.b.c.d chính là Agent Gateway
(A_GW). Tiếp theo Victim_GW sẽ cố gắng đẩy nhiệm vụ lọc ra phía A_GW. Nhưng
trước hết, giao thức Lan tỏa ngược sẽ cố gắng tiến kiệm công sức bằng cách thực hiện
bước 4.
3.2.4. Bước 4: Rút gọn
Ban đầu, Victim_GW sẽ xác định 2 router gần Agent nhất có thiết lập cơ chế “lan
tỏa ngược” (có thể 1 trong 2 router ấy chính là A_GW, khi đó giao thức Lan tỏa ngược ở
trong trường hợp tối ưu). Khoảng thời gian tìm kiếm 2 Router là tsearch.
Cách thức tìm kiếm như sau: Victim_GW thực hiện lệnh dò đường bằng gói tin
ICMP tới a.b.c.d có TTL tăng dần từ 0 (cách thức thực hiện gần giống như tracert,
traceroute). Các router trên đường đi tới A_GW sẽ lần lượt gửi về gói tin ICMP time
exceeded. Sau khi có đầy đủ các địa chỉ IP của các router trên đường đi tới Agent,
Victim_GW sẽ lần lượt kết nối tin cậy từ A_GW ngược về gần mình, rồi gửi thông điệp
xác nhận xem router đó có hỗ trợ giao thức không. Hai router trả lời “có” sớm nhất sẽ lần
lượt là Y và X.
Tiếp theo, routerX và routerY sẽ kiểm tra ngược lại Victim_GW xem có đúng là
Victim_GW kết nối trực tiếp Victim hay không. Nếu Victim có địa chỉ IP Internet trùng
với Victim_GW (xảy ra khi Victim có IP tĩnh hoặc Victim_GW cấu hình virtual server trỏ
27
đến IP Victim trong mạng local) thì sẽ bỏ qua bước này, vì qua giao thức kết nối tin cậy
thì sẽ xác nhận chính xác Victim là người yêu cầu, chứ không phải 1 kẻ giả mạo nào
khác. Với trường hợp Victim và Victim_GW có IP Internet khác nhau, thì routerX,
routerY sẽ kiểm tra xem Victim_GW có đứng kề trước Victim trên đường đi hay không
bằng cách: Hai router này sẽ thực hiện 2 lệnh ping tới Victim với tham số TTL lần lượt là
h+1 và h, với h là số hops từ Victim_GW đến router tương ứng. Nếu router không nhận
được trả lời hợp lệ là các gói tin ICMP time exceeded từ Victim và Victim_GW thì sẽ gửi
thông báo từ chối và ngắt kết nối tới Victim_GW. Giao thức kết thúc. Nếu tất cả đều hợp
lệ thì routerX, routerY và Victim_GW đã tin tưởng nhau hoàn toàn, kết nối tin cậy ở trên
vẫn còn giữ để thực hiện tiếp bước 5: ngăn chặn.
Khoảng thời gian để các router kiểm tra Victim_GW là tauthen
3.2.5. Bước 5: Ngăn chặn
Victim_GW yêu cầu routerY đặt bộ lọc FilterY trong khoảng thời gian tY và gửi lưu
lượng DDoS R1 từ a.b.c.d mình nhận được.
Victim_GW thiết lập kết nối tin cậy với RouterX. Yêu cầu đặt file shadowX để giám
sát luồng DDoS từ a.b.c.d trong khoảng thời gian ∆t, sau đó ngắt kết nối với RouterX.
RouterY sau khi đặt FilterY với thời gian tY , vừa ngăn chặn lưu lượng DDoS, đồng
thời sẽ theo dõi lưu lượng gói tin R2 request từ a.b.c.d đến victim qua mình:
+ Nếu R1 >> R2 tức là Agent đã mạo danh địa chỉ a.b.c.d. RouterY hủy
FilterY, sau đó gửi R2 cho Victim_GW. Victim_GW nhận được, so sánh với R1
rồi ngắt kết nối với RouterY, sau đó thực hiện bước 6.
+ Nếu R1 ≈ R2 có nghĩa a.b.c.d đúng là địa chỉ của Agent đang tấn công,
RouterY thông báo lại với Victim_GW, Victim_GW xác nhận lại rồi ngắt kết nối.
RouterY thực hiện bước 6 nhưng đóng vai trò của Victim_GW (lan tỏa ngược
bán phần)
Thời gian kiểm tra R1, R2 này gọi là tcheck,
28
(hình 15)
RouterX theo dõi trong thời gian ∆t mà vẫn thấy có lưu lượng DDoS từ interface của
nó kết nối với RouterY thì có nghĩa là routerY đã không thực hiện được nhiệm vụ ngăn
chặn DDoS. RouterX sẽ lập FilterFinal lọc các gói tin đó với thời gian tlong. Giải thuật kết
thúc.
3.2.6. Bước 6: Lan tỏa ngược
Victim_GW tiến hành “lan tỏa ngược”. Victim_GW đặt bộ lọc với thời gian tstart, sau
đó gửi yêu cầu thiết lập bộ lọc qua các router liền kề với interface mà nó nhận được gói
tin DDoS. Router hàng xóm nhận được yêu cầu lập filter tương tự, rồi lại gửi yêu cầu qua
các interface có luồng tấn công. Trên mỗi Router lan tỏa đặt Filter có thời gian là ttmp. Một
router nếu đã đặt Filter rồi, mà lại nhận được yêu cầu đặt 1 Filter giống y như vậy nữa thì
sẽ reset lại thời gian của Filter đó.
29
+ Trong thời gian ttmp này, router sau khi đã gửi yêu cầu lập Filter tới các router
tương ứng với từng interface, mà vẫn thấy còn lưu lượng DDoS từ phía các router này, thì
gửi lại yêu cầu lập Filter cho router hàng xóm kết nối với interface đó. Sau 3 lần gửi mà
lưu lượng DDoS vẫn không giảm thì có nghĩa là router hàng xóm không hoàn thành được
nhiệm vụ, và chính router sẽ tự động lập Filter với thời gian tlong. Kết thúc giải thuật.
+ Các router khác đợi hết thời gian thì dừng bộ lọc, và tạo file shadow tương ứng để
giám sát router kề sau nó trong thời gian tsupervise. Trong khoảng thời gian này mà vẫn
nhận thấy có lưu lượng DDoS thì sẽ bật lại Filter nhưng với thời gian tlong. Giải thuật kết
thúc.
+ Khi đến router gần Agent nhất (A_GW), xảy ra khi router nhận thấy IP của router
hàng xóm trùng với IP Agent, thì router lập Filter có thời gian tlong >> ttmp. Giải thuật kết
thúc.
3.3. Chống lừa dối
3.3.1. Nguy cơ
Attacker có thể chiếm quyền 1 router trên đường đi, không đặt Filter như yêu cầu
của router hàng xóm khi lan tỏa ngược.
Attacker có thể điều khiển A_GW, khi hàng xóm yêu cầu thì giả vờ đã đặt Filter
tlong, nhưng chỉ đặt thời gian ttmp < tcheat << tlong hoặc tạm ngưng tấn công, sau khi hàng
xóm hủy Filter thì lại tấn công tiếp.
Khi Victim_GW bắt tay với A_GW, A_GW giả vờ đã lập Filter, đợi khi
Victim_GW ngắt kết nối (hoặc đợi hết tstart) thì lại tấn công tiếp.
3.3.2. Giải pháp
Dùng shadow router để giám sát và cách thức gửi yêu cầu sau 3 lần sẽ chống được 1
router lõi và A_GW lừa dối không lập Filter, hoặc lập Filter trong thời gian ngắn.
30
Khi Victim_GW bắt tay với A_GW, Victim_GW còn bắt tay với router kề trước
A_GW nữa (RouterX), router đó sẽ có nhiệm vụ giám sát xem A_GW có tạo Filter đúng
theo yêu cầu hay không.
3.4. Chống lợi dụng giao thức
3.4.1. Nguy cơ
Một router G nào đó giả vờ là người bị DDoS, để ngăn cho mạng của nạn nhân H
không thể truy xuất đến 1 mạng K được. Router G sẽ giả vờ H chính là kẻ tấn công mạng
K, yêu cầu chạy giao thức lan tỏa ngược để các router khác chặn không cho H liên lạc
được với K. Có 2 cách để G làm được điều này:
+ G giả vờ mình là gateway của K, đang bị mạng H tấn công (G đóng giả
Victim_GW), G kết nối đến gateway của mạng H, yêu cầu lập bộ lọc ngăn chặn H
truy cập đến K.
+ G đóng vai trò là router trên đường đi, chạy giao thức lan tỏa ngược, yêu
cầu hàng xóm lập filter ngăn truy xuất từ H đến K.
3.4.2. Giải pháp
Trong trường hợp 1, khi G kết nối đến gateway của mạng H thì theo giao thức đây
phải là 1 kết nối tin cậy => G không thể fake ip được. Sau đó gateway của H còn kiểm tra
xem G có đứng kề trước K hay không bằng cách thực hiện 2 lần ping như ở trên đã nói.
Nếu xác nhận đúng thì gateway của H mới lập Filter
Trường hợp G đóng vai trò là router trên đường đi, yêu cầu hàng xóm lập filter để
ngăn chặn truy xuất từ H đến K là rất khó xảy ra. Thứ nhất là router trong phần lõi của
Internet được các ISP quản lý rất kĩ, gần như không thể xâm nhập được. Thứ hai là router
trong phần lõi là các thiết bị đơn giản hơn máy tính rất nhiều, rất ít ứng dụng và lỗ hổng
để hacker có thể khai thác. Thứ ba là kiến trúc của mạng Internet là packet switching, do
đó con đường đi từ mạng H đến mạng K không cố định, có thể thay đổi động theo thời
gian. Việc nắm bắt được đường đi này để tấn công vào đúng router ở giữa để lừa đảo
31
cũng là 1 khó khăn không nhỏ. Tổng kết lại, chi phí để thực hiện phương pháp lợi dụng
giao thức này lớn hơn rất nhiều lần so với mục đích cuối cùng là ngăn chặn H truy xuất
tới K.
3.5. Nhận xét
3.5.1. Ưu điểm
– Thuật toán giúp giao thông trên Internet nhẹ hơn nhiều so với AITF, “Lan tỏa
ngược” chỉ được kích hoạt khi Victim bị tấn công. Còn AITF luôn luôn phải ghi thêm
Route Record vào gói tin IP khiến cho tải của toàn bộ Internet tăng lên đáng kể.
– Do Victim_GW đẩy nhiệm vụ lọc gói tin cho Router gần Agent. Vì vậy sẽ sớm
ngăn chặn được các gói tin DDoS và đỡ tốn băng thông mạng và giảm tình trạng nút cổ
chai ở gần Victim.
– Chống được Fake IP, lừa dối và lợi dụng giao thức.
– Chặn được DDoS ngay cả khi từ Attacker đến Victim có nhiều đường đi và có sự
thay đổi động trên các router ở phần lõi Internet.
– Xây dựng trên tầng network, kể cả 1 router trên mạng không cài đặt giải thuật này
thì mạng vẫn có thể hoạt động bình thường.
– “Lan tỏa ngược” hoạt động tốt ngay cả khi DDoS được thiết kế có độ phân tán
cao.
3.5.2. Nhược điểm
– Do phải huy động router ở lõi lập Filter phần lõi của Internet phải chịu thêm tải.
Trong trường hợp 1 router ở lõi không được cài thuật toán, hoặc bị Attacker chiếm quyền
điều khiển thì khi có DDoS đi qua, router lõi liền kề nó sẽ phải lập Filter với thời gian
tlong.
Nếu attacker có cơ chế fake nhiều IP luân phiên, thì ứng với mỗi 1 IP, A_GW sẽ
phải tạo 1 bộ lọc khác nhau.
32
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
4.1. Rút gọn
4.1.1. Ý tưởng
Khi Victim chạy giao thức lan tỏa ngược, các thông số cần thiết được truyền lần lượt:
VÆVgwÆGW1Æ GW1Æ GW1Æ………GWnÆAgwÆA
Nếu có rất nhiều router giữa Vgw và Agw, quá trình thực thi giao thức để đặt bộ lọc
sẽ mất nhiều thời gian. Trong trường hợp lý tưởng, nếu V xác định được địa chỉ chính xác
của Agw, lan truyền bộ lọc trực tiếp đến Agw để chặn kẻ tấn công A, giao thức sẽ được
tối ưu. Nguyên lý của quá trình rút gọn dựa vào ý tưởng trên.
4.1.2. Cách thức xác định địa chỉ IP của Agw
Có nhiều cách để xác định địa chỉ IP của router Agw kề sát kẻ tấn công A, cách đơn giản
nhất là dùng lệnh traceroute để xác định tuyến đường đi từ V tới A
Giả sử có sơ đồ sau, với các địa chỉ IP tương ứng
(hình 16:mô tả hệ thống)
33
Khi thực hiện lệnh traceroute từ V đến Agw:
Traceroute 10.10.4.2
Ta nhận được thông tin chứa về tuyết đường từ V đến A như sau:
Lệnh traceroute mặc định sẽ response lại tuyến đường đi từ V đến A chậm, có thể
đưa thêm tham số -w time(wait) để cải thiện tốc độ của traceroute
Traceroute –w 0.1 10.10.4.2
Ta đưa thông số lấy được ở trên vào một file, dùng lệnh grept và cut sẵn có của
linux có thể lấy được địa chỉ IP của Agw. Cụ thể các lệnh như sau:
traceroute -w 0.1 $2 > file.log
temp=`tail -n 2 file.log | head -n 1 | cut -f 5 --delimiter=' ' | cut -f 2 --delimiter='(' |
cut -f 1 --delimiter=')'`
IP_NEXT=`echo $temp`
#cut -f 2 --delimiter='(' | cut -f 1 --delimiter=')'
Sau khi phân tích như trên sẽ có được địa chỉ IP của gateway liền sát kẻ tấn công:
Agw
34
4.1.3. Thực thi quá trình rút gọn
Phần rút gọn vẫn cần phải xác định địa chỉ IP đích của máy tính kẻ tấn công, việc
làm này đã được thực hiện tốt trong phần code của tác giả. Trong trường hợp tối ưu thì
mới xác định được địa chỉ router kẻ tấn công, khi đó phần code rutgon sẽ được gọi, bài
toán được tối ưu. Ngược lại khi không xác định được IP của router liền kề kẻ tấn công,
phần shellcode gốc của tác giả sẽ được sử dụng để lan tỏa lần lượt qua các router.
Code:
if (dia chi IP cua may dich la hop le)
rutgon
else lan_toa_nguoc_binh_thuong
4.1.4. Nhận xét
Trong trường hợp lý tưởng, Victim xác định được chính xác router gần kẻ tấn công
nhất và lan tỏa trực tiếp đến router đó để đặt bộ lọc thì hiệu quả của giao thức
Lan_Tỏa_Ngược sẽ rất lớn. Giao thức thời gian thực thi giao thức nhanh và không tiêu
tốn tài nguyên mạng, không mất thời gian để các router trung gian lan tỏa dần đến router
gần kẻ tấn công nhất.
4.2: xác thực
Xem xét mô hình sau
(hình 17: mô hình xác thực)
V Vgw GW1 GW2
ATK2
ATK1
ATK3
35
Vấn đề đặt ra là nếu có kẻ lợi dụng ATK3 ra lệnh cho GW1 đặt filter thì GW1 sẽ
phản ứng lại thế nào? Có thể GW1 sẽ đặt filter trong khi GW1 không phải là router liền
kề kẻ tấn công. Vì vậy cần phải có một cơ chế xác thực vấn đề truyền thông giữa các thực
thể mạng.
4.2.1. Ý tưởng
Có thể tạo một cơ sở dữ liệu chứa thông tin về địa chỉ IP của những thực thể
mạng có thể truyền thông cho nhau.
Ví dụ: để Vgw có thể truyền thông tin cho GW1 hay ra lệnh cho GW1 đặt bộ lọc
thì trong cơ sở dữ liệu phải có chứa địa chỉ IP của GW1 và Vgw như: 10.10.2.1
10.10.2.2
Với 10.10.2.1 là IP của Vgw, 10.10.2.2 là IP của GW1
Có nhiều cách để tạo cơ sở dữ liệu như vậy, có thể dùng các hệ quản trị cơ sở dữ
liệu mạnh và thông dụng hiện nay như Oracle, mySql, Sqlserver…
Để mô tả đơn giản hoạt động của quá trình xác thực giữa các thực thể mạng, tôi
dùng cách đơn giản nhất là tạo một file IpCertificate có chứa các địa chỉ IP tương của các
thực thể có quyền trao đổi thông tin với nhau. Bằng cách phân tích dữ liệu trong file
IpCertificate, có thể xác thực được tiến trình trao đổi giữa các thực thể là hợp lệ hay
không.
4.2.2. Thực thi quá trình xác thực.
Mô phỏng đơn giản như hình 3, có file IpCertificate chứa các địa chỉ sau
10.10.1.1
10.10.1.2
10.10.2.1
10.10.2.2
36
10.10.3.1
10.10.4.1
Mỗi khi máy A cần truyền thông với máy B , A sẽ tiến hành phân tích từng
dòng dữ liệu trong file IpCertificate. Nếu có địa chỉ IP của máy B trong file đó, nghĩa là
máy B được tin cậy, A có thể tiến hành truyền thông với B. Ngược lại, chương trình sẽ
thông báo lỗi.
4.2.3. Kết luận
Việc xác thực giữa 2 thực thể mạng được tiến hành trên ý tưởng đơn giản nhưng
hiệu quả. Có thể ngăn chặn được các giả mạo thông thường. Có thể nâng cao ý tưởng trên
bằng cách xác thực thêm địa chỉ Mac, nhưng do thời lượng và thời hạn của luận văn nên
tôi chỉ đưa ra những ý tưởng cơ bản nhất. Để đảm bảo an toàn cho cơ sở dữ liệu chứa
thông tin về các thành phần hợp lệ có thể trao đổi thông tin, nên mã hóa cơ sở dữ liệu
bằng các phương pháp mã hóa tiên tiến và có tính bảo mật cao như mã hóa công khai, mã
hóa đối xứng…
37
Kết Luận
Thông qua việc nghiên cứu, tìm hiểu và phát triển các chức năng cho giao thức
Lan Tỏa Ngược, luận văn đưa ra một cái nhìn tổng thể về DDoS. Qua bài viết có thể nắm
bắt được cốt lõi của việc tấn công và phòng thủ DDoS. Đồng thời khi phát triển chức
năng rút gọn và xác thực cho giao thức, tôi đã đưa giao thức Lan Tỏa Ngược về gần với
ứng dụng thực tiễn hơn. Mặc dù trên thế giới hiện nay chưa có một phương pháp hoàn
hảo nào có khả năng chặn hiệu quả tấn công DDoS, nhưng qua những nghiên cứu chuyên
sâu và tìm cách cải tiến các phương pháp chống DDoS đã có, một ngày nào đó cộng đồng
Internet có thể yên tâm về sự an ninh của mạng với một phương pháp hoàn thiện, hiệu
quả.
38
TÀI LIỆU THAM KHẢO
[1] Hoang Van Quan, K49 dai hoc Cong Nghe. luan van lan toa nguoc. 2008.
[2] Jelena Mirkovic, Sven Dietrich, David Dittrich, Peter Reiher. Internet Denial of
Service: Attack and Defense Mechanisms. Prentice Hall PTR. 2004.
[3] Massimiliano Romano, Simone Rosignoli, Ennio Giannini. Robot Wars – How
Botnets Work. Oct 20, 2005
[4] Katerina Argyraki, David R. Cheriton. Active Internet Traffic Filtering: Real‐Time
Response to Denial‐of‐Service Attacks. Proceedings of the USENIX annual technical
conference. 2005.
[5] Vicky Laurens, Abdulmotaleb El Saddik, Pulak Dhar and Vineet Srivastava.
Detecting distributed denial of service attack traffic at the Agent machines. IEEE CCECE.
2006.
[5] J. Mirkovic. D‐WARD: Source‐End Defense Against Distributed Denial‐of‐Service
Attacks. Ph.D. dissertation, University of California, Los Angeles. 2003.
[7] J. Postel. RFC 791 ‐ Internet Protocol.
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-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.pdf