Mô hình tổng quan về avatar

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phát hiện mã độc trong firmware của các thiết bị định tuyến và ứng dụng (Trang 36)

Qua phân tích phía trên chúng ta thấy, hầu hết các phương pháp phân tích động hiện nay còn chưa đạt được hiệu quả mong muốn. Vì vậy, để đánh giá được thiết bị định tuyến có bị nhiễm mã độc hay không luận văn sử dụng phương pháp phát hiện mã độc trên thiết bị định tuyến thông qua mô phỏng. Quy trình phát hiện mã độc trên thiết bị định tuyến thông qua mô phỏng sẽ được trình bày cụ thể tại chương 3.

KẾT LUẬN CHƯƠNG 2

Chương 2 cung cấp những kiến thức tổng quan về thiết bị định tuyến, mã độc có trong các thiết bị nhúng, thiết bị định tuyến. Từ đó thấy được những nguy cơ, ảnh hưởng của mã độc đến hệ thống.

Nguy cơ về mã độc đang đe dọa đến sự an toàn của thiết bị IoT nói chung và thiết bị định tuyến nói riêng. Trong khi đó, những phương pháp phát hiện mã độc trên thiết bị vẫn còn tồn tại rất nhiều hạn chế. Những mẫu mã độc ngày nay ngày càng tinh vi hơn, chúng sử dụng các kỹ thuật gây rối, mã hóa gây ra rất nhiều khó khăn cho phân tích tĩnh. Trong khi các phương pháp phân tích động hiện nay chưa tỏ rõ được hiệu quả và độ chính xác. Vậy làm cách nào để có thể giám sát được toàn bộ hoạt động của thiết bị, phục vụ cho mục đích phát hiện mã độc? Và làm thế nào để đánh giá được thiết bị cũng như những firmware mà nhà phân phối cung cấp có thực sự an toàn? Để trả lời được những câu hỏi này, luận văn sẽ trình bày quy trình phát hiện mã độc trên thiết bị định tuyến ở chương tiếp theo.

CHƯƠNG 3: QUY TRÌNH PHÁT HIỆN MÃ ĐỘC TRÊN THIẾT BỊ ĐỊNH TUYẾN

Sự an toàn của thiết bị định tuyến có ảnh hưởng rất lớn đến sự an toàn của cả hệ thống IoT. Trong khi mã độc ngày càng trở nên tinh vi hơn thì những phương pháp phát hiện mã độc hiện nay không còn phát huy được hiệu quả nữa. Chính vì vậy, phương pháp phát hiện mã độc mới có hiệu quả và độ chính xác cao hơn là rất cần thiết. Trong chương này, luận văn sẽ nghiên cứu, đề xuất quy trình phát hiện mã độc trên thiết bị định tuyến thông qua mô phỏng.

3.1. ĐỀ XUẤT QUY TRÌNH PHÁT HIỆN MÃ ĐỘC

Để đánh giá độ an toàn trên một lượng lớn firmware và giải đáp câu hỏi: “liệu các phiên bản firmware để cập nhật mà nhà phân phối cung cấp có an toàn?” luận văn đề xuất quy trình phát hiện mã độc trên thiết bị định tuyến thông qua mô phỏng. Quy trình này bao gồm 3 bước, cụ thể như sau:

Bước 1: Tải và giải nén firmware do nhà phân phối cung cấp.

Bước 2: Bóc tách Firmware và mô phỏng firmware dựa trên máy ảo

QEMU. Các máy ảo QEMU được xây dựng sẵn, cài đặt công cụ giám sát và phù hợp với từng môi trường thực thi như ARM, MIPS, x86... nên có thể sử dụng để nhanh chóng mô phỏng với từng loại firmware khác nhau.

Bước 3: Thực thi các ứng dụng trong firmware trên môi trường mô

phỏng và phân tích kết quả giám sát để phát hiện mã độc.

Ưu điểm của phương pháp này là:

- Có thể sử dụng lại các máy ảo QEMU đã được cài đặt chương trình giám sát và các thư viện cần thiết để mô phỏng Firmware, qua đó rút ngắn thời gian mô phỏng Firmware.

