CHƯƠNG 1: TONG QUAN VE BOTNET VÀ CAC PHUONG PHAP PHAT HIEN 1.1 Khai quat vé Botnet 1.1 Giới thiệu về Botnet Thuật ngữ đây đủ của Botnet là “Bots network” dùng đê chỉ một mạng lưới các máy tính bị nhiễm phần mềm độc hại và được chi phối bởi một người nao đó (Botmaster). Một mạng botnet có thể có rất nhiều máy tính (hàng trăm hàng ngàn, thậm chi là hàng triệu máy tinh) [1]. Các máy tính đang bị nhiễm Botnet còn được gọi là các “Zombie”. Máy tính bị nhiễm sé bị chi phối bởi một Botmaster và điều khiển mọi hoạt động của máy tinh đang dính mã độc làm cản trở hoạt động, gián đoán gây mat nhiêu thời gian, giảm năng suất công việc của người dùng.
Mục đích chung của botnet là kiểm soát càng nhiều máy tính càng tốt trong thời gian dài nhất có thể. Điều này có thê đạt được băng cách sử dụng tính năng tàng hình, làm cho phần mềm độc hại trở nên kín đáo nhất có thể. 1: Mô hình Botmaster diéu khiển các bot qua máy chủ C&C Có thê thấy, một Botnet sẽ bao gồm 3 thành phần: - Botmaster: điều khiển máy chủ C&C đưa ra các lệnh điều khiển các Bots. - Command & Control Server (C&C): chịu sự điều khiến của Botmaster, phát ra các lệnh cho các bot trong mạng.
- Bots (Zombies): là các máy tinh bị xâm nhập, bi cài phần mềm độc hai và chịu sự điều khiển của C&C Server.2 Kiến trúc và hoạt động của Botnet 1.1 Kiến trúc của Botnet Kiên trúc của Botnet được chia thành 2 loại: - _ Kiến trúc Client-Server - _ Kiến trúc ngang hang Peer — to — Peer (P2P) - Kiến trúc lai a. Kiến trúc Client — Server iui} BotMaster MáychủCnC | | May chủ Cnc Na s. 2: Kiến trúc Client - Server của botnet Kiến trúc Client- Server là một mô hình truyền thống. Ở mô hình này, Botmaster sẽ thiết lập các lệnh, điều khiến và kiểm soát mang Botnet.
các C&C Server sẽ hỗ trợ Botmaster quản lý các may Bots trong mang, đồng thời nó cũng là cầu nối chuyên tiếp lệnh từ Botmaster đến các bots trong mạng. Cac bots sẽ nhận lệnh từ C&C Server giúp các hacker thực hiện các cuộc tan công mạng quy mô lớn. Kiến trúc này có một vai nhược điểm như nó có thể được định vị dễ dàng và chỉ có một điểm kiểm soát. Trong kiến trúc này, nếu máy chủ bị phá hủy, bots sẽ “chết” theo [2].
Kiến trúc ngang hàng Peer — to — Peer (P2P) Nhiễm độc _—> Thông tin đánh cắp \ aie 7 ny — | ay | \ May chủ CnC Hình 1. 3: Kiến trúc P2P cua Botnet Trong P2P, bot sẽ không kết nối vào các may chủ điều khién ma mỗi bot sẽ có một danh sách bot “neighbor — lang giềng”, khi nhận được lệnh điều khiến từ một bot thành viên nào đó trong mạng, nó sẽ quảng bá lệnh này tới danh sách láng giềng của nó. Kiến trúc nảy để khắc phục nhược điểm của kiến trúc Client — Server, mỗi bot là một máy độc lập trên kênh truyền nên nếu một bot bất kỳ bị lỗi sẽ không ảnh hưởng gì tới Botnet. Tuy nhiên, việc thiết kế hệ thống P2P là phức tạp hơn kiến trúc Client — Server rất nhiều, cũng như không đảm bảo đường truyền và độ trệ [3].
Kiến trúc lai m Botdichvu {4 = Se" ¬ ví " " — 1. L ee Ò — ~——__— Bot khách Hình 1. 4: Kiến trúc lai của botnet Kiến trúc lai kế thừa các đặc tính của hai loại kiến trúc trên. Trong kiến trúc lai, có 2 loại bot là: - Servant bot (bot phục vụ): Loại Bot này hoạt động đồng thời như một máy khách và một máy chủ, được cau hình với các địa chi IP định tuyến (IP tinh).
Chúng gửi thông tin địa chỉ IP của mình đến danh sách bot và ở chế độ lăng nghe chờ các kết nói đến từ các Client Bot [4]. Các Client Bot nhận địa chỉ IP từ các Servant Bot, sau đó, chúng tạo kết nói để nhận các lệnh và mã cập nhật [4].2 Hoạt động cua Botnet ; Thong thường, hoạt động cua một mang botnet có thê chia thành 4 pha: Pha tuyên dụng thành viên, pha tương tác, pha tan công, pha duy trì. \4 P Bot Master | Truyền lệnh Máy chủ —Pha tuong tlác——— C&C Pha nhận lệnh va thực hiện tắn công Hình 1. 5: Hoạt động cua mang botnet a.
Pha tuyển dụng thành viên Trong pha này Botmaster cần phải lợi dụng các máy tính trên Internet dé có thể điều khiển từ xa. Botmaster sử dụng các phần mềm độc hại để tìm kiếm và lây nhiễm tối đa vào các hệ thống, máy tính có điểm yêu dé cài bot vào đó. Các kỹ thuật lây nhiễm bot tương tự như việc lây nhiễm Trojan, Worm hay Virut. Để tăng khả năng lây nhiễm, trong thực tế nhiều phần mềm bot thường được thiết kế với các môđun có khả năng tự động khai thác các điểm yếu đã biết, thậm chí cả những lỗ hồng chưa biết đến.
Pha tương tác Khi nạn nhận đã trở thành bot, nó sẽ giao tiếp với botmaster qua kênh truyền thông được sử dụng bởi Botnet đó. Botmaster sẽ nhận được thông báo về bot mới được lây nhiễm, và bot đó sẽ chờ lệnh đến từ botmaster [5]. Pha tan công Mang botnet có thé được sử dụng dé thực hiện nhiều cuộc tan công với quy mô lớn và nhiều hình thức khác nhau như: tan công từ chối dịch vụ, gửi thư rác, tấn công lừa đảo. Hầu hết các mạng botnet đều được phát hiện ở pha này và cũng có nhiều nghiên cứu tập trung vào pha này đề đề ra giải pháp chống lại các tấn công.
Pha duy trì Sau khi thực hiện tấn công, các bot trở về trạng thái chờ lệnh. Botmaster sẽ cập nhật cho các bot thường xuyên để tránh các kỹ thuật phát hiện mới, hoặc vá các lỗi hay bổ sung thêm tinh năng mới cho bot. Trong suốt thời gian này, các bot cần được giám sát thường xuyên để đảm bảo cho hệ thống hoạt động bình thường [5].2 Khái quát về DGA Botnet và Word-based DGA Botnet 1.1 Giới thiệu về DGA Botnet 12.11 Hệ thong tén miễn Ộ Hệ thông tên miên (Domain name server - DNS) là một thành phân quan trọng của cơ sở hạ tầng Internet, chủ yếu được sử dụng để dịch tên miền sang địa chỉ IP và ngược lại. Hiện tại hầu hết các dịch vụ mạng và ứng dụng đều dựa vào DNS.
Đề vượt qua sự phát hiện va ngăn chặn, nâng cao khả năng tự ton tại và kéo dài thời gian tồn tại, nhiều mạng botnet sử dung DNS để tổ chức và kiểm soát.2 Thuật toán sinh tên miền DGA Thuật toán sinh tên miên (Domain generation algorithm - DGA), được sử dung dé tự động tạo ra một sô lượng lớn các tên miên ngâu nhiên và sau đó chon 7 một tập con nhỏ của các miền này để giao tiếp với máy chủ C&C [6]. Các tên miền tạo ra sử dụng một thuật toán DGA với cùng một nhân (seed) nhất định, các tham số đó có thé là các hằng số, ngày hiện tại, thời gian hiện tại. Hầu hết các botnet ngày nay đều sử dụng thuật toán sinh tên miền để làm điểm kết nối tới các may chủ điều khiển. Bằng cách liên tục thay đổi các tên miền đã sử dung, các phương pháp phát hiện dựa vào các danh sách đen của các chuyên gia đã không hiệu quả.
Một ưu điểm khác của việc sử dụng các tên miền này là che giấu được các dau vết mà chúng đã dé lại. Hãy xem xét một mau mã Python đê tạo ra các tên miên khác nhau dưới đây: def generate_domain(year, month, day): """ Generates a domain by considering the current date. """ domain = "" fori in range(32): year = ((year ^ 8 * year) >> 11) ^ ((year & 0xFFFFFFF0) << 17) month = ((month ^ 4 * month) >> 25) ^ 16 * (month & OxFFFFFFF8) day = ((day ^ (day << 13)) >> 19) ^ ((day & OxXFFFFFFFE) << 12) domain += chr(((year ^ month ^ day) % 25) + 97) # add our own domain domain += '.infosec' return domain Có thé thay chức năng generate _domain, chấp nhận ba tham số: năm, tháng và ngày. Điều này có nghĩa là thuật toán tạo ra một tên miền mới mỗi ngày, sau đó được sử dụng bởi phần mềm độc hại dé kết nối với máy chủ C&C.
Chìa khóa thành công của phương pháp DGA là dựa trên một trình tạo số ngẫu nhiên xác định. Các số này có thể là ngẫu nhiên hoặc được cung cấp từ phần mềm độc hai và kẻ tan công. Sau đó các số ngẫu nhiên này sẽ được chuyên đổi sang một ký tự và cộng với phần tên miền cấp cao và sinh ra một tên miền độc hại mà được kẻ tấn công sử dụng dé giao tiép voi may chu diéu khién.3 DGA Botnet | ; Cac bot giao tiép với các máy chu C&C trong một botnet có thé qua giao thức IRC, HTTP hoặc giao thức truyền thông khác. Ngày nay các bot thường sử dụng giao thức HTTP nhiều hơn.
Dé hoạt động được trên Internet thì các bot hay máy chủ C&C đều phải có một địa chi IP public hoặc tên miền để có thé phân giải về một dia chỉ IP. Nếu như các C&C server sử dụng các địa chi IP thì việc bi phát hiện là rất đơn giản. Chính vì vậy các C&C server thường sử dụng tên miền (dịch vụ DNS) thay vì sử dung dia chỉ IP. [7] Cơ chế botnet sử dụng DGA tự động sinh và đăng kí tên miền cho máy chủ C&C của chúng được lặp lại qua các quá trình: botmaster và các bot sẽ cùng sử dụng một thuật toán DGA để tạo một tập các tên miền giống nhau.
Botmaster sé định kì tao ra và đăng kí tên miền qua hệ thong DNS cho máy chủ C&C. Dé các bot kết nối đến máy chủ C&C, chúng dùng một thuật toán DGA cùng nhân giống như máy chủ đã dùng dé tạo ra cùng tập tên miền. Sau đó chúng gửi truy van đến hệ thống DNS dé phân giải tên miền thành địa chỉ IP. Nếu quá trình phân giải thành công, bot sẽ kết nối được đến máy chủ C&C và tải mã lệnh hay bản cập nhật của mã độc.
Nếu quá trình không thành công, chúng tiếp tục sẽ tạo ra các tập tên miền mới và gửi truy vấn đến khi quá trình được kết nối thành công.net @ Generating and registering a DGA domain 2t5xjdkawl.pw C&C server 54ldkz5ak.2!147 @ Generating a DGA domain Sjiej31343.pw FT > “ch a 54ldkz5ak.com (DN$3 SP )Requesting IP to the DNS server Connecting to ! ——————* sjiej31343.net the C&C server ! i 1' th: ——* 2t5xjdkawl.pw NXDomain © i > 4 NXDomain * i —— 54ldkz5ak.147 Malware i DNS server ! Hình 1.