Bảng 1.1 So sánh đặc điểm Botnet truyền thống và IoT Botnet
Đặc điểm Mã độc Botnet truyền thống Mã độc IoT Botnet
Kiến trúc vi xử lý, hệ điều hành
Chủ yếu tập trung vào kiến trúc x86 và x64 của các loại chip phở biến của Intel và AMD; Hệ điều hành mục tiêu phở biến là Windows, ngồi ra cĩ lượng nhỏ là Linux, MacOS,…
Đa dạng nền tảng kiến trúc vi xử lý nhỏ gọn, tiêu thụ năng lượng thấp đang được phát triển như MIPS, ARM, PowerPC, SPARC,…;
Chủ yếu là hướng tới hệ điều hành nhúng (Embeded OS) nhân Linux phiên bản 2.6, 3.2,…
Kỹ thuật gây rối
Sử dụng các kỹ thuật gây rối phức tạp để hạn chế khả năng bị phát hiện, phân tích mã nguồn từ các cơng cụ, phần mềm chuyên dụng cĩ lịch sử nghiên cứu, phát triển tương đối dài.
Do hạn chế về mặt tài nguyên xử lý, lưu trữ dữ liệu nên ít sử dụng các kỹ thuật gây rối phức tạp hoặc chỉ sử dụng các kỹ thuật gây rối đơn giản như UPX, XOR.
Mục đích sử dụng
Đa mục đích như thu thập dữ liệu cá nhân, mã hĩa dữ liệu tống tiền, đào tiền ảo, tấn cơng từ chối dịch vụ,…
Tập trung vào mục đích tấn cơng từ chối dịch vụ phân tán (DDoS) và các biến thể của nĩ vì đặc điểm số lượng lớn và khả năng phân tán của thiết bị IoT trên tồn cầu.
Khả năng phát hiện
Tương đối dễ dàng phát hiện bởi các cơng cụ, phần mềm chuyên dụng cĩ lịch sử nghiên cứu, phát triển tương đối dài và được cập nhật thường xuyên;
Khĩ phát hiện bởi ít tương tác với người dùng, thường hoạt động độc lập, hạn chế trong giao diện đồ họa tương tác với người dùng (GUI) dẫn tới khĩ phát hiện các dấu hiệu khả nghi.
Đặc điểm Mã độc Botnet truyền thống Mã độc IoT Botnet
thường xuyên cĩ tương tác với người sử dụng nên dễ phát hiện các dấu hiệu nghi vấn bị lây nhiễm mã độc.
Vị trí lưu trữ
Cĩ thể lây nhiễm và lưu trữ tại các bộ nhớ bền vững trên máy tính (HDD, SSD,…) và tạo các bản sao tại nhiều vị trí khác nhau nhằm tránh bị cơng cụ chuyên dụng loại bỏ dễ dàng.
Thường chỉ tải và thực thi các mã nhị phân trên các bộ nhớ khơng bền vững (RAM) do đặc điểm tài nguyên hạn chế của thiết bị IoT.
Ngăn chặn mã độc khác
Khơng tồn tại chức năng này trừ khi cĩ tranh chấp tài nguyên với mã độc khác vì máy tính truyền thống cĩ nguồn tài nguyên lớn.
Do hạn chế về mặt tài nguyên xử lý và lưu trữ nên thường tồn tại chức năng ngăn chặn mã độc khác lây nhiễm lên thiết bị mục tiêu.
Với việc nghiên cứu đặc điểm các họ mã độc IoT Botnet, các nhà nghiên cứu đã đưa ra các giai đoạn trong vòng đời của loại mã độc này. Theo Pamela [29], mã độc IoT Botnet thực hiện hành động của mình trong ba giai đoạn chính là:
+ Lây nhiễm (Infection): Mã độc tuyển lựa các Bot mới để cĩ thể lây nhiễm thành cơng thơng qua các kỹ thuật như khai thác lỗ hởng bảo mật, tấn cơng truy cập và chiếm quyền điều khiển với những mật khẩu mặc định, tải phiên bản thực thi phù hợp với mục tiêu và kích hoạt tệp thực thi khiến cho thiết bị trở thành một phần của mạng lưới Botnet. + Ra lệnh điều khiển (Command and Control): Sau khi bị lây nhiễm thành cơng, các Bot sẽ liên lạc với máy chủ điều khiển mạng lưới Botnet (thường được biết đến với tên gọi C&C server) để chờ nhận lệnh điều khiển.
+ Hành vi độc hại (Malicious Activities): Các Bot nhận được lệnh từ máy chủ C&C server và thực thi các hành vi độc hại như gửi yêu cầu tới mục tiêu (tấn cơng từ chối dịch vụ phân tán – DDoS), gửi thư rác (Email spam), đào tiền kỹ thuật số (cryptocurrency mining),…
Theo Kolias [8] mơ tả 7 bước thực thi (được minh họa tại Hình 1.4) của mã độc IoT Botnet gồm:
+ Bước 1: Một Bot trong mạng lưới Botnet tham gia vào một cuộc tấn cơng dò tìm mật khẩu đăng nhập (thường là Brute-force attack) tài khoản quản trị hoặc điều khiển từ xa của các thiết bị IoT mục tiêu được cấu hình mật khẩu yếu hoặc mặc định của nhà sản xuất. Cĩ 62 cặp tên tài khoản người dùng – mật khẩu được mã hĩa cứng (hardcode) trong mã nguồn của Mirai.
+ Bước 2: Khi dò tìm thành cơng tài khoản của thiết bị IoT mục tiêu và chiếm được quyền thực thi lệnh, Bot sẽ thu thập và gửi thơng tin về mục tiêu mới (địa chỉ IP, cởng và tài khoản truy cập, kiến trúc CPU, phiên bản hệ điều hành,…) đến máy chủ báo cáo (Report server) thơng qua một cởng khác.
+ Bước 3: Thơng qua máy chủ C&C server, Botmaster thường xuyên kiểm tra các mục tiêu nạn nhân tiềm năng mới cũng như trạng thái hiện tại của mạng lưới Botnet bằng cách liên lạc với máy chủ báo cáo, thường thơng qua một kênh liên lạc ẩn danh như Tor.
+ Bước 4: Sau khi quyết định tuyển lựa các thiết bị nào dễ bị lây nhiễm, Botmaster ra lệnh lây nhiễm bằng cách yêu cầu máy chủ lưu trữ các phiên bản thực thi mã độc (Loader server) tải xuống các thơng tin của mục tiêu mới từ máy chủ báo cáo để lựa chọn phiên bản phù hợp phục vụ lây nhiễm.
+ Bước 5: Máy chủ lưu trữ mẫu mã độc (Loader server) tiến hành đăng nhập vào thiết bị mục tiêu mới và hướng dẫn nĩ tải xuống (thường thơng qua giao thức wget hoặc FTP), thực thi phiên bản mẫu mã độc tương ứng với kiến trúc của thiết bị. Ngay khi mẫu mã độc này được thực thi thành cơng, nĩ sẽ cố gắng tự bảo vệ mình khỏi các mã độc khác bằng cách tắt các dịch vụ điều khiển từ xa như Telnet và SSH. Tại thời điểm này, cá thể Bot mới này được tuyển lựa thành cơng và đã cĩ thể giao tiếp với máy chủ C&C server để nhận lệnh.
+ Bước 6: Botmaster hướng dẫn tất cả các Bot trong mạng lưới bắt đầu một cuộc tấn cơng mạng vào máy chủ mục tiêu bằng cách ra lệnh thơng qua máy chủ C&C server với các tham số tương ứng với cuộc tấn cơng.
+ Bước 7: Các Bot trong mạng lưới sẽ bắt đầu tấn cơng máy chủ mục tiêu với một trong các dạng tấn cơng từ chối dịch vụ phân tán phở biến hiện cĩ.
Hình 1.4 Các bước trong vòng đời của mã độc IoT Botnet
Vậy, từ những nghiên cứu kể trên, luận án tởng kết đưa ra các bước cơ bản trong vòng đời của IoT Botnet (minh họa tại Hình 1.5) bao gồm năm bước dưới đây:
1) Khởi tạo mã nguồn: Ở giai đoạn đầu, Botmaster thực hiện khai thác thơng tin của thiết bị IoT mục tiêu để tìm lỗ hởng bảo mật và sử dụng các phương pháp khác nhau để cĩ thể truy cập vào thiết bị mục tiêu.
2) Lây nhiễm: Botmaster leo thang đặc quyền để thiết bị mục tiêu chạy một Shellcode (thường dưới dạng script) để tải về tệp mã nhị phân thực thi được phù hợp với đặc điểm thiết bị thơng qua các giao thức như P2P, FTP, HTTP,… Tệp mã nhị phân này được cài đặt lên thiết bị mục tiêu và biến thiết bị này thành “zombie”.
3) Kết nối với C&C server: Các “zombie” theo kịch bản trong tệp mã nhị phân tải về cố gắng kết nối tới C&C server được xây dựng, điều khiển bởi Botmaster. Một khi kết nối thành cơng, “zombie” trở thành một thành phần trong mạng lưới Botnet. Lúc này, các con “bot” sẽ giữ liên lạc và nhận lệnh từ Botmaster thơng qua C&C server.
4) Thực thi hành vi độc hại: Các “bot” thực thi hành vi độc hại theo lệnh nhận được từ Botmaster thơng qua C&C server như thực thi các hình thức tấn cơng từ chối dịch vụ tới nạn nhân.
5) Cập nhật và bảo trì: Trong giai đoạn này, Botmaster cĩ thể cần nâng cấp mạng lưới Botnet của họ với nhiều lý do khác nhau như tránh bị phát hiện, thêm chức năng cho bot. Quá trình này giúp cho mạng lưới Botnet tồn tại và phát triển mở rộng.
Hình 1.5 Vòng đời của IoT Botnet
1.3. Quy trình phát hiện mã độc IoT Botnet
1.3.1. Tổng quan
Mã độc IoT Botnet khơng chỉ lây lan trên thiết bị của người dùng cá nhân mà cịn nhắm vào các doanh nghiệp, tở chức và chính phủ với tính chất và mức độ ngày càng nghiêm trọng [21]. Thống kê của Kaspersky cho thấy đã cĩ hơn 100 triệu cuộc tấn cơng vào các thiết bị IoT trong nửa đầu năm 2019, tăng gấp 7 lần so với cùng kỳ năm 2018 [10]. Giải quyết các nguy cơ nĩi trên, các nhà nghiên cứu đã phát triển các phương pháp và mơ hình mới để phân tích và phát hiện hiệu quả các mẫu mã độc xuất hiện trên các thiết bị IoT. Các phương pháp và mơ hình cĩ những điểm khác biệt tạo nên điểm mới với từng ý tưởng đề xuất. Tuy nhiên, hầu hết các nghiên cứu này đều xoay quanh hai
phương pháp chính là phát hiện mã độHic dựa trên dữ liệu tĩnh (thường gọi là phân tích tĩnh – Static Analysis) và dựa trên dữ liệu động (phân tích động – Dynamic Analysis).
Phân tích tĩnh là phương pháp phân tích nội dung của mã nguồn mà khơng cần thực thi các tệp tin để phát hiện các dấu hiệu nghi vấn. Phân tích tĩnh phát hiện mã độc dựa trên những thơng tin trích xuất từ dữ liệu tĩnh. Dữ liệu tĩnh này là các dữ liệu tồn tại ngay trong bản thân mẫu mã độc, cĩ đặc điểm tồn tại độc lập, khách quan, khơng thay đởi đối với sự tác động của mơi trường thực thi. Các dữ liệu tĩnh này thường bao gồm: giá trị các bit trong tệp thực thi; metadata của chương trình; định dạng và dung lượng tệp thực thi; các chuỗi ký tự xuất hiện trong mã nguồn; mã nguồn dưới dạng Assembly,…
Để thu thập được các dữ liệu tĩnh này, một trong những kỹ thuật quan trọng là dịch ngược mã nguồn của tệp thực thi đầu vào để trích rút lấy các dữ liệu tĩnh. Dịch ngược mã nguồn (reverse engineering) là quá trình giải mã, đọc hiểu nội dung tệp thực thi đầu vào để tái hiện thiết kế của người lập trình. Kết quả của dịch ngược mã nguồn cĩ thể được trình bày dưới dạng ngơn ngữ lập trình (phở biến là Assembly), luồng điều khiển (Control Flow Graph – CFG) và luồng dữ liệu (Data Flow Graph – DFG). Các cơng cụ dịch ngược mã nguồn thường được sử dụng gồm IDA Pro, WinHex, Hiew,… Các cơng cụ dịch ngược mã nguồn ngày càng được phát triển nhiều khả năng mới để cĩ thể dễ dàng dịch ngược mã nhị phân của chương trình. Tuy nhiên, mã độc cũng được phát triển các kỹ thuật để chống lại các cơng cụ dịch ngược này (anti-reverse). Tiêu biểu cho các kỹ thuật này là làm rối mã nguồn chương trình (Obfuscated code) và đĩng gĩi phần mềm bằng các thuật tốn mã hĩa khác nhau (Packed code). Các kỹ thuật này gây khĩ khăn cho các chuyên gia khi cố gắng phân tích tĩnh bằng cách dịch ngược mã nguồn của tệp thực thi mã độc. Bên cạnh đĩ, việc đọc hiểu tồn bộ nội dung mã nguồn của mã độc cũng là một cơng việc khơng hề dễ dàng. Mặc dù cĩ thể tự động hĩa một phần cơng việc này với những thuật tốn học máy/học sâu nhưng các mơ hình phân tích vẫn cĩ độ phức tạp lớn, tiêu tốn nhiều tài nguyên và thời gian thực thi.
Áp dụng phương pháp phân tích tĩnh, tác giả Ngơ Quốc Dũng và các cộng sự [30] đã trình bày phương pháp phát hiện mã độc IoT Botnet dựa trên đồ thị PSI (Printable String Information) thu được từ dịch ngược mã nguồn tệp thực thi. Với các đặc trưng thu được, các tác giả sử dụng mạng nơ-ron tích chập (Convolutional Neural Network -
CNN) để phân loại, phát hiện mã độc IoT Botnet. Kết quả bằng thực nghiệm cho thấy phương pháp đề xuất cĩ độ chính xác cao trên tập thử nghiệm với F1-score là 98,6%. Tuy nhiên, hạn chế của phương pháp đề xuất là phụ thuộc vào khả năng trích xuất các chuỗi PSI từ tệp thực thi. Nếu các chuỗi PSI này được mã hĩa thì tỉ lệ phát hiện chính xác bị giảm đáng kể. Điều này cũng đã được đề cập đến trong luận án tiến sĩ “Nghiên cứu đề xuất đặc trưng đồ thì PSI trong phát hiện mã độc Botnet trên các thiết bị IoT” của tác giả Nguyễn Huy Trung.
Phân tích động là phương pháp giám sát, thu thập và phân loại các hành vi tương tác của mẫu được phân tích với hệ thống để phát hiện các hành vi độc hại [31]. Kỹ thuật này cho phép mã độc thực thi trong mơi trường cĩ chức năng giám sát hành vi, các tương tác của mẫu đối với mơi trường này được lưu trữ lại. Dựa trên các khảo sát của nghiên cứu sinh về các nghiên cứu trong và ngồi nước, các đặc trưng phục vụ phát hiện mã độc trên thiết bị IoT Botnet được trích xuất chủ yếu từ ba nhĩm dữ liệu chính gồm: hành vi mạng [32–35], lời gọi hệ thống (system-calls) [36, 37], tương tác với các tài nguyên của hệ thống [38] (được tởng hợp tại Bảng 1.3). Phân tích động cĩ ưu điểm sẽ loại bỏ được các kỹ thuật gây rối mã nguồn (Packed, Obfuscated,…) thường gặp trong phân tích tĩnh. Tuy nhiên, khĩ khăn khi thực hiện phân tích động là việc xây dựng mơi trường cho phép mã độc bộc lộ hồn tồn các hành vi và cĩ khả năng giám sát đầy đủ các hành vi đĩ. Ngồi ra, việc phân tích và phát hiện hành vi độc hại trong một lượng lớn dữ liệu hành vi thu thập được cũng là một thách thức cho các nhà nghiên cứu.
Áp dụng phương pháp phân tích động, tác giả Trần Nghi Phú và cộng sự [39] đã đề xuất quy trình phát hiện mã độc IoT Botnet trong các thiết bị IoT sử dụng kiến trúc MIPS dựa trên lời gọi hệ thống. Tác giả đã sử dụng C500-Sandbox để thu thập các lời gọi hệ thống và trích xuất các đặc trưng n-gram của các chuỗi này. Phương pháp đề xuất cho kết quả phát hiện với F1-score = 97,6% và ACC = 95,6%. Tuy nhiên, như trong bài báo đã trình bày, hạn chế của phương pháp đề xuất là cơng cụ C500-Sandbox chưa tạo được mơi trường thuận lợi để mã độc bộc lộ hết các hành vi độc hại. Bên cạnh đĩ, phương pháp chưa cĩ khả năng kết hợp nhiều loại dữ liệu hành vi thu thập được để phân tích cũng làm giảm khả năng phát hiện chính xác hành vi độc hại của mã độc.
Hình 1.6 So sánh quy trình phân tích tĩnh và phân tích động mã độc
Như đã phân tích ở trên, phân tích tĩnh và phân tích động đều cĩ những ưu điểm và nhược điểm nhất định. Trong Bảng 1.2 trình bày các ưu và nhược điểm của hai phương pháp phát hiện IoT Botnet kể trên.