- Thời gian phân tích, phát hiện mã độc nhanh dựa trên kết quả thu được từ các công cụ giám sát.

Hình 3.1. Tổng quan về quy trình phát hiện mã độc trên thiết bị định tuyến

thông qua mô phỏng

Nội dung các bước được mô tả chi tiết ở các mục sau.

3.2. BƯỚC 1, THU THẬP FIRMWARE TỪ CÁC NHÀ CUNG CẤP THIẾT BỊ ĐỊNH TUYẾN THIẾT BỊ ĐỊNH TUYẾN

Ở bước đầu tiên, tiến hành thực hiện việc thu thập firmware từ website của các nhà cung cấp thiết bị định tuyến như: TP-link, D-link, Linksys…Do số lượng firmware được các nhà phân phối cung cấp quá lớn, không thể tải về một cách thủ công nên cần sử dụng một chương trình viết bằng ngôn ngữ lập trình Python để tự động hóa việc tải firmware.

Hai nguồn chính trong việc thu thập firmware bao gồm:

- Các website của nhà phân phối như: D-link, Belkin, Xerox, Tp-link, Asus…

- Các trang tin FTP chuyên dụng trong việc tìm kiếm và thu thập địa chỉ URL chứa firmware dựa vào từ khóa các nhà phân phối để tải về.

Các tập tin khi tải về thường được nén bằng các chuẩn khác nhau. Chính vì vậy, cần phải giải nén để tiến hành trích chọn mã nguồn nhị phân là firmware thực sự. Tải Firmware từ Internet Bóc tách Firmware (FMK hoặc Binwalk) Mô phỏng Firmware

dựa trên QEMU đã cài các công cụ giám

sát Thực thi các ứng dụng

trên Firmware và phân tích kết quả giám sát Internet Firmware Kết quả Bước 1 Bước 3

Thực hiện tải và giải nén firmware

- Lập trình chương trình download.py có tính năng tự động tải tập tin firmware và giải nén tập tin:

from os.path import basename import os

#from urlparse import urlsplit

import urllib.parse

#import urllib2

import urllib.request

from urllib.request import urlopen import tarfile

import pyunpack import zipfile import rarfile

def download(url, out_path):

response = urlopen(url)

localName = basename(response.url)

urllib.request.urlretrieve(url, out_path + localName)

print("-->Tai thanh cong tap tin tu url: " + url) return localName

for urlFile in open('data.txt'):

print("Tai tap tin tu url: " + urlFile) nameFile = download(urlFile, './') outFolder = nameFile[:-4] os.mkdir('./' + outFolder + '/') if zipfile.is_zipfile(nameFile): zip = zipfile.ZipFile(nameFile) zip.extractall('./' + outFolder) elif tarfile.is_tarfile(nameFile): tar = tarfile.open(nameFile) tar.extractall('./' + outFolder) elif rarfile.is_rarfile(nameFile): rar = rarfile.RarFile(nameFile) rar.extractall('./' + outFolder)

print("-->Giai nen thanh cong tap tin: " + nameFile)

- Tạo tập tin data.txt chứa các đường link tải tập tin firmware, ví dụ: https://ftp.dlink.ru/pub/NAS/DNS- 320/Firmware/DLINK_DNS320.2.05b10(2.13.0226.2016).zip https://ftp.dlink.ru/pub/NAS/DNS-320/Firmware/DNS- 320_A1_FW_v2.00.rar https://ftp.dlink.ru/pub/NAS/DNS-320/Firmware/DNS- 320_A2_FW_v2.03b03.rar https://ftp.dlink.ru/pub/NAS/DNS-320/Firmware/DNS- 320_A2_FW_v2.05b08.zip ………

Các tập tin firmware được tải về và được giải nén:

3.3. BƯỚC 2, BÓC TÁCH FIRMWARE VÀ MÔ PHỎNG DỰA TRÊN MÁY ẢO QEMU

3.3.1. Bóc tách Firmware

