CHƯƠNG 1: TỔNG QUAN MÃ ĐỘC IOT BOTNET VÀ CÁC BIỆN PHÁP PHÁT HIỆN 1. Tổng quan về mã độc IoT Botnet 1. Tổng quan về thiết bị IoT dân dụng Các thiết bị IoT dân dụng hiện nay phần lớn bao gồm các thiết bị định tuyến, IP Camera và các thiết bị Smartbox-TV. Phần lớn các thiết bị này có cấu trúc phần cứng và phần mềm tương tự nhau nên trong phần này, tác giả lựa chọn trình bày chi tiết về kiến trúc của thiết bị định tuyến.
Thiết bị định tuyến (router) là thiết bị mạng lớp 3 của mô hình OSI (Network Layer) được sử dụng trong việc liên kết giữa hai hoặc nhiều mạng máy tính lại với nhau nhằm chuyển các gói dữ liệu giữa các thiết bị mạng. Cấu trúc của một thiết bị định tuyến được mô tả qua hình 1.1 và gồm các thành phần chính như sau: Hình 1. Cấu trúc của một thiết bị định tuyến (Nguồn: Internet) - CPU: Điều khiển mọi hoạt động của bộ định tuyến trên cơ sở các hệ thống chương trình thực thi của hệ điều hành. Luan van 5 - ROM: Chứa các chương trình tự động kiểm tra và có thể có thành phần cơ bản nhất sao cho bộ định tuyến có thể thực thi được một số hoạt động tối thiểu ngay cả khi không có hệ điều hành hay hệ điều hành bị hỏng.
- RAM: Cấp phát vùng nhớ cho các quá trình như: lưu trữ các bảng định tuyến, các vùng đệm, tập tin cấu hình khi chạy, các thông số đảm bảo hoạt động của bộ định tuyến. - FLASH: Là thiết bị nhớ có khả năng ghi và xóa, không mất dữ liệu khi mất nguồn. Thông thường, firmware của bộ định tuyến được lưu trữ ở đây. Tùy thuộc các thiết bị định tuyến khác nhau mà hệ điều hành sẽ được chạy trực tiếp từ Flash hay được tải lên RAM trước khi chạy.
Tập tin cấu hình cũng có thể được lưu trữ trong Flash. - NVRAM (None-Volatile RAM): Có chức năng tương tự như FLASH nhưng với khả năng lưu trữ ít hơn. NVRAM thường chứa tập tin cấu hình của thiết bị để đảm bảo khi khởi động, cấu hình mặc định của Thiết bị định tuyến sẽ được tự động nạp về đúng trạng thái đã lưu giữ. Trên các thiết bị IoT dân dụng như thiết bị định tuyến, IP Camera thì firmware dựa trên nền hệ điều hành nhân Linux được sử dụng phổ biến và rộng rãi.
Theo nghiên cứu của Andrei Costin và cộng sự trên 32.356 firmware thì tỉ lệ dựa trên nền tảng Linux lên tới 86%. Nền tảng hệ điều hành phổ biến trên các thiết bị định tuyến (Nguồn: Andrei Costin) Luan van 6 Cấu trúc của firmware rất đa dạng, phụ thuộc vào chức năng và thiết kế của từng nhà sản xuất. Các firmware có thể được chia thành các kiểu như sau: - Integrated (apps + OS-as-a-lib): Đây là một bản firmware không đầy đủ, các chức năng và hệ điều hành được xây dựng như một thư viện chứ không có đầy đủ các thành phần cần thiết như trong bản Full-blown. - Partial updates (apps or libs or resources or support): Loại firmware này chỉ chứa các tập tin dùng trong việc cập nhật cho bản firmware cần nâng cấp.
Tổng quan về mã độc Botnet trên thiết bị IoT dân dụng Dựa trên các nghiên cứu của Kishore, Costin[11][12][13] và cộng sự các loại mã độc botnet trên các thiết bị IoT dân dụng có các loại sau đây: - Linux.Hydra: Là mã độc đầu tiên lây nhiễm trên các thiết bị IoT (gọi tắt là mã độc IoT).Hydra xuất hiện vào năm 2008, ở dạng mã nguồn mở nhằm mục đích tấn công các thiết bị dựa trên nền tảng kiến trúc MIPS. Pha thực hiện khai thác của Linux.Hydra dựa trên tấn công từ điển vào các thiết bị định tuyến D-Link có lỗ hổng về xác thực. Khi lây nhiễm thiết bị thành công, mã độc Linux.Hydra sẽ biến thiết bị trở thành một phần trong mạng botnet dựa trên IRC, nhưng chỉ thực hiện tấn công SYN Flood. Mặc dù nhiều nghiên cứu đã chỉ ra rằng Linux.Hydra có khả năng tấn công UDP Flood, nhưng mã nguồn được công bố thì không cho thấy khả năng này.
- Psyb0t: Tương tự như mã độc Linux.Hydra, mã độc Psyb0t được phát hiện lây nhiễm trên các thiết bị định tuyến, modem DSL có vi xử lý MIPS litteendian chạy firmware Mipsel Linux vào năm 2009 bởi nhà nghiên cứu bảo mật Terry Baume người Úc. Psyb0t đã lây nhiễm hơn 100.000 thiết bị và hoạt động dựa trên cơ chế nhận lệnh từ máy chủ C&C qua giao thức IRC. Phương thức chính để lây nhiễm thiết bị IoT của Psyb0t là sử dụng truy cập Telnet và SSH bằng cách tấn công vét cạn các khả năng đăng nhập với danh sách tài khoản được định nghĩa trước gồm 6.000 tên đăng nhập và 13. Sau khi lây nhiễm, Psy0t sẽ chặn truy cập thiết bi Luan van 7 định tuyến qua một số cổng TCP như 22, 23, 80.
Mã độc Psyb0t và có khả năng thực hiện tấn công UDP Flood, ICMP Flood. - Chuck Norris: Ngay khi mã độc botnet Psyb0t được tạo ra, một mẫu mã độc mới đã được phát triển và trở thành đối thủ cạnh tranh trong năm 2010, được gọi là mã độc Chuck Norris. Mã độc này có rất nhiều điểm tương đồng với mã độc Psyb0t, vì thế đây có thể là mã độc tiến hóa của Psyb0t. Khả năng tấn công từ chối dịch vụ bằng các kỹ thuật UDP Flood, ACK Flood, SYN Flood.
Mã độc Chuck Noris là một loại mã độc IRC bot được phát hiện lây nhiễm thiết bị định tuyến và modem DLS. - Tsunami/Kaiten: Tsunami còn có thể thực hiện tấn công bằng một số kỹ thuật phức tạp như HTTP Layer 7 Flood, TCP XMASS. Mã độc Tsunami là mã độc IRC bot, hỗ trợ việc thực hiện nhiều câu lệnh và chỉnh sửa thông tin cấu hình máy chủ DNS trên thiết bị đã lây nhiễm khiến cho lưu lượng từ thiết bị IoT được chuyển hướng tới máy chủ điều khiển của kẻ tấn công. Tùy thuộc vào các biến thể của mã độc mà nó có thể chỉnh sửa vị trí lưu trữ các tập tin /etc/init.local nhằm tự động thực thi những tập tin mã độc mỗi khi người dùng đăng nhập hoặc tại thư mục /etc/rc.local để đảm bảo các tập tin thực thi khi hệ thống khởi động.
Một khi đã cài đặt thì mã độc Tsunami sẽ tham gia vào một kênh trao đổi thông tin IRC đã được nhúng trong mã nguồn của mã độc để nhận các chỉ thị của kẻ tấn công từ xa. Bên cạnh khả năng thực hiện tấn công từ chối dịch vụ, mã độc có thể ngắt tiến trình, tải và thực thi các tập tin, giả mạo địa chỉ IP của những thiết bị dễ bị tổn thương. - Aidra/LightAidra/Zendran: Xuất hiện trong khoảng 2012, đây là 3 loại mã độc có nhiều phần mã nguồn tương tự nhau vì thế có thể ghép vào chung một loại mã độc. So sánh với những loại mã độc đã trình bày trước thì mã độc này phức tạp hơn vì chúng có thể biên dịch dựa trên nhiều kiến trúc khác nhau như MIPS, ARM, PPC.
Mã độc lây nhiễm và đưa thiết bị vào mạng botnet dựa trên IRC, có khả năng thực hiện một số tấn công cơ bản SYN Flood và ACL Flood. Theo phân tích của hãng bảo mật Symantec thì mã độc Lightaidra lây nhiễm trên các thiết bị IoT có nền tảng Linux, khai thác lỗ hổng CVE-2014-6271 và được Luan van 8 phân loại là sâu, trojan. Mã độc Lightaidra lây lan bằng cách dò quét địa chỉ IP công cộng để tìm kiếm các thiết bị sử dụng dịch vụ telnet, các tài khoản đăng nhập mặc định hoặc không đặt mật khẩu. Mã độc Lightaidra có thể nhận các lệnh điều khiển từ các địa chỉ: irc.
Sâu mã độc Lightaidra thực hiện truyền tin với máy chủ C&C đã được nhúng trực tiếp trong mã nguồn của Lightaidra như gửi thông tin đăng nhập thành công, nhận lệnh khởi tạo các cuộc tấn công từ chối dịch vụ sử dụng các kỹ thuật TCP flood, UDP flood, DNS flood… Quy trình hoạt động của mã độc LightAidra/Aidra như sau: Đầu tiên, mã độc thử kết nối tới cổng Telnet. Khi kết nối thành công, mã độc có thể sử dụng kết hợp một số tài khoản mặc định như root/root, root/admin… Sau khi đăng nhập thành công, mã độc LightAidra/Aidra sẽ tải về tập tin getbinaries.sh và thực thi tập tin đó. Chức năng của tập này đơn giản là: - Xóa những tập tin nhị phân mã độc cũ để đảm bảo chỉ có duy nhất mã độc LightAidra/Aidra chạy trên thiết bị; - Tải về các tập tin nhị phân của mã độc và thực thi chúng; - Thay đổi mật khẩu; - Chỉnh sửa cài đặt trong tường lửa sử dụng Iptable; - Xóa tập tin getbinaries. Sau khi thực thi các tập tin nhị phân đã tải về, mã độc LightAidra/Aidra thực hiện kết nối thiết bị tới hệ thống mạng botnet và máy chủ IRC.
Tất cả các tập tin nhị phân mã độc LightAidra/Aidra được tải về thư mục /var/run, /var/tmp trên thiết bị (nếu thiết bị sử dụng x86 thì sẽ lưu trong thư mục /tmp) , đây là những thư mục sẽ bị xóa khi thiết bị khởi động lại. Trong quá trình phân tích nếu phát hiện những tập tin thực thi lưu trong thư mục /var/run thì đó có khả năng cao là tập tin mã độc bởi các tập tin thực thi không được lưu trữ tại /var/run trên một hệ thống bình thường. Thông thường, việc khởi động lại thiết bị đủ để dọn dẹp thiết bị bởi vì đối với các nền tảng hệ thống nhúng thì hệ thống tập tin (tệp tinsystem) được mount dạng chỉ Luan van 9 đọc (read-only), vì thế các thư mục /tmp và /run lưu trữ trong RAM (Random Access Memory) được sử dụng. Mọi thông tin, dữ liệu trên /var và /tmp sẽ bị xóa khi thiết bị khởi động lại.
Tuy nhiên, các thiết bị IoT thường ít khi khởi động lại và thay đổi mật khẩu nên việc lây nhiễm lại của mã độc diễn ra nhanh chóng. - Spike/Dofloo/MrBlack/Wrkatk/Sotdas/AES.DdoS: Sau sự xuất hiện mạnh mẽ của các loại mã độc tương tự Linux.Hydra thì vào năm 2014 một dòng mã độc mới đã xuất hiện với nhiều loại mã độc như Spike, Dofloo, nhưng rất khó có thể phân biệt giữa các mã độc đó. Tuy nhiên, điểm khác biệt trong kiến trúc mạng botnet so với những dòng mã độc trước đây là thường sử dụng IRC-based thì dòng mã độc này sử dụng Agent-handler. Hơn nữa, một cơ chế bảo đảm sự bền vững bằng cách giả mạo tập tin etc/rc.local, nhằm vẫn tồn tại khi thiết bị khởi động lại.
Bên cạnh đó, đặc trưng nổi bật của mã độc này là sử dụng luồng SendInfo để tính toán hiệu năng của thiết bị và gửi về máy chủ CNC, khi đó hacker có thể triển khai mật độ thực hiện tấn công từ chối dịch vụ phân tán trên mỗi thiết bị bot một cách hiệu quả.