Tải bản đầy đủ (.doc) (67 trang)

Nghiên cứu và phát triển hệ thống Botnet Tracking theo dõi và giám sát các mạng Botnet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.7 MB, 67 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU VÀ PHÁT TRIỂN HỆ
THỐNG BOTNET TRACKING THEO DÕI
VÀ GIÁM SÁT CÁC MẠNG BOTNET
Sinh viên thực hiện : Triệu Minh Tuân
Lớp CNPMB – K51
Giáo viên hướng dẫn: TS Nguyễn Khanh Văn
HÀ NỘI 5-2011
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Trong những năm gần đây, xu hướng tấn công của tội phạm chuyên sử dụng Botnet đang
dần trở lại và ngày càng trở nên nguy hiểm hơn với nhiều công cụ và hình thức tấn công mới:
từ ăn cắp thông tin, đến phát tán thư rác, phát tán mã độc hay tấn công từ chối dịch vụ, v…
v… đã gây ra không ít những thiệt hại nặng nề về kinh tế và xã hội. Chính vì vậy, đã có rất
nhiều giải pháp phát hiện Botnet hay làm giảm nhẹ thiệt hại do Botnet gây ra đã được công
bố và triển khai trong thực tế. Botnet Tracking là một trong những giải pháp đó.
Tư tưởng của Botnet Tracking là giám sát các mạng Botnet nhằm thu thập thông tin cần
thiết hỗ trợ các đơn vị chuyên môn, các cơ quan có thẩm quyền giảm nhẹ thiệt hại do Botnet
gây ra.
Nội dung tài liệu đồ án tốt nghiệp này đề cập tới việc nghiên cứu, tìm hiểu về Botnet
Tracking và những vấn đề có liên quan. Sau đó, ứng dụng những kiến thức thu được đi xây
dựng một hệ thống Botnet Tracking phù hợp với môi trường triển khai tại nước ta, cụ thể là
tại công ty An ninh mạng Bkav – một công ty có bề dày kinh nghiệm về những giải pháp an
ninh mạng. Trong phần cuối, đồ án đề xuất giải pháp xây dựng một thư viện Botnet Tracking
Framework, là một phần của hệ thống, một nền tảng hỗ trợ các chuyên gia trong việc phát
triển các thành phần theo dõi các mạng Botnet trong hệ thống này.
Từ khóa: Botnet, Botnet Tracking, Honeypot, DDoS, Spam



MỤC LỤC
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
MỤC LỤC
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH
DANH MỤC THUẬT NGỮ
DANH MỤC CÁC TỪ VIẾT TẮT
MỞ ĐẦU
PHẦN I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
CHƯƠNG 1 – TỔNG QUAN VỀ BOTNET
1. Định nghĩa Botnet
2. Phân loại Botnet
3. Cài đặt Botnet
4. Các hình thức tấn công sử dụng Botnet
5. Phát tán và lây nhiễm Botnet
CHƯƠNG 2 – GIỚI THIỆU ĐỀ TÀI & CỞ SỞ LÝ THUYẾT
1. Giới thiệu đề tài
1.1. Mục tiêu của đề tài
1.2. Các vấn đề cần giải quyết
.1.2.1. Khái niệm Botnet Tracking
.1.2.2. Các phương pháp Botnet Tracking đã có
2. Cơ sở lý thuyết
2.1. Tóm tắt lý thuyết Tracking Botnet
2.2. Tóm tắt lý thuyết Bot Milkers
3. Công cụ sử dụng
PHẦN 2: NGHIÊN CỨU VÀ NHỮNG KẾT QUẢ ĐẠT ĐƯỢC
CHƯƠNG 3 – PHÂN TÍCH LÝ THUYẾT & MÔI TRƯỜNG TRIỂN KHAI
1. Đánh giá các phương pháp Tracking Botnet cũ
2. Phân tích hai lý thuyết Tracking Botnet và Bot Milkers

2.1. Phân tích lý thuyết Tracking Botnet
2.2. Phân tích lý thuyết Bot Milkers
3. Môi trường triển khai tại Công ty An ninh Mạng Bkav
CHƯƠNG 4: XÂY DỰNG HỆ THỐNG BOTNET TRACKING
.1 Mô hình hệ thống Botnet Tracking
1.1. Thành phần Collecting
1.2. Thành phần Analyzing
.1.2.1. Phân tích theo hành vi
.1.2.2. Phân tích theo mã/phân tích nhị phân
.1.2.3. So sánh hai phương pháp
1.3. Thành phần Tracking
2. Mở rộng khái niệm Bot Milkers cho Botnet Tracking Framework
3. Xây dựng Botnet Tracking Framework
3.1. Xác định các yêu cầu cho Framework
3.2. Thiết kế các thành phần chính của Botnet Tracking Framework
3.3. Tài liệu tra cứu Botnet Tracking Framework
3.4. Thử nghiệm Framework
4. Đánh giá
4.1. Đánh giá Framework
4.2. Đánh giá hệ thống Botnet Tracking
5. Tổng kết
PHẦN 3: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN
1. Những công việc đã thực hiện
2. Những công việc chưa thực hiện
3. Khó khăn và hạn chế
4. Định hướng phát triển
4.1. Botnet Tracking Framework
4.2. Hệ thống Botnet Tracking
TÀI LIỆU THAM KHẢO
PHỤ LỤC

BOTNET TRACKING FRAMEWORK API
DANH MỤC CÁC BẢNG
Bảng 1: So sánh các giải pháp Tracking Botnet trước đây
Bảng 2: So sánh hai phương pháp phân tích theo hành vi và phân tích nhị phân