Thực hiện bóc tách firmware bằng công cụ Binwalk hoặc Firmware- Mod-Kit (FMK) [7]. Công cụ Firmware-Mod-Kit (FMK) được sử dụng để dịch ngược mã nguồn nhị phân firmware thành mã nguồn tường minh trong mô hình đề xuất. FMK là một tập các câu lệnh dưới dạng kịch bản (script) và công cụ tích hợp nhằm mục đích dịch ngược và đóng gói các firmware có nền tảng là linux [8].

* Các chức năng chính của firmware-mod-kit gồm có:

- Dịch ngược các firmware thành mã nguồn

- Cho phép chỉnh sửa các tập tin mã nguồn của firmware sau khi đã dịch ngược

- Tải công cụ FMK trên Ubuntu bằng lệnh sau:

- Dùng FMK hoặc binwalk để trích xuất tập tin firmware bằng lệnh như sau:

$extract-firmware.sh DLINK_DNS320.2.05b10\(2.13.0226.2016\) Kết quả thu được các tập tin, thư mục như sau:

3.3.2. Mô phỏng Firmware dựa trên máy ảo QEMU

Vấn đề lớn nhất đối với việc phân tích mã độc trên firmware là phải có được quyền giám sát, thu thập thông tin ở mức hệ điều hành của firmware, điều mà chưa có một phương pháp nào có thể giải quyết triệt để. Từ các máy ảo QEMU đã được cộng đồng nghiên cứu về Firmware trên thế giới xây dựng (có nhiều loại khác nhau, phù hợp với từng loại kiến trúc Firmware như ARM, MIPS, x86, Power PC…).

Máy ảo đóng vai trò vô cùng quan trọng đối với lập trình viên trong việc mô phỏng các ứng dụng hay phần mềm trên thiết bị nào đó. Máy ảo là một trình giả lập hệ thống máy tính. Máy ảo sử dụng tài nguyên và chạy trên máy tính thật đồng thời hoạt động riêng biệt hoàn toàn so với hệ thống máy tính thật.

Máy ảo cho phép tạo ra một môi trường riêng biệt, cách ly hoạt động với máy thật. Ở môi trường này, có thể nghiên cứu, tiếp cận và xử lý các loại mã độc

khác nhau mà không ảnh hưởng trực tiếp đến bảo mật của máy thật.

QEMU được sử dụng trên hệ điều hành Linux với phiên bản miễn phí. QEMU không yêu cầu đăng nhập để quản lý và sử dụng. QEMU hỗ trợ tự động điều chỉnh kích thước của đĩa ảo và thực hiện chạy mã khách trực tiếp trên phần cứng. Điều này giúp QEMU trở thành lựa chọn hàng đầu cho việc xây dựng máy ảo di động trên ổ cứng.

Khác với các thiết bị máy tính cá nhân khi bộ vi xử lý đa phần dùng nền tảng i386 và hệ điều hành Windows, 86% các thiết bị định tuyến dùng các bộ vi xử lý như MIPS và ARM với hệ điều hành Linux. Do đó, yêu cầu đối với một môi trường mô phỏng đầy đủ cho các thiết bị định tuyến phải thỏa mãn điều kiện là hỗ trợ đa nền tảng vi xử lý: MIPS, ARM, PowerPC,…và đa nền tảng hệ điều hành đặc biệt là Linux.

Luận văn nghiên cứu bổ sung các công cụ giám sát vào các máy ảo này phục vụ mục đích phân tích mã độc. Cụ thể như sau:

(1) Nghiên cứu bổ sung công cụ strace để theo dõi các cuộc gọi hệ

thống (system-calls)

(2) Nghiên cứu bổ sung công cụ tcpdump để giám sát các hành vi

mạng của hệ thống.

Sau khi đã bổ sung các công cụ cần thiết, tác giả mô phỏng hoạt động của firmware bằng cách đưa toàn bộ tập tin đã được bóc tách ở Bước 1 vào máy ảo QEMU.

Các bước thực hiện cụ thể như sau:

