BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
ĐỖ MẠNH VIỆT
PHÁT HIỆN VÀ XỬ LÝ BOTNET
Chuyên ngành: Truyền thông và mạng máy tính
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH
GIẢNG VIÊN HƢỚNG DẪN
PGS.TS.
NGUYỄN LINH GIANG
Hà Nội – Năm 2016
LỜI CAM ĐOAN
Tôi Đỗ Mạnh Việt cam kết luận văn thạc sỹ này là công trình nghiên cứu của
bản thân tôi dưới sự hướng dẫn của PGS.TS Nguyễn Linh Giang.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép của bất kỳ
công trình nào khác.
Hà Nội, ngày 09 tháng 11 năm 2016
Tác giả luận văn
Đỗ Mạnh Việt
1
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 PGS.TS
Nguyễn Linh Giang 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 luận vă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 Viện
Công nghệ thông tin và Truyền thông – Đại học Bách Khoa 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 và một định hướng nghiên cứu chuyên sâu sau hai năm
học tập Thạc sĩ tại trường Đại học Bách Khoa Hà Nội.
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à vợ và con gái – 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 09 tháng 11 năm 2016
Tác giả luận văn
Đỗ Mạnh Việt
2
MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ..................................... 5
DANH MỤC CÁC BẢNG ............................................................................... 6
MỞ ĐẦU ........................................................................................................ 7
1. Đặt vấn đề ............................................................................................. 7
2. Nhiệm vụ của luận văn .......................................................................... 7
3. Cấu trúc luận văn .................................................................................. 8
CHƢƠNG 1: TỔNG QUAN VỀ BOTNET ...................................................... 9
1.1.
Tổng quan về Botnet........................................................................... 9
1.2.
Đặc trƣng của Botnet........................................................................ 10
1.2.1.
Lây nhiễm (Infection) ................................................................. 11
1.2.2.
Hành vi tấn công (Attacking Behaviour) ..................................... 12
1.2.3.
Kiểm soát và điều khiển (Command and Control) ...................... 15
1.2.4.
Cơ chế tập hợp (Rallying Mechanisms)....................................... 19
1.2.5.
Giao thức giao tiếp (Communication Protocols) .......................... 20
1.2.6.
Kỹ thuật tránh bị phát hiện (Evasion Techniques) ...................... 20
CHƢƠNG 2: KỸ THUẬT PHÁT HIỆN VÀ CƠ CHẾ PHÒNG VỆ BOTNET
..................................................................................................................... 23
2.1.
Phát hiện Bot .................................................................................... 24
2.1.1.
Phát hiện chủ động ..................................................................... 24
2.1.2.
Phát hiện bị động ....................................................................... 26
2.2.
Phát hiện C&C server ...................................................................... 28
2.2.1.
Phát hiện chủ động ..................................................................... 28
3
2.2.2.
2.3.
Phát hiện bị động ....................................................................... 29
Phát hiện botmaster ......................................................................... 31
2.3.1.
Phát hiện chủ động ..................................................................... 32
2.3.2.
Phát hiện bị động ....................................................................... 32
Phòng ngừa .................................................................................... 34
2.4
2.4.1 Biện pháp dựa trên kỹ thuật .......................................................... 34
2.4.2.
Biện pháp không dựa trên kỹ thuật ............................................. 36
Khắc phục hậu quả ....................................................................... 37
2.5.
2.5.1.
Phục hồi ..................................................................................... 37
2.5.2.
Phục hồi dựa trên phản công ...................................................... 39
CHƢƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM SNORT IDS ĐỂ PHÁT HIỆN
BOTNET ...................................................................................................... 41
3.1.
Snort IDS ......................................................................................... 41
3.2.
Xây dựng tập luật để phát hiện Botnet .............................................. 43
3.3.
Thử nghiệm và đánh giá ................................................................... 49
3.3.1.
Bonesi ........................................................................................ 49
3.3.2.
Cài đặt Snort .............................................................................. 50
3.3.3.
Mô phỏng, kết quả và nhận xét ...................................................... 52
KẾT LUẬN ..............................................................................................................58
TÀI LIỆU THAM KHẢO ............................................................................. 60
4
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DDOS
Distributed Denial of Service
C&C Server
Command & Control Server
HTTP
HyperText Transfer Protocol
IRC
Internet Relay Chat
IDS
Intrusion Detection System
HIDS
Host Based IDS
NIDS
Network Base IDS
P2P
Peer-to-Peer
MTFC
Malware Capture Facility Project
5
DANH MỤC CÁC BẢNG
Bảng 1: Một số ví dụ về các luật phát hiện Botnet ............................................. 48
Bảng 2: Cấu hình hệ thống .............................................................................. 50
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: Cấu trúc tiêu biểu của một Botnet ........................................................ 10
Hình 2: Cấu trúc Botnet hình sao ..................................................................... 16
Hình 3: Cấu trúc Botnet multi server ................................................................ 17
Hình 4: Example Hieratical C&C botnet structure ............................................. 18
Hình 5: P2P C&C botnet structure ................................................................... 19
Hình 6: Cấu trúc một luật trong Snort IDS ........................................................ 43
Hình 7: Cấu trúc phần tiêu đề của luật .............................................................. 44
Hình 8: Ví dụ về một luật trong snort IDS......................................................... 45
Hình 9: Tùy chỉnh các thông số trong Bonesi .................................................... 50
Hình 10: Tiến hành tấn công UDP bằng Botnesi ................................................ 53
Hình 11: Các gói tin tấn công được gửi đến server ............................................. 54
Hình 12: Các gói tin tấn công được ghi lại bởi phần mêm Wireshark ................... 55
Hình 13: Snort đưa ra cảnh báo khi phát hiện gói tin tấn công UDP floot ............. 56
6
MỞ ĐẦU
1. Đặt vấn đề
Với việc Internet ngày càng phát triển nhanh chóng, 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 chuyên gia an ninh cần phải phát triển các phương
pháp giảm nhẹ đối với các mối đe dọa nguy hiểm này để làm cho Internet là một nơi
an toàn hơn cho người sử dụng, nếu không họ có nguy cơ bị mất dữ liệu nhạy cảm
của họ, hoặc thậm chí tiền bạc mà không hề hay biết và cải thiện an ninh của công
ty cơ sở hạ tầng để bảo vệ doanh nghiệp của họ.
Thông qua việc nghiên cứu các phương pháp và kỹ thuật để phát hiện và xử lý
Botnet, các tổ chức an ninh mạng đã tìm thấy và gỡ bỏ nhiều Botnet trên Internet.
Tuy nhiên, trong thập kỷ qua Botnet liên tục thay đổi, cải tiến cơ sở hạ tầng của nó
để ngày các trở nên nguy hiểm, phức tạp và tinh vi khiến cho việc phát hiện ngày
càng trở nên khó khăn nếu chỉ sử dụng bởi các kỹ thuật phát hiện đã được để xuất.
Vì vậy việc nghiên cứu các phương pháp phát hiện và xử lý Botnet mới luôn là một
lĩnh vực nghiên cứu cấp thiết và ý nghĩa.
2. Nhiệm vụ của luận văn
7
Mục tiêu tổng thế của luận văn là tìm hiểu về các phương pháp và kỹ thuật phát
hiện và ngăn chặn Botnet. Xây dựng tập luật cho Snort-IDS để phát hiện Botnet, tạo
một hệ thống phát hiện Botnet nhanh chóng và mạnh mẽ. Để đáp ứng được mục
tiêu này, bốn mục tiêu chính sau cần phải được đáp ứng:
-
Nghiên cứu về cấu trúc và các đặc trưng của Botnet, hiện trạng của Botnet
và các mối đe dọa liên quan.
-
Nghiên cứu và phân loại các phương pháp phát hiện Botnet.
-
Xây dựng một tập luật cho Snort-IDS để phát hiện được các dạng Botnet đã
biết. Tiến hành thử nghiệm và đánh giá hiệu quả của IDS này.
-
Nghiên cứu về các phương pháp phòng thủ để chống lại Botnet hiện nay.
3. Cấu trúc luận văn
Luận văn này gồm 3 chương chính. Được mô tả chi tiết dưới đây.
Chương 1: Tổng quan về Botnet
Trong chương này, tôi sẽ trình bày từ định nghĩa về Botnet cho đến chi tiết các
đặc trưng của Botnet để cho chúng ta một cái nhìn tổng quan về Botnet.
Chương 2: Các kỹ thuật phát hiện và cơ chế phòng vệ Botnet
Trong chương này, tôi sẽ tìm hiểu các phương pháp và kỹ thuật phát hiện Botnet
hiện có dựa trên một cách phân loại hợp lý và khoa học. Trình bày các cơ chế và
khuyến nghị giúp phòng thủ chống lại Botnet.
Chương 3: Cài đặt và thử nghiệm snort IDS để phát hiện Botnet
Trong chương này tôi sẽ xây dựng một tập luật cho snort IDS và tiến hành thử
nghiệm với phần mềm giả lập tấn công để đánh giá.
Kết Luận
Kết luận của luận văn và các hướng nghiên cứu trong tương lai.
8
CHƢƠNG 1: TỔNG QUAN VỀ BOTNET
1.1. Tổng quan về Botnet
Trước khi chúng ta thảo luận về Botnet, chúng ta sẽ phải định nghĩa về bot. Một
cách đơn giản nhất, một bot là một đoạn mã máy tính thực hiện một công việc hay
nhiệm vụ nào đó một cách tự động hay Bot 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.
Bot được phát hiện đầu tiên trong hệ thống mạng Internet Relay Chat (IRC)
(Holz, 2005). 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).
Theo Provos & Holz (2007) 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ể bị 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 một Botnet
là một tập hợp các máy tính bị tổn thương (bot) tiếp nhận và giải lệnh từ một máy
chủ (C&C server) phục vụ như một cơ chế tự động thực hiện các lệnh từ một bộ
điều khiển của con người (các botmaster) (Hình.1). Để tránh bị phát hiện, các
botmaster có thể tùy chọn sử dụng một số máy proxy, gọi là stepping-stones, giữa
9
các máy chủ C&C và chính nó. Mục tiêu cuối cùng của một Botnet là để thực hiện
các hoạt động độc hại hoặc các cuộc tấn công được điều khiển từ xa. 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.
Hình 1: Cấu trúc tiêu biểu của một Botnet
1.2. Đặc trƣng của Botnet
Để hiểu đầy đủ về Botnet và giải thích một cách hệ thống các tính năng khác
nhau liên quan đến hành vi của Botnet. Tôi xin giải thích vòng đời của một Botnet
điển hình. Từ khía cạnh của một bot, quá trình lây nhiễm bắt đầu bằng việc thực
hiện của cài đặt các đoạn mã độc (bot binary) trên máy tính nạn nhân. Bot binary
được vận chuyển đến các máy tính nạn nhân thông qua một cơ chế lan truyền. Bước
tiếp theo là các bot này liên lạc với máy chủ C&C và công bố sự hiện diện của nó.
Điều này được gọi là cơ chế call-home hoặc rallying. Rallying đánh dấu sự thành
lập một kênh giao tiếp với C&C, thông qua đó các bot gửi thông tin và nhận các
lệnh từ C&C. Dựa trên cách C&C giao tiếp diễn ra, các Botnet tạo thành một topo
mạng. Các bot mới được hình thành sau đó chờ đợi cho mệnh lệnh để phục vụ các
mục đích thực tế của các botnet, và tùy chọn lây nhiễm cho các máy tính khác thông
qua các cơ chế lan truyền. Một vấn đề quan trọng trong tất cả các hoạt động Botnet
là tránh bị phát hiện (evasion). Các cơ chế khác nhau được sử dụng để đảm bảo
10
rằng bot binary, máy chủ C&C và botmaster có thể tránh bị phát hiện. Tóm lại, các
đăc trưng chính của Botnet được định nghĩa bởi Trend Micro và Jose Nazario [1]
như sau:
-
Infection: Cách mà Botnet có thể lây nhiễm tới một máy tính.
-
Attacking Behaviour: Các hoạt động của một Botnet trên một máy tính bị
lây nhiễm.
-
Command and Control (C&C): Cách mà mạng Botnet được kiểm soát.
-
Rallying Mechanisms: Cách để các bot tìm được các máy chủ bot của mình.
-
Communication Protocols: Loại giao thức được sử dụng.
-
Evasion Techniques: Phương pháp được sử dụng để tránh bị phát hiện.
1.2.1. Lây nhiễm (Infection)
Botnet sử dụng một loạt các phương pháp tiếp cận khác nhau để lây nhiễm
lên các máy tính. Các thành phần lây nhiễm của một Botnet thường được nhắc đến
như là một worm bởi vì cơ chế lây nhiễm của nó dựa trên khả năng sao chép chính
mình sang các máy tính khác. Jose Nazario đã phân loại thành bốn phương pháp lây
nhiễm sau.
Email
Các email được gửi đính kèm các file chứa mã nguồn độc hại. Nếu người sử
dụng mở những email này ra thì các máy tính sẽ bị lây nhiễm. Trong quá khứ, hình
thức này tương đối dễ dàng để phát hiện vì phần lớn các email đến từ những địa chỉ
không biết hoặc không tin cậy. Tuy nhiên ngày nay các các kỹ thuật ngày càng tinh
vi khi các email được giả mạo là gửi từ các công ty hay tổ chức uy tín như các ngân
hàng hoặc những người quen. Thường thì khi một máy bị nhiễm thì danh sách địa
chỉ liên hệ của người dùng sẽ bị đọc và các email độc hại này sẽ được gửi đến tất cả
11
các địa chỉ đó dưới danh nghĩa của người sử dụng để mở rộng khả năng lây nhiễm.
Link spam
Là một URL mà đưa người sử dụng đến một nội dung độc hại. Họ có thể
được gửi một loạt thông qua email, mạng xã hội, tin nhắn và đều sử dụng kỹ thuật
xã hội để cố gắng thuyết phục người dùng rằng nó được gửi từ chính chủ. Các thông
điệp này thường có thể xuất hiện từ bạn bè hoặc một tổ chức tin cậy nhưng là một
thông điệp giả mạo.
Website
Các trang web thường được thiết lập để giả mạo các website nổi tiếng như
Youtube hoặc một trang web đáng tín cậy nào đó bị tấn công và chèn vào đó các mã
độc. Có hai kiểu tấn công chính là tấn công phía client và tải về. Trong hình thức
tấn công ở phía client, khi một người dùng truy cập vào một website, các mã độc
hại được khởi động để cố gắng lợi dụng một số lỗ hổng về bảo mật của các trình
duyệt để có thể truy cập vào máy tính của người sử dụng. Nếu lỗ hồng này được lợi
dụng thành công, máy tính của người dùng sẽ bị lây nhiễm và trở thành một bot.
Trang web sẽ sử dụng đồng thời một vài lỗ hổng bởi vì sự thành công sẽ phụ thuộc
vào trạng thái cập nhật của phần mềm cũng như các plugin của bên thứ ba. Dạng tấn
công dựa trên khai thác tải về là khi truy cập vào một website, người dùng sẽ được
nhắc nhở để tải về một tập tin. Nếu người dùng chấp nhận tải về, máy tính sẽ thực
hiện tập tin này và bị lây nhiễm.
1.2.2. Hành vi tấn công (Attacking Behaviour)
Mạng Botnet được sử dụng bởi những người tạo ra nó theo rất nhiều mục
đích khác nhau. Dưới đây là một số hoạt động chính của các mạng Botnet:
- Spam & Phishing email
12
- DDoS (Distributed Denial of Service) Attacks
- Keylogging
- Click fraud
- Warez
- Malware
- For retail
Spam & Phising email
Ước tính có khoảng 107 tỷ tin nhắn rác trong năm 2009, trong đó chiếm
87.7% là email rác. 89.5 tỷ (83%) của những email rác được gửi bởi Botnet. Spam
là một vấn đề lớn không chỉ vì nó gây phiền toái cho người sử dụng mà cũng bởi vì
những hành vi lừa đảo để lấy trộm cá thông tin bí mật như tên người dùng, mật
khẩu và thông tin thẻ tín dụng. Mặc dù hầu hết các thư rác bị chặn hoặc bị loại bỏ
bởi người sử dụng, nếu chỉ cần 0,0001% số người sử dụng đáp ứng các email đó thì
cũng đã rất nguy hiểm.
DDoS
Tấn công từ chối dịch vụ phân tán (Distributed Denial of Service - DDoS)
được thực hiện bởi Botnet là một vấn đề rất nguy hiểm trong thực tế bởi vì chúng
rất khó để chống lại. Tấn công DDoS xảy ra khi một máy chủ bị tràn ngập các lưu
lượng của người dùng trên tất cả các băng thông khiến cho các lưu lượng hợp lệ
không thể kết nối được với máy chủ. Các dạng tấn công DDoS truyền thống có thể
dễ dàng ngăn chặn bằng cách sử dụng tường lửa để chặn địa chỉ IP của các kẻ tấn
công, tuy nhiên như với dạng tấn công click fraud, các lưu lượng đến từ rất nhiều
nguồn. Chúng thường được lan truyền rộng rãi trên Internet và khó bị ngăn chặn dù
đã xác định được đó là các lưu lượng độc hại. Trong một số trường hợp các chủ sở
13
hữu các trang web có thể bị các tổ chức tấn công để đòi tiền chuộc hoặc phải trả tiền
để dừng các tấn công.
Keylogging
Botnet đạt được rất nhiều thông tin từ bất kỳ máy tính bị lây nhiễm trong
mạng. Các thông điệp và tất cả mọi thứ được đánh máy trên máy tính bị nhiễm đều
có thể bị thu thập và gửi về máy chú Botnet bằng cách sử dụng keylogger.
Keylogger là một phần mềm ghi lại tất cả các mọi thứ được gõ. Các thông tin về
mật khẩu của các tài khoản như paypal và tài khoản ngân hàng là các thông tin rất
có giá trị.
Click Fraud
Gian lận click là cách sử dụng mạng Botnet để các máy bot sẽ ghé thăm một
trang web và giả mạo hành động đó được thực hiện bởi một người sử dụng thông
thường và nhấp chuột vào các quảng cáo được hiển thị trên website đó để tạo ra lợi
nhuận cho chủ sở hữu các website đó một cách trái phép. Hình thức tấn công này
gây thiệt hại lớn cho các công ty quảng cáo trực tuyến, những người trả tiền dựa
trên việc click vào quảng cáo của người dùng. Thât khó để phát hiện được hình thức
tấn công này bởi vì, mỗi lần nhấp chuột được thực hiện từ một địa chỉ IP khác nhau
với sự phấn bố rộng rãi của Botnet trên Internet.
Warez
Warez là khi một bot sẽ chụp lại số serial và giấy phép hoạt động của các
phần mềm bản quyền được cài đặt trên máy bị lây nhiễm. Tùy thuộc vào loại phần
mềm được cài đặt, máy chủ bot net có thể bán các số serial để thu lợi bất chính.
Malware
Botnet phát tán các phần mềm độc hại để tăng số lượng máy tính bị lây
14
nhiễm. Có rất nhiều phương pháp được sử dụng để lây nhiễm trong đó email là
phương pháp được phổ biến nhất. Tuy nhiên gần đây mạng xã hội như facebook,
twitter và các phần mềm nhắn tin được lợi dụng để phát tán các phần mềm độc hại.
Các thông điệp chứa các URL đến các trang web độc hại. Nếu người dùng truy cập
các trang web này, máy tính của họ có thể bị tổn hại.
Retail
Hiện nay, các mạng Botnet khi được phát triển đến một mức đủ lớn dẽ được bán
hoặc cho thuê lại. Những người mua sẽ nhận được quyền kiểm soát một phần hoặc toàn
bộ mạng botnet để thực hiện các hoạt động tấn công đã được trình bày ở trên.
1.2.3. Kiểm soát và điều khiển (Command and Control)
Kiểm soát và điều khiển (C&C) là phương pháp được sử dụng để giao tiếp
giữa các bot và các máy chủ bot. Đó cũng là cách các bot được kiểm soát. Tất cả
các bot trong mạng giao tiếp với máy chủ tổng thể bằng cách gửi dữ liệu như thông
tin thu thập được ví dụ mật khẩu và cũng có thể nhận lệnh từ máy chủ. Có bốn loại
cấu trúc liên kết C&C chính được sử dụng bởi Botnet.
Star
Topo sao được dựa trên một cấu trúc tập trung C&C như trong Hình 2. Tất cả
các chương trình giao tiếp với cùng một máy chủ. Topo này đơn giản để thiết lập và
duy trì tuy nhiên nó có một điểm yếu lớn. Đó là nếu máy chủ C&C không hoạt động
bởi bất cứ lý do gì, chẳng hạn như gặp sự cố về phần cứng hoặc phần mềm hoặc bị
tắt máy hoặc bởi vì nó bị chặn bởi chính quyền thì mạng Botnet sẽ bị vô hiệu hóa.
Các chương trình vẫn chạy ẩn trên máy tính bị lây nhiễm tuy nhiên chúng sẽ không
thể nhận được lệnh và gửi dữ liệu đến các máy chủ bot khiến cho mạng Botnet trở
lên vô dụng.
15
Hình 2: Cấu trúc Botnet hình sao
Multi Server
Multi-Server topo được xây dựng trên cấu trúc của topo hình sao nhưng
trong trường hợp này sẽ có hai hoặc nhiều máy chủ giao tiếp với các bot như Hình 3.
Các máy chủ cũng liên lạc với nhau để quản lý các bot. Cấu trúc này khắc phục
được một phần điểm yếu của cấu trúc topo hình sao bởi vì nếu một máy chủ không
sẵn sàng, các máy chủ còn lại vẫn có thể kiểm soát được các bot trong mạng Botnet.
16
Hình 3: Cấu trúc Botnet multi server
Hierarchical
Topo phân cấp sử dụng một cấu trúc phân cấp dưới dạng các đại lý bot sẽ
phân phối lệnh cho toàn bộ các bot thuộc phân cấp con của nó trong mạng Botnet,
như thể hiện trong Hình 4. Ưu điểm của việc này là một bot không biết vị trí và số
lượng của các bot trong mạng Botnet. Tuy nhiên, có hạn chế là do máy chủ C&C
không có tiếp xúc trực tiếp với tất cả các bot nên có thể có độ trễ trong quá trình
truyền lệnh.
17
Hình 4: Example Hieratical C&C botnet structure
Random:
Topo ngẫu nhiên không có cấu trúc tập trung, các bot nhận thức tất cả các bot
khác trong các Botnet và giao tiếp trực tiếp thay vì đi qua một máy chủ, như trong
Hình 5. Một ví dụ của cấu trúc này là peer-to-peer (p2p). Các lệnh trong một cấu
trúc p2p được giới thiệu với một bot trong Botnet và sau đó được phổ biến đến tất
cả các bot khác. Ưu điểm của cấu trúc này là nó là rất khó để ngăn chặn vì không có
máy chủ C&C tập trung nhưng điểm yếu độ trễ cao trong quá trình truyền nhận các
lệnh và địa chỉ IP của toàn bộ Botnet có thể bị phát hiện.
18
Hình 5: P2P C&C botnet structure
1.2.4.
Cơ chế tập hợp (Rallying Mechanisms)
Các cơ chế tập hợp định nghĩa cách các bot có thể xác định vị trí máy chủ
C&C. Có ba phương pháp chính sau:
Hard coded IP addresses của các máy chủ C&C được nhúng trong các
chương trình bot. Đây là cơ chế tập hợp rất dễ bị phát hiện và ngăn chặn bằng cách
sử dụng các tường lửa, bởi vậy các mạng botnet hiện nay không sử dụng phương
pháp này.
Dynamic DNS domain name, một máy chủ bot mua một số tên miền và các
bot sử dụng một tên miền để có được địa chỉ IP của một máy chủ C&C. Điều này
giúp phương pháp này được sử dụng rộng rãi bởi vì người nắm quyền có thể tắt các
máy chủ botnet C&C. Với phương pháp này các máy chủ bot có thể dễ dàng được
thiết lập và cập nhật DNS để trỏ đến máy chủ mới.
19
Distributed DNS service được sử dụng khi một máy chủ bot chạy máy chủ
DNS của họ để giải quyết các địa chỉ IP của các máy chủ C&C. Bot có địa chỉ IP
của DNS được thiết lập cứng trong chương trình code. Phương pháp này là khó
khăn nhất để phát hiện.
1.2.5.
Giao thức giao tiếp (Communication Protocols)
Các giao thức được sử dụng để giao tiếp của một mạng botnet mô tả cách các
bot và các máy chủ C&C giao tiếp với nhau. Tùy thuộc vào giao thức được sử dụng
sẽ xác định được cách bố trí và định dạng của các phương thức giao tiếp đó. Nó
được sử dụng để truyền dữ liệu đánh cắp được tới máy chủ C&C và nhận các mệnh
lệnh từ máy chủ bot. Giao thức thường được sử dụng để giao tiếp trên Internet là
IRC (Internet Relay Chat). Các bot sẽ tham gia vào một máy chủ cá nhân IRC.
Secure socket layer (SSL) có thể sử dụng trên IRC để mã hóa dữ liệu và các câu
lệnh để tránh bị phát hiện. Ngày nay có rất nhiều bot sử dụng giao thức Hyper Text
Transfer Protocol (HTTP) bởi vì hiện nay có rất nhiều tưởng lửa đặc biệt là trong
các mạng công ty đã ngăn chặn phần lớn các lưu lượng liên lạc với C&C thông qua
giao thức IRC. Trong khi tất cả các mạng đều cho phép giao thức HTTP bởi vì giao
thức này được sử dụng để truy cập vào WWW. Một số Botnet mới nhất cũng đã
thông qua giao thức p2p sử dụng một cấu trúc topo ngẫu nhiên mà không có một
máy chủ để liên lạc. Vì vậy nó khiến mạng Botnet trở nên rất khó phát hiện và thậm
chí khó có thể loại bỏ. Mạng Botnet Spybot và Agobot là những ví dụ điển hình của
mạng Botnet sử dụng giao thức p2p.
1.2.6.
Kỹ thuật tránh bị phát hiện (Evasion Techniques)
Với sự gia tăng nhận thức về các mạng Botnet thì các máy chủ Botnet phải
sửa đổi các kỹ thuật của mình để tránh bị phát hiện. Một số kỹ thuật thường được sử
20
dụng là:
- Encrypted traffic
- Domain flux
- Rootkits
Encrypted traffic - Như đã nêu trước đó, sử dụng các kênh bí mật trong
giao thức IRC giao tiếp với các máy chủ C&C để nhận lệnh và kiểm soát. Đây là
hình thức giao tiếp có thể nhìn thấy trong bản ghi và khá dễ dàng để phát hiện sử
dụng một hệ thống phát hiện xâm nhập. Chương trình mới hơn sử dụng các giao
thức khác như http và một số sử dụng giao thức an toàn hơn như Hypertext Transfer
Protocol Secure (HTTPS). Http là một giao thức tốt để sử dụng vì nó thường rất phổ
biến trên mạng mà làm cho nó khó khăn để lọc cho giao thông bot. Ngoài ra việc sử
dụng HTTPS mã hóa các lệnh làm cho nó khó khăn để phát hiện hoặc giám sát.
Domain Flux - là một phương pháp được sử dụng bởi nhiều Botnet để tránh
bị phát hiện, chúng làm điều này bằng cách thay đổi các điểm tiếp xúc. Nó tạo ra
một danh sách các tên miền bằng Domain Generation Algorithms (DGA) mà nó sẽ
liên lạc tùy thuộc vào thời gian. Điều này là rất hiệu quả vì nó làm cho nó rất khó
khăn để loại bỏ hay ngăn chặn các máy chủ C&C vì các máy chủ thay đổi tên miền
một cách thường xuyên.
Rootkit – Ngày nay người sử dụng và các nhà sản xuất ngày càng có ý thức
hơn về vấn đề bảo mật bằng cách cài đặt sẵn các phần mềm chống virus. Tuy nhiên,
các biện pháp chống virus được cài đặt sẵn thường chỉ là phiên bản dùng thử và sẽ
trở lên vô hiệu nếu không được mua bởi người sử dụng. Các máy chủ Bot sử dụng
phần mềm được gọi là rootkit để che giấu một thực tế rằng một máy tính đã bị xâm
nhập. Rootkits, như mebroot [1], có thể tránh bị phát hiện bởi các phần mềm chống
21
virus bằng cách sử dụng nhiều kỹ thuật như sửa đổi bản ghi khởi động, để khi các
máy tính khởi động, nó làm cho bản thân các chương trình bot này được khởi chạy
trước khi chương trình antivirus tiến hành quét hệ thống. Rootkit không phải là một
chương trình độc hại. Tuy nhiên, khi kết hợp với một loại virus hoặc bot, chúng sẽ
rất hiệu quả trong việc tránh bị phát hiện. Các torpig [1] Botnet sử dụng mebroot để
truyền bá, lây nhiễm và chạy ngầm trên máy tính của người dùng.
22
CHƢƠNG 2: KỸ THUẬT PHÁT HIỆN VÀ CƠ CHẾ PHÒNG VỆ
BOTNET
Botnet có thể phát hiện bằng nhiều cách khác nhau. Nhưng vấn đề là làm thế
nào để có thể xác định được các dạng bot mới. Tất cả các bot sẽ khác nhau về hành
vi và các đặc trưng của nó. Một bot cần phải được phân tích và xác định các đặc
trưng chính của nó. Một vài cơ chế để phát hiện Botnet thường được áp dụng. Tuy
nhiên với những gì tôi biết, hiện chưa có một kỹ thuật đã công bố nào có thể phát
hiện được tất cả các thành phần Botnet cùng một lúc. Các phương pháp phát hiện
đều tiếp cận theo hướng cố gắng xác định được một phần của Botnet. Với việc phát
hiện được một phần từ đó có thể dẫn đến việc tìm ra các thành phần khác nhau, tuy
nhiên rất khó để phát hiện được toàn bộ cùng một lúc. Dựa trên đối tượng tiếp cận,
[2] đã phân loại phát hiện Botnet theo ba nhóm khác nhau là phát hiện bot, phát
hiện máy chủ C&C và phát hiện botmaster. Những khía cạnh của phát hiện Botnet
có thể được sử dụng kết hợp với nhau. Ví dụ, phát hiện C&C có thể được diễn ra
bởi phát hiện bot và ngược lại.
Ngoài ra phương pháp phát hiện Botnet có thể được phân loại như chủ động và
bị động. Trong phát hiện chủ động, cách tiếp cận là tham gia vào các hoạt động của
Botnet bằng cách mạo nhận như một thành phần của mạng Botnet này thay vì thụ
động quan sát các hoạt động của nó. Ngược lại, phương pháp phát hiện thụ động
phát hiện các Botnet thông qua việc âm thầm quan sát và phân tích các hoạt động
Botnet. Việc phân loại cơ chế phát hiện Botnet thành 'chủ động‟ và 'thụ động' là
cách tiếp cận có tầm quan trọng thiết thực cho bất kỳ nhà nghiên cứu hoặc quản trị
mạng nào. Các kỹ thuật phát hiện chủ động nêu lên một số vấn đề về pháp lý và đạo
đức, và khả năng nó có thể hoặc không thể được thực hiện sẽ khác nhau giữa các tổ
23
chức. Vì lý do này, các chính sách về an toàn mạng thường cấm các hoạt động can
thiệp lên luồng gói tin được gửi đi trong mạng. Hơn nữa, phương pháp phát hiện
chủ động có thể gây nguy hiểm cho sự an toàn của các máy chủ mà họ tìm cách bảo
vệ. Nếu phát hiện chủ động được phát hiện bởi các botmaster, sẽ tạo cơ hội để
những kẻ đó có thể trực tiếp tấn công vào máy chủ bằng các kỹ thuật khác thay vì
sử dụng Botnet. Một vấn đề khác liên quan đến kỹ thuật phát hiện thụ động là việc
tính riêng tư của người dùng có thể bị xâm phạm.
2.1. Phát hiện Bot
Phát hiện bot có thể được thực hiện có hoặc không có liên quan đến các biến thể
khác của bot (bot family). Người sử dụng và quản trị mạng thường không quan tâm
đến thông tin về bot family. Mối quan tâm chính của họ là để bảo vệ hệ thống mạng
của mình khỏi bị xâm nhập. Trong khi các nhà nghiên cứu an ninh đặc biệt quan
tâm đến việc xác định bot family. Bởi mối quan tâm của họ là mức độ phổ biến của
các Botnet khác nhau, phân bố địa lý của nó, và đặc điểm chung của Botnet. Việc
phát hiện bot giúp chỉ ra lỗ hổng của một máy chủ hoặc mạng bị nhiễm Botnet. Từ
đó có thể đưa ra các chiến lược khắc phục hậu quả nhằm phục hồi từ việc lây nhiễm
và phòng ngừa để tránh bị lây nhiễm trong tương lai.
2.1.1. Phát hiện chủ động
Phát hiện bot một cách chủ động liên quan đến việc tham gia vào các hoạt động
Botnet. Điều này thường liên quan đến việc mạo danh là một thành phần của Botnet.
Có hai phương pháp phát hiện chủ động chính là phát hiện xâm nhập (Infiltration)
và phát hiện bằng máy chủ C&C Hijack.
Infiltration: Trong phát hiện xâm nhập một máy tính phòng thủ giả dạng một
bot thực tế và thăm dò các máy chủ C&C hoặc các bot khác trong trường hợp của
24