Bảng 3: Các Botnet được sử dụng thử nghiệm
Bảng 4: Bảng kết quả thử nghiệm
DANH MỤC CÁC HÌNH
Hình 1: Mô hình mạng Botnet thường gặp
Hình 2: Mô hình tập trung
Hình 3: Mô hình phân tán
Hình 4: Hackers điều khiển Botnet phát tán thư rác thuê
Hình 5: Công cụ hỗ trợ xây dựng botnet Spy Eye v1.0
Hình 6: Sử dụng Botnet để tấn công DDoS
Hình 7: Sử dụng Botnet để phát tán thư rác
Hình 8: Botnet phát tán FakeAV để lừa người dùng mua bản quyền
Hình 9: Mã lệnh điều khiển phá hủy hệ thống của một Botnet
Hình 10: Các thành phần của hệ thống Honeypot được sử dụng
Hình 11: Lược đồ các bước thực thi của hệ thống Tracking Botnet trong tài liệu

Hình 12: Hệ thống Botnet Tracking được đề xuất
Hình 13: Theo dõi thay đổi trên môi trường máy ảo Windows Vista Ultimate
giả lập bằng phần mềm Virtual PC
Hình 14: Các công cụ thường sử dụng trong quá trình phân tích theo hành vi
Hình 15: Các mã thực thi được chuyển thành dạng disassembly
Hình 16: Sử dụng kết hợp hai phương pháp phân tích
Hình 17:Mô hình thành phần Tracking
Hình 18: Các Bot sử dụng thu thập thông tin để xác thực với Server điều khiển

Hình 19: Sử dụng Bot Milkers để lọc các kết quả phân tích, xây dựng kịch bản

Tracker
Hình 20: Lọc hành vi một Bot dựa vào luật Bot Milkers mở rộng
Hình 21: BTF là nền tảng chung cho việc Tracking Botnet
Hình 22: Kiến trúc Botnet Tracking Framework
Hình 23: Thiết kế class của các thành phần Core Layer
Hình 24: Mô tả các hành vi của Bot Spyeye cần xây dựng
Hình 25: Tài liệu tra cứu Botnet Tracking Framework
Hình 26: Mô hinh thực hiện thử nghiệm
Hình 27: Đối chiếu hệ thống Botnet Tracking cũ và mới
Hình 28: Giải pháp tích hợp đầu ra hệ thống
Hình 29: Các Class hỗ trợ trong CoreLayer
Hình 30: Class Diagram mô phỏng các Bot đi thử nghiệm (Bot Layer)
Hình 31: Class mô tả các Tracker thử nghiệm theo dõi Bot
Hình 32: Tra cứu hàm trên Botnet Tracking Framework
DANH MỤC THUẬT NGỮ
Thuật ngữ Ý nghĩa
Reverse Engineering Kỹ thuật đảo mã/dịch ngược
Disassembly Đưa dạng mã thực thi về dạng mã lệnh Assembly tương
ứng
Assembly Ngôn ngữ lập trình Assembly
Honeypot Hệ thống thu thập mã độc dựa trên bẫy lỗi
Spam Phát tán thư rác
Data Theft Ăn cắp thông tin
Botnet Toolkit,
Botnet Kit
Bộ công cụ hỗ trợ cài đặt, tạo các biến thể Botnet và điều
khiển cả mạng Botnet
Virtualization Công nghệ ảo hóa
Virtual Machine Các máy hệ điều hành ảo được cài đặt bằng một phần
mềm hỗ trợ bên trong hệ điều hành mà người dùng đang

làm việc
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Viết đầy đủ Ý nghĩa
C&C Server Command & Control
Server
Server điều khiển mạng Botnet
WOT Web Of Trust Chương trình kiểm tra các URL độc hại
khi duyệt Web
CSDL Cơ sở dữ liệu Cơ sở dữ liệu
DDoS Distributed Denial of
Services
Tấn công từ chối dịch vụ phân tán
FakeAV Fake Antivirus Phần mềm giả mạo chương trình diệt
Virus, lừa người dùng mua bản quyền
hoặc lừa lấy thông tin tài khoản tín dụng
của người dùng
API Application
Programming Interface
Giao diện hỗ trợ lập trình - Một tập hợp
các quy ước gọi tên dùng để định nghĩa
cách thức một dịch vụ được gọi ra thông
qua một gói phần mềm.
HTTP HyperText Transfer
Protocol
Giao thức truyền tải siêu văn bản, là một
trong năm giao thức chuẩn về mạng
Internet, được dùng để liên hệ thông tin
giữa máy cung cấp dịch vụ (Web Server)
và các máy sử dụng dịch vụ (Web
Client)

IRC Internet Relay Chat Là một dạng liên lạc cấp tốc qua
Internet, cho phép nhóm người dùng
trong một kênh thảo luận (channel) liên
lạc với nhau đồng thời cũng có hỗ trợ
liên lạc giữa cá nhân với cá nhân.
BSoD Blue Screen of Dead
(also called BSoD, Blue
Screen, or bluescreen)
Thường được gọi là “màn xanh chết
chóc” hay “thảm họa màn xanh” – là
màn hình hiển thị lỗi trên máy tính cài
hệ điều hành Windows do có xung đột
hệ thống hoặc lỗi nghiêm trọng ảnh
hưởng tới hệ điều hành.
Malware Malicious – Software Phần mềm nguy hiểm
MỞ ĐẦU
Ngày nay, khi nhắc đến Botnet, là nhắc đến các hiểm họa Internet. Tấn công
từ chối dịch vụ web site của các tổ chức, phát tán thư rác với số lượng lớn, thu thập
thông tin cá nhân về người dùng v…v… là những hành vi nguy hiểm thường thấy
của Botnet. 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. Theo thống kê của tổ chức DAMBALLA về hiểm họa Internet trong năm 2010,
trong 50 tuần theo dõi tính từ thời điểm đầu năm 2010, số nạn nhân của hiểm họa
Botnet đã tăng tới 654%, với tần suất trung bình mỗi tuần là 8%.
Các cuộc tấn công sử dụng Botnet đang ngày một trở nên phổ biến hiện nay
với rất nhiều thủ đoạn và hình thức tấn công mới. Chính vì vậy, thiệt hại do Botnet
gây ra đang trở thành một mối lo mới với các nhà chức trách nói riêng và cộng động
người sử dụng Internet nói chung.
Ngay trong những năm đầu tiên của thế kỷ 21, cùng với sự ra đời của rất
nhiều các mạng Botnet mỗi năm, rất nhiều các nghiên cứu nhằm làm giảm các thiệt
hai do Botnet gây ra đã được đề xuất và triển khai. Trong số đó, Botnet Tracking là