- Xác định loại kiến trúc, môi trường thực thi của Firmware từ các tập tin đã được bóc tách bằng lệnh sau:

$file bin/busybox

Lưu ý: có thể thay bin/busybox bằng tập tin thực thi khác trong các tập tin bóc tách từ Firmware

Ví dụ:

- Tùy thuộc vào môi trường thực thi (ARM, MIPS…) tiến hành tải máy ảo giả lập QEMU về và cài đặt trên máy tính

Tải tập tin máy ảo từ url (với kiến trúc ARM ta tải tập tin: debian_wheezy_ armhf_standard.qcow2):

https://people.debian.org/~aurel32/qemu/mipsel/debian_squeeze_mipse l_standard.qcow2

- Tải tập tin vmlinux-3.2.0-4-4kc-malta từ url:

https://people.debian.org/~aurel32/qemu/mipsel/vmlinux-3.2.0-4-4kc- malta

- Chạy máy ảo bằng câu lệnh sau: cd \

cd .\qemu\

.\qemu-system-mipsel.exe -M malta -kernel E:\image\vmlinux-3.2.0-4- 4kc-malta -hda E:\image\debian_squeeze_mipsel_standard.qcow2 -append "root=/dev/sda1 console=tty0" -nographic -net nic -net user,hostfwd=tcp::1810-:22 -m 2048

- Sau khi máy ảo QEMU được khởi chạy, dùng chương trình puty truy cập vào máy ảo:

Mở chương trình putty và nhập các thông tin hostname: localhost; port: 1810 như hình sau:

- Để di chuyển tập tin dữ liệu từ máy thật vào máy ảo QEMU hoặc ngược lại, có thể sử dụng chương trình winscp. Nhập thông tin đăng nhâp trên winscp tương tự như trên putty:

- Chuyển các tập tin cài đặt chương trình tcpdump và strace vào máy ảo bằng winscp:

- Cài đặt công cụ strace bằng lệnh sau: $dpkg -I strace_4.5.20-2_mipsel.deb Kết quả cài đặt thành công như sau:

- Cài đặt tcpdump bằng lệnh sau:

$dpkg -I libpcap0.8_1.1.1-2+squeeze1_mipsel.deb Kết quả cài đặt thành công như sau:

- Chuyển toàn bộ các tập tin đã được bóc tách từ Firmware vào máy ảo bằng chương trình winscp:

Kết quả: thư mục cpi-root chứa toàn bộ các tập tin được trích xuất ra từ Firmware.

Từ hình trên, có thể thấy các thư mục đã được bóc tách từ Firmware như bin, dev, etc, home… đã được chuyển vào máy ảo QEMU

- Để giám sát lưu lượng mạng ta dùng lệnh: tcpdump -w out.pcap

Trong thử nghiệm này, tập tin bin/alphapd là tập tin dịch vụ trên firmware, để giám sát chương trình alphapd ta dùng lệnh sau:

strace chroot . ./bin/alphapd

Lưu ý: Trong quá trình giám sát, tùy thuộc vào chương trình thực thi để giám sát đầy đủ có thể cần bổ sung thêm thư viện, tập tin cho môi trường do máy ảo QEMU có thể thiếu các thư viện (lib).

Từ hình trên cho thấy nhật ký hành vi của chương trình ứng dụng

alphapd đã được ghi lại và hiển thị trên màn hình.

Cụ thể, có thể thấy chương trình alphapd khi thực thi sẽ mở tập tin ở thư mục “/var/run/alphad.pid” và thực hiện các lệnh open, write…

3.3.3. Một số dấu hiệu phát hiện chương trình được giám sát là mã độc

Từ các kết quả được ghi lại bởi công cụ giám sát strace và tcpdump có thể phát hiện mã độc dựa vào các dấu hiệu sau:

(1) Phát hiện mã độc dựa vào dấu hiệu hoạt động mạng:

- Phát hiện chương trình có kết nối đến tên miền, địa chỉ IP máy chủ điều khiển, dấu hiệu này cho thấy mã độc kết nối đến máy chủ điều khiển để nhận lệnh điều khiển của tin tặc.

