ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đinh Thị Thu Dung
NGHIÊN CỨU, XÂY DỰNG VÀ PHÒNG CHỐNG
BOTNET
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2012
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đinh Thị Thu Dung
NGHIÊN CỨU, XÂY DỰNG VÀ PHÒNG CHỐNG
BOTNET
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: Hồ Đắc Phương
HÀ NỘI - 2012
VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY
Dinh Thi Thu Dung
ANALYSIS AND DEFENCE BOTNET ATTACKING
Major: Information Technology
Supervisor: Ho Dac Phuong
HA NOI - 2012
LỜI CẢM ƠN
Lời đầu tiên tôi xin gửi lời cám ơn và lòng biết ơn sâu sắc đến thầy giáo ThS. Hồ
Đắc Phương, người đã giúp tôi chọn đề tài, định hình hướng nghiên cứu, tận tình
hướng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp.
Tôi xin gửi lời cám ơn chân thành đến các thầy, cô giáo trong trường Đại học
Công nghệ - Đại học Quốc gia Hà Nội. Các thầy, cô giáo đã dạy bảo và truyền đạt cho
tôi rất nhiều kiến thức, giúp tôi có được một nền tảng kiến thức vững chắc sau bốn
năm học tập tại trường Đại học Công nghệ. Tôi xin gửi lời cám ơn chân thành tới các
bạn trong lớp K53CC đã ủng hộ khuyến khích tôi trong suốt quá trình học tập tại
trường.
Tôi xin gửi đến lời cám ơn chân thành đến anh Hà Hải Thanh, anh Hà Văn Tiến
và các anh, chị bên “Trung tâm ứng cứu khẩn cấp máy tính Việt Nam – VNCERT” đã
hướng dẫn nhiệt tình và tạo điều kiện môi trường tốt nhất giúp tôi hoàn thành tốt khóa
luận này.
Cuối cùng, tôi muốn gửi lời cám ơn sâu sắc nhất đến gia đình và bạn bè, đặc biệt
là Bố Mẹ và em trai – những người thân yêu luôn kịp thời động viên và giúp đỡ tôi
vượt qua những khó khăn trong học tập cũng như trong cuộc sống.
Hà Nội, ngày 18 tháng 05 năm 2012
Sinh viên
Đinh Thị Thu Dung
4
NGHIÊN CỨU, XÂY DỰNG VÀ PHÒNG CHỐNG BOTNET
Đinh Thị Thu Dung
Khóa QH-2008-I/CQ , ngành Công nghệ Thông Tin
Tóm tắt Khóa luận tốt nghiệp:
Internet ngày càng phát triển nhanh chóng và đa dạng hóa. Những ứng dụng của công
nghệ thông tin được ứng dụng vào mọi mặt của đời sống, kinh tế, chính trị, xã hội. Song song
với quá trình phát triển đó thì những mối đe dọa cũng xuất hiện ngày càng nhiều, nổi bật là
mối đe dọa về Botnet.
Các mạng Botnet được sinh ra một cách bí mật và tiềm ẩn trong đó những nguy cơ lớn
đối với an ninh mạng. Trong những năm qua, các hoạt động độc hại do Botnet đã gây ra
những sự thay đổi quan trọng đáng kể trên Internet, từ hành vi phá hoại đến tấn công và ảnh
hưởng đến lợi ích kinh tế. Sự thay đổi này đã được đánh dấu bởi một sự phát triển tinh vi
trong công cụ và phương pháp sử dụng Botnet để tiến hành các cuộc tấn công. Các nạn nhân
của Botnet không ngừng gia tăng và số lượng ngày một lớn. Các tổ chức an ninh mạng đã tìm
thấy và gỡ bỏ nhiều mạng lưới Botnet trên Internet.
Khóa luận cung cấp một cách nhìn tổng quan về Bot/Botnet, mục đích sử dụng Botnet
của kẻ tấn công, các cơ chế điều khiển Botnet, yếu tố liên quan đến cuộc tấn công. Đồng thời,
khóa luận mô tả quá trình Bot lây nhiễm vào hệ thống và kẻ tấn công điều khiển hệ thống lây
nhiễm từ xa thông qua kênh IRC. Vì máy chủ IRC được dùng phổ biến nhất để điều khiển
Botnet, mạng IRC cung cấp cho kẻ tấn công khả năng dễ dàng và mềm dẻo để điều khiển
mạng Botnet lớn. Từ đó, khóa luận cung cấp các giải pháp phát hiện IRC Botnet được sử
dụng từ trước đến nay, các khuyến nghị cho người dùng và nhà quản trị hệ thống để ngăn
chặn, phát hiện và xử lý hoạt động của Bot.
Khóa luận đưa ra mô hình thử nghiệm về xây dựng hệ thống Botnet dựa trên máy chủ
IRC để hiểu phần nào về cách xây dựng cũng như phương thức hoạt động thực tế của Botnet.
Từ khóa: Bot, Botnet
5
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu và thực hiện khóa luận thực sự
của riêng tôi, dưới sự hướng dẫn của Th.S Hồ Đắc Phương và một số cán bộ đồng
hướng dẫn thuộc Trung tâm ứng cứu khẩn cấp máy tính Việt Nam – VNCERT.
Mọi tham khảo từ các tài liệu, công trình nghiên cứu liên quan trong nước và
quốc tế đều được trích dẫn rõ ràng trong luận văn. Mọi sao chép không hợp lệ, vi
phạm quy chế hay gian trá tôi xin hoàn toàn chịu trách nhiệm và chịu mọi kỷ luật của
ĐHQG Hà Nội và Nhà trường.
Hà Nội, ngày 18 tháng 05 năm 2012
Sinh viên
Đinh Thị Thu Dung
6
MỤC LỤC
7
DANH MỤC CÁC TỪ VIẾT TẮT
1 C&C Command and Control
2 DoS Denial of Sevice
3 DDoS Distributed Denial of Sevice
4 DNS Domain Name System
5 FTP File Transfer Protocol
6 HTTP Hypertext Transfer Protocol
7 IP Internet Protocol
8 IRC Internet Relay Chat
9 P2P Peer-to-Peer
10 TCP Transmission Control Protocol
11 URL Uniform Resource Locator
8
DANH MỤC CÁC HÌNH VẼ
9
MỞ ĐẦU
Internet ngày càng phát triển nhanh chóng. Những ứng dụng của công nghệ
thông tin được ứng dụng vào mọi mặt của đời sống, kinh tế, chính trị, xã hội. Song
song với quá trình phát triển đó thì những mối đe dọa cũng xuất hiện ngày càng nhiều,
nổi bật là mối đe dọa về Botnet. Các mạng Botnet được sinh ra một cách bí mật và
tiềm ẩn trong đó những nguy cơ lớn đối với an ninh mạng. Trong những năm gần đây,
hiểm họa Botnet ngày càng trở nên nguy hiểm hơn với rất nhiều các công cụ và hình
thức tấn công mới. Khai thác, phát tán mã độc, phát tán thư rác số lượng lớn, tấn công
từ chối dịch vụ website của các tổ chức, thu thập thông tin cá nhân về người dùng, là
những hành vi nguy hiểm thường thấy của Botnet đã gây ra những thiệt hại không nhỏ
về đời sống kinh tế, xã hội. Các nạn nhân của Botnet không ngừng gia tăng và số
lượng ngày càng lớn.
Các tổ chức an ninh mạng đã tìm thấy và gỡ bỏ nhiều Botnet trên Internet. Vậy
Botnet là gì? Botnet hình thành và hoạt động như thế nào? Các nguy cơ của Botnet?
Khóa luận tốt nghiệp “Nghiên cứu, xây dựng và phòng chống BOTNET” đề cập đến
IRC Botnet và trả lời các câu trên. Đồng thời, khóa luận đưa ra các cơ chế điều khiển
Botnet, các giải pháp phát hiện IRC Botnet được sử dụng từ trước đến nay, khuyến
nghị cho người dùng và nhà quản trị hệ thống để ngăn chặn, phát hiện và xử lý hoạt
động của Bot.
Nội dung của khóa luận gồm 3 chương:
Chương 1: Tổng quan về Botnet
Đưa ra cái nhìn tổng quan về Bot/Botnet và những khái niệm liên quan. Lịch sử
các Bot điển hình và thiệt hại mà chúng đã gây ra. Mục đích sử dụng Botnet của tin
tặc. Đồng thời trong chương này, khóa luận cũng giới thiệu sơ bộ về các phương pháp
điều khiển Botnet điển hình.
Chương 2: Xây dựng hệ thống IRC Bot
Trình bày chi tiết về quá trình lây nhiễm và các bước điều khiển Botnet. Đưa ra
ví dụ cụ thể về mạng IRC Botnet.
Chương 3: Giải pháp và khuyến nghị
Trình bày giải pháp được sử dụng trong lĩnh vực phát hiện Botnet. Khuyến nghị
dành cho người dùng và người quản trị hệ thống để có thể phòng chống, phát hiện và
xử lý máy tính hay hệ thống của mình.
Phần xu hướng và kết luận:
10
Nêu lên xu hướng phát triển Botnet hiện nay. Tóm tắt kết quả đạt được của khóa
luận, chỉ ra những điểm cần khắc phục đồng thời đưa ra những định hướng nghiên cứu
tiếp theo.
11
CHƯƠNG 1 – TỔNG QUAN VỀ BOTNET
1.1 Khái niệm Bot, Botnet
Bot hay roBot mạng là ứng dụng phần mềm tự động thực thi các nhiệm vụ trên
mạng Internet. Thông thường Bot thực hiện các nhiệm vụ đơn giản được lập trình sẵn
và có cấu trúc lặp đi lặp lại với tốc độ cao hơn một người bình thường.
Bot được phát hiện đầu tiên trong hệ thống mạng Internet Relay Chat (IRC)
(Holz, 2005)[1]. Oikarinen và Reed đã sáng tạo ra mạng IRC năm 1993 theo chuẩn
RFC 1459. IRC là một dạng truyền dữ liệu thời gian thực trên Internet, cho phép một
nhóm người có thể trò chuyện, liên lạc với nhau thông qua một kênh (channel), IRC
cũng hỗ trợ các cuộc trò chuyện riêng tư giữa hai máy khách và truyền tải trực tiếp dữ
liệu. Do có thể sử dụng các máy chủ IRC công cộng như một phương tiện liên lạc và
thực hiện các nhiệm vụ đơn giản, mạng IRC nhanh chóng được người dùng Internet
yêu thích và sử dụng rộng rãi. Các Bot đầu tiên đã được sử dụng như một phương tiện
để bảo vệ kênh IRC chống lại các hình thức tấn công từ chối dịch vụ (DoS).
Một Botnet được định nghĩa là một “mạng gồm rất nhiều máy tính bị xâm nhập
và có thể được kẻ tấn công điều khiển từ xa”. “Máy tính bị xâm nhập” là máy tính bị
lây nhiễm phần mềm độc hại (Bot). Như vậy, Botnet là tập hợp các Bot được sử dụng
với mục đích xấu. Botmaster là một người hoặc một nhóm người điều khiển Botnet.
Các đặc điểm chính của mạng Botnet:
Đầu tiên, Botnet là một hệ thống. Hệ thống này có thể giao tiếp với nhau, các
Bot cấp thấp báo cáo kết quả quét hệ thống đã thực hiện được đến trung tâm chỉ huy,
cũng như tiếp nhận mệnh lệnh và cập nhật. Vì vậy khi phân tích Botnet, các nhà
nghiên cứu không chỉ cần tìm ra các chương trình độc hại mà còn phải tìm được hệ
thống của chính những kẻ tấn công.
Thứ hai, các máy tính tham gia vào một Botnet khi đã bị xâm nhập. Máy tính có
thể bị xâm nhập bằng nhiều cách khác nhau, ví dụ, thông qua lỗ hổng của ứng dụng
hay hệ điều hành, khai thác các đoạn mã tự động, phần mềm độc hại dựa trên nền web
(lừa đảo, tải về miễn phí),…
Thứ ba, Bot có thể được điều khiển từ xa. Bot báo cáo kết quả và nhận mệnh
lệnh từ hệ thống chỉ huy và điều khiển (C&C). Do đó, kẻ tấn công có thể tận dụng khả
năng của hầu hết các máy tính bị nhiễm trong Botnet. Hệ thống điều khiển Botnet có
thể tập trung hoặc phân cấp. Có bốn kiểu cấu trúc điều khiển Botnet điển hình:
12
• Cấu trúc điều khiển dựa trên kênh IRC, Bot có thể tham gia vào kênh IRC để gửi
báo cáo hoặc chờ đợi lệnh chỉ huy.
• Cấu trúc điều khiển dựa trên nền web (web-based), Bot được lập trình để kết nối
đến máy chủ web.
• Cấu trúc điều khiển dựa trên peer-to-peer (P2P), P2P có kiến trúc phân quyền tốt
hơn được sử dụng để điều khiển Bot và nhiều Bot có thể dễ dàng chia sẻ vai trò
điều khiển khi sử dụng cấu trúc điều khiển này.
• Cấu trúc điều khiển dựa trên những kênh thông tin liên lạc bí mật (ví dụ, DNS).
Những thế hệ Botnet đầu tiên sử dụng IRC, mặc dù không còn được sử dụng
rộng rãi như trước, nhưng Botnet dựa trên IRC vẫn tồn tại đến ngày nay. Ví dụ, Botnet
Hamweq dựa trên IRC đã được coi là một Bot hiệu quả.
Cuối cùng, mục đích kiểm soát Botnets của tin tặc là một số hình thức hoạt động
bất hợp pháp. Những hoạt động này bao gồm, tấn công từ chối dịch vụ phân tán
(DDoS), phát tán thư giác (spamming), theo dõi lưu lượng dữ liệu trên hệ thống mạng
(sniffing network traffic), theo dõi bàn phím (keylogging), phát tán mã độc (spreading
malware), v.v
1.2 Lịch sử Botnet
Cùng với sự phát triển bùng nổ của máy tính và mạng Internet, tin tặc ngày càng
tạo ra nhiều loại Bot độc hại, với nhiều kích cỡ, chủng loại và tác hại khác nhau. Một
vài loại mã độc được tạo ra chỉ để cho vui, một vài loại để quậy phá bạn bè và một số
khác vì mục đích kinh tế, chính trị.
Tháng Một năm 1986: Virus Brain
Đây là loại virus đầu tiên lây nhiễm trên máy tính tại Pakistan[14]. Brain lây
nhiễm thông qua đĩa mềm trên hệ điều hành MS-DOS. Tuy nhiên, đây không phải là
loại virus phá hoại, tác giả là anh em nhà Alvi chỉ chèn tên tuổi và thông tin cá nhân
của mình vào trong mã của virus. Hiện Amjad Farooq Alvi và Basit Faqooq Alvi, hai
tác giả của virus Brain đến từ Lahore, Pakistan, đang điều hành công ty viễn thông,
cung cấp các dịch vụ Internet tại nước này.
Năm 1987: Virus Stoned
Loại virus này đo một sinh viên ở New Zealand tạo ra. Đến năm 1989, Stoned đã
lây nhiễm ra khắp New Zealand và Autralia[17].
Năm 1990: Virus Form
13
Virus Form có nguồn gốc từ Thụy Sỹ, đến nay vẫn chưa rõ ai là tác giả. Form là
một trong những loại virus nguy hiểm nhất trong lịch sử máy tính. Có nhiều biến thể
khác nhau, Form lây nhiễm từ MS-DOS cổ điển đến tận các phiên bản Windows hiện
đại. Đến tận tháng Một năm 2006, Form vẫn bị xem là virus cực kỳ nguy hiểm[13],
[15].
Tháng Hai năm 1991: Virus Michelangelo
Virus Michelangelo được phát hiện tại Úc. Virus này được thiết kế để lây nhiễm
các hệ điều hành DOS, nhằm mục đích ghi đè lên tất cả các sector của đĩa cứng[19].
Năm 1992: Virus Creation Laboratory (VCL)
Virus này là một trong những nỗ lực đầu tiên cung cấp một công cụ tạo virus để
các cá nhân có ít chuyên môn lập trình có thể tạp tạo ra virus máy tính[20].
Năm 1994: Virus Monkey
Virus Monkey ra đời năm 1994 tại Canada. Virus này là một biến thể của Virus
Stoned. Là chương trình đầu tiên có khả năng che giấu mình trước sự phát hiện của
người dùng[13].
Năm 1995: Virus Concept
Ra đời năm 1995 tại Mỹ, Concept là virus đầu tiên chứng tỏ khả năng xâm nhập
được vào các tập tin của chương trình soạn thảo văn bản Microsoft Word[14].
Năm 1999: Virus Happy99
Xuất hiện năm 1999, đánh dấu sự xuất hiện đầu tiên của virus máy tính lây
nhiễm qua email, nhưng không rõ nguồn gốc. Những máy bị nhiễm loại virus này sẽ
tự động gửi một email với tiêu đề “Happy New Year 1999” đến tất cả bạn bè có trong
danh sách địa chỉ email. Tương tự như Brain, Happy99 không thực sự gây tác hại đến
máy tính. Tuy nhiên, loại virus này cũng đã lây nhiễm trên hàng triệu máy tính trên
toàn cầu[13], [21].
Năm 2000: Virus Letter (hay virus ILOVEYOU)
Virus Letter xuất hiện năm 2000 từ Philippines. Virus này là một trong những
loại virus có khả năng lây nhiễm rộng lớn nhất trong lịch sử. Những máy tính bị lây
nhiễm virus này sẽ tự gửi đến danh sách bạn bè email với tiêu đề ILOVEYOU, đính
kèm theo những tập tin Word có chứa mã độc. Song không giống với Happy99, ngoài
khả năng lây nhiễm qua email, Love Letter còn phá hoại máy tính của nạn nhân. Đã
có hơn 50 triệu máy tính bị lây nhiễm loại virus này, gây thiệt hại lên đến hàng tỷ
14
USD. Tác giả của virus Love Letter là một sinh viên người Philippines. Tuy nhiên, thủ
phạm đã được tha bổng vì vào thời điểm đó, Philippines chưa có đạo luật để trừng trị
các tin tặc[13].
Tháng Bảy năm 2001: Worm Code Red
Code Red là loại sâu máy tính, được phát hiện vào tháng Bảy năm 2001. Code
Red đã tấn công các máy chủ web IIS của Microsoft. Loại sâu này sẽ tự động phát tán
dù người dùng có tác động đến hay không[22].
Năm 2002: SDBot
SDBot xuất hiện vào tháng Tư năm 2002, do lập trình viên người Nga viết.
SDBot là một bước tiến quan trọng trong quá trình phát triển Bot, được viết bằng C+
+[12]. Đặc điểm chính của SDBot là chứa và sử dụng các cửa sau điều khiển từ xa.
SDBot khai thác lỗ hổng hai ứng dụng máy chủ: WebDav (cổng 80) và MSSQL (cổng
1433); khai thác hai lỗ hổng hai ứng dụng bên thứ ba: phần mềm quản lý từ xa
DameWare (cổng 6129) và tên người dùng đăng nhập email IMAPD (cổng 143); khai
thác lỗ hổng bộ định tuyến Cisco: CISCO IOS HTTP ủy quyền (cổng 80)[8].
Năm 2002: AgoBot (hay GaoBot)
AgoBot xuất hiện năm 2002, là một họ của sâu máy tính[24]. Lập trình viên
người Đức, Alex “Ago” Gembe là người viết phiên bản đầu tiên. Agobot được viết
bằng C++, mã nguồn được thiết kế ở mức cao, cho phép thêm các chức năng mới vào
dễ dàng. AgoBot sử dụng cơ chế điều khiển qua lệnh dựa trên máy chủ IRC, nhưng
lây lan thông qua các ứng dụng chia sẻ tập tin P2P. Bot được chỉ huy thông qua IRC,
đồng thời mở cửa hậu truy cập từ xa cho phép kẻ tấn công có thể truy cập trực tiếp.
Năm 2003: Virus Slammer
Slammer là một trong những loại virus có tốc độ lan truyền kỷ lục, với 75.000
máy bị lây nhiễm chỉ sau 10 phút. Slammer đã làm sập hệ thống máy ATM của ngân
hàng Mỹ và mạng lưới 911 tại Seatles (Mỹ)[14].
Năm 2003: Sobig Worm
Sâu máy tính Sobig được phát hiện năm 2003. Ngày 19 tháng 8, SoBig thiết lập
kỷ lục về khả năng lây nhiễm qua email, lây nhiễm tới hàng triệu máy tính chỉ trong
vòng vài giờ sau khi xuất hiện[25].
Năm 2003: Fizzer Worm
15
Năm 2003 đánh dấu sự ra mắt của phần mềm độc hại đầu tiên được tạo ra với
mục đích lợi nhuận[14]. Sâu máy tính Fizzer lây nhiễm thông qua các tập tin đính
kèm trên email, ổ đĩa chia sẻ trên mạng, IRC và phần mềm P2P KaZaA[26]. Sau khi
lây nhiễm vào máy tính, Fizzer cố gắng kết thúc các phần mềm chống virus trên máy
tính nạn nhân. Một máy tính sau khi bị nhiễm sâu Fizzer có thể bị tin tặc đánh cắp
quyền điều khiển và đưa vào các mạng lưới Botnet hoặc sử dụng để gửi đi các email
spam.
Năm 2004: MyDoom Worm
MyDoom là sâu máy tính ảnh hưởng đến Microsoft Windows. MyDoom trở
thành sâu phát tán thư rác nhanh nhất chưa từng thấy, vượt kỷ lục trước đó được thiết
lập bởi sâu Sobig và ILOVEYOU[27].
Năm 2004: Sasser Worm
Tác giả của Sâu máy tính Sasser là Sven Jaschan, một tin tặc chỉ mới 18 tuổi của
Đức[28]. Sâu Sasser ảnh hưởng đến các máy tính dùng các phiên bản dễ bị tổn thương
của hệ điều hành Windows XP và Windows 2000. Sasser lây lan bằng cách khai thác
lỗ hổng hệ thống thông qua cổng mạng dễ bị tổn thương. Vì thế, Sasser đặc biệt nguy
hiểm vì có thể tự lây lan mà không có sự can thiệp của người sử dụng, tuy nhiên
Sasser cũng dễ dàng bị chặn tại tường lửa được cấu hình đúng hoặc tải các bản cập
nhật hệ thống từ Windows Update. Sasser quét các dải địa chỉ IP khác nhau và kết nối
đến máy tính nạn nhân chủ yếu thông qua TCP cổng 445 (hoặc 139). Do ảnh hưởng
của Sasser, cơ quan thông tấn Agence France-Presse (AFP) đã bị khóa trong vài giờ
và hãng hàng không Delta Air Lines của Mỹ đã phải hủy bỏ vài chuyến bay xuyên Đại
Tây Dương vì hệ thống máy tính bị sâu này tấn công. Hãng hàng không Anh gặp tình
trạng tương tự, đã không thể sử dụng máy bay trong nhiều giờ. Một công ty dầu lửa
tại Úc phải ngưng hoạt động vì Sasser làm gián đoạ Công ty Sampo ở Phần Lan cho
biết họ tạm ngưng hoạt động 130 chi nhánh để sửa máy tính đề phòng bị sâu Sasser
tấn công. Sasser cũng tấn công 300.000 máy tính ở Bưu điện Deutsche (Đức) và khiến
khoảng 500 máy tính ở những bệnh viện tại New Orleans phải ngừng hoạt động trong
7 giờ.
Năm 2004: Cabir Worm
Sâu máy tính Cabir được phát triển trong năm 2004, được thiết kế để lây nhiễm
sang điện thoại di động chạy hệ điều hành Symbian[29]. Cabir là sâu đầu tiên trong
lịch sử có thể lây sang điện thoại di động. Cabir có thể lây nhiễm thông qua bluetooth,
làm giảm thời lượng sử dụng pin trên điện thoại di động bị lây nhiễm.
16
Năm 2005: Haxdoor backdoor
Là một họ của chương trình quản lý mã độc từ xa, thường được tin tặc dùng phổ
biến để ăn cắp thông tin nhạy cảm, chi tiết tài khoản, từ máy tính bị nhiễm[30]. Một
số biến thể của Haxdoor bao gồm khả năng rootkit, có thể che dấu sự hiện diện và
hành động trên hệ thống máy tính bị nhiếm.
Năm 2005: Sony BMG rootkit
Thêm một loại rootkit khác xuất hiện cùng năm với HaxDoor, nhưng có nguồn
gốc ở Mỹ và Anh[14], [31]. Hãng đĩa nhạc Sony BMG đã tích hợp một loại phần mềm
trên các đĩa của mình, cho phép tự động cài đặt trên máy tính sử dụng hệ điều hành
Windows khi khách hàng mở đĩa CD. Đây là động thái bảo vệ bản quyền của Sony
BMG. Phần mềm này can thiệp theo cách bình thường trong hệ điều hành Windows
bằng cách cài một rootkit nhưng đã vô tình tạo ra lỗ hổng để các phần mềm độc hại
khai thác.
Năm 2007: Storm Worm
Sâu máy tính Storm bắt đầu lây nhiễm hàng ngàn máy tính (chủ yếu là tư nhân)
ở châu Âu và Hoa Kỳ vào ngày 19 tháng Một năm 2007, bằng cách sử dụng một tin
nhắn với dòng tiêu đề "230 dead as storm batters Europe". Đến ngày 22 tháng Một
năm 2007, Storm Worm chiếm đến 8% số lượng phần mềm độc hại lây nhiễm trên
toàn cầu[32]. Theo PCWorld, Storm Worm có nguồn gốc từ Nga, có thể theo dõi các
mạng kinh doanh Nga. Các máy tính bị nhiễm Storm Worm sẽ kết hợp thành một
Botnet, Storm Worm hoạt động như mạng P2P, không có máy chủ tập trung. Ngày 07
tháng Chín năm 2007, ước tính kích thước của Botnet Storm có khoảng từ 1 đến 10
triệu máy tính.
Năm 2008: Conficker
Conficker (hay với cái tên khác là Downup, Downadup, Kido) là sâu máy tính
nhắm vào hệ điều hành Windows đã được phát hiện trong tháng Mười Một năm 2008.
Khai thác lỗ hổng trong phần mềm Windows, tấn công vào mật khẩu quản trị viên để
lây truyền hình thành hệ thống Botnet. Conficker lây nhiễm hàng triệu máy tính bao
gồm chính phủ, kinh doanh và máy tính cá nhân tại hơn 200 quốc gia trên thế
giới[33]. Intramar, mạng máy tính của Hải quân Pháp đã bị nhiễm Conficker ngày 15
tháng Một năm 2009. Mạng lưới này sau đó đã được cách ly, buộc máy bay tại vài căn
cứ không quân không cất cánh được bởi vì kế hoạch chuyến bay của họ không thể tải
về được. Ngày 02 tháng Hai, năm 2009, các lực lượng vũ trang thống nhất của Đức
17
thông báo rằng khoảng 100 máy tính của họ bị nhiễm. Sự lây nhiễm vào hệ thống
Công nghệ thông tin của Hội đồng thành phố Manchester đã gây ra ước tính trị giá 1,5
triệu bảng của sự gián đoạn trong tháng Hai năm 2009.
Năm 2010: Stuxnet
Sâu máy tính Stuxnet được phát hiện vào tháng Sáu năm 2010 bởi công ty bảo
mật Belarus[34]. Ban đầu lây nhiễm thông qua hệ điều hành Windows. Stuxnet là mẫu
sâu máy tính đầu tiên được phát hiện có khả năng thâm nhập và tái cấu trúc các hệ
thống công nghiệp, cũng là sâu máy tính đầu tiên chứa rootkit điều khiển logic khả lập
(programmable logic controller – PLC rootkit). Stuxnet được viết ra để tấn công trực
tiếp vào các hệ thống giám sát điều khiển và thu thập dữ liệu (SCADA) sử dụng trong
điều khiển các quy trình công nghiệp. Stuxnet có thể tự động xâm nhập vào một hệ
thống, đánh cắp công thức pha trộn sản phẩm, xáo trộn thành phần nguyên liệu; đánh
lừa hệ điều hành và phần mềm diệt virus rằng mọi thứ vẫn đang hoạt động bình
thường. Biến thể khác nhau của Stuxnet nhắm mục tiêu năm tổ chức của Iran, với mục
tiêu nghi ngờ là cơ sở hạ tầng làm giàu uranium tại Iran. Công ty an ninh mạng của
Nga Kaspersky Labs đã mô tả Stuxnet như “một dạng vũ khí thông minh linh động và
đáng sợ”. Theo nghiên cứu của Symantec về sự lây lan của Stuxnet cho thấy các nước
bị ảnh hưởng chính trong những ngày đầu bị lây nhiễm là Iran, Indonesia và Ấn độ, cụ
thể một số nước chịu ảnh hưởng của Stuxnet:
Đất nước Phần trăm Máy tính bị lây nhiễm
Iran 58.85%
Indonesia 18.22%
Ấn độ 8.31%
Azerbaija
n
2.57%
Hoa Kỳ 1.56%
Pakistan 1.28%
Khác 9.2%
Năm 2011: Duqu
Duqu là sâu máy tính được phát hiện vào ngày 01 tháng Chín năm 2011, có
thuộc tính tương tự như sâu máy tính Stuxnet. Duqu và Stuxnet cùng nhắm đến mục
tiêu cao và liên quan đến chương trình hạt nhân của Iran. Giống như Stuxnet, Duqu
tấn công hệ thống Windows lợi dụng lỗ hổng zero-day. Theo McAfee, một trong
những hành động của Duqu là ăn cắp giấy chứng nhận số từ máy tính bị tấn công để
giúp các phần mềm độc hại sau này xuất hiện như phần mềm an toàn[35]. Theo các
chuyên gia virus máy tính, Duqu có cách thức hoạt động khác nhiều so với Stuxnet
18
mặc dù cả hai loại này cùng sử dụng một số mã tương tự để thâm nhập vào hệ thống
máy tính. Duqu chỉ xâm nhập ăn cắp dữ liệu chứ không phá hủy hệ thống máy tính
như Stuxnet.
1.3 Mục đích sử dụng mạng Botnet
Botnet không hơn gì một công cụ, có nhiều động cơ khác nhau để sử dụng
chúng. Chúng được sử dụng phổ biến nhất với mục đích phá hoại và tài chính. Botnet
có thể làm bất kỳ điều gì mà chúng ta có thể tưởng tượng làm được với một tập hợp
các máy tính đã kết nối mạng. Khả năng sử dụng các máy tính bị chiếm quyền điều
khiển chỉ phụ thuộc vào trí tưởng tượng và kỹ năng của kẻ tấn công. Dựa trên các dữ
liệu đã biết, những khả năng sử dụng Botnet phổ biến có thể được phân loại như liệt
kê dưới đây.
1.3.1 Lây nhiễm sang các máy tính khác
Mục đích cơ bản nhất mà Botmaster muốn thực hiện trên mỗi máy tính bị lây
nhiễm (Botclient) là tìm kiếm các máy tính tiềm năng khác để lây nhiễm phần mềm
độc hại sang[2]. Botclient có thể quét hệ thống máy tính ứng viên. Ví dụ, RBot khai
thác thư mục chia sẻ của Windows qua việc đoán hoặc tấn công vét cạn mật khẩu để
các Botclient quét các hệ thống khác khi cổng 139 hoặc 445 mở, bằng cách sử dụng
các công cụ như smbscan.exe, ntscan.exe,… Ta cũng có thể sử dụng lệnh net (net
view /DOMAIN và net view /DOMAIN: <domain name>) cho RBot để liệt kê tên
NetBIOS của những ứng viên tiềm năng.
1.3.2 Tấn công từ chối dịch vụ phân tán
Botnet thường xuyên được sử dụng để tấn công từ chối dịch vụ phân tán (DDoS)
nhằm mục tiêu trả thù hoặc lợi nhuận[3]. Ý tưởng chính đằng sau một cuộc tấn công
từ chối dịch vụ phân tán là làm kiệt quệ một số tài nguyên yêu cầu cung cấp từ máy
chủ, làm chậm hoặc ngăn chặn khả năng xử lý các yêu cầu hợp pháp của người dùng
bình thường. Theo phân tích cho đến nay mỗi Bot bao gồm nhiều khả năng khác nhau
để thực hiện một cuộc tấn công DDoS chống lại các máy chủ khác. Phổ biến nhất và
TCP SYN và làm tràn UDP.
Ví dụ cho cuộc tấn công từ chối dịch vụ điển hình như hình 1:
19
Hình 1.1: Cuộc tấn công DDoS điển hình
Tấn công tràn ngập (Flooding attacks)
Các cuộc tấn công tràn ngập ICMP và UDP nhằm mục tiêu làm tràn ngập băng
thông sử dụng để cung cấp dịch vụ. Chúng thường hoạt động bằng cách gửi một khối
lượng lớn dữ liệu mà sử dụng tất cả băng thông của kết nối hoặc gửi rất nhiều gói dữ
liệu mà sự kết nối, các router hoặc các máy chủ bị quá tải để xử lý trở nên cực kỳ
chậm hoặc ngừng đáp ứng.
Các cuộc tấn công DDoS không giới hạn đối với các máy chủ web, hầu như bất
kỳ dịch vụ có sẵn trên Internet đều có thể là mục tiêu của các cuộc tấn công. Các giao
thức cao cấp hơn có thể được sử dụng làm tăng thêm hiệu quả bằng cách sử dụng các
cuộc tấn công rất cụ thể, chẳng hạn như làm tràn HTTP đệ quy trên trang web của nạn
nhân. Làm tràn HTTP đệ quy có nghĩa là các Bot bắt đầu từ một liên kết HTTP nhất
định sau đó đi đến tất cả các liên kết trên trang web đó cung cấp theo một cách đệ quy.
Điều này còn được gọi là bò loang.
1.3.3 Tải về và cài đặt
Gần như tất cả các Bot bao gồm các chức năng cho phép tải và thực thi các tập
tin thông qua các giao thức FTP, HTTP Đây là phương pháp chính được sử dụng để
cập nhật Bot. Bot có thể tải về bất kỳ tập tin điều khiển của kẻ tấn công. Những tập tin
đó có thể được thực thi ngay hoặc sau một thời gian nhất định. Khả năng tải về và
20
thực thi chương trình thường được sử dụng để cài đặt thêm các chương trình độc hại
như spyware, adware, hoặc các công cụ khác được quản lý bởi kẻ tấn công.
1.3.4 Gửi thư rác và email lừa đảo
Botnet là một công cụ lý tưởng cho những kẻ phát tán thư rác[2]. Với sự giúp đỡ
của một mạng Botnet và hàng ngàn Bot zombie, kẻ tấn công có thể gửi hàng loạt thư
rác. Một số Bot thực hiện chức năng đặc biệt để thu hoạch địa chỉ email. Sử dụng
Botnet, kẻ tấn công có thể thiết lập mạng lưới thư rác tự động. Ngoài ra, Botnet cũng
được sử dụng để gửi email lừa đảo (phishing-mail).
Phân tích tiêu đề của các thư rác tương tự nhau và các cuộc tấn công lừa đảo có
thể cho phép các nhà điều tra tìm ra các thành viên của các Botnet phổ biến. Giám sát
hoạt động của các thành viên và máy chủ Bot có thể mang lại những thông tin đủ để
loại bỏ Botnet.
1.3.5 Lưu trữ và phân phối dữ liệu bất hợp pháp
Các máy tính bị kiểm soát có thể được dùng như một kho lưu trữ động những dữ
liệu bất hợp pháp chẳng hạn như những bộ phim, trò chơi đánh cắp, phần mềm vi
phạm bản quyền, tranh ảnh khiêu dâm… Trong một số trường hợp, tin tặc đã thành
lập một mạng lưới các vị trí lưu trữ. Các tập tin được lưu trữ trong các thư mục ẩn,
một số được lưu trữ trong thùng rác[2].
1.3.6 Khai thác dữ liệu
Đối với việc khai thác dữ liệu, tin tặc sử dụng các công cụ để thu thập thông tin
từ mỗi máy tính bị chiếm quyền điều khiển[2]. Các Bot có thể sử dụng một gói sniffer
để xem dữ liệu đi qua bởi một máy tính bị chiếm quyền điều khiển. Các sniffer được
sử dụng chủ yếu để lấy những thông tin nhạy cảm như tên người dùng và mật khẩu.
Tất nhiên các dữ liệu sniffer cũng chứa những thông tin thú vị khác. Nếu một máy
tính bị chiếm quyền điều khiển bởi nhiều hơn một Bot thì các gói sniffing còn cho
phép thu thập những thông tin quan trọng của Botnet khác. Từ đó có thể “ăn cắp” một
Botnet khác.
Khi máy tính nạn nhân sử dụng các kênh thông tin liên lạc được mã hóa như
HTTPS hay POP3S[23], nếu chỉ có sniffing các gói dữ liệu trên mạng máy tính của
nạn nhân là không hiệu quả. Tuy nhiên, hầu hết các Bot đều được cung cấp các tính
năng để giải quyết tình huống này. Với sự hỗ trợ của keylogger có thể thu thập tất cả
các thông tin trên bàn phím khi người dùng gõ vào máy tính, thật dễ dàng cho tin tặc
21
lấy được các thông tin nhạy cảm. Với cơ chế lọc (chỉ quan tâm tới tổ hợp phím gần @,
paypal.com,…) giúp cho việc ăn cắp dữ liệu bí mật tốt hơn.
1.3.7 Lạm dụng Google AdSence
Adsence là một chương trình dịch vụ quảng cáo của Google, cung cấp cho các
công ty khả năng hiển thị quảng cáo của Google trên trang web của họ, khi khách
quan kích chuột lên quảng cáo thì công ty sẽ được trả một số tiền. Kẻ tấn công lợi
dụng chương trình này bằng cách tận dụng Botnet của mình để kích vào các quảng
cáo này tự động. Ứng dụng này của Botnet là tương đối hiếm, tuy nhiên đây là ý
tưởng không tồi theo góc độ của kẻ tấn công[23].
1.3.8 Thao tác với các thăm dò bầu cử/cuộc thi trực tuyến
Các cuộc bầu cử/thi trực tuyến đang nhận được sự chú ý nhiều hơn và điều này
khá dễ dàng thao tác với một Botnet. Bởi vì mỗi Bot đều có địa chỉ IP khác nhau, mỗi
phiếu bầu sẽ có độ tin cậy như phiếu bầu bởi một người thực sự[23].
1.4 Phân loại cơ chế điều khiển Botnet
Botnet được xem là một trong những mối đe dọa an ninh nghiêm trọng nhất hiện
nay. Sự khác biệt đáng chú ý nhất giữa Botnet và các phần mềm độc hại truyền thống
khác là kênh chỉ huy và điều khiển Botnet. Kênh chỉ huy và điều khiển Botnet tương
đối ổn định và không thay đổi giữa các Bot, đây là cơ chế cần thiết cho phép
Botmaster chỉ đạo hành động của các Bot trong Botnet. Ban đầu Botnet chỉ giới hạn
trong mạng Botnet dựa trên IRC, và Bot là phần mềm Trojan hoặc backdoor. Cùng
với các giao thức mạng khác được tin tặc sử dụng trong Botnet, các nhà nghiên cứu
nhận ra bản chất của Botnet, cơ chế chỉ huy và điều khiển ngày càng nhiều. Kênh chỉ
huy và điều khiển có thể là máy chủ IRC, máy chủ Web, các nút trong cấu trúc mạng
Peer-to-Peer, các máy chủ DNS, v.v
1.4.1 Chỉ huy và điều khiển Botnet sử dụng máy chủ IRC
Loại máy chủ dùng để chỉ huy và điều khiển được sử dụng phổ biến nhất là
Internet Relay Chat (IRC)[3]. Giao thức IRC cung cấp cơ chế chỉ huy và điều khiển
tập trung, bao gồm một máy chủ như điểm trung tâm cho các máy khách (hoặc các
máy chủ khác) kết nối đến, làm nhiệm vụ gửi đi các thông điệp đã yêu cầu, ghép kênh
và các chức năng khác. Đây là kỹ thuật “đẩy”, các lệnh được đẩy hoặc gửi đến các Bot
từ máy chủ. Các máy chủ này được ưa chuộng bởi vì chúng rất dễ sử dụng, độ trễ
thấp, kết nối thời gian thực và hầu hết các máy chủ IRC đều cho truy cập miễn phí.
Trong giai đoạn đầu phát triển Botnet, IRC đã trở thành giao thức chính trong việc
22
thiết lập kênh chỉ huy và điều khiển Botnet. Tính năng đáng chú ý nhất của mạng IRC
là kênh, nơi mà tất cả mọi người có thể nói chuyện tự do. Kẻ tấn công có thể sử dụng
các mạng IRC công cộng hoặc tự xây dựng máy chủ cho riêng mình. Các máy chủ
IRC bí mật có thể được cùng nằm ở vị trí máy chủ “bullet proof” (BP) mà các nhà
cung cấp dịch vụ đã đảm bảo thời gian hoạt động, hoặc chúng có thể được cài trên
một trong những hệ thống bị xâm nhập.
Máy chủ “bullet proof” ý nói đến các dịch vụ được cung cấp liên tục, không thể
bị ngừng. Những máy chủ này có xu hướng đặt tại nước ngoài, hoặc ở ngoài biển khơi
xa, nơi mà luật pháp không tồn tại hoặc không nghiêm ngặt.
Botnet dựa trên chuẩn IRC thông thường điều khiển các Bot thông qua các lệnh
“PRIVMSG”, “NOTICE” và “TOPIC”. “PRIVMSG” dùng để chuyển thông điệp giữa
hai máy khách hoặc giữa các máy khách trên một kênh, Botmaster thường sử dụng để
gửi hướng dẫn tấn công đến một Bot đơn lẻ hoặc đến tất cả các Bot trên một kênh.
“NOTICE” tương tự như “PRIVMSG” nhưng ít khi được sử dụng hơn. Các kênh với
các chủ đề cho biết chủ đề của cuộc hội thoại hiện hành. “TOPIC” là tập hợp các lệnh
cho các kênh. Khi các Bot kết nối đến kênh IRC bí mật, Bot phân tích chủ đề và làm
theo.
Hình 1.2: Giao diện điều khiển Botnet qua IRC
23
“TOPIC” thể hiện ở hình 2 điều khiển hệ thống thực hiện các chức năng như
sau:
– .advscan: ra lệnh Botnet quét các hệ thống có thể có lỗ hổng.
– lsass_445: cố gắng khai thác các máy chủ có lỗ hổng
– 150: số lượng các tiến trình đồng thời
– 3: thời gian (giây) trễ giữa các lần quét
– 9999: chỉ định số lần thực hiện hành động quét
– -r: các địa chỉ IP Bot cố gắng quét được tạo ra ngẫu nhiên
– -s: việc quét diễn ra ngầm và không cần báo cáo sự tìm kiếm trong kênh.
Chỉ huy và điều khiển Botnet dựa trên IRC có một lỗ hổng nghiêm trọng đó là sự
giao tiếp trên IRC theo mặc định diễn ra trên cổng 6666 hay 6667. Nếu Bot nằm trong
một mạng có tường lửa hoặc có một người quản trị hệ thống thì Bot sẽ dễ dàng bị loại
bỏ, hoặc lọc ra khi có lưu lượng truy cập đến và đi từ các cổng đó, cũng như tìm ra
chính xác các máy tính bị nhiễm và loại bỏ Bot.
1.4.2 Chỉ huy và điều khiển Botnet dựa trên nền Web
Khi các nhà nghiên cứu an ninh mạng chú ý hơn đến các Botnet dựa trên máy
chủ IRC, các tin tặc dần dần bắt đầu sử dụng giao thức HTTP trong cấu trúc điều
khiển Botnet, để ẩn mình tốt hơn và tránh bị phát hiện. Giao thức dựa trên HTTP cũng
cung cấp cơ chế chỉ huy và điều khiển tập trung, nhưng Botmaster không trực tiếp
tương tác với các Bot sử dụng cơ chế giống như trò chuyện. Thay vào đó, Botmaster
chỉ đơn giản đặt lệnh trong một tập tin trên máy chủ chỉ huy và điều khiển (máy chủ
HTTP)[3]. Một giao diện web có thể được tạo ra để theo dõi và kiểm soát Botnet.
Những kẻ tấn công sử dụng giao diện để gửi dòng lệnh đến từng hệ thống riêng lẻ
hoặc đến toàn bộ Botnet thông qua các phản hồi HTTP (HTTP responses). Bot định
kỳ kết nối tới máy chủ để nhận lệnh. Đây là kỹ thuật “kéo”, các Bot kéo hoặc tải về
tập lệnh từ máy chủ. Lưu lượng Botnet ẩn dưới lưu lượng truy cập web thông thường,
Bot có thể dễ dàng vượt qua tường lửa với cơ chế lọc dựa trên các cổng và tránh IDS
phát hiện. Quan trọng hơn là kết nối không liên tục của giao thức HTTP khác cơ bản
kết nối liên tục của IRC, vì thế Botnet dựa trên HTTP khó bị phát hiện hơn.
Cơ chế hoạt động điển hình của Bonet dựa trên HTTP[9]:
(1) Kẻ tấn công khai thác lỗ hổng và lây nhiễm đến máy tính nạn nhân bằng
nhiều cách khác nhau.
(2) Từ máy tính nạn nhân, Bot lây truyền sang các máy tính khác.
(3) Sau khoảng thời gian định kỳ các Bot gửi dữ liệu đến máy chủ điều khiển.
(4) Các máy chủ đáp ứng với một lệnh hoặc một trang HTML.
24
Hình 1.3: Quá trình lây nhiễm Bot dựa trên HTTP
Khi bị lây nhiễm, hệ thống bị lây nhiễm cố gắng liên lạc với máy chủ chỉ huy và
điều khiển dựa trên nền web và thông báo địa chỉ IP của máy, cổng proxy nào đang
hoạt động và chuỗi nhận dạng máy mà có thể được sử dụng để nhận diện và liên lạc
với các Bot riêng lẻ.
25