một phương pháp khá hiệu quả trong việc theo dõi Botnet, dò vết và thu thập các
thông tin hỗ trợ giảm thiểu thiệt hại của mối hiểm họa này.
Nằm trong đội phát triển các dự án nghiên cứu về Botnet thuộc công ty An
ninh mạng Bkav, nhằm đưa ra các giải pháp ngăn chặn và giảm bớt thiệt hại do
Botnet gây ra, "Nghiên cứu và phát triển hệ thống Botnet Tracking theo dõi và
giám sát các mạng Botnet" là đề tài được em lựa chọn làm Đồ Án Tốt nghiệp của
mình.
Trong phạm vi đồ án, em thực hiện tìm hiểu các lý thuyết xoay quanh Botnet
Tracking và ứng dụng để đi xây dựng một hệ thống Botnet Tracking phù hợp với
môi trường triển khai tại công ty An ninh mạng Bkav. Kết thúc đồ án, em thực hiện
xây dựng Botnet Tracking Framework là thành phần chính của hệ thống Botnet
Tracking này.
Về bố cục, đồ án chia thành các phần:
Phần I: Đặt vấn đề và định hướng giải pháp – giúp người đọc có một cái nhìn tổng
quan về Botnet và những khái niệm có liên quan. Song song với đó là một số các
phương pháp Tracking Botnet và các lý thuyết đã được sử dụng để theo dõi Botnet
tính tới thời điểm hiện tại.
Phần II: Nghiên cứu và những kết quả đã đạt được – đồ án sẽ phân tích các ưu và
nhược điểm của các phương pháp triển khai cũ, kết hợp và phát triển một số lý
thuyết và phương pháp Tracking cũ để đưa ra mô hình hệ thống Botnet Tracking
phù hợp với môi trường triển khai tại công ty An ninh mạng Bkav. Trong những
mục cuối, đồ án sẽ trình bày về thiết kế và phát triển một thành phần hết sức quan
trọng của hệ thống đó là Botnet Tracking Framework, nền tảng hỗ trợ phát triển các
Tracker theo dõi Botnet.
Phần III: Kết luận – Người đọc sẽ được biết tới những định hướng và tiềm năng
ứng dụng, tích hợp của hệ thông Botnet Tracking được đề xuất trong thực tế.
Được thực hiện trong khung thời gian giới hạn, đồ án không khỏi vẫn còn
những hạn chế và thiếu sót, tác giả đồ án rất mong nhận được ý kiến góp ý của
người đọc để nghiên cứu được hoàn thiện hơn nữa.
PHẦN I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP

Nội dung chính:
- Chương 1: Tổng quan Botnet
- Chương 2: Giới thiệu đề tài & Cơ sở lý thuyết
CHƯƠNG 1 – TỔNG QUAN VỀ BOTNET
1. Định nghĩa Botnet
Nhắc đến Botnet có rất nhiều định nghĩa nhưng về cơ bản, các định nghĩa này
đều mang chung một tư tưởng. Do đó, Đồ án sử dụng định nghĩa dưới đây để phù
hợp với hướng tiếp cận của đề tài:
“Botnet là khái niệm đề cập tới một tập hợp các máy tính bị lợi dụng chịu sự
điều khiển của các hackers, nhằm phục vụ cho các ý đồ xấu xa của các cá nhân
này.”
1
Trong đó, các hackers điều khiển còn được gọi là các Bot Masters hay các Bot
Helders, thành phần được cài đặt ngầm trong các máy tính người sử dụng để các
Bot Masters có thể thao túng được các máy tính này là các Bot, đây là các malware
có kịch bản tấn công tùy biến phụ thuộc vào những câu lệnh từ phía điều khiển. Một
thành phần khác của Botnet cũng không kém phần quan trọng, đó là các C&C
Server (Command & Control Server) là server hỗ trợ các Bot Masters điều khiển cả
mạng Botnet. Thông qua các server này, các Bot Master đưa ra các câu lệnh điều
khiển tới các bot nhằm lợi dụng máy tính người dùng đi thực thi những khai thác
nguy hiểm.
Hình 1: Mô hình mạng Botnet thường gặp
1
Khái niệm tổng hợp ý nghĩa từ các định nghĩa trong wikipedia
2. Phân loại Botnet
Trước đây, Botnet được phân loại theo hai kiểu:

 Theo giao thức (Protocol): là những gửi nhận giữa Bot và phía C&C Server để
thực hiện giao tiếp giữa các thành phần. Thường thấy hiện nay, Botnet sử dụng
hai giao thức truyền tải siêu văn bản HTTP (HyperText Transfer Protocol) và

một giao thức thường được sử dụng để trò chuyện qua Internet đó là IRC
(Internet Relay Chat).
Hình 2: Mô hình tập trung
Hình 3: Mô hình phân tán
 Theo kiến trúc của mạng Botnet: có hai mô hình là mô hình tập trung và mô
