TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
=====o0o=====
THẢO LUẬN
MÔN HỌC: AN TOÀN THÔNG TIN
ĐỀ TÀI: TẤN CÔNG TỪ CHỐI DỊCH VỤ DoS VÀ DDoS
NHÓM: 02
Giáo viên giảng dạy: TS. Trần Đức Khánh
Sinh viên thực hiện: Vũ Thị Thùy Như
Phạm Thị Nhung
Nguyễn Thị Thi
Nguyễn Thị Nụ
Nguyễn Thị Thùy Liên
Lớp: 12BCNTT2
Hà Nội, tháng 06/2013
MỤC LỤC
Lời mở đầu 03
I. TỔNG QUAN 03
1 Các cuộc tấn công từ chối dịch vụ 03
2. Mục tiêu của các cuộc tấn công từ chối dịch vụ 04
3 Các dạng tấn công từ chối dịch vụ 04
II. TẤN CÔNG DOS 05
1. Định nghĩa DoS 05
2. Các mục đích của tấn công DoS 05
3 Mục tiêu sử dụng để tấn công 06
4 Các dạng tấn công DoS 06
5. Tấn công giao thức 06
5.1.Syn Flood 06
5.1.1. Giao thức bắt tay 3 bước TCP 06
5.1.2. Cơ chế tấn công Syn Flood 07
5.1.3. Cách thức tấn công Syn Flood 07
6.1 Giai đoạn ngăn ngừa 33
6.2 Giai đoạn đối đầu với cuộc tấn công DDoS 33
6.3 Giai đoạn sau tấn công 33
Kết luận 33
3
Lời mở đầu
Gần đây nhiều site và server tiêu biểu của chính phủ, ngân hàng, hãng truyền
thông, các cổng thanh toán điện tử … thậm chí cả các DNS root server đang phải đối
mặt với các tấn công từ chối dịch vụ.
Trong khi các đe dọa an ninh truyền thống có thể được xử lý bằng cách làm chặt
lại các chính sách bảo mật và chủ động phòng chống như là thiết lập tường lửa, cập
nhật các bản vá lỗi từ nhà sản xuất … Nhưng đối với Dos và DDoS thì những
phương pháp này tỏ không hiệu quả.
Trong khuôn khổ tìm hiểu của chúng em sẽ tìm hiểu phân loại các dạng thức tấn
công, cách thức tấn công và biện pháp ngăn chặn tấn công Dos và DDos.
Hiểu được vấn đề trên, trong khuôn khổ nhận thức của chúng em thảo luận về
vấn đề an toàn mạng với chủ đề tấn công từ chối dịch vụ Dos và DDoS. Chúng em đã
tập trung rất nhiều vào khâu tìm hiểu còn phần các giải pháp do hạn chế về mặt nhận
thức chúng em chưa tìm hiểu sâu được mong thầy và các bạn đóng góp thêm cho phần
thảo luận được hoàn thiện.
I. TỔNG QUAN
1 Các cuộc tấn công từ chối dịch vụ
Trong những năm qua đã diễn ra những cuộc tấn công DoS và DDos đáng chú ý:
- Năm 2000: các cuộc tấn công DDoS vào Yahoo, eBay, eTrade, Amazon.com
và CNN xuất phát từ các máy tính chạy Unix của các doanh nghiệp và các
trường đại học, nhưng sau đó vài tuần, malware chỉ đạo cuộc tấn công, có tên
gọi là Trinoo, chuyển sang các máy tính chạy Windows để khởi phát các cuộc
tấn công.
- Năm 2002: 13 máy chủ Internet cấp cao nhất (Internet root servers) bị tấn
công DDos, tuy nhiên các nhà quản trị hệ thống đã kịp thời phát hiện, kiểm
- Ngày 23/12/2009: Nhà cung cấp dịch vụ phân giải tên miền (DNS) cho
Amazon bị tấn công DDoS, khiến người dùng không thể truy cập vào máy
chủ Amazon.com và Amazon Web Service. Đây là thời điểm mua sắm sôi
động nhất trong năm tại các nước khu vực Bắc Mỹ.
- Ngày 7/12/2010, trang Visa.com bị nhóm tin tặc Anonymous tấn công DDoS.
Theo nhóm tin tặc, họ thực hiện cuộc tấn công này nhằm phản đối việc các
hãng tài chính khóa tài khoản của WikiLeaks, sau khi trang này dự kiến công
bố các tài liệu mật của Bộ ngoại giao Mỹ. Trước đó nhóm tin tặc này đã thực
hiện các cuộc tấn công các trang web Mastercard và PayPal.
5
- Giữa tháng 3/2013: Theo AP, Spamhaus, công ty Anh - Thụy Sĩ đã phải
hứng chịu một cuộc tấn công DDoS
2. Mục tiêu của các cuộc tấn công từ chối dịch vụ
Từ những cuộc tấn công từ chối dịch vụ đáng chú ý trên ta thấy rằng mục tiêu
của các cuộc tấn công thường vào các trang web lớn và các tổ chức thương mại điện tử
trên Internet
3 Các dạng tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ có 2 dạng:
- Tấn công DoS (Denial of Service): Tấn công từ một cá thể, hay tập hợp các
cá thể
- Tấn công DDoS (Distributed Denial of Service): Đây là sự tấn công từ một
mạng máy tính được thiết kế để tấn công tới một đích cụ thể nào đó.
II. TẤN CÔNG DOS
1. Định nghĩa DoS
Tấn công DoS (Denial of Service) là một kiểu tấn công để làm cho máy tính và
mạng không có khả năng phục vụ một cách thông thừơng. Hầu hết tấn công DoS đều
nhằm vào băng thông hoặc kết nối. Tấn công vào băng thông làm lụt đường truyền
trong mạng bằng khối lượng giao dịch mạng cực lớn, điều này sẽ tiêu tốn toàn bộ
nguồn lực của mạng trong khi các yêu cầu giao dịch hợp pháp lại không thực hiện
được. Các kiểu tấn công kết nối làm lụt máy tính bằng số lượng lớn các yêu cầu kết
4 Các dạng tấn công DoS
- Tràn kết nối (Connection Flooding): tấn công giao thức TCP, UDP, ICMP ví
dụ như tràn ngập ICMP với Smurf, Ping of Death
- DNS: tận dụng lỗi Bufer Overflow để thay đổi thông tin định tuyến: DNS
cache poisoning
5. Tấn công giao thức
5.1.Syn Flood
5.1.1. Giao thức bắt tay 3 bước TCP
- Client gửi gói tin SYN đến server -> TCB (Transmission Control Block)
chuyển sang trạng thái SYN-RECEIVED
- Server gửi trả lại gói tin SYN-ACK
- Client gửi gói tin ACK tới server -> TCB chuyển sang trạng thái
ESTABLISHED
Kết nối được thiết lập
7
Hình 2.1: Giao thức bắt tay 3 bước
5.1.2. Cơ chế tấn công Syn Flood
- Khi kẻ tấn công gửi dòng lũ SYN dẫn đến tình trạng có quá nhiều TCB làm bộ
nhớ của host bị cạn kiệt
- Để phòng tránh việc bộ nhớ bị cạn kiệt, HĐH chỉ lưu giữ một số TCB xảy ra
đồng thời ở trạng thái SYN-RECEIVED
- Do hạn chế không gian lưu trữ nên khi có quá nhiều kết nối, một số kết nối hợp
lệ bị từ chối
5.1.3. Cách thức tấn công Syn Flood
- Kẻ tấn công gửi một loạt các gói tin SYN với địa chỉ ip không có thực đến hệ
thống đích cần tấn công
- Hệ thống đích gửi trở lại các địa chỉ không có thực đó và chờ đợi để nhận thông
tin phản hồi từ các địa chỉ ip giả , đưa các request chờ đợi này vào bộ nhớ, gây
lãng phí một lượng đáng kể bộ nhớ trên máy chủ
- Nếu kẻ tấn công gửi cùng một lúc nhiều gói tin có địa chỉ IP giả như vậy thì hệ
công. Cả đường truyền từ ISP đến hệ thống mạng của máy bị tấn công cũng bị
nghẽn.
- Kiểu tấn công này dùng để tấn công các webserver
Hình 2.3: Cách thức tấn công ICMP Smurfing
5.2.4. Cách phòng chống ICMP Smurfing
- Vô hiệu hóa chức năng directed broadcast tại bộ định tuyến
- Phối hợp với ISP để giới hạn lưu lượng ICMP
10
6. DNS CACHE POISONING
6.1 DNS là gì?
Hệ thống tên miền DNS (Domain Name System) là hệ thống phân giải tên
miền được phát minh vào năm 1984 cho Internet, dùng để ánh xạ giữa các tên miền
(tên logic có nghĩa, thí dụ: www.mydomain.com) và các địa chỉ IP (thí dụ:
192.168.0.2). DNS đưa ra một phương pháp đặc biệt để duy trì và liên kết các ánh xạ
này trong một thể thống nhất.
6.2 Chức năng của DNS
Trên phạm vi toàn cầu, các máy tính kết nối với mạng Internet cần có những địa
chỉ IP riêng và tạo ra những địa chỉ liên kết dạng URL (Universal Resource Locators)
duy nhất của mình.
Mỗi website cũng có một tên miền thể hiện bằng URL và một địa chỉ IP khác
nhau. Nhờ DNS, người sử dụng chỉ cần đưa URL hay còn gọi là đường kết nối (link)
cho trình trình duyệt (web browser) biết để tìm đến địa chỉ cần thiết.
Quá trình "dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập
được vào website là công việc của một máy chủ tên miền (DNS server). Các máy chủ
tên miền trợ giúp qua lại với nhau trên Internet để dịch một địa chỉ IP bất kỳ thành tên
logic của nó và ngược lại.
6.3 Nguyên tắc làm việc của DNS
• Mỗi nhà cung cấp dịch vụ Internet (ISP) có nhiệm vụ vận hành và duy trì các
máy chủ tên miền của mình. Nghĩa là khi một trình duyệt tìm kiếm địa chỉ của
một website thì máy chủ tên miền chịu trách nhiệm phân giải tên website này phải
lưu thông tin về trang web này trong DNS Cache của nó, các bước truy vấn sẽ diễn ra
như sau:
• Đầu tiên, PC A gửi một request đến server quản lý tên miền vnn để hỏi thông tin
về www.yahoo.com. Nhận thấy rằng, trong DNS Cache của mình không có lưu
thông tin về www.yahoo.com, Server quản lý tên miền vnnsẽ gửi một truy vấn
đến server top level domain (Top level domain là server lưu trữ thông tin về mọi
tên miền trên mạng).
• Khi nhận được request, top level domainsẽ gửi lại cho server quản lý tên miền
vnn địa chỉ IP của server quản lý miền com (gọi tắt server com).
• Khi có địa chỉ IP của server com thì lập tức server vnnsẽ hỏi server com thông tin
về yahoo.com. Server com quản lý toàn bộ những trang web có domain là com,
chúng sẽ gửi thông tin về địa chỉ IP của server yahoo.com cho server vnn.
• Lúc này, server vnn đã có địa chỉ IP của yahoo.com rồi. Nhưng PC A yêu cầu
dịch vụ www chứ không phải là dịch vụ ftp hay một dịch vụ nào khác. Do đó,
server vnn tiếp tục truy vấn tới server yahoo.com để yêu cầu thông tin về server
quản lý dịch vụ www của yahoo.com.
• Lẽ đương nhiên khi nhận được truy vấn thì server yahoo.com sẽ gửi lại cho server
vnn địa chỉ IP của server quản lý http://www.yahoo.com/.
13
• Cuối cùng là server vnn gửi lại địa chỉ IP của server quản lý www.yahoo.com cho
PC A và PC A kết nối trực tiếp đến nó. Và bây giờ thì server vnn đã có thông tin
về www.yahoo.com trong DNS Cache của mình cho những lần truy vấn đến sau
của các client khác.
6.5 Tấn công giả mạo DNS (DNS cache poisoning)
Lỗ hổng bảo mật DNS trên Internet
Lỗ hổng bảo mật trong DNS được chuyên gia Dan Kaminsky - Giám đốc Trung
tâm Penentration Testing của Hãng bảo mật IOActive công bố đầu tháng 7/2008
Lỗ hổng bảo mật DNS đang đặt các hệ thống máy chủ DNS tại Việt Nam cũng
như trên toàn thế giới trước nguy cơ bị tin tặc tấn công đầu độc trên diện rộng. Đây là
một lỗ hổng đặc biệt nghiêm trọng, nhất là khi hacker đã có phương thức mới để có
tin người dùng, chẳng hạn như tài khoản ngân hàng trực tuyến của người dùng…
Tấn công MITM là hình thức tấn công mà kẻ tấn công (attacker) nằm vùng trên
đường kết nối (mạng LAN) với vai trò là máy trung gian trong việc trao đổi thông tin
giữa hai máy tính, hai thiết bị, hay giữa một máy tính và server, nhằm nghe trộm,
thông dịch dữ liệu nhạy cảm, đánh cắp thông tin hoặc thay đổi luồng dữ liệu trao đổi
giữa các nạn nhân.
• Tấn công giả mạo DNS (DNS Cache Poisoning)
Hiện có hai cơ chế tấn công giả mạoDNS của hacker như sau:
Giả mạo các phản hồi DNS
Hình 2.4 – Sơ đồ tấn công giả mạo phản hồi DNS
• Hacker gửi hàng loạt yêu cầu phân giải địa chỉ (DNS Requests) tới máy chủ
DNS nạn nhân (DNS Server A).
• Các tên miền cần phân giải đã được hacker tính toán sao cho DNS Server A
không thể tìm thấy trong bộ đệm (Cache) của nó và buộc phải chuyển tiếp
(Request forwarding) tới máy chủ DNS tiếp theo (DNS Server B). Máy A và B
có thể thuộc cùng một tổ chức hoặc các tổ chức khác nhau nhưng được thiết lập
để làm việc được với nhau. Mỗi trao đổi phân giải (tức là yêu cầu tìm đúng địa
15
chỉ IP cho một tên miền) giữa A và B được xác thực thông qua một mã số giao
dịch TID (Transaction ID) ngẫu nhiên. Thuật toán sinh ra các mã số này được
thiết lập sẵn cho các máy phân giải địa chỉ.
• Tuy nhiên, điểm yếu ở đây chính là việc số TID này chỉ là một số 16 bit (giá trị
nhỏ hơn 65535) và mọi trao đổi giữa A và B đều diễn ra trên một cổng cố định
của A. Sở dĩ nói đây là một điểm yếu bởi vì với phạm vi giá trị nhỏ hơn 65535 và
cổng giao dịch cố định thì hacker có thể biết được chính xác mã số giao dịch nào
đang được trao đổi giữa A và B.
• Sau đó, trước khi máy A chưa kịp nhận các gói tin trả lời từ máy B, hacker đã
gửi liên tiếp các gói tin giả mạo (fake responses) bản tin trả lời của máy B (tức là
một địa chỉ IP do hacker quản lý) tới cổng cố định nói trên của A. Chỉ cần một
trong các gói tin giả mạo này có TID trùng với TID mà máy A đang chờ thì máy
Poisoning thời gian gần đây
Tấn công Subdomain Exploit DNS Cache Poisoning thực chất vẫn là tấn công
DNS Cache Poisoning. Nhưng điểm quan trọng nhất trong phương pháp khai thác lỗ
hổng DNS cache poisoning lần này là việc hacker sử dụng các tên miền con
(subdomain) để tạo ra các yêu cầu phân giải địa chỉ hợp lệ. Các tên miền con được tạo
ngẫu nhiên với số lượng lớn, điều này đảm bảo các tên miền này chưa từng tồn tại
trong cache của máy chủ A và buộc A phải tạo ra cùng số lượng tương ứng các yêu
cầu chuyển tiếp tới máy chủ B. Kết quả là xác suất một gói tin giả mạo trả lời của B do
hacker tạo ra có TID trùng với TID mà máy A đang chờ được nâng cao lên nhiều lần.
Cơ hội đầu độc thành công bộ đệm của máy chủ A cũng vì thế được nâng cao.
6.6 Biện pháp phòng chống tấn công giả mạo DNS Cache poisoning
17
Việc phòng chống tấn công giả mạo DNS khá là khó khăn vì có khá ít các dấu
hiệu của cuộc tấn công.Thông thường, ta không hề biết DNS của mình bị giả mạo cho
tới khi điều đó xảy ra. Những gì ta nhận được là một trang web khác hoàn toàn so với
những gì mong đợi. Trong các tấn công với chủ đích lớn, rất có thể ta sẽ không hề biết
rằng mình đã bị lừa nhập các thông tin quan trọng của mình vào một website giả mạo
cho tới khi nhận được cuộc gọi từ ngân hàng hỏi tại sao mình lại rút nhiều tiền đến
vậy. Mặc dù khó nhưng không phải không có biện pháp nào có thể phòng chống các
kiểu tấn công này, sau đây là một số biện pháp mà ta có thể thực hiện được.
• Bảo vệ mạng máy tính cá nhân
Các tấn công giống như trên thường được thực thi từ bên trong mạng của chúng
ta. Nếu các thiết bị mạng của chúng ta an toàn sẽ góp phần giảm được khả năng các
host bị thỏa hiệp và được sử dụng để khởi chạy tấn công giả mạo.
• Thận trọng khi duyệt Internet
Đối với người sử dụng cá nhân, cần thận trọng trong thời gian này khi truy cập
Internet.Nếu vào một website quen thuộc nhưng lại gặp hiện tượng không bình
thường, các cá nhân này nên thông báo ngay với quản trị mạng của cơ quan hoặc hỗ
trợ kỹ thuật của các ISP để có biện pháp xử lý kịp thời. Ngoài ra, chúng ta cũng nên
cập nhật đầy đủ các bản vá của hệ điều hành và phần mềm diệt virus để tránh nguy cơ
- Kaspersky Labs TDSSKiller:
http://support.kaspersky.com/faq/?qid=208283363
- McAfee Stinger:
http://www.mcafee.com/us/downloads/free-tools/stinger.aspx
- Microsoft Windows Defender Offline: http://windows.microsoft.com/en-
US/windows/what-is-windows-defender-offline
- Microsoft Safety Scanner: http://www.microsoft.com/security/scanner/en-
us/default.aspx
- Norton Power Eraser: http://security.symantec.com/nbrt/npe.aspx
- Trend Micro Housecall: http://housecall.trendmicro.com
- MacScan: http://macscan.securemac.com/
- Avira’s DNS Repair-Tool: http://www.avira.com/en/support-for-home-
knowledgebase-detail/kbid/1199
III TẤN CÔNG DDOS
1. Định nghĩa
Tấn công DDoS (Distributed Denial of Service) là sử dụng rất nhiều máy tính để
kết hợp với nhau để tấn công DDoS để phá hoại 1 hay nhiều mục tiêu. Sử dụng công
nghệ client/server thủ phạm có thể làm tăng hiệu quả của việc từ chối dịch vụ một
cách đáng kể bởi việc khai thác nguồn là các kẻ tòng phạm không cố ý. Thông thường
thì chương trình DDoS chính được cài đặt trên máy tính sử dụng một tài khoản bị đánh
cắp. Chương trình chủ tại 1 thời điểm nhất định sẽ liên lạc với 1 số lượng bất kì các
19
chương trình tác nhân đã được cài đặt trước đó ở các máy tính ở khắp nơi trên Internet.
Các tác nhân khi nhận được lệnh, sẽ bắt đầu tấn công. Sử dụng công nghệ client
/server chương trình chủ có thể tạo ra hàng trăm tới hàng ngàn chuơng trình tác nhân
chỉ trong vòng vài giây. Tổng hợp băng thông của số lượng lớn các chương trình tác
nhân lớn hơn rất nhiều lần so với năng lực uplink của bất kỳ website nào.
2. Chiến thuật tấn công DDoS
- Bước 1: Kẻ tấn công (attachker) xây dựng nên một hệ thống các máy trạm (Zombie)
bị kiểm soát (BOTNET) tức là những máy tính bị cài đặt các chương trình đặc biệt và
tưởng tượng.
- Kẻ tấn công xây dựng một mạng gồm hàng nghìn máy tính kết Internet (có
mạng BOT lên tới 400.000 máy). Vậy làm thể nào chúng có khả năng lợi dụng người
kết nối tới Internet để xây dựng mạng BOT?
- Khi có trong tay mạng BOT kẻ tấn công sử dụng những tool tấn công đơn giản
để tấn công vào một hệ thống máy tính. Dựa vào những truy cập hoàn toàn hợp lệ của
hệ thống, cùng một lúc chúng sử dụng một dịch vụ của máy chủ, bạn thử tưởng tượng
khi kẻ tấn công có trong tay 400.000 máy chủ và cùng một lúc ra lệnh cho chúng
download một file trên trang web của bạn. Và đó chính là DDoS – Distributed Denial
of Servcie.
3.3 Mục đích sử dụng mạng Botnets
- Tấn công Distributed Denial-of-Service - DDoS
+ Botnet được sử dụng cho tấn công DDoS
- Spamming
21
+ Mở một SOCKS v4/v5 proxy server cho việc Spamming
- Sniffing traffic
+ Bot cũng có thể sử dụng các gói tin nó sniffer (tóm được các giao tiếp trên
mạng) sau khi tóm được các gói tin nó cố gắng giải mã gói tin để lấy được các nội
dung có ý nghĩa như tài khoản ngân hàng và nhiều thông tin có giá trị khác của người
sử dụng.
- Keylogging
+ Với sự trợ giúp của Keylogger rất nhiều thông tin nhạy cảm của người dùng có
thể sẽ bị kẻ tấn công khai thác như tài khoản trên e-banking, cũng như nhiều tài khoản
khác.
- Cài đặt và lây nhiễm chương trình độc hại
+ Botnet có thể sử dụng để tạo ra mạng những mạng BOT mới.
- Cài đặt những quảng cáo Popup
+ Tự động bật ra những quảng cáo không mong muốn với người sử dụng.
- Google Adsense abuse
Bước 3: Kết nối vào IRC.
- Bước tiếp theo của Agobot sẽ tạo ra một IRC-Controlled Backdoor để mở các
yếu tố cần thiết, và kết nối tới mạng Botnet thông qua IRC-Controll, sau khi kết nối nó
sẽ mở những dịch vụ cần thiết để khi có yêu cầu chúng sẽ được điều khiển bởi kẻ tấn
công thông qua kênh giao tiếp IRC.
Bước 4: Điều khiển tấn công từ mạng BotNet.
- Kẻ tấn công điều khiển các máy trong mạng Agobot download những file .exe
về chạy trên máy.
- Lấy toàn bộ thông tin liên quan và cần thiết trên hệ thống mà kẻ tấn công muốn.
- Chạy những file khác trên hệ thống đáp ứng yêu cầu của kẻ tấn công.
- Chạy những chương trình DDoS tấn công hệ thống khác.
3.5 Sơ đồ cách hệ thống bị lây nhiễm và sử dụng Botnet
23
Hình 3.2 Sơ đồ cách hệ thống bị lây nhiễm và sử dụng Botnet
4. Mô hình tấn công DDoS
DDoS tấn công vào tài nguyên của nạn nhân. Tài nguyên có thể là băng thông
mạng, hiệu năng máy tính hay là cấu trúc dữ liệu trong OS. Khởi đầu 1 vụ DDoS, đầu
tiên hacker xây dựng 1 mạng máy tính mà hắn sẽ dùng làm phương tiện giao dịch với
các máy tính nạn nhân. Để tạo được mạng này, hacker phải tìm được chỗ yếu của
trang Web hay máy chủ trên mạng. Chỗ yếu này có thể là do máy chủ đó không cài
phần mềm diệt virus hay là phần mềm này không được update, cũng có thể là không
được vá đúng đắn. Kẻ tấn công sẽ xâm nhập vào máy chủ thông qua lỗ hổng này.
Bước tiếp theo, hacker sẽ cài vào trong host 1 chương trình – gọi là công cụ tấn
công( attack tools ). Chương trinh này chạy trong máy chủ và trở thành ký sinh, như
vậy hacker đã có thể điều khiển được host này, tập các máy bị nhiễm này sẽ trở thành
1 đội quân hung dữ đáng sợ.
Vấn đề là hacker tìm ra các host như thế nào và làm sao để cài được các công cụ
tấn công lên đó. Sự chuẩn bị khung cảnh là điều cốt yếu còn việc tìm lỗ hổng của host
và cài chương trình độc thì dễ dàng hơn. Hacker sẽ không tốn nhiều thời gian vì
chương trình tấn công có khả năng tự động tìm các lỗi bảo mật của hệ thống, phá hủy