Tập trung vào phương pháp phát hiện liên tục máy tính bị nhiễm mã độc DGA, chương này trình bày về thách thức, bản chất của phương pháp, phương pháp đề xuất, thử nghiệm và đánh giá.
Cuối cùng, Chương 5: Kết luận và đề xuất trình bày tổng kết các kết quả chính và đóng góp khoa học và thực tiễn của luận án. Đồng thời cũng chỉ ra một số định hướng nghiên cứu tiếp theo trong tương lai.
11
CHƯƠNG 1. TỔNG QUAN LĨNH VỰC NGHIÊN CỨU VÀ
ĐỊNH HƯỚNG NGHIÊN CỨU CỦA LUẬN ÁN
Trong chương này, nghiên cứu sinh trình bày các khái niệm cơ bản về tấn công DGA Botnet, đặc biệt tập trung vào mô hình hóa các đặc trưng cơ bản của DGA Botnet cũng như các phương pháp phát hiện các cuộc tấn công này. Phần 1.1 sẽ giới thiệu các khái niệm cơ bản và cơ chế hoạt động của DGA Botnet, đồng thời phân tích chuyên sâu về hai đặc trưng chính liên quan đến cơ chế sinh tên miền tự động, đây là nền tảng cần thiết cho việc nghiên cứu sâu hơn. Trong mục 1.2, tác giả sẽ trình bày một khảo sát tổng quan về lĩnh vực nghiên cứu, phân tích các hướng nghiên cứu liên quan để xác định ưu nhược điểm của từng hướng tiếp cận, cũng như xác định định hướng nghiên cứu của luận án. Cuối cùng, mục 1.3 sẽ trình bày về định hướng nghiên cứu của luận án, bao gồm các ý tưởng cơ sở dẫn đến mạch nghiên cứu riêng và các nhiệm vụ nghiên cứu cụ thể đã được đặt ra. Các phương pháp học sâu được xem là những giải pháp tiềm năng để phát hiện DGA Botnet một cách hiệu quả và là trọng tâm nghiên cứu của luận án.
1.1 Tổng quan DGA Botnet
1.1.1 Khái niệm cơ sở của DGA Botnet
Ngày nay, hầu hết các mạng Botnet đều sử dụng cơ chế thuật toán sinh tên miền tự động (Domain Generation Algorithm - DGA) để kết nối với máy chủ điều khiển C&C (Command and Control) [4]. Điều này nhằm mục đích tránh bị phát hiện, ngăn chặn và loại bỏ bởi các hệ thống phát hiện xâm nhập/hệ thống ngăn ngừa xâm nhập (Intrusion Detection System - IDS/Intrusion Prevention System - IPS).
Hình 1.1 mô tả một kịch bản tấn công mang đặc trưng của DGA Botnet. Ban đầu, người dùng truy cập một trang web độc hại, có thể là do nhấp vào liên kết độc hại từ email, trang web không an toàn, hoặc một nguồn không đáng tin cậy khác.
Các trang web này đã được thiết kế để tự động tải xuống và triển khai phần mềm độc hại mà không đòi hỏi sự chấp nhận rõ ràng từ phía người dùng.
Ngay sau khi trang web độc hại được truy cập, phần mềm độc hại tự động khai thác các lỗ hổng trong hệ thống của người dùng hoặc sử dụng các kỹ thuật xâm nhập khác để âm thầm cài đặt mã độc trên thiết bị của họ. Thiết bị của người dùng
12 sau đó
13 chuyển đổi thành một "bot", bị điều khiển từ xa bởi máy chủ điều khiển (C&C server) thuộc quyền sở hữu của kẻ tấn công.
Mã độc DGA là một kỹ thuật sử dụng một hạt giống để tự động tạo ra các chuỗi ký tự có định dạng giống như tên miền, hay còn được biết đến là tên miền được sinh ra bởi thuật toán (Algorithmically Generated Domains - AGD). Người kiểm soát Botnet đăng ký một tên miền, và tên miền đã đăng ký này trỏ đến địa chỉ IP của máy chủ C&C. Bot sau đó lần lượt truy vấn để các tên miền được sinh ra bởi thuật toán để phân giải địa chỉ IP của máy chủ C&C, từ đó thiết lập kênh giao tiếp với máy chủ C&C. Khi đã kết nối, các bot nhận lệnh để thực hiện cuộc tấn công DDoS lên một nạn nhân. Sau khi thực hiện xong một tấn công, quá trình kết nối với máy chủ C&C vẫn được duy trì thông qua việc liên tục truy vấn các tên miền được sinh bởi thuật toán để đợi các lệnh tấn công tiếp theo.
14
Malicious website Botmaster Domain registrar
(4) The botmaster registers one AGD
The registered AGD (5) points to the C&C IP address
User visits (1) malicious
website
(2) The device is infected with malware to become a bot
DGA relies on a (3) seed to
generate a list of AGDs
C&C server
(7) The bot establishes a C&C channel
Computer device (bot)
yjxwzvzqjxwq.biz qfzrxqjyfzqk.info NXDOMAIN 20.0.25.177
DNS server Malware The bot sends DNS queries
(6) using AGDs to resolve the C&C IP address
Hình 1.1. Kịch bản tấn công đặc trưng của DGA Botnet
Việc kết nối với máy chủ C&C thông qua DGA làm cho mạng Botnet trở nên khó phát hiện hơn so với việc sử dụng địa chỉ IP hoặc tên miền được "hardcode"
trong chương trình mã độc. Nhờ sự thay đổi liên tục của các tên miền theo thuật toán đã thiết lập, ngay cả khi tên miền của máy chủ C&C bị phát hiện cũng không thể ngăn
chặn hoặc loại bỏ được mạng Botnet do các tên miền này chỉ được sử dụng trong một thời gian ngắn trước khi bị loại bỏ khi chu kỳ sinh tên miền mới được bắt đầu.
Vì vậy để vô hiệu hoá được mạng DGA Botnet sẽ phải xoá bỏ chương trình mã độc DGA trên tất cả các thiết bị bị lây nhiễm. Trong thực tế, việc này không khả thi vì các thiết bị bị lây nhiễm thường là các máy tính cá nhân, điện thoại di động, thiết bị IoT, camera, hoăc thiết bị mạng. Việc loại bỏ mã độc phải do người dùng chủ động phát hiện và thực hiện. Tuy nhiên, điều này là không dễ dàng đối với người dùng phổ thông do hạn chế về nhận thức cũng như thiếu kiến thức và các kỹ năng cần thiết.
Để có thể hiểu được các hành vi của DGA Botnet, các nhà nghiên cứu tiến hành phân tích các mẫu mã độc DGA Botnet thu thập được cũng như phân tích dữ liệu truy vấn DNS do các mã độc sinh ra trong thực tế. Trong báo cáo đầu tiên về DGA của Brett Stone-Gross và cộng sự [6] , dựa trên việc dịch ngược mã thực thi của một mẫu mã độc thu được, các tác giả đã xác định được thuật toán sinh tên miền sử dụng bởi Botnet Torpig. Tác giả đã tìm ra được chu kỳ mỗi bot sinh ra một danh sách tên miền và sau đó liên lạc với máy chủ C&C. Bằng cách giả mạo một máy chủ C&C và đăng ký trước các tên miền, họ đã chiếm quyền điều khiển Botnet Torpig thành công trong vòng 10 ngày. Johannes Bacher và các cộng sự [7] đã tiến hành dịch ngược 43 mẫu mã độc DGA khác nhau được phát hiện trong thực tế. Dựa trên các kết quả dịch ngược, các tác giả đã tìm ra được các thuật toán sinh tên miền và triển khai lại các thuật toán này bằng ngôn ngữ python. Từ đó, họ đã tổng hợp và thống kê lại các quy tắc và đặc điểm của các tên miền do thuật toán sinh của từng mã độc sinh ra. Chi tiết vui lòng xem trong Phụ Lục.
Về bản chất, DGA sử dụng một bộ sinh số giả ngẫu nhiên (PseudoRandom Number Generator - PRNG) để tạo ra các tên miền ứng viên. Tuy nhiên, chuỗi sinh ra từ bộ sinh số giả ngẫu nhiên không thực sự là ngẫu nhiên hoàn toàn, mà nó dựa vào một tập hợp các tham số cần thiết, được gọi là hạt giống (seed), và đóng vai trò là một "shared secret". Các tham số này bao gồm các hằng số (ví dụ: độ dài của tên miền hoặc hạt giống tạo số giả ngẫu nhiên) hoặc các chuỗi (ví dụ: bảng chữ cái hay tập các Top Level Domain). Dựa vào giá trị seed, có hai loại chính của DGA (1) Giá trị seed khởi tạo phụ thuộc thời gian (Time dependence): DGA kết hợp với
nguồn thời gian (ví dụ: ngày giờ hiện tại, tỷ giá hối đoái, thời gian hệ thống của máy chủ bị
xâm nhập) để tính toán các tên miền. Những tên miền này sẽ chỉ có thời hạn hiệu lực trong một khoảng thời gian cụ thể. (2) Giá trị seed khởi tạo có tính xác định (Determinism): Loại DGA mà địa chỉ có thể quan sát được tại bất kỳ thời điểm nào, tức là, có thể được tính cho các trường hợp trong quá khứ và tương lai, dựa trên các tham số đầu vào. Hình 1.2 mô tả một thuật toán DGA đơn giản với giá trị seed khởi tạo là ngày hiện tại. Có hai phương pháp chính để DGA tạo ra các tên miền [9]:
- DGA dựa trên số học (Arithmetic-based DGAs): Sử dụng một hàm phân phối đều (uniform distribution generator) và các phép toán như nhân, chia, xor, dịch bit (bit shift), phép tìm dư (modulo) để tạo ra các chuỗi ký tự dạng tên miền như Conficker, Ramnit và nhiều loại khác.
- DGA dựa trên danh sách các từ (Wordlist-based DGAs): Tạo ra các chuỗi ký tự bằng cách ghép các từ được lấy từ một hoặc nhiều danh sách từ. Điều này giúp giảm tính ngẫu nhiên và tránh phương pháp phát hiện theo tên miền.
Các danh sách từ này sẽ được nhúng trực tiếp vào mã nguồn của của phần mềm độc hại hoặc thu từ một nguồn có thể truy cập công khai (như Suppobox kết hợp các từ trong từ điển tiếng anh với nhau để tạo ra các tên miền).
Initialize
Transform
seed index
date
random state
t Conve
t ft …...
…...
Hình 1.2. Quy trình sinh tên miền bằng thuật toán DGA dựa trên giá trị nguồn là
ngày hiện tại
Dễ dàng nhận thấy, các tên miền do DGA tạo ra sẽ phụ thuộc vào giá trị seed và sơ đồ hình thành (Generation Schemes) của thuật toán. Và đây cũng là điểm yếu chính
ebj3ykdfa8lq.info random
number Shi
f rt
e b j
random number Shi
f random number Shi
3 random number
q random number random
number
.info
của DGA là nếu ai biết được thuật toán và giá trị seed khởi tạo, họ có thể dự đoán các tên miền sinh ra và ánh xạ chúng với địa chỉ IP của máy chủ C&C. Điều này có thể kiểm soát được mạng DGA Botnet.
Vì vậy, hướng tiếp cận truyền thống trong việc ngăn chặn được DGA Botnet là tìm ra các thuật toán sinh tên miền tự động và giá trị seed khởi tạo dựa trên các kỹ thuật dịch ngược các mẫu mã độc lây nhiễm thu được. Dựa trên thuật toán, các nhà bảo mật có thể tính toán được các tên miền sẽ sinh ra trong tương lai để có thể chiếm được quyền điều khiển Botnet trước tin tặc. Tuy nhiên, việc thực hiện dịch ngược không chỉ tốn nhiều thời gian mà còn đòi hỏi trình độ kỹ thuật cao. Điều này còn kèm theo thực tế rằng việc dịch ngược mã nguồn (decomplier, disassembler) không phải lúc nào cũng khả thi, trong khi chỉ cần một sự thay đổi nhỏ, tin tặc có thể tạo ra nhiều biến thể khác nhau của mã độc [5]. Ngược lại, việc xác định thuật toán và giá trị seed không phải là phương pháp duy nhất để dự đoán các tên miền
được sinh ra bởi DGA.
Thông qua việc xem xét và đánh giá dựa trên phân tích một số họ mã độc DGA đã biết, các nhóm nghiên cứu đã nhận ra một số hành vi đặc trưng của DGA Botnet.
Dễ dàng nhận thấy rằng các đặc trưng về hành vi của bot thường liên quan chặt chẽ đến các truy vấn DNS. Các bot trong mạng DGA Botnet sẽ tạo ra một lượng lớn các tên miền dựa trên một cấu trúc nhất định tức là có mối quan hệ về ngữ nghĩa giữa các tên miền được sinh bởi cùng 1 thuật toán DGA. Ngoài ra các bot truy vấn tất cả tên miền đã tạo đến các máy chủ DNS. Tuy nhiên, chỉ một tập hợp nhỏ các tên miền này được đăng ký bởi tin tặc và được gán cho địa chỉ IP của máy chủ C&C và các tên miền khác là không tồn tại. Như vậy tần suất truy vấn tên miền mà trả về NXDOMAIN của các bot trong mạng DGA Botnet sẽ lớn hơn các máy tính thông thường. Đây chính là hai đặc trưng nổi bật của DGA Botnet. Trong phần tiếp theo, nghiên cứu sinh sẽ trình bày chi tiết về hai đặc trưng này của DGA Botnet.
1.1.2 Đặc trưng về ngữ nghĩa của tên miền tạo ra bởi DGA Botnet
Dựa trên một giả định cơ bản rằng tên miền thông thường được tạo ra bởi con người thường mang một ý nghĩa cụ thể và có thể phát âm, trong khi các tên miền được sinh tự động thường là ngẫu nhiên và không có ý nghĩa. Hơn nữa, các tên miền này tuân theo một cấu trúc nhất định, có thể tìm ra một mô hình ẩn dưới chúng
do cùng một thuật toán sinh ra. Điều này mở ra khả năng chuyển bài toán phát hiện DGA
Botnet thành bài toán phân loại tên miền là tên miền thông thường và tên miền do DGA tạo ra.
Để thiết lập cơ sở cho hướng nghiên cứu, nghiên cứu sinh đã thực hiện phân tích sự khác biệt về đặc trưng ngữ nghĩa giữa các tên miền thông thường và tên miền được tạo ra bởi DGA Botnet. Đại diện cho các tên miền thông thường (tên miền do con người tạo và đăng ký để sử dụng) được lựa chọn từ tập 1 triệu tên miền được truy cập nhiều nhất trên toàn cầu, theo thống kê của tổ chức Alexa thuộc Amazon [37], sau đây gọi chung là tập Alexa (non-DGA). Các tên miền do các DGA Botnet tạo ra được lấy từ danh sách các tên miền do mã độc DGA tạo ra từ bộ dữ liệu OSINT DGA feed của Bambenek Consulting [38], một tổ chức chuyên điều tra về an ninh mạng và tội phạm mạng. Bambenek Consulting đã thu thập các mẫu thực thi của mã độc DGA và sử dụng kỹ thuật dịch ngược để xác định các thuật toán tạo tên miền, sau đó mô phỏng lại bằng Python để thu thập danh sách tên miền do mã độc DGA đó tạo ra.
Nghiên cứu sinh đã chọn mẫu gồm 1.000 tên miền từ tập tên miền Alexa (non- DGA) và 1.000 tên miền tạo ra bởi mã độc PT Goz/Zeus (DGA). Sau đó, thực hiện phân tích các đặc trưng thống kê, bao gồm độ dài (số ký tự trong mỗi tên miền), entropy, và mức độ ý nghĩa của tên miền.
Entropy xác định độ bất định của một tên miền. Với tên miền 𝑑, entropy 𝐸(𝑑) bằng:
|"|
𝐸(𝑑) = − 6 𝑖𝑛𝑑𝑒𝑥(𝑡)
𝑙𝑜𝑔
>𝑖𝑛𝑑𝑒𝑥(𝑡)
?
(1.1)
𝑁 𝑁
#$%
với 𝑖𝑛𝑑𝑒𝑥(𝑡) là số lượng của kí tự 𝑡 trong tập tên miền, |𝑝| là số lượng ký tự phân biệt trong tên miền và 𝑁 là số ký tự của tập tên miền.
Mức độ ý nghĩa của tên miền đặc trưng cho mức độ có ý nghĩa của các cụm 𝑛 - gram [8] có trong tên miền. Tên miền được chia thành các cụm 𝑤(𝑖) có độ dài lớn
hơn hoặc bằng 3. Với tên miền d, mức độ ý nghĩa M bằng
∑& 𝑙𝑒𝑛(𝑤(𝑖)) 𝑀(𝑑) = # $ %
𝑝 (1.2)
Trong đó 𝑝 là độ dài của tên miền 𝑑 và 𝑛 là số từ có ý nghĩa trong tên miền. Ví dụ đối với chuỗi kí tự “stackoverflow”, mức độ ý nghĩa M được tính như biểu thức bên dưới.
𝑀(𝑑) = 𝑙𝑒𝑛(|𝑠𝑡𝑎𝑐𝑘|) + 𝑙𝑒𝑛(𝑜𝑣𝑒𝑟) + 𝑙𝑒𝑛(|𝑓𝑙𝑜𝑤|)
= 1 (1.3)
13 𝑛-gram tính toán dựa trên tỷ số giữa tần suất xuất hiện của ký tự trong tên miền 𝑑 (ký hiệu 𝑐𝑜𝑢𝑛𝑡(𝑡!)) và trong tập Alexa top 100,000 tên miền (ký hiệu 𝑓(𝑡!))
𝑆(𝑑) = ∑"
!∈$ 𝑐𝑜𝑢𝑛𝑡(𝑡!) ∗ 𝑓(𝑡!)
= 1 (1.4)
|𝑑| − 𝑛 + 1
30 20 10
0 non-DGA
DGA
0 200 400 600 800 1000
(a) 4
3
0 2
1 no
n- D G A D G A0
20 0
40 0 (b)
60 0
80 0
1 0 0 0
1
0.5
non-DGA
0 DGA
0 200 400 600 800 1000
(c) Hình 1.3. Sự sai khác giữa tên miền bình thường và tên miền DGA theo các đặc
trưng (a) độ dài, (b) entropy và (c) mức độ ý nghĩa.
Hình 1.3 thể hiện giá trị của các đặc trưng được tính toán từ 1.000 mẫu thuộc hai lớp Alexa (non-DGA) và PT Goz/Zeus (DGA). Tên miền do DGA Botnet sinh ra thường có độ dài lớn hơn so với tên miền bình thường. Từ Hình 1.3 (a), ta thấy độ dài của tên miền bình thường nằm trong khoảng từ 5 đến 15 ký tự và thường khác biệt so với tên miền DGA (≥ 20 ký tự). Hình 1.3 (b) cho thấy sự khác nhau giữa entropy của tên miền bình thường và tên miền do DGA sinh ra. Tên miền bình thường có dải entropy khá rộng từ 1.5 đến 3.4, còn đối với một mẫu DGA, entropy thường lớn hơn và có dải phân bố hẹp từ 3.7 đến 4.3. Hình 1.3 (c) minh họa sự khác nhau giữa mức độ ý nghĩa của tên miền bình thường và tên miền do DGA sinh ra.
Đối với tên miền bình thường M thường nằm khoảng 0.8 đến 1. Tên miền DGA thường có mức độ ý nghĩa nhỏ hơn do các ký tự được ghép một cách ngẫu nhiên theo hàm mật độ phân bố đều. Như vậy, có thể thấy các đặc trưng về ngữ nghĩa có thể giúp phân loại một tên miền bình thường với tên miền do một thuật toán của mã độc DGA sinh ra (từ đây sẽ gọi chung là tên miền độc hại). Đây là cơ sở cho hướng tiếp cận để xây dựng các bộ phân loại tên miền với đầu vào là các đặc trưng ngữ nghĩa của tên miền và đầu ra xác định tên miền đó là bình thường hay tên miền độc hại.
Một câu hỏi đặt ra là liệu có thể phân biệt ngữ nghĩa của các tên miền giữa các họ mã độc DGA khác nhau hay không? Để trả lời câu hỏi này, tiếp tục mở rộng thực nghiệm bằng cách lựa chọn 1,000 mẫu tên miền của 4 loại DGA khác nhau, bao gồm Ramnit, Ranbyus, Suppobox và Banjori. Như minh họa trong Hình 1.4,