hình phân tán (như trên hình). Trong đó, với kiến trúc tập trung, quyền điều
khiển sẽ do phía C&C Server đảm nhiệm, các Bot sẽ kết nối lên C&C Server và
nhận lệnh và thực thi. Ngược lại với kiến trúc này là kiến trúc phân tán, khi đó
các Bot sẽ giao tiếp với nhau để nhận các câu lệnh điều khiển chứ không qua
C&C Server, kiến trúc này giúp các Bot Master duy trì được quản lý của mình
tuy nhiên, cũng rất dễ bị “cướp Bot” (một Anti-Bot gửi các câu lệnh giả mạo tới
các Bot khác nhằm thay đổi điều khiển).
Tuy nhiên, Botnet hiện nay phức tạp hơn nhiều: Không chỉ đơn thuần là các loại
trên mà thường là kết hợp của nhiều kiểu hoặc là một cải tiến của một trong số các
loại trên nên Botnet ngày càng nguy hiểm và khó phát hiện.
3. Cài đặt Botnet
Trước đây, Botnet là công cụ do các hacker “lâu năm”
2
phát triển và sử dụng
vào các mục đích như: các hoạt động tấn công thương mại “ngầm”
3
, trong đó các
hacker đóng vai trò như trung gian điều khiển đi tấn công các đối tượng mục tiêu
được yêu cầu:
Hình 4: Hackers điều khiển Botnet phát tán thư rác thuê
Ngày nay, với sự phát triển của các ngôn ngữ lập trình và công cụ hỗ trợ,
Botnet được phát triển dưới dạng các bộ công cụ với đầy đủ tính năng hỗ trợ xây
dựng và điều khiển các thành phần của một mạng Botnet. Các bộ công cụ này được
2
Những hackers có nhiều năm kinh nghiệm

3
Các hoạt động tấn công như tấn công từ chối dịch vụ, phát tán thư rác, lừa đảo … được
thực hiện như một hình thức thương mại.
gọi là các Botnet Toolkits (hay Botnet Kits), được rao bán, chia sẻ trong các diễn
đàn và các kênh thông tin ngầm. Giá cả của các bộ công cụ này hết sức đa dạng, có
thể chỉ là vài chục đô la nhưng cũng có thể là là vài trăm, vài nghìn đô la:
Hình 5:
Công cụ hỗ
trợ xây dựng
botnet Spy
Eye v1.0
Giá cả một bộ
công cụ phiên
bản này là
500$, tuy
nhiên nếu
thêm một số
các tính năng
mở rộng thì
giá một bộ lên tới 1000$.
Việc này phần nào giải thích cho tính phổ biến của Botnet hiện nay: ngoài
những thành phần điều khiển trước đây là các hackers có kinh nghiệm, còn có
những cá nhân chưa ý thức được mức độ nguy hiểm của Botnet, sử dụng Botnet
như một công cụ đi chọc phá người sử dụng và khai thác đáp ứng nhu cầu cá nhân
của mình.
4. Các hình thức tấn công sử dụng Botnet
Các hình thức tấn công của Botnet hiện nay hết sức đa dạng và liên tục thay đổi,
cập nhật những phương thức mới và ngày càng nguy hiểm hơn, tiến bộ hơn trước.
Trong đó, phổ biến là các hình thức tấn công sau:
 Tấn công từ chối dịch vụ (DDoS Attack): bằng cách huy động một số lượng lớn

các máy tính ma
4
trong mạng Botnet đi vét cạn tài nguyên của một máy tính.
Các máy tính này thường là các máy chủ đặt các website, máy chủ điều khiển
của các công ty, các doanh nghiệp …
4
Zombie Computer
Hình 6: Sử dụng Botnet để tấn công DDoS
 Phát tán thư rác (Spam Mails): các Botnet Master lợi dụng các máy tính ma để
tăng hiệu quả của việc phát tán thư rác đặc biệt về phạm vi và số lượng. Một
kịch bản thường thấy của các Botnet sử dụng để phát tán thư rác là giả mạo
nguồn gửi là email của chính các nạn nhân trong mạng Botnet gửi tới bạn bè
trong danh sách liên hệ (Contact Books) của họ. Lợi dụng sự tin tưởng của
người dùng với các email đến từ bạn bè, người thân, kịch bản này đã thực sự
thành công, làm tăng số nạn nhân của hiểm họa spam mail lên những con số tính
bằng đơn vị triệu người mỗi tuần.
Hình 7: Sử dụng
Botnet để phát tán thư
rác
(số lượng và hiệu quả
tăng lên gấp bội)
 Lừa đảo trực tuyến
(Phishing): là hình
thức các hacker sử
dụng để đưa ra các
thông báo, thông tin không có thật nhằm lừa nạn nhân chia sẻ các thông tin tài
khoản, thông tin thẻ tín dụng, mật khẩu … Thường thấy hiện nay, đó là lừa đảo
bằng cách giả mạo các thông báo của nhà cung cấp dịch vụ tới khách hàng nhằm
thu thập thông tin tài khoản của người dùng.
Hình 8: Botnet phát tán FakeAV để lừa người dùng mua bản quyền

(đây là hành vi thường thấy ở Botnet ngày ngay, sử dụng các chương trình giả mạo để
lừa người dùng mua phần mềm giả mạo nhằm mục đích ăn cắp tài khoản …)
 Ăn cắp thông tin (Data theft): đây là hình thức tấn công đã có từ lâu và hiện nay
vẫn còn rất phổ biến. Sau khi cài đặt thành công trên máy tính nạn nhân, các bot
sẽ đi thu thập những thông tin nhạy cảm trên máy như thông tin cá nhân, thông
tin tài khoản, thông tin bản quyền phần mềm v…v… Theo những báo cáo gần
đây, hình thức tấn công này ngày một trở nên nguy hiểm khi các Bot thực hiện
các hành vi can thiệp sâu vào hệ thống (ghi log bàn phím, bắt các gói tin …)
nhằm thu thập những thông tin mới nhất trên máy tính nạn nhân.
 Phá hủy hệ điều hành (Kill Operating System – Kill OS): thường là một module