- Phát hiện chương trình gửi hàng loạt gói tin đến một địa chỉ nhất định, dấu hiệu này cho thấy mã độc thực hiện tấn công từ chối dịch vụ (DDOS) theo lệnh điều khiển của tin tặc.

- Phát hiện chương trình gửi hàng loạt gói tin trên giao thức SMTP, dấu hiệu này cho thấy mã độc gửi hàng loạt thư rác theo lệnh điều khiển của tin tặc.

- Phát hiện chương trình lắng nghe kết nối từ mạng Internet ở một cổng khác thường (không phải cổng thường dùng như 80, 443), dấu hiệu này cho thấy mã độc chờ đợi tin tặc kết nối đến để thực hiện các lệnh điều khiển.

(2) Phát hiện mã độc dựa vào hành vi hệ thống

- Phát hiện mã độc có hành vi thay đổi cấu hình thiết bị định tuyến như: cho phép quản trị thiết bị từ ngoài mạng Internet… Dấu hiệu này cho thấy mã độc đang mở kết nối quản trị, cho phép tin tặc quản trị thiết bị định tuyến từ ngoài mạng Internet.

- Phát hiện mã độc chạy chương trình thu nhận các dữ liệu kết nối mạng, dấu hiệu này cho thấy mã độc đang giám sát hoạt động của người dùng theo lệnh điều khiển của tin tặc.

Ngoài ra, để có thể phát hiện mã độc cần dựa trên kinh nghiệm và kết quả nghiên cứu, phân tích mã độc của các hãng bảo mật trên thế giới.

KẾT LUẬN CHƯƠNG 3

Tại chương này, luận văn đã đưa ra quy trình phát hiện mã độc trên thiết bị định tuyến. Với quy trình này sẽ giúp trả lời được câu hỏi có hay không có mã độc tồn tại trên thiết bị định tuyến và liệu các firmware mà nhà phân phối cung cấp có thực sự an toàn?

Phương pháp mà luận văn thực hiện dựa trên nền tảng của kỹ thuật phân tích động dựa vào hành vi. Với phương pháp này, luận văn có thể biết chính xác hành vi của mã độc tại từng thời điểm mà nó đang thực thi trên thiết bị. Điều này cho phép thu được dữ liệu khá đầy đủ để phân tích, phát hiện các hành vi bất thường, phát hiện mã độc.

Với quy trình này, luận văn đã mô phỏng được firmware một cách khá đầy đủ và lấy được thông tin ở mức hệ điều hành của firmware - những thông tin hết sức quan trọng trong việc phát hiện mã độc. Dựa vào quy trình này, việc phát hiện mã độc trên một số lượng lớn các thiết bị, kiểm tra độ an toàn của firmware do nhà phân phối cung cấp trở nên khả thi hơn.

CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM

Như đã trình bày ở Chương 3, luận văn nghiên cứu phân tích, phát hiện mã độc trên thiết bị định tuyến thông qua mô phỏng. Ở chương này, luận văn sẽ trình bày kết quả thực nghiệm đạt được.

4.1. KẾT QUẢ KHI THỰC NGHIỆM QUY TRÌNH PHÁT HIỆN MÃ ĐỘC TRÊN THIẾT BỊ ĐỊNH TUYẾN THÔNG QUA MÔ PHỎNG ĐỘC TRÊN THIẾT BỊ ĐỊNH TUYẾN THÔNG QUA MÔ PHỎNG

Luận văn sẽ trình bày kết quả thu thập firmware từ Internet. Kết quả quá trình bóc tách, dịch ngược firmware và kết quả mô phỏng, theo dõi hành vi của firmware.

Cụ thể ở phần này, luận văn sẽ trình bày cách thức để phân tích, phát hiện mã độc Linux/Mirai trên thiết bị định tuyến thông qua mô phỏng.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phát hiện mã độc trong firmware của các thiết bị định tuyến và ứng dụng (Trang 36)

Tải bản đầy đủ (PDF)

(60 trang)