trong các bot nhằm xóa dấu vết thực thi trên máy người dùng và chống phá các
Anti-Botnet trong quá trình nghiên cứu và ngăn chặn Botnet. Là cách gọi chung
cho các hành vi phá hoại nghiêm trọng của botnet, thay vì hoạt động ngầm để
che dấu sự tồn tại của mình trong hệ thống, khi được kích hoạt, các Bot sẽ tấn
công và phá hủy các thành phần chính của hệ điều hành như thành phần khởi
động (boot), thông tin cấu hình hệ điều hành (registry), dữ liệu trên ổ cứng v…
v… làm hệ điều hành tê liệt, không thể tiếp tục làm việc được nữa. Hành vi tấn
công nguy hiểm này nổi tiếng vào năm 2009: khi Bot Master của một mạng
Botnet Zeus gửi câu lệnh điều khiển kos (viết tắt của Kill Operating System) tới
các máy tính ma trong mạng gây ra hiện tượng “màn xanh chết chóc” (BSOD)
và hậu quả là hệ điều hành Microsoft Windows trên 100000 máy tính bị phá hủy
hoàn toàn[18].
Hình 9: Mã lệnh
điều khiển phá hủy
hệ thống của một
Botnet
5. Phát tán và lây nhiễm Botnet
Để có thể huy động được một lượng lớn các máy tính ma, sau khi hoàn tất cài đặt
các thành phần điều khiển, Bot Master thực hiện phát tán các mã độc và mã khai
thác nhằm mục đích cài đặt các Bots của Botnet lên máy tính người sử dụng, biến

các máy tính này thành một thành phần của mạng Botnet. Sau đây là một số con
đường phát tán và lây nhiễm Botnet mà đồ án tìm hiểu được:
Phát tán qua các crack, keygen phần mềm: Bằng cách giả mạo chương trình
sinh mã bản quyền của các phần mềm, Bot Master dễ dàng lừa người sử
dụng kích hoạt quá trình cài đặt các thành phần Bot lên máy tính người sử
dụng. Đây là hình thức rất phổ biến và có mức độ phát tán rất cao ở nước ta.
Phát tán qua các thiết bị di động: Đó có thể là thẻ nhớ, USB, ổ cứng di động,
bị khai thác tính năng tính năng tự động kích hoạt khi các thiết bị này được
kết nối tới máy tính
5
. Nạn nhân của hình thức phát tán này thường này các
bạn học sinh, sinh viên - những người thường sử dụng những thiết bị USB để
chia sẻ tài liệu và lưu trữ dữ liệu học tập.
Phát tán qua các file đính kèm của Email lừa đảo: Đối tượng bị giả mạo
thường được lựa chọn là các nhà cung cấp dịch vụ gửi thông tin tới khách
hàng của họ để thông báo một thông tin khuyến mại, thông tin trúng thưởng
…, bên cạnh đó là các email lừa đảo người sử dụng xác nhận các thông tin
tài khoản, thông tin cá nhân … từ các cơ quan có chức năng hay từ chính
những người bạn, người thân của người nhận. Mục đích cuối cùng của hình
thức này là kích hoạt các chương trình malware được đính kèm, ngay lập tức,
các mã độc khác được tải về, trong đó có Botnet.
Phát tán qua các mạng xã hội: Mặc dù đã có từ rất lâu nhưng hình thức này
thực sự bùng nổ tính từ giữa năm 2010 cùng với sự phát triển của các mạng
xã hội như facebook.com, twitter.com bằng cách lợi dụng các tin nhắn
chia sẻ giữa các thành viên trong cộng đồng mạng này, phạm vi phát tán của
mã độc đã được mở rộng ra rất nhiều không chỉ trong phạm vi một quốc gia
5
Khai thác file autorun.inf
mà là phạm vi một châu lục hay toàn bộ cộng đồng mạng.
Phát tán qua khai thác các lỗ hổng phần mềm: Điển hình của hình thức này là

các lỗ hổng của chương trình đọc tài liệu định dạng PDF Adobe Reader và
trình duyệt Web mặc định của các hệ điều hành Windows Internet Explorer.
Đây là hai phần mềm có số lỗ hổng bị khai thác nhiều nhất trong những năm
gần đây. Với số lượng người dùng đông đảo trên khắp thế giới nên nạn nhân
của hình thức phát tán này là cực kỳ lớn.
Qua phân tích trên, chúng ta có thể thấy xác suất bị lây nhiễm Botnet với người
sử dụng máy tính thông thường là rất cao. Tuy nhiên, đây cũng là điểm thuận lợi
cho các chuyên gia nghiên cứu trong việc phát hiện Botnet và đưa ra các giải pháp
hỗ trợ giảm thiểu thiệt hại do Botnet gây ra. Bằng việc tạo các “bẫy” thu thập các
thành phần Bot được phát tán trên và kết hợp với các nghiên cứu về Botnet, các
chuyên gia đã đưa ra một phương pháp hết sức hiệu quả trong việc theo dõi Botnet
bằng cách giám sát các giao tiếp giữa Bot với các thành phần điều khiển, đó là
Botnet Tracking. Phần tiếp theo của đồ án sẽ phân tích rõ hơn về nghiên cứu này.
CHƯƠNG 2 – GIỚI THIỆU ĐỀ TÀI & CỞ SỞ LÝ THUYẾT
1. Giới thiệu đề tài
Thiệt hại do hiểm họa Botnet gây ra là không thể tránh khỏi nên từ những năm đầu
tiên Botnet xuất hiện, đã có rất nhiều những giải pháp được nghiên cứu và công bố
nhằm giải quyết hiểm họa này. Trong đó, Botnet Tracking là giải pháp thường được
các đơn vị chuyên về bảo mật thông tin hiện nay áp dụng và triển khai.
Nghiên cứu và triển khai các giải pháp liên quan đến an ninh mạng và các vấn đề về
malware và virus máy tính, công ty An ninh mạng Bkav đã xác lập các dự án
nghiên cứu về Botnet. Trong đó, có các dự án tìm hiểu về Botnet Tracking nhằm
đưa ra một giải pháp đáp ứng được nhu cầu theo dõi các mạng Botnet kết hợp thu
thập các thông tin hỗ trợ giảm thiểu thiệt hại do Botnet gây ra. Đồ án tốt nghiệp này
là một trong số các nghiên cứu đó.
1.1. Mục tiêu của đề tài
Trong phạm vi báo cáo, đồ án sẽ tiến hành tìm hiểu về Botnet Tracking cùng những
lý thuyết có liên quan từ đó ứng dụng, thiết kế các công cụ hỗ trợ triển khai hệ
thống này.
1.2. Các vấn đề cần giải quyết

Để hiểu hơn về Botnet Tracking, đồ án có tham khảo một số các phương pháp
Tracking Botnet trên thế giới tính đến thời điểm hiện nay để tích lũy kiến thức và
kinh nghiệm hỗ trợ công việc sau này. Đề mục này sẽ trình bày về một số phương
pháp tiêu biểu trong số đó:
.1.2.1. Khái niệm Botnet Tracking
Về cơ bản, Botnet Tracking đề cập tới việc theo dõi các hoạt động của
thành phần Bot trong các mạng Botnet từ đó, thu thập các thông tin cập nhật nhằm
xác định các giải pháp giảm nhẹ thiệt hại do Botnet gây ra.
.1.2.2. Các phương pháp Botnet Tracking đã có
Dựa trên tư tưởng trên, đã có rất nhiều các phương pháp theo dõi Botnet được triển
khai, nhằm thu thập thông tin. Các phương pháp này triển khai thực thi các bot trên
môi trường giám sát khác nhau và mỗi môi trường có những ưu và nhược điểm
riêng:
Theo dõi Botnet trên máy tính thật: là phương pháp “sơ khai” nhất, được tiến
hành ngay từ thời gian đầu xuất hiện các khái niệm Tracking Botnet. Phương
pháp này sử dụng máy tính thật mô phỏng lại các máy tính ma (Zombie
Computer) trong mạng Botnet, “nuôi” các Bot trên các máy tính này và thu thập
những thông tin trực tiếp qua những thay đổi hệ thống. Ưu điểm của phương
pháp này là đơn giản, không đòi hỏi nhiều công cụ và công nghệ, thông tin thu
về là chính xác. Tuy nhiên, phương pháp có một nhược điểm lớn đó là vấn đề
kinh phí cho việc cấu hình và khôi phục thiệt hại các máy tính này.
Môi trường thứ hai đó là các môi trường ảo: các Virtual Machine hay các “máy
ảo”, là cách gọi khác của các chương trình ứng dụng công nghệ “ảo hóa”
(Virtualization) đi mô phỏng lại các môi trường hệ điều hành giám sát Botnet.
Hiện nay các phần mềm hỗ trợ tạo các “máy ảo” có VMWare, Oracle Virtual
Box, Microsoft Virtual PC, QEMU, XEN … trong đó có cả phần mềm có phí
(VMWare), miễn phí và mã nguồn mở … nên vấn đề chi phí trước đây có thể
được giảm bớt, tuy nhiên, chúng ta gặp phải các vấn đề không gian bộ nhớ mà
các ứng dụng này chiếm dụng. Thông thường với một máy ảo Windows XP
Professional 32 bit, bộ nhớ trong 128MB, một máy ảo này tiêu thụ khoảng từ

200MB – 300MB bộ nhớ thật khi khởi động và có thể lên tới hàng GB trong quá
trình giám sát do đó, dẫn đến giới hạn về số máy ảo trên một máy tính, chưa kể
đến phương pháp này thường xuyên gặp phải sự chống phá của các hacker nên
trong nhiều trường hợp phương pháp này khó có thể sử dụng để theo dõi Botnet
lâu dài được.
WineBot cũng là một môi trường khác thu hút khá nhiều những nghiên cứu.
WineBot là hướng thực thi các mẫu Bot trong Wine của môi trường Linux.
Wine là một phần mềm thi hành độc lập các API của Windows. Wine thực hiện
dịch những lời gọi hàm hệ thống và ứng dụng thành các thành phần tương
đương trong các hệ điều hành Linux, do đó cũng đảm bảo được an toàn cho hệ
thống hơn. Sử dụng một nền chung là Wine cho các luồng thực thi, phương pháp
này cũng sử dụng ít bộ nhớ hơn có thể giám sát nhiều bot hơn trên một máy tính
so với phương pháp sử dụng các “máy ảo” ở trên. Tuy nhiên, môi trường này
gặp trục trặc với giới hạn của bộ thư viện hỗ trợ: WineBot hỗ trợ chủ yếu là các
Windows API, trong khi các bộ thư viện và ngôn ngữ lập trình mà Botnet hiện
nay sử dụng thì khá đa dạng. Việc cấu hình và thêm module cho WineBot
thường cũng khá vất vả nên môi trường này thường là sự lựa chọn của các
chuyên gia đi nghiên cứu về Botnet hoặc các nghiên cứu trong các trường Đại
học.
Các phương pháp trên cho thấy tính không hiệu quả của việc sử dụng lại thành phần
Bot(malware) trong việc đi giám sát các mạng Botnet. Nhận thấy giới hạn này, một
số phương pháp Tracking Botnet gần đây đã tiến hành các thao tác tiền xử lý các
mẫu này trước khi đưa vào theo dõi, sau đây là hai trong số đó:
Phương pháp sử dụng BotSpy[5][2]: BotSpy là chương trình IRC Client được
tối ưu cho việc theo dõi Botnet. Phương pháp này sử dụng phân tích sơ bộ xác
định các thông điệp được sử dụng trong khi Bot giao tiếp, sau đó cấu hình
BotSpy để mô phỏng lại các giao tiếp này. Bên cạnh đó, BotSpy còn nhiều hỗ
trợ khác như tự động download cập nhật mới của Bot, hỗ trợ ghi log và cơ sở dữ
liệu để lưu trữ và tổ chức thông tin. Có thể nói BotSpy là một hỗ trợ tuyệt vời
cho việc theo dõi Botnet, tuy nhiên trong nhiều trường hợp, BotSpy vẫn không

được lựa chọn vì về cơ bản BotSpy chỉ hỗ trợ được những giao tiếp cơ bản của
Botnet (kiểu pull-connection), còn giao tiếp của Botnet ngày nay khá phức tạp
và đòi hỏi tính tùy biến khá cao và với những yêu cầu như vậy, chương trình
BotSpy hiện tại không đáp ứng được.
Phương pháp sử dụng RuBot Framework[1]: là một Framework hỗ trợ giả lập và
phân tích Botnet cho mục đích nghiên cứu được phát triển tại trường đại học
công nghệ Georgia. Framework hỗ trợ giả lập lại các thành phần của một mạng
Botnet: từ thành phần khai thác lỗ hổng, Server điều khiển đến giả lập các thành
phần chính của Bot phục vụ cho việc thử nghiệm và nghiên cứu về Botnet. Mặc
dù tính ứng dụng thực tế của phương pháp này là chưa cao nhưng ý tưởng sử
dụng một Framework hỗ trợ giả lập Botnet là rất mới và rất đáng học hỏi. Đồ án
cùng dựa trên ý tưởng này để đưa ra Botnet Tracking Framework, là thành phần
chính của hệ thống Botnet Tracking trong đồ án.
2. Cơ sở lý thuyết
Tìm hiểu khá nhiều tài liệu về Botnet Tracking kết hợp với phân tích ưu và nhược
điểm của các phương pháp Tracking Botnet đã có, đồ án xác định các lý thuyết sau
có thể áp dụng để xây dựng hệ thống Botnet Tracking cho đồ án:
1. Lý thuyết Tracking Botnets của các tác giả Niels Provos & Thorsten Holz[2].
2. Lý thuyết Bot Milkers trong nghiên cứu tập thể tác giả đến từ trường Đại học
California[3].
2.1. Tóm tắt lý thuyết Tracking Botnet
Lý thuyết Tracking Botnet được trình bày trong chương 11 của tài liệu nghiên cứu
về hệ thống Honeypot
6
do hai tác giả Niels Provos và Thorsten Holz đề xuất.
Phương pháp Tracking Botnet được đưa ra ở đây ứng dụng các thành phần chính
của một hệ thống honeypot vào việc phân tích, thu thập thông tin hỗ trợ giảm nhẹ
thiệt hại do Botnet gây ra. Mô hình dưới đây mô phỏng các thành phần chính của hệ
thống được đưa ra trong tài liệu:
Hình 10: Các thành phần của hệ thống Honeypot được sử dụng

trong đó:
 Nepenthes
7
: là hệ thống giả lập các lỗ hổng dịch vụ để thu hút sự tấn công
các hackers. Qua đó, chúng ta có thể thu thập được các mã khai thác (exploit
code), chương trình độc hại (malwares) … trong đó, có bao gồm cả thành
phần của các mạng Botnet (thường là các hackers lợi dụng việc khai thác các
lỗ hổng để cài đặt ngầm bot lên máy tính của người sử dụng). Trong hệ
thống được đưa ra, Nepenthes đóng vai trò chuẩn bị đầu vào cho hệ thống,
tìm kiếm các “mẫu” botnet là đầu vào cho hai thành phần còn lại.
 CWsandbox
8
: đây là một chương trình sandbox hỗ trợ các thao tác tự động
6
Honeypot – hệ thống tài tính toán nhằm thu hút sự tấn công của các hackers được theo
dõi một cách chặt chẽ (xin xem thêm tài liệu [3] để biết thêm chi tiết).
7
Xem thêm Chương 6 trong tài liệu Virtual Honeypots: From Botnet Tracking to Intrusion
Detection [3]
8
Xem thêm Chương 12 trong tài liệu Virtual Honeypots: From Botnet Tracking to
phân tích theo hành vi của các chương trình được đưa vào. Sandbox là một
môi trường thực thi an toàn, thường được sử dụng để kiểm tra các chương
trình nghi ngờ, có dấu hiệu nguy hiểm khi thực thi trên hệ thống thật.
CWsandbox ứng dụng các kiến thức và kỹ thuật đi sâu vào hệ thống như API
Hooking – xử lý các lời gọi hàm hệ thống trước khi các chức năng này được
thực thi ở mức hệ thống và DLL Code Injection – hỗ trợ kỹ thuật API
Hooking có thể thực thi có tính chất module hóa và sử dụng lại được bằng
cách nhúng các thư viện liên kết động chứa mã API Hooking vào các đối
tượng của chương trình. Vì thế, Cwsandbox có thể theo dõi được các hành vi

của các chương trình đầu vào như: các thay đổi liên quan đến File, các thay
đổi liên quan đến cấu hình hệ điều hành Windows (registry), các module
được nạp trong quá trình chương trình thực thi, các thông tin kết nối và giao
tiếp qua mạng … mọi thông tin này đều được chương trình ghi lại dưới các
dạng mô tả trực quan (HTML
9
) cũng như các cấu hình file thuận xử lý
(XML), nhờ vậy, việc theo dõi có thể được tiến hành dễ dàng và thuận lợi
hơn nhiều.
 BotSpy: như đã đề cập ở trên, là một chương trình IRC Client được thiết kế
tối ưu cho việc tracking Botnet. Với rất nhiều đặc trưng nổi bật như:
o Hỗ trợ theo dõi nhiều botnet cùng lúc.
o Ghi log trong quá trình thực thi để tiện theo dõi.
o Hỗ trợ cơ sở dữ liệu để lưu trữ thông tin.
o Tự động tải các cập nhật của botnet trong quá trình theo dõi.
o Hỗ trợ SOCKS proxy để che dấu IP trong quá trình giám sát botnet.
o Hỗ trợ plugins
10
để mô phỏng các hành vi khác nhau của Bot.
o Hỗ trợ giám sát các kết nối kiểu pull-connections (không đòi hỏi giao
tiếp qua lại, lấy thông tin một cách trực tiếp).
Ngay từ khi được đưa BotSpy đa thu hút rất nhiều sự chú ý của những
nghiên cứu theo dõi nói chung và đặc biệt là các nghiên cứu botnet IRC nói
riêng.
Có thể mô tả lại các bước thực thi của hệ thống Botnet Tracking bằng lược đồ sau:
Hình 11: Lược đồ các bước thực thi của hệ thống Tracking Botnet trong tài liệu
(trong đó mục tiêu hướng đến là có thể dừng hoạt động của các thành phần điều
khiển mạng này)
Instrusion Detection[3]
9

HTML – Hypertext Markup Language
10
plugin - các mở rộng cho các phần mềm
Theo các mô tả trên, dễ dàng chúng ta có thể thấy thành phần chịu trách nhiệm
“Collect Malware” (thu thập các phần mềm độc hại) chính là hệ thống Nepenthes.
Ở bước hai, “Extract Information” (trích xuất thông tin) chính là nhiệm vụ của
CWsandbox, CWsandbox sẽ thực hiện phân tích theo hành vi các malware ở trên.
Sử dụng các kết quả phân tích ở trên, BotSpy tiến hành bước ba “Observe
Command & Control Server” - mô phỏng kết nối tới các thành phần điều khiển,
giao tiếp và nhận các cấu hình, câu lệnh điều khiển do Bot Master đưa ra, sử dụng
cơ sở dữ liệu để lưu trữ thông tin, tải biến thể cập nhật (nếu có) trong suốt quá trình
theo dõi. Ở bước cuối, khi các thông thi thu thập cần thiết, hệ thống cố gắng chặn
hoạt động của botnet bằng cách shutdown các server điều khiển này. Bước này khá
phức tạp và đòi hỏi nhiều nghiên cứu sâu hơn mới có thể tiến hành tự động và độc
lập được.
Lý thuyết Tracking Botnet ở đây đưa ra một mô hình khá hoàn thiện cho việc theo
dõi Botnet tại thời điểm tài liệu được ra mắt (2005). Tuy nhiên để có thể ứng dụng
cho việc theo dõi Botnet hiện nay thì mô hình này cần được cải tiến và mở rộng.
Trong phần 2 của đồ án sẽ trình bày thành phần ứng dụng và mở rộng của mô hình
này vào môi trường triển khai tại công ty An ninh mạng Bkav đi xây dựng một hệ
thống Botnet Tracking đáp ứng nhu cầu thực tế.
2.2. Tóm tắt lý thuyết Bot Milkers
Lý thuyết Bot Milkers được đề xuất bởi nhóm các tác giả thuộc hai trường Đại học
Carnegie Mellon và Đại học California trong một nghiên cứu về mạng Botnet
Mega-D[3]. Nghiên cứu này đề cập tới việc ngầm thâm nhập vào mạng Botnet
nhằm giám sát các hoạt động phát tán thư rác và nghiên cứu về kiến trúc C&C
Server của mạng Botnet này. Để tiến hành thâm nhập, nhóm tác giả đưa ra hai kỹ
thuật:
1. Tạo các “Milkers”: thực hiện thâm nhập vào mạng Botnet.
2. Sử dụng Google Hacking

11
: để khám phá ra các C&C Server.
trong đó, các Milkers ở đây được định nghĩa là “Các Bot giả lập không chứa các
thành phần nguy hiểm”
12
. Thông qua bước tiền xử lý các mẫu malware (các Bot
trong mạng Mega-D), các thông tin về ngữ pháp giao tiếp của Botnet và các hàm
mã hóa giải mã hóa được xác định, các Bot được mô phỏng dưới dạng các Milkers,
thực hiện thâm nhập vào mạng Botnet để tiến hành thu thập thông tin. Các Milkers
này thực hiện khai thác thông tin từ phía server điều khiển, không quan tâm đến các
hành vi nguy hiểm mà các Bot thực hiện trên máy tính nạn nhân như thu thập thông
tin, phá hoại máy tính, thực thi các module tấn công v…v… Phương pháp thu thập
thông tin này của các Milkers có thể ứng dụng với mạng Botnet Mega-D và một số
mạng Botnet khác, tuy nhiên, với rất nhiều các mạng Botnet hiện nay thì việc không
gửi các thông tin thu thập, hay không xác nhận một số module cần thực thi có thể
dẫn tới sơ hở làm các Bot Master thay đổi hoặc điều hướng các câu lệnh điều khiển
11
Google Hacking là kỹ thuật sử dụng các ứng dụng của google (đặc biệt là các ứng dụng
tìm kiếm) để tìm kiếm các lỗ hổng an ninh trong cấu hình và các mã chương trình mà
website sử dụng[4] – Wikipedia.org
12
“Bot emulators without malicious side effects” – Slide 7 trong tài liệu [3]

×