Đây cũng là một vấn đề hiện nay ở nước ta chưa được chú trọng đầu tư nghiên cứu, phát triển các mô hình, cách thức phân tích, phát hiện mã độc nhúng trong phần sụn thiết bị mạng đặc biệt
Trang 1MÔ HÌNH PHÁT HIỆN MÃ ĐỘC TRÊN FIRMWARE
CỦA MỘT SỐ THIẾT BỊ ĐỊNH TUYẾN
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN HUY TRUNG
MÔ HÌNH PHÁT HIỆN MÃ ĐỘC TRÊN FIRMWARE CỦA MỘT SỐ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Nguyễn Linh Giang
Hà Nội – Năm 2017
Trang 31
MỤC LỤC
MỤC LỤC 1
LỜI CAM ĐOAN 3
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT 4
DANH MỤC CÁC BẢNG 5
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 6
LỜI CẢM ƠN 7
MỞ ĐẦU 8
1 Lý do chọn đề tài 8
2 Lịch sử nghiên cứu 9
3 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu 10
4 Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả 11
5 Phương pháp nghiên cứu 12
CHƯƠNG 1 – TỔNG QUAN VỀ MÃ ĐỘC VÀ THIẾT BỊ NHÚNG 13
1.1 Khái niệm về mã độc 13
1.2 Phân loại mã độc 13
1.3 Đối tượng lây nhiễm mã độc 18
1.4 Các phương pháp phát hiện mã độc 21
1.4.1 Định nghĩa máy phát hiện mã độc 21
1.4.2 Phân tích tĩnh mã độc 22
1.4.3 Phân tích động mã độc 25
1.5 Hệ thống nhúng và thiết bị nhúng 29
1.6 Thiết bị định tuyến 32
1.7 Mã độc nhúng trên firmware 35
CHƯƠNG 2 CÁC PHƯƠNG PHÁP TRÍCH XUẤT VÀ PHÂN TÍCH FIRMWARE 38
Trang 42
2.1 Khái niệm firmware 38
2.2 Cấu trúc firmware 39
2.3 Phương pháp thu thập firmware thiết bị định tuyến 41
2.3.1 Thu thập firmware gián tiếp 41
2.3.2 Thu thập firmware trực tiếp 42
2.3.3 Công cụ gỡ rối JTAG 42
2.4 Phương pháp phân tích firmware 47
2.4.1 Mô hình Avatar 48
2.4.2 Mô hình FRAK 53
CHƯƠNG 3 ĐỀ XUẤT MÔ HÌNH PHÁT HIỆN MÃ ĐỘC NHÚNG TRÊN FIRMWARE 55
3.1 Tổng quan về mô hình 55
3.2 Xây dựng mô hình 57
3.2.1 Thu thập firmware thiết bị định tuyến 57
3.2.2 Giải nén và trích chọn mã nguồn nhị phân 62
3.2.3 Dịch ngược firmware 63
3.2.4 Phân tích các tập tin mã nguồn tường minh 65
3.3 Kết quả, đánh giá mô hình 66
KẾT LUẬN VÀ KIẾN NGHỊ 73
TÀI LIỆU THAM KHẢO 75
Trang 53
LỜI CAM ĐOAN
Tôi xin cam đoan số liệu và kết quả nghiên cứu trong luận văn này là trung thực
và chưa hề được sử dụng để bảo vệ một học vị nào Mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn này đã chỉ rõ nguồn gốc rõ ràng và được phép công bố
Hà Nội, ngày tháng năm 201
Học viện thực hiện
Nguyễn Huy Trung
Trang 64
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
API Application Program Interface Giao diện lập trình ứng dụng BIOS Basic Input/Output System Hệ thống nhập xuất cơ bản CFG Control Flow Graph Đồ thị luồng điều khiển DFG Data Flow Graphs Đồ thị luồng dữ liệu
DLL Dynamic Link Library Thư viện liên kết động MBR Master Boot Record Bản ghi khởi động
MSDN Microsoft Develop Network Bảng dịch vụ hệ thống IAT Import Address Table Bảng địa chỉ hàm nhập khẩu OEP Original Entry Point Điểm vào chương trình gốc RAT Remote Administration Tool Công cụ quản trị từ xa
SOHO Small Office/Home Office Thiết bị dân dụng
LDT Local Domain Table Bảng miền cục bộ
Trang 75
DANH MỤC CÁC BẢNG
Bảng 1 Độ chính xác thống kê dựa trên Entropy
Bảng 2 Thống kê tập mẫu firmware các hãng thiết bị định tuyến
Bảng 3 Kết quả mã định danh MD5 trong cơ sở dữ liệu VirusTotal và ClamAV Bảng 4 Cấu trúc cơ sở dữ liệu các firmware an toàn
Trang 86
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1 Các thành phần để đảm bảo an toàn cho thông tin
Hình 2 Ví dụ về một Rootkit
Hình 3 Các mức bảo mật của hệ thống trên Windows
Hình 4 Cấu tạo của bộ định tuyến
Hình 5 Nền tảng OS sử dụng phổ biến trong firmware
Hình 6 Bộ công cụ tìm kiếm Shodan.io
Hình 7 Một ví dụ tìm kiếm thông tin với công cụ Shodan.io
Hình 8 Vị trí firmware trong kiến trúc bảo mật thông tin
Hình 9 Các phương pháp thu thập firmware thiết bị định tuyến
Hình 10 Thiết bị ExC500 có khả năng sao chép firmware từ flash
Hình 11 Sơ đồ kết nối chuỗi các Chíp
Hình 12 Cấu trúc 1 chíp tích hợp JTAG bên trong
Hình 13 Mô hình hoạt động của TAP controller
Hình 14 Dữ liệu truyền thông qua TDI và TDO
Hình 15 Hệ thống tập tin trên Linux
Hình 16 Kiến trúc hệ thống Công cụ Avatar
Hình 17 Chế độ “full-separation mode”
Hình 18 Kiến trúc của công cụ FRAK
Hình 19 Mô hình tổng quan phân tích, phát hiện mã độc
Hình 20 Các trang tin tìm kiếm FTP
Hình 21 Website hỗ trợ của các hãng thiết bị định tuyến
Hình 22 Thiết bị TIAO USB Adapter (a) và Giao diện PCB của TUMPA (b) Hình 23 Pinout JTAG của router Linksys WRT54G (a) và Sơ đồ cáp JTAG (b) Hình 24 Các tập tin hệ thống trên firmware sau khi dịch ngược
Hình 25 Quá trình rà quét mã độc bằng các công cụ
Hình 26 Mô hình triển khai hạ tầng phân tích, phát hiện mã độc
Hình 27 Khảo sát các kiểu tập tin hệ thống thường dùng trên thiết bị định tuyến Hình 28 Quy trình lưu trữ firmware trong mô hình
Trang 97
LỜI CẢM ƠN
Tôi muốn bày tỏ lòng biết ơn sâu sắc tới những người đã giúp đỡ tôi trong quá trình làm luận văn Đặc biệt, tôi xin cảm ơn PGS.TS Nguyễn Linh Giang, với tâm huyết, sự tận tâm thầy đã chỉ bảo tôi chi tiết, cho tôi những lời khuyên quý báu và theo sát tôi trong từng bước làm luận văn Đồng thời tôi cũng xin gửi lời cảm ơn tới các thầy cô giáo giảng dạy tại bộ môn Truyền thông và mạng máy tính, Đại học Bách khoa Hà Nội đã truyền đạt các kiến thức cho tôi thời gian học tập, nghiên cứu tại trường
Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp trong nhóm nghiên cứu tại Khoa Công nghệ và An ninh thông tin, Học viện An ninh nhân dân đã cùng chia
sẻ, giúp đỡ, động viên, tạo mọi điều kiện thuận lợi để tôi hoàn thành nhiệm vụ học tập cũng như hoàn thành luận văn này
Trang 10và hoạt động Internet dầy đặc như ngày nay thì việc trang bị cho các tổ chức đoàn thể các phần mềm phòng chống mã độc gần như là một trong những điều kiện tiên quyết Bên cạnh đó một nhà nghiên cứu bảo mật người Đức đã phát hiện ra những lỗ hổng bảo mật trên thiết bị định tuyến do công ty Huawei của Trung Quốc sản xuất, hiện đang được sử dụng bởi nhiều nhà cung cấp dịch vụ Internet, mà hacker có thể lợi dụng để chiếm quyền điều khiển máy tính người dùng Tháng 11/2013, hai hãng viễn thông lớn của Trung Quốc là Huawei và ZTE đã bị Quốc hội Mỹ điều tra vì những cáo buộc các thiết bị của những công ty này được sử dụng để phá vỡ hoặc theo dõi nội dung các cuộc gọi điện thoại và email Như vậy nhiều thiết bị mạng của Trung Quốc đã được cài sẵn mã độc mà người sử dụng không biết Với thị trường các thiết
bị mạng ở Việt Nam, các sản phẩm Huawei và ZTE chiếm một tỉ lệ rất lớn, các thiết
bị mạng của VNPT có hơn 40% và của Viettel có hơn 60% là của Huawei và ZTE Đặc biệt, tháng 11/2014 modem router ADSL (TP-LINK 8804T của nhà cung cấp dịch vụ FPT nhập khẩu trực tiếp từ Trung quốc đã gây ra một vấn đề về an ninh mạng rất lớn, đó là khả năng các router này đã bị cài cắm mã độc backdoor để đánh cắp tài khoản trên thiết bị, bằng chứng là rất nhiều thiết bị khi đăng nhập vào trang quản trị đã bị thay đổi mật khẩu Hay như tháng 1/2016, hãng máy tính Lenovo của Trung quốc đã cài đặt phần mềm LSE (Lenovo Search Engine) [23] vào firmware của BIOS trước khi xuất xưởng và hoạt động trái phép trên máy tính người dùng Mọi cơ quan, tổ chức cần phải nhận thức được điều này để có biện pháp phòng chống cũng như xử lý khi hệ thống máy trạm/máy chủ bị lây nhiễm mã độc Tuy
Trang 119
nhiên điều này vẫn tồn tài một nguy cơ khôn lường đó là mã độc ở bên trong firmware (phần sụn) của các thiết bị điện tử nói chung và thiết bị mạng nói riêng Đây cũng là một vấn đề hiện nay ở nước ta chưa được chú trọng đầu tư nghiên cứu, phát triển các
mô hình, cách thức phân tích, phát hiện mã độc nhúng trong phần sụn thiết bị mạng (đặc biệt thiết bị định tuyến)
Các vấn đề nghiên cứu liên quan trên các nền tảng như các hệ điều hành, đặc biệt là Window cũng đã được nghiên cứu nhiều và có nhiều sản phẩm cụ thể và khá rộng rãi Tuy nhiên, việc nghiên cứu với firmware và các thiết bị định tuyến đang rất hạn chế, có nhiều khó khăn vì tính đặc thù và tính riêng biệt cao cho từng dòng khác
nhau Vì những lý do nêu trên, việc nghiên cứu đề tài: “Mô hình phát hiện mã độc
trên firmware của một số thiết bị định tuyến” có ý nghĩa về mặt thực tiễn và khoa
học, đáp ứng đòi hỏi ngày càng cao của công tác giám sát, quản lý và đảm bảo an toàn thông tin
Các nhà nghiên cứu tại một trường đại học công nghệ ở Pháp [4] đã trình bày một kết quả quan trọng về việc khảo sát, đánh giá mức độ an toàn của các thiết bị nhúng nói chung trong đó có thiết bị mạng tại hội thảo BlackHat 2014 tại Mỹ phát hiện ra rằng trong 32.256 firmware được phân tích: có hơn 38 loại lỗ hổng mới chưa được phát hiện trước đó; người ta đã trích xuất được 35.000 khóa bí mật RSA của các thiết bị trực tuyến, điều đó có nghĩa các thiết bị này dễ dàng bị giải mã các thông tin
mà đúng ra nó phải được mã hóa rất an toàn; phát hiện nhiều cổng hậu (backdoor)
Trang 12Theo khảo sát của tác giả, hiện tại ở Việt Nam chưa có một phần mềm hay hệ thống nào nào hỗ trợ việc tự động phân tích, phát hiện các thiết bị mạng nhập khẩu
và đưa đến người dùng bị cài cắm mã độc hay có lỗ hổng bảo mật được công bố rộng rãi Tháng 6/2016, tập đoàn BKAV lần đầu tiên công bố kết quả khảo sát 5,6 triệu thiết bị mạng trên thế giới đang nhiễm một lỗ hổng hết sức nguy hiểm khiến cho thiết
bị có thể bị mất quyền điều khiển, thay đổi các thông số hệ thống để thực hiện các cuộc tấn công, BKAV gọi vấn đề này là PetHole [20]
Các nghiên cứu, giải pháp trên đã tiếp cận nhiều khía cạnh, có nhiều kỹ thuật và
mô hình tốt song chủ yếu đang sử dụng các phương pháp và kỹ thuật áp dụng từ phân tích, phát hiện lỗ hổng bảo mật và mã độc của các ứng dụng trên nền hệ điều hành mức cao cho phần sụn, các phần mềm, thiết bị mức thấp Các hệ thống nhúng vốn rất
đa dạng, phức tạp và có nhiều sự khác biệt, nên các kết quả trên mới chỉ là nghiên cứu bước đầu ở một mức độ và một số dòng hạn chế và đặc biệt chưa có những nghiên cứu chuyên biệt, đáng kể cho các thiết bị vốn phổ biến trong các cơ quan, tổ chức của Việt Nam nói chung và Bộ Công an nói riêng
3 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu
a Mục đích nghiên cứu của luận văn
- Đưa ra được mô hình gồm nhiều bước phân tích, phát hiện mã độc trên firmware của một số thiết bị định tuyến
- Kết quả nghiên cứu của luận văn sẽ là nguồn tài liệu tham khảo cho giảng dạy, đào tạo an toàn thông tin tại Học viện An ninh nhân dân ( một trong 8 đơn vị đào tạo trọng điểm về An toàn thông tin của cả nước), cũng như phục vụ mục tiêu nghiên cứu
và đào tạo an ninh, an toàn thông tin và một số đơn vị có nhu cầu
Trang 1311
b Đối tượng nghiên cứu
Phân tích, phát hiện mã độc nhúng trên firmware thiết bị mạng
4 Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả
Bộ định tuyến (router) là thiết bị rất quan trọng trong hệ thống mạng, là thiết bị giữa mạng Internet và các thiết bị máy tính trên mạng LAN, chính vì thế nếu bị nhúng
mã độc thì sẽ rất nguy hiểm Mặc dù vấn đề đảm bảo an toàn thiết bị định tuyến là một vấn đề hết sức nghiêm trọng nhưng các thiết bị định tuyến không nằm trong danh sách kiểm tra an ninh của hầu hết các tổ chức và giải pháp đảm bảo an toàn mức thấp trên các thiết bị này hiện vẫn còn chưa công bố rộng rãi Chính vì thế nó đã tạo ra lỗ hổng an ninh lớn trong hệ thống phòng thủ của các tổ chức, doanh nghiệp, cá nhân
Để đảm bảo an toàn cho các thiết bị định tuyến thì cần phải thực hiện phân tích firmware của các thiết bị đó Tuy nhiên, để phân tích firmware đạt hiệu quả cao thì cần thực hiện các bước như: thu thập firmware của thiết bị, giải nén, dịch ngược, phân tích các tập tin cấu hình, các mã nguồn nhị phân tường minh,…
- Luận văn sẽ trình bày phương pháp thu thập firmware thiết bị định tuyến bằng cách trực tiếp từ các thiết bị định tuyến và từ các website của các hãng sản xuất thiết
bị định tuyến
- Đưa ra phương pháp lựa chọn tập tin mã nguồn nhị phân firmware sử dụng
Binwalk kết hợp yếu tố kiểu tập tin hệ thống và chữ ký với lệnh “file” trong Linux
- Giới thiệu phương pháp dịch ngược, bóc tách các tập tin nhị phân firmware đã trích chọn thành các tập tin mã nguồn tường minh
Trang 1412
Các vấn đề nghiên cứu phát hiện mã độc nhúng trên các nền tảng như các hệ điều hành, đặc biệt là hệ điều hành Window cũng đã được nghiên cứu nhiều và có nhiều sản phẩm cụ thể và khá rộng rãi Tuy nhiên, việc nghiên cứu với firmware và các thiết bị chuyên dụng mạng đang rất hạn chế, có nhiều khó khăn vì tính đặc thù và tính riêng biệt cao cho từng dòng thiết bị khác nhau Vì thế, việc nghiên cứu tìm các
kỹ thuật phù hợp và đề xuất các kỹ thuật, mô hình mới phân tích, phát hiện các mã độc nhúng trên các thiết bị mạng là mới và có ý nghĩa thực tiễn cao
Tác giả cũng hướng đến đưa ra giải pháp nhằm nâng cao hiệu quả trong dịch ngược firmware so với một số công cụ đã có hiện nay như firmware-mod-kit, firmadyne [15]
5 Phương pháp nghiên cứu
Trên cơ sở của những điều kiê ̣n và đă ̣c điểm nêu trên, cách tiếp câ ̣n hợp lý để
đa ̣t được mu ̣c đích nghiên cứu đề tài là viê ̣c sử du ̣ng các phương pháp nghiên cứu bao gồm:
- Nghiên cứu lý thuyết về phương thức hoạt động, phương pháp phát hiện mã độc nhúng trong phần sụn thiết bị mạng
- Kế thừa, áp dụng có chọn lọc sản phẩm khoa học và công nghê ̣ hiê ̣n có trên thế giới/trong nước để đưa ra mô hình phân tích, phát hiện các mã độc nhúng trong phần sụn thiết bị mạng
- Phương pháp khảo sát thực tế
- Phương pháp thực nghiệm khoa học
- Phương pháp chuyên gia
Trang 15Hình 1 Các thành phần để đảm bảo an toàn cho thông tin
Khái niệm này xác định không chỉ những thể loại mà thường được nói đến nhiều như virus, worm, trojan, backdoor… là mã độc mà cả những công cụ dùng để tấn công hệ thống cũng đều là mã độc như DoS, rootkit, keylogger,…
1.2 Phân loại mã độc
Có nhiều cách để phân loại mã độc [3], nếu phân loại theo đặc trưng thực thi thì
ta có mã độc lệ thuộc ứng dụng chủ (need to host) và mã độc thực thi độc lập (stand alone) Nếu phân loại theo đặc trưng hành vi thì ta có mã độc ngăn cấm, thay đổi dữ liệu và mã độc khai thác dịch vụ hệ thống… Trong đề tài này tùy thuộc vào cơ chế, hình thức lây nhiễm và phương thức phá hoại mà người ta phân biệt mã độc thành nhiều loại khác nhau: virus, trojan, backdoor, adware, …
a) Virus
Virus là một chương trình có thể lây lan chính nó từ máy tính này sang máy tính khác Đặc tính này cũng có ở Worm, nhưng sự khác biệt là virus thường phải cấy chính nó vào một tập tin thực thi để được kích hoạt Virus được chèn khéo léo vào
Trang 16- Replicatior: Khi kích hoạt chương trình chủ thì đồng thời virus cũng được kích hoạt và ngay lập tức chúng sẽ phát tán malcode
- Concealer: biện pháp virus sử dụng để tránh các chương trình phòng chống
b) Worm
Worm là một chương trình có khả năng tự nhân bản Worm có thể di chuyển từ máy tính này sang máy tính khác mà không nhờ vào bất kì tác động nào của người dùng và nó có khả năng tự nhân bản chính nó trong hệ thống của bạn, do đó máy tính của bạn có thể gửi đi không những một mà hàng trăm, thậm chí hàng ngàn bản copy của nó ra ngoài và gây ra sự tàn phá kinh khủng
Những thành phần của sâu bao gồm:
- Penetration tool: là malcode khai thác lỗ hổng trên máy tính nạn nhân để dành quyền truy cập
- Installer: công cụ thâm nhập giúp sâu máy tính vượt qua hệ thống phòng thủ đầu tiên Lúc đó Installer đưa và chuyển thành phần chính của malcode vào máy tính nạn nhân
Trang 1715
- Discovery tool: Khi đã xâm nhập vào máy, sâu sử dụng cách thức để truy lục những máy tính khác trên mạng gồm địa chỉ email, danh sách máy chủ và các truy vấn DNS
- Scanner: Worm sử dụng một công cụ kiểm tra để xác định những máy tính mục tiêu mới trong Penetration tool có lỗ hổng để khác thác
- Payload: lượng malcode tồn tại trên mỗi máy tính của nạn nhân Những malcode này có thể từ một ứng dụng truy cập từ xa hay một keylogger được dùng để đánh cắp tên đăng nhập và mật khẩu người dùng
Tùy theo phương thức lây nhiễm, có thể phân loại worm thành 2 loại:
- Network Service Worm: là loại worm sử dụng các lỗ hổng bảo mật của mạng, của hệ điều hành hoặc của ứng dụng để lây nhiễm vào hệ thống Ví dụ Sasser
- Mass Mailing Worm: là loại worm sử dụng phương thức lây lan qua email Khi worm lây nhiễm vào hệ thống thì nó tìm trong danh sách địa chỉ mail và gửi mail đến các địa chỉ đó để tiếp tục quá trình lây nhiễm Với phương thức lây nhiễm này, worm có thể lây lan rất nhanh trên hệ thống mạng Ví dụ Netsky, Mydoom
c) Trojan Horse
Theo Ed Skoudis và Lenny Zelter, Trojan horse là một chương trình thoạt nhìn
có vẻ hữu dụng nhưng trong nó lại ẩn chứa nhiều “tính năng” độc hại (ví dụ như phần mềm gõ văn bản Unikey …) nó có thể gây ra hậu quả nghiêm trọng bằng cách xóa file và phá hủy toàn bộ thông tin hệ thống của máy bị nhiễm Trojan cũng có thể tạo
ra các Backdoor trên máy tính giúp cho những kẻ tấn công có thể xâm nhập vào hệ thống, làm hư hại các thông tin cá nhân Trojan không phát tán bằng cách làm cho các file khác bị nhiễm cũng như không tự nhân bản
d) Backdoor
Backdoor giống như những chương trình truy nhập từ xa mà chúng ta thường
sử dụng Sau khi cài đặt, Backdoor cho phép toàn quyền kiểm soát từ xa những máy tính bị tấn công Chúng được coi là mã độc vì khi cài đặt mà không cần được cho phép, đây là cách mà tin tặc sử dụng, theo phương thức sau:
- Khai thác lỗ hổng trên máy mục tiêu
Trang 1816
- Bẫy người dùng cài đặt Backdoor thông qua một chương trình khác
Backdoor là thuật ngữ chung chỉ các phần mềm mã độc hại thường trú (listen API) và đợi lệnh điều khiển (waiting API) từ các cổng dịch vụ TCP hoặc UDP Phần lớn các backdoor cho phép kẻ tấn công thực thi một số hành động trên máy bị nhiễm như truyền file, dò mật khẩu, thực hiện mã lệnh,… Backdoor cũng có thể được xem xét dưới 2 dạng: Zombie và Remote Administration Tools
- Zombie (có thể gọi là bot): là một phần mềm được cài đặt lên hệ thống nhằm mục đích tấn công hệ thống khác Kiểu thông dụng nhất của Zombie là dùng các agent
để tổ chức tấn công DdoS Ví dụ Trinoo, Tribe Flood Network,
- Remote Administration Tools (RAT): là các công cụ có sẵn của hệ thống cho phép thực hiện quyền quản trị từ xa Tuy nhiên, hacker cũng có thể lợi dụng tính năng này để xâm hại hệ thống Tấn công kiểu này có thể bao gồm hành động theo dõi mọi thứ xuất hiện trên màn hình đến tác động vào cấu hình hệ thống Ví dụ: Back Orifice, SubSeven,…
e) Rootkits
Rootkit là một dạng mã độc được xây dựng với mục tiêu chủ yếu là để ẩn giấu các đoạn mã độc có khả năng gây nguy hiểm đến máy tính của chúng ta Một khi đã được cài đặt, rootkit sẽ khiến các chương trình phòng chống mã độc thông thường khi quét chỉ thấy nó là một ứng dụng vô hại
Trang 1917
Trong đó, thuộc tính đầu tiên là đặc trưng cho mọi loại rootkit Có nhiều loại Rootkits, trong đó có 3 loại được cho là nguy hiểm nhất, gồm: user-mode, kernel mode và firmware rootkits:
- User-mode rootkits: hoạt động ở mức cao hơn trong các tầng bảo mật của hệ
thống máy tính cùng tầng với những ứng dụng bình thường khác mà ta hay sử dụng
Mã độc này có nhiều hình thức tấn công khác nhau và sẽ thay đổi những giao diện lập trình ứng dụng (API), tức là nó sẽ chỉnh sửa một số hàm API sao cho khi một ứng dụng nào đó gọi hàm này thay vì thực hiện tính năng vốn có, nó sẽ được chuyển hướng để thực thi mã độc trong rootkit hoặc xóa các tập tin nhật ký hệ thống Một số user-mode rootkit sẽ đẩy một tập tin liên kết động (.dll trên windows; dylib trên OSX) vào bên trong một tiến trình/ứng dụng nào đó, trong khi một vài rootkit khác chỉ ghi đè lên phần bộ nhớ của ứng dụng khác rồi hoạt động Tuy nhiên, nhược điểm của loại rootkit này là dễ bị phát hiện bằng các kỹ thuật tìm kiếm thông tin ở tầng dưới của hệ thống
Hình 3 Các mức bảo mật của hệ thống trên Windows
- Kernel-mode rootkits: gồm những mã hủy giới hạn truy cập vào mọi tài
nguyên phần cứng và phần mềm máy tính Kernel-mode thường được dùng để lưu trữ những chức năng tin cậy nhất của hệ điều hành Những phá hủy trong kernel-mode cũng không thể phục hồi Ví dụ: Kernel-mode rootkit ẩn dưới hệ điều hành
Trang 2018
- Firmware rootkits: là loại rootkits tinh vi vì những người phát triển rootkit
này đã nghiên cứu phương pháp lưu trữ malcode của rootkit trong firmware Mọi firmware đều có thể bị thay đổi, từ mã vi xử lý cho tới firmware card mở rộng PCI, như vậy: khi tắt máy, rootkit ghi malcode hiện thời vào những firmware khác nhau Khi khởi động lại máy tính rootkit cũng tự thực hiện cài đặt lại Loại rootkit này không thể phát hiện bằng các chương trình phần mềm bình thường mà phải dùng rất nhiều các công cụ khác để có thể phát hiện
f) Logic Bomb
Là phần mềm cài đặt trên hệ thống và chỉ thực hiện hành vi gây hại khi có những điều kiện nhất định đáp ứng Chẳng hạn như: logic bomb thực hiện xóa mọi dữ liệu trên hệ thống vào một thời điểm đã được cài đặt nhất định Cấu trúc logic bomb thường được phân làm hai phần:
- Payload: là đoạn mã thực hiện các hành vi gây hại
- Trigger: là đoạn mã kiểm tra những điều kiện nhất định, nếu điều kiện này đúng thì sẽ kích hoạt đoạn mã payload Logic Bomb là một loại mã độc rất nguy hiểm
vì nó không thể hiện hành vi gây hại ngay khi thâm nhập vào hệ thống Vì vậy, người dùng thường không nhận ra khi Logic Bomb đã thâm nhập thành công vào hệ thống 1.3 Đối tượng lây nhiễm mã độc
Một số định dạng tập tin có thể chứa mã hoặc các lệnh thực thi, do đó chúng có thể được mã độc sử dụng Một tập tin dạng exe nguy hiểm bởi vì đây là định dạng của file thực thi mà có thể làm bất cứ điều gì (trong phạm vi quyền người dùng chạy
Trang 2119
nó) trong hệ thống Một định dạng Media như JPEG, không phải luôn nguy hiểm vì chúng không chứa mã thực thi Mặc dù vậy, trong nhiều trường hợp, những kẻ tấn công đã lợi dụng lỗ hổng của các phần mềm xem ảnh, đọc PDF,… để thực thi những đoạn mã nguy hiểm cho hệ thống bằng cách nhúng mã độc vào trong các tập tin tưởng như vô hại trên Trong giới hạn nghiên cứu, tác giả sẽ chỉ đề cập tới những định dạng file có thể chứa mã thực thi hoặc chứa đoạn lệnh nguy hiểm mà mã độc hay lợi dụng
Các định dạng phần mềm:
.EXE – Executable File: Một phần mềm có khả năng thực thi, hầu hết các phần
mềm chạy trên Windows là định dạng này
.PIF – Program Information File: Một tập tin thông tin phần mềm cho các phần mềm MS-DOS Bình thường các file PIF không chứa mã thực thi, nhưng khi nó chứa
mã thực thi thì Windows sẽ xử lý như các tập tin EXE
.APPLICATION: Định dạng cài đặt ứng dụng triển khai với công nghệ
Microsoft’s ClickOnce
.GADGET: Một tập tin tiện ích trên màn hình Windows, công nghệ này được
giới thiệu cùng Windows Vista
.MSI – Microsoft Installer File: Tập tin cài đặt ứng dụng trên Windows
.MSP – Microsoft Installer Patch file: Được dùng để vá các phần mềm đã được
triển khai bởi MSI
.COM – Command file: Tệp thực thi
.SCR: Windows screen saver
.HTA – HTML application: Không giống như các ứng dụng chạy trong các trình
duyệt HTML, các file hta chạy như các ứng dụng đáng tin cậy mà không bị cô lập
.CPL – Control Panel file: Tất cả các tiện ích trong Windows Control Panel đều
có dạng CPL
.MSC – Microsoft Management Console file: Các ứng dụng dạng này như ứng
dụng quản lý chính sách cho nhóm hay công cụ quản lý ổ đĩa
.JAR – executable Java code: Nếu chúng ta đã cài đặt Java runtime trên hệ thống
thì, các tập tin dạng JAR sẽ chạy như một phần mềm (tương tự dạng exe)
Trang 2220
Các đoạn mã kịch bản:
.BAT – Batch File: Bao gồm một tập hợp các câu lệnh sẽ thực thi khi ta mở file
dạng này Nguyên thủy tập tin BAT được dùng trong MS-DOS
.CMD – Batch File: Cũng tương tự như tập tin BAT, nhưng định dạng này được
giới thiệu lần đầu tiên trên Windows NT
.VB, VBS – VBScript file: Tập hợp các mã lệnh viết bằng ngôn ngữ Visual Basic
Script, chúng sẽ được thực thi nếu chúng ta mở file
.VBE – Encrypted VBScript file: Tương tự như VBScript file, nhưng các mã
trong file đã được mã hóa để che giấu ý đồ tác động lên hệ thống
.JS – JavaScript file: Các tập tin JS thường được dùng trong các trang web và
chúng sẽ an toàn nếu chỉ chạy trên trình duyệt web Tuy nhiên, Windows cũng có thể chạy các tập tin JS này bên ngoài trình duyệt và điều đó gây nguy hiểm cho hệ thống
.JSE – Encrypted JavaScript file: Tập tin JavaScript đã được mã hóa
.WS, WSF: Windows Script file; WSC, WSH – Windows Script Component và Windows Script Host Control files: Các tập tin này được dùng cùng với Windows
Script files
.PS1, PS1XML, PS2, PS2XML, PSC1, PSC2 – Windows PowerShell script:
Các lệnh Windows PowerShell
Các shortcut:
.SCF – Windows Explorer command file
.LNK – Link: Liên kết chỉ tới một phần mềm nào đó Một tập tin liên kết có khả
năng chứa các dòng lệnh nguy hiểm, như copy một file từ chỗ này sang chỗ khác hay xóa một tập tin mà không cần hỏi
.INF – Một dạng tập tin văn bản được dùng bởi chức năng AutoRun có khả năng
gọi thực thi một phần mềm
Một số loại tập tin khác
.REG – Windows registry file: REG chứa một danh sách các khóa registry sẽ
được thêm vào hoặc gỡ bỏ nếu chạy chúng Một tập tin REG độc hại có thể loại bỏ
Trang 2321
các thông tin quan trọng từ registry, thay thế nó bằng các dữ liệu rác, hoặc thêm dữ liệu độc hại hay tạo khóa khởi động cho mã độc
.DOC, XLS, PPT – Microsoft Word, Excel, PowerPoint: Chúng có thể chứa
mã độc dạng Macro, hoặc mã độc lợi dụng lỗ hổng của MS-Office
.DOCM, DOTM, XLSM, XLTM, XLAM, PPTM, POTM, PPAM, PPSM, SLDM: Định dạng tập tin mới được giới thiệu trong Office 2007, “M” ở cuối của
phần mở rộng tập tin chỉ ra rằng tài liệu chứa Macros Ví dụ, một tập tin DOCX không chứa macro, trong khi một tập tin DOCM có thể chứa các macro
1.4 Các phương pháp phát hiện mã độc
1.4.1 Định nghĩa máy phát hiện mã độc
Một máy phát hiện và diệt mã độc là chương trình thực hiện một số phương pháp phân tích, phát hiện mã độc Chương trình phát hiện mã độc có thể hoặc không nằm trên cùng hệ thống được bảo vệ Định nghĩa máy phát hiện mã độc còn được thể hiện qua công thức sau [19]:
𝐷(𝑝) = {Mã độc, 𝑛ế𝑢 𝑝 𝑐ℎứ𝑎 đ𝑜ạ𝑛 𝑚ã độ𝑐 ℎạ𝑖
Lành tính, 𝑐á𝑐 𝑡𝑟ườ𝑛𝑔 ℎợ𝑝 𝑐ò𝑛 𝑙ạ𝑖 Trong đó:
- ‘D’ là máy phát hiện mã độc
- ‘p’ là chương trình được máy ‘D’ phân loại
Máy phát hiện mã độc ‘D’ có chức năng phân tích các chương trình ‘p’ và dựa vào các phương pháp nhất định để xác định ‘p’ là chương trình độc hại hoặc lành tính Kết quả xác định của máy ‘D’ có thể đúng hoặc sai Máy ‘D’ có thể phát hiện nhầm chương trình lành tính là mã độc (false positive), hoặc có thể phát hiện nhầm
mã độc là chương trình lành tính (false negative) Từ khái niệm máy phát hiện mã độc mà trong lĩnh vực phân tích, phát hiện các mã độc nói chung cũng như mã độc nhúng bí mật trên các thiết bị mạng (thiết bị định tuyến), thì có 2 phương pháp nghiên cứu chính là phân tích tĩnh và phân tích động
Trang 2422
1.4.2 Phân tích tĩnh mã độc
Phân tích tĩnh [7] là phương pháp phân tích, rà quét mã độc trực tiếp trên mã nguồn mà không cần thực thi chúng Dưới đây là một số phương pháp phân tích tĩnh 1.4.2.1 Sử dụng chữ ký và chuỗi của các tập tin
Bằng việc kiểm tra chữ ký số các tập tin thực thi của tiến trình cũng giúp chúng
ta loại bỏ được rất nhiều nghi vấn đối với tiến trình có chữ ký hợp lệ và tập trung hơn vào các tiến trình không có chữ ký hoặc chữ ký không hợp lệ Nói như vậy không phải chúng ta loại bỏ hoàn toàn nguy cơ từ các tiến trình có chữ ký hợp lệ vì trên thực
tế đã có một số mã độc bằng cách nào đó đã lấy cắp được chữ ký số hợp lệ của các công ty có tiếng, ví dụ như Stuxnet đã đánh cắp chữ ký số của hãng Realtek và Jmicron Vì vậy, việc sử dụng chữ ký số chỉ là một trong những tiêu chí để sàng lọc
mã độc, tùy vào thời gian và tầm quan trọng của trường hợp phân tích mà lựa chọn dùng hay không dùng tiêu chí này
Bên cạnh đó một tập tin sẽ chứa các chuỗi ký tự nhất định như: hiển thị một thông báo; kết nối tới một địa chỉ URL, địa chỉ máy chủ định sẵn, định dạng các tập tin sẽ thu thập; địa chỉ thư điện tử và mật khẩu nếu muốn đánh cắp sau khi lây nhiễm…Một số mã độc cố tình che giấu các chuỗi nhạy cảm của mình bằng cách lưu chúng vào mảng, lưu rải rác hay mã hóa trong tập tin thực thi của mã độc Các chuỗi này chỉ được phục hồi lại khi mã độc thực thi Để giải quyết vấn đề này, ngoài việc kiểm tra chuỗi trên tập tin thực thi của mã độc chúng ta cần kiểm tra và so sánh chuỗi trên bộ nhớ khi tập tin đó thực thi
1.4.2.2 Phát hiện mã độc với phương pháp phân tích Entropy
Hiện nay, mã độc sử dụng kỹ thuật gây rối (obfuscation), đóng gói (pack) bao gồm nén hoặc mã hóa để che giấu tránh sự phát hiện của các phần mềm diệt mã độc Đặt ra một thách thức không nhỏ cho quá trình phân tích mã độc nhằm xác định đặc tính và chức năng của chúng Phân tích Entropy [17] kiểm tra sự đa dạng về mặt thống kê trong tập tin nhiễm mã độc, cho phép người phân tích nhanh chóng và hiệu quả xác định các mẫu mã độc đã bị gây rối hoặc bị đóng gói Entropy thông tin là một khái niệm mở rộng của entropy trong nhiệt động lực học và cơ học thống kê sang cho
Trang 2523
lý thuyết thông tin Entropy thông tin mô tả mức độ hỗn loạn trong một tín hiệu lấy
từ một sự kiện ngẫu nhiên Nói cách khác, entropy cũng chỉ ra có bao nhiêu thông tin trong tín hiệu, với thông tin là các phần không hỗn loạn của tín hiệu
Entropy phải tỷ lệ thuận liên tục với các xác suất xuất hiện của các phần tử ngẫu nhiên trong tín hiệu Thay đổi nhỏ trong xác suất phải dẫn đến sự thay đổi nhỏ trong entropy Nếu các phần tử ngẫu nhiên đều có xác suất xuất hiện bằng nhau, việc tăng
số lượng phần tử ngẫu nhiên làm tăng entropy Có thể tạo các chuỗi tín hiệu theo nhiều bước và entropy tổng cộng phải bằng tổng có trọng số của entropy từng bước Shannon cũng chỉ ra rằng bất cứ định nghĩa nào của entropy, cho một tín hiệu có thể nhận các giá trị rời rạc, thỏa mãn các giả định của ông thì đều có dạng:
𝐾 ∑ 𝑝(𝑖)log [𝑝(𝑖)]
𝑛 𝑖=1 Với K – là hằng số, chỉ phụ thuộc vào đơn vị đo
n – là tổng số các giá trị có thể nhận của tín hiệu
i là giá trị rời rạc thứ i
p(i) là xác suất xuất hiện của giá trị i
Chúng ta có thể tính entropy của các sự kiện rời rạc ngẫu nhiên x sử dụng công thứ sau:
𝐻(𝑥) = ∑ 𝑝(𝑖) 𝑙𝑜𝑔2( 1
𝑝(𝑖)) = − ∑ 𝑝(𝑖) 𝑙𝑜𝑔2[𝑝(𝑖)]
𝑛 𝑖=1
𝑛 𝑖=1
Ví dụ, nhìn một dòng chữ Tiếng Việt, mã hóa bởi các chữ cái, khoảng cách và dấu câu Dòng chữ có ý nghĩa sẽ không hiện ra một cách hoàn toàn hỗn loạn ngẫu nhiên Một tập tin được nén có thể bị phát hiện nhờ kỹ thuật tính toán entropy Các
dữ liệu nén cao hoặc mã hóa khá gần giống với các dữ liệu ngẫu nhiên, do đó nó có mức entropy cao Trong khi các dữ liệu thường không được mã hóa hay nén có mức entropy thấp Sử dụng entropy để đo sự ngẫu nhiên và không dự đoán trước trong một chuỗi sự kiện hoặc một dãy giá trị dữ liệu là chấp nhận được về mặt thống kê trong lĩnh vực lý thuyết thông tin Trong nghiên cứu của tác giả Robert Lyda và James Hamrock tại trang 42 đã đưa ra thống kê dựa trên Entropy của một số loại tập tin
Trang 2624
Tập dữ liệu
Mức Entropy trung bình
Phát hiện chính xác cao với mức entropy trong khoảng
Mức entropy cao nhất
Thực thi thông thường 5,099 4,942-5,258 6,227 Thực thi nén 6,801 6,677-6,6926 7,233 Thực thi mã hóa 7,175 7,174-7,177 7.303
Bảng 1 Độ chính xác thống kê dựa trên Entropy
1.4.2.3 Sử dụng giá trị hàm băm
Xác định giá trị hàm băm của mã độc là một trong những bước đầu tiên trong phân tích mã độc Do đặc tính duy nhất kết quả trả về của mã băm với cùng một đầu vào nên giá trị này cũng có thể được coi là tiêu chí để xác định mã độc Có 2 hướng tiếp cận về việc sử dụng giá trị hàm băm trong phân tích mã độc:
- Một là, so sánh giá trị mã băm của phần mềm nghi vấn với cơ sở dữ liệu mã độc đã được xác định trước đó, việc này sẽ tiết kiệm thời gian phân tích và đảm bảo được bí mật về mẫu phân tích (trong nhiều trường hợp, cá nhân hoặc tổ chức bị nhiễm
mã độc không muốn mã độc được công bố rộng rãi) Tổ chức cung cấp cơ sở dữ liệu khổng lồ về mã băm của các mã độc có thể kể đến như http://virustotal.com
- Hai là sử dụng thư viện mã băm các phần mềm và thành phần đi kèm của chúng đã được chứng thực an toàn Đại diện cho hướng nghiên cứu này có thư viện National Software Reference Libarary (NSRL) Thư viện này được thiết kế để thu thập mã băm các phần mềm từ các nguồn khác nhau do NSRL của Mỹ xây dựng Tóm lại, trên nền tảng thiết bị nhúng nói chung và thiết bị định tuyến nói riêng
để thực hiện phân tích tĩnh mã độc nhúng trên firmware thiết bị định tuyến thì một số nghiên cứu dựa trên phương pháp này đã tiến hành phân tích diện rộng hoặc theo hướng chuyên biệt để tìm cổng hậu (backdoor) hay mã độc nhúng trên các thiết bị định tuyến như Angr [11] [12] và FIE [16] Phân tích tĩnh cho phép chi tiết hóa toàn
bộ luồng điều khiển (Control-Flow graph) và luồng dữ liệu (Data-Flow graph) cho
Trang 27Hạn chế
Bên cạnh đó các mã độc ngoài những đoạn mã có khả năng khai thác thì chúng cũng được chèn thêm các mã gây nhiễu hay các “byte rác” nhằm đánh lừa hay gây khó khăn trong quá trình phân tích, một nhược điểm nữa đó là một số mã độc có khả năng thay đổi mã thực thi khi chúng hoạt động hoặc tự sinh ra mã mới, thay đổi hành
vi dựa trên môi trường, thì đối với loại mã độc này thì việc phân tích tĩnh chúng là không khả thi Do đó, phương pháp này chỉ là bước đầu trong quá trình kiểm soát chất lượng của phần mềm nói chung và firmware nói riêng
1.4.3 Phân tích động mã độc
Bên cạnh kỹ thuật phân tích tĩnh, ngày nay kỹ thuật phân tích động [7] được áp dụng khá phổ biến để khắc phục một số hạn chế của phân tích tĩnh Kỹ thuật này dựa vào hành vi thực thi của các mã độc để từ đó đưa ra đánh giá về ảnh hưởng của chúng đối với hệ thống Ví dụ: Khi ta phân tích một phần mềm đánh cắp tài liệu và lưu qua USB, chúng ta có thể gặp khó khăn khi xác định tính năng này trong bước phân tích tĩnh, nhưng khi phân tích động, qua việc giám sát đọc ghi file của tiến trình chúng ta
sẽ xác định ngay được chức năng đánh cắp tài liệu này của mã độc
Phân tích động là bước kiểm tra, phân tích khi mã độc được thực thi Phân tích động thường được thực hiện sau khi cơ bản đã phân tích tĩnh mã độc Phân tích động cho ta biết 2 yếu tố cơ bản là giám sát các mã độc khi nó đang chạy và kiểm tra hệ thống sau khi mã độc thực hiện
Trang 2826
1.4.3.1 Sử dụng các công cụ Sandbox
Công cụ Sandbox là công cụ tạo ra môi trường an toàn khi thực thi mã độc mà không sợ ảnh hưởng tới hệ thống thực, công cụ sandbox có thể được sử dụng để phân tích động một cách sơ bộ (ví dụ: Cuckoo, Lemon, Detux…) Về phương diện an ninh trên máy tính, sandbox thực hiện bằng cách cho chương trình thực thi trong một môi trường kiểm soát chặt chẽ các tài nguyên như không gian đĩa hay bộ nhớ, các khả năng truy cập mạng, quan sát hệ thống hay đọc từ các thiết bị vào cũng thường bị vô hiệu hóa hoặc bị giới hạn chặt Điểm nổi bật của sanbox đó là giúp hạn chế chức năng của một đoạn mã, cấp quyền cho một đoạn mã nào đó chỉ được thực hiện một số chức năng nhất định, từ đó nó không thể thực hiện những can thiệp khác có thể làm nguy hại cho máy tính người dùng Các sandbox có thể:
Ghi dấu các hàm API của hệ điều hành được gọi
Sao chép các tập tin được tạo ra và các tập tin bị xóa khỏi hệ thống
Lưu được bộ nhớ của tiến trình của mã độc và bộ nhớ của toàn hệ thống để phân tích (có thể kết hợp công cụ phân tích bộ nhớ RAM là Volatility)
Chụp ảnh màn hình trong suốt quá trình thực thi mã độc
Theo vết và lưu các kết nối mạng để phân tích
1.4.3.2 Sử dụng Volatility để rà quét, phân tích mã độc trên RAM
Trong nhiều trường hợp, sau khi khôi phục lại hiện trường cần phân tích thì các hoạt động của mã độc không còn nữa Điều này có thể do mã độc có tính năng phát hiện môi trường ảo hóa, phát hiện công cụ phân tích hoặc cũng có thể mã độc dừng hoạt động không rõ nguyên nhân Vì vậy, đồng thời với việc sao lưu, tạo bản ảnh điều tra hiện trường chúng ta cần sao lưu tất cả bộ nhớ (trên RAM) của hiện trường vụ việc đó Việc tạo ảnh bộ nhớ RAM và phân tích các dấu hiệu trên đó cũng là một bước rất quan trọng trong tìm kiếm và phân tích mã độc
Một phần mềm khi chạy đều phải nạp dữ liệu lên RAM; các chuỗi hay toàn bộ phần mềm dù được mã hóa hoặc che giấu trong file thực thi đều phải thể hiện ở dạng
rõ trên RAM Do đó, khi phân tích dữ liệu trên RAM ta sẽ tiếp cận dược gần như toàn
bộ mã, dữ liệu, các thành phần mở rộng (resource) của tất cả các tiến trình đang chạy
Trang 2927
trên hệ thống Đây cũng là cách hiệu quả để tìm kiếm và phân tích Rootkit, vốn là những phần mềm được thiết kế đặc biệt ẩn sâu dưới hệ thống, bằng cách phân tích thông thường rất khó để nhận ra sự tồn tại của chúng
1.4.3.3 Sử dụng các chương trình gỡ rối (debugger)
Trong dịch ngược và phân tích tĩnh phần mềm cho phép chúng ta đọc được các
mã assembly của một phần mềm nhưng không cho chúng ta biết được nội dung của các thanh ghi được gọi tới hoặc để tìm được nội dung đó thì cần đọc các đoạn mã rất dài và phức tạp Trong khi đó, bằng cách đặt điểm dừng và kiểm tra giá trị của các thanh ghi, chúng ta sẽ biết được ngay nội dung của thanh ghi đó Ví dụ: call eax Khi gặp hàm này, nếu ở phân tích tĩnh thì ta cần lần ngược lại mã để tìm hiểu xem hàm nào đã tạo ra giá trị eax và giá trị đó là gì thì trong phân tích động ta có thể kiểm tra ngay giá trị của eax và biết được tên hàm được gọi trong lệnh trên Sử dụng chương trình debug còn cho phép chúng ta sửa đổi mã phần mềm, chuyển hướng các câu lệnh hay kiểm tra kết quả thực thi của từng hàm trong phần mềm
Có 2 kỹ thuật debug chính là debug phần mềm mở mức mã nguồn và debug phần mềm ở mức mã Assembly (hay debug mức thấp) Debug ở mức mã nguồn được kết hợp với các bộ công cụ phát triển phần mềm IDE, debug ở mức này cho phép chúng ta đặt các điểm dừng của chương trình, kiểm tra các giá trị biến,… trong quá trình thực thi của phần mềm, với điều kiện chúng ta phải có mã nguồn của phần mềm
đó Trong trường hợp chúng ta chỉ có tập tin thực thi của chương trình thì debug ở mức mã assembly là một lựa chọn duy nhất Cũng như khi debug ở mức mã nguồn, chúng ta có thể duyệt qua từng dòng lệnh khi thực thi của một phần mềm, đặt các điểm dừng, kiểm tra các biến, kiểm tra bộ nhớ, thanh ghi,… Để làm được điều này, người phân tích cần phải có kiến thức vững chắc về kiến trúc hệ thống cũng như ngôn ngữ bậc thấp Trong phân tích mã độc, chúng ta gần như không thể tiếp cận với mã nguồn của mã độc vì thế khi nói tới debug sẽ mặc định là debug ở mức mã assembly Trong kỹ thuật debug có 2 chế độ: Debug chế độ người dùng (user mode) và Debug chế độ nhân hệ thống (kernel mode) Trong Debug ở chế độ người dùng, chúng
ta chỉ cần một hệ thống để chạy phần mềm Debug và chương trình cần Debug Trong
Trang 3028
khi Debug ở chế độ nhân hệ thống đòi hỏi chúng ta phải có 2 hệ thống để làm công việc này, lý do bởi khi đặt điểm dừng ở mức nhân hệ thống sẽ không một chương trình nào có thể hoạt động được trên hệ thống đó, kể cả phần mềm Debug Bởi vậy, chúng ta cần một hệ thống để chạy phần mềm Debug và một hệ thống để chạy mã độc cần Debug Hiện tại, có 2 chương trình hỗ trợ Debug mạnh đó là WinDbg và OllyDbg, trong đó WinDbg hỗ trợ cả Debug mức người dùng và Debug mức nhân hệ thống, còn OllyDbg mặc dù là chương trình rất mạnh trong phân tích mã độc nhưng chỉ hỗ trợ Debug mức người dùng mà không hỗ trợ Debug mức nhân hệ thống
Có 2 cách để Debug một mã độc, một là chạy mã độc đó bằng chương trình Debug Khi mã độc được chạy, phần mềm Debug sẽ dừng nó ngay tại điểm Entry point của mã độc, tại đây chúng ta sẽ có toàn quyền điều khiển chúng Hai là gắn chương trình Debug vào một tiến trình đang thực thi, cách này hiệu quả khi chúng ta cần debug một mã độc hoạt động hay kiểm tra một tiến trình trước sự ảnh hưởng của
mã độc
Một số chú ý khi debug mã độc:
- Thay đổi giá trị của các cờ nhớ (flag) để vượt qua các đoạn mã kiểm tra của
mã độc Muốn làm được như vậy thì phải đặt điểm dừng vào vị trí trước khi lệnh JMP được thực thi, việc này cũng đảm bảo chúng ta có quyền truy cập vào ô nhớ hay cờ nhớ
- Một khó khăn rất lớn khi phân tích mã độc là việc các dữ liệu mà mã độc gửi
đi phần lớn đều bị mã hóa, khiến không thể đánh giá mức độ nhạy cảm của thông tin
bị mất Điều này có thể được giải quyết khi chúng ta debug mã độc, chỉ cần đặt điểm dừng đúng vị trí trước khi mã độc tiến hành mã hóa dữ liệu và truy cập vào vùng bộ nhớ đệm được dùng để lưu trữ dữ liệu thô
Tóm lại, phân tích động mã độc nhúng trên firmware là phương pháp phân tích hành vi các tập tin hệ thống của firmware trong quá trình thực thi Toàn bộ hành
vi của firmware sẽ được ghi lại và phân tích theo thời gian thực, nhất là đối với các hành vi được coi là bất thường Dựa trên phương pháp này, Daming D.Chen [15] đã
Trang 3129
tiến hành phân tích 23.035 firmware đến từ 42 nhà cung cấp và phát hiện ra 887 firmware có lỗ hổng bảo mật có lỗ hổng bảo mật chưa được biết đến trước đây 1.4.3.4 Ưu điểm, hạn chế
- Phân tích động có thể dẫn tới làm lộ quá trình phát hiện và phân tích mã độc
Mã độc có thể phát hiện được đang bị phân tích, sau đó gửi thông tin này về kẻ phát tán mã độc
- Gây nguy cơ mất an toàn cho mạng và hệ thống, do chúng ta chưa biết hết được mã độc có những module nào và khả năng của nó đến đâu
- Một số loại mã độc sử dụng cơ chế phát hiện thực thi trên máy ảo hay phát hiện phân tích chương trình
- Việc phân tích động rất khó thực hiện trên các hệ thống mô phỏng chưa phát triển đầy đủ các tính năng của thiết bị cần mô phỏng Với sự phát triển đa dạng của nhiều loại thiết bị nhúng, thiết bị cầm tay thì việc mô phỏng các loại thiết bị và tính năng phục vụ cho việc xây dựng hệ thống ảo hóa không hề đơn giản
1.5 Hệ thống nhúng và thiết bị nhúng
Sự gia tăng tích hợp, kết nối các thiết bị thông minh bằng công nghệ vạn vật kết nối (IoT - Internet of Things) đã mang lại các tiện ích phong phú cho người dùng như trong quản lý năng lượng thông minh, theo dõi sức khoẻ, thiết bị tự hành hay cơ sở
hạ tầng thông minh Đến năm 2020, theo khảo sát của hãng Cisco sẽ có khoảng 50
Trang 3230
tỷ thiết bị kết nối vào Internet, thậm chí con số này còn gia tăng nhiều hơn nữa như: CameraIP, VoIP, IPTv…Để có được sự phát triển mạnh mẽ của IoT phải kể đến đóng góp lớn của cơ sở hạ tầng nhúng (embeded devices) [2] cho phép tích hợp và biến mọi đồ vật trở nên "thông minh" khi có thể tương tác và kết nối với nhau cũng như với con người thông qua Internet
Trước đây, các hệ thống nhúng gần như được tách riêng từ Internet Tuy nhiên, điều này đã thay đổi khi có sự xuất hiện của thiết bị nhúng thông minh, thiết bị này không chỉ giúp hệ thống xử lý các đầu vào thông thường mà còn giúp hệ thống phân tích các dữ liệu từ các hệ thống khác Ví dụ như một mạng lưới điện năng lượng mặt trời sẽ không thể xử lý những thay đổi đột ngột về năng lượng điện nếu không có dữ liệu từ hệ thống dự báo thời tiết Nền công nghiệp sẽ đạt được hiệu quả cao với những
gì được gọi là “công nghiệp 4.0” hoặc “ Internet of Things” và ngay cả trong ngôi nhà của chúng ta thì mọi thứ cũng sẽ được kết nối với nhau từ ổ khóa, cửa ra vào, bóng đèn, tivi, tủ lạnh cho đến các hệ thống cảnh báo khác
Với những lợi ích mà hệ thống nhúng mang lại và sự phát triển ngày càng mạnh
mẽ lại cuốn theo đó là số lượng các cuộc tấn công chống lại các hệ thống nhúng ngày càng gia tăng, với mức độ ngày càng nghiêm trọng hơn Trước tình trạng đó, các nhà sản xuất thiết bị nhúng cần phải có một cơ chế bảo đảm an toàn cho thiết bị, đặc biệt
là các thiết bị trong các cơ sở hạ tầng quan trọng như điện, nhiên liệu, cung cấp nước,
hệ thống mạng thông tin Hiện nay, đa số các thiết bị nhúng không có khả năng chống lại các cuộc tấn công như trên các hệ thống máy tính Là do:
Thứ nhất, các thiết bị nhúng là những hệ thống cố định hầu như không có thay
đổi trong suốt quá trình hoạt động của thiết bị Kĩ thuật tấn công và khai thác ngày càng phát triển trong khi đó phần mềm nhúng của thiết bị, được gọi là firmware lại hiếm khi hoặc không bao giờ được cập nhật Ví dụ, rất nhiều thiết bị tiêu dùng kết nối Internet đang chạy Linux kernel lỗi thời với rất nhiều lỗ hỗng đã được phát hiện nhưng không được cập nhật
Thứ hai, các kết nối được thêm vào những thiết bị hiện có an toàn sẽ dẫn đến
những vấn đề an ninh ngoài ý muốn khi mà các thiết bị này được kết nối với các thiết
Trang 3331
bị cũ vẫn chạy cùng một hệ thống Mà những thiết bị cũ này lại rất nhiều lỗ hỗng, bị nhúng mã độc và rất dễ bị tấn công, khai thác
Thứ ba và cũng là yếu tố quan trọng nhất Sự phát triển của các thiết bị nhúng
được thúc đẩy bởi những cân nhắc về chi phí và thời gian đưa ra thị thường Các tính năng bảo mật phần cứng luôn cần bề mặt silicon hơn để thực hiện và chi phí cao hơn bình thường Cơ chế bảo mật phần mềm thường đòi hỏi nhiều bộ nhớ hoặc CPU, điều này sẽ dẫn đến phải sử dụng chip xử lý đắt tiền hơn Thiết bị lại đang chạy trên nguồn năng lượng hạn chế, như các nút mạng cảm biến pin điều khiển, do đó có thể hy sinh
an ninh cho tiêu thụ điện năng ít hơn Đặc biệt, một thiết kế bảo mật mạnh mẽ đòi hỏi phải có sự đầu tư để phát triển thêm mà số lượng và người tiêu dùng sản phẩm lớn, thì giá cả là yếu tố quyết định đến việc mua hàng Dẫn đến việc các nhà sản xuất bị cám dỗ mà từ bỏ an ninh của thiết bị
Thiết bị nhúng là mục tiêu tấn công hấp dẫn do thiếu sự quản lý phần mềm, hiếm khi được cập nhật các bản vá lỗi kịp thời như trên máy tính Ngoài ra, các thiết
bị lỗi thời thường xuyên hoạt động với các cấu hình mặc định không an toàn (ví dụ,
dễ đoán mật khẩu mặc định là admin/admin hoặc admin/123) Thậm chí tệ hơn, khi một thiết bị nhúng bị nhiễm các phần mềm độc hại thì lại rất khó để phát hiện khi mà các phần mềm này không làm ảnh hưởng đến các chức năng ban đầu của thiết bị, mặt khác nếu phần mềm mã độc hại có được tìm thấy thì cũng có rất ít phương pháp loại
bỏ chúng trên thiết bị nhúng
Các hệ điều hành dùng trong các hệ nhúng nổi trội hiện nay như Linux, VxWorks, WinCE, Lynyos, BSD, Green Hills, QNX và DOS,…hiện đang phát triển mạnh Năm 2001 hệ điều hành này chiếm 12% thị phần các hệ điều hành nhúng thì năm 2002 chiếm 27% và chiếm vị trí số 1 Hiện nay 40% các nhà thiết kế các hệ nhúng cân nhắc đầu tiên sử dụng Embedded linux cho các ứng dụng mới của mình
và sau đó mới đến các hệ điều hành nhúng truyền thống như VxWorks, WinCE Các đối thủ cạnh tranh của Embedded linux hiện nay là các hệ điều hành nhúng tự tạo và windows CE
Trang 3432
1.6 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) Thiết bị định tuyến kết nối hai hay nhiều mạng IP với nhau Các máy tính trên mạng phải "nhận thức" được sự tham gia của một thiết bị định tuyến, nhưng đối với các mạng IP thì một trong những quy tắc của IP là mọi máy tính kết nối mạng đều có thể giao tiếp được với thiết bị định tuyến
- Cấu tạo cơ bản của bộ định tuyến:
Hình 4 Cấu tạo của bộ định tuyến
+ 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
+ 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 : tương tự RAM trong máy tính, mục đích của nó cũng là cấp phát vùng nhớ để cung cấp 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
Trang 3533
+ FLASh: là thiết bị nhớ có khả năng ghi và xóa được, không mất dữ liệu khi cắt nguồn Hệ điều hành của bộ định tuyến được chứa ở đây Tùy thuộc các bộ định tuyến khác nhau, hệ điều hành sẽ được chạy trực tiếp từ Flash hay được giãn ra 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) : dữ liệu lưu trữ trong NVRAM thì sẽ ko bị
mất khi restart hay khi bị mất điện Tập tin cấu hình của thiết bị được lưu trữ ở đây
để đảm bảo khi khởi động lại, cấu hình của Router sẽ được tự động đưa về trạng thái
đã lưu giữ trong file Vì vậy, phải thường xuyên lưu giữ tập tin running-config trong RAM thành file startup-config
+ CFE (Common Firmware Environment) : là một tập hợp các module phần
mềm để khởi tạo và bootstrap của thiết kế kết hợp bộ vi xử lý Broadcom MIPS64 CFE được sử dụng để tái khởi động hệ điều hành Khi CFE hoạt động nó sẽ đồng thời khởi tạo CPU, FPU, cache L1, L2, Memory, bootstrap thực hiện cấu hình PCI và LDT
+ Interface (Network controller) : là giao diện web giúp cho người dùng có thể giao tiếp và cấu hình các cài đặt tùy ý lên bộ định tuyến
Có rất nhiều thành phần cấu tạo nên bộ định tuyến, nhưng trong quá trình khai thác cũng như cài cắm mã độc lên nó các kẻ tấn công (hacker) chỉ thường tập trung vào khai thác những thành phần hoạt động ở mức thấp khó bị phát hiện bởi các phần mềm quét mã độc thông thường Mã độc thường sẽ được cài cắm vào trong FLASH, NVRAM, hay trong các tập tin cấu hình qua giao diện web (web-interface) Các thành phần này thường chứa các tập tin khởi động, cấu hình, khi mà bộ định tuyến hoạt động, nơi mà mã độc có thể dễ dạng hoạt động mà không bị phát hiện Chính vì thế trong luận văn này, tác giả cũng sẽ trình bày chi tiết việc trích xuất được các tập tin chứa trong FLASH, NVRAM để kiểm tra phân tích các tập tin này có thực sự tồn tại
mã độc
Theo các nghiên cứu, khảo sát gần đây thống kê có rất nhiều nền tảng hệ điều hành sử dụng trong thiết bị định tuyến như: VxWorks, nucleus, linux…Tuy nhiên, có gần 90% firmware thiết bị định tuyến hiện nay sử dụng nhân Linux 2.6 [10] với nhiều
Trang 3634
loại tập tin hệ thống khác nhau như CramFS, SquashFS, JFFS2, RomFS, … Mỗi kiểu tập tin hệ thống lại sử dụng các cách thức nén khác nhau như SquashFS [18] dùng LZMA để tối ưu hóa nén dữ liệu cùng tốc độ hay CramFS dùng zlib… Đó cũng là cơ
sở để trong luận văn này tác giả cũng chỉ giới hạn tìm hiểu các firmware thiết bị định tuyến sử dụng nền tảng Linux[6]
Hình 5 Nền tảng OS sử dụng phổ biến trong firmware
Qua công cụ tìm kiếm Shodan.io, tác giả đã tiến hành đánh giá được rằng hiện
đa số các thiết bị mạng sử dụng hệ điều hành nền tảng nhân Kernel Linux 2.6.x Vì vậy, để có thể phân tích, phát hiện hiệu quả mã độc nhúng trên thiết bị mạng thì việc tìm hiểu một số cấu trúc định dạng tập tin hệ thống thường dùng trên firmware thiết
bị mạng là rất cần thiết
Hình 6 Bộ công cụ tìm kiếm Shodan.io
Trang 3735
Hình 7 Một ví dụ tìm kiếm thông tin với công cụ Shodan.io
Tuy nhiên, một vấn đề cần quan tâm trong phân tích, phát hiện mã độc nhúng trên firmware của thiết bị định tuyến là sự đa dạng trong kiến trúc của các bộ vi xử
lý (chip) Trái ngược với kiến trúc chip trên máy tính với đa số là i386 thì kiến trúc chip sử dụng phổ biến trên các thiết bị mạng nói riêng và thiết bị nhúng nói chung là ARM (ARM7, ARM9, Cortex), Intel ATOM, MIPS, Motorola
1.7 Mã độc nhúng trên firmware
Đối với mã độc trên nền thiết bị nhúng nói chung, firmware trên các thiết bị mạng nói riêng thì các phiên bản trước của mã độc thiết bị định tuyến [9] luôn được lưu trữ trong bộ nhớ của thiết bị, có nghĩa là khởi động lại thiết bị định tuyến sẽ loại
bỏ bất cứ lây nhiễm nào vì bộ nhớ bị xóa sạch trong quá trình khởi động lại Vì vậy bằng cách lưu mã độc trong hệ điều hành riêng trên một ổ đĩa flash (NVRAM – Non volatile Random access memory), không phải RAM, tin tặc đã tạo ra một điểm truy cập có thể tái sử dụng cho các cuộc tấn công của mình
Trang 3836
Như chúng ta đã biết firmware được xem như là một hệ điều hành thu nhỏ của thiết bị nhưng nó không giống với phần lớn các hệ điều hành hiện đại (khái niệm về firmware sẽ được trình bày chi tiết ở phần sau của luận văn), firmware hiếm khi có một cơ chế được phát triển tốt để tự cập nhật nhằm sửa lỗi chức năng được phát hiện sau khi thiết bị đã được sử dụng Do đó, chúng ta không thể biết được rằng thiết bị của chúng ta đang sử dụng có đang chạy trên một bản firmware an toàn hay không Cùng với đó là tầm quan trọng của firmware trong các thiết bị đã biến chúng trở thành mục tiêu để cài cắm các đoạn mã độc thu thập thông tin trên các thiết bị đặc biệt là thiết bị lưu trữ thông tin, các thiết bị mạng đóng vai trò định tuyến luồng dữ liệu vào
ra trong các hệ thống mạng
Các loại mã độc trên firmware cũng tương tự như mã độc trên máy tính và điện thoại hay các thiết bị điện tử khác Chúng đều là các phần mềm hoặc chương trình hay đoạn mã thiết kế để thực hiện các hành vi như tấn công, xâm nhập hệ thống, đánh cắp thông tin Nhưng mã độc trên firmware thường không có khả năng lây lan, vì các loại mã độc này hoạt động ở tầng rất thấp trong hệ thống và thường viết dành riêng cho từng loại thiết bị riêng nên tính lây lan là gần như không có Do đó, mã độc trên firmware không phổ biến và ít được nghiên cứu bởi các nhà bảo mật Việc phân loại
mã độc trên firmware cũng gặp rất nhiều khó khăn và đến nay vẫn chưa có một tài liệu nào phân loại một cách đầy đủ và chính xác được những loại mã độc hiện có trên firmware của các thiết bị mạng Do đó, chúng ta sẽ không đi sâu vào việc phân loại
mã độc trên firmware mà sẽ đi sâu tìm hiểu về các khả năng mà một thiệt bị mạng có thể bị nhiễm mã độc Thông thường thì một thiết bị mạng có thể bị nhiễm mã độc chỉ
có hai khả năng chính đó là do nhà sản xuất và do kẻ tấn công:
- Khả năng do nhà sản xuất thiết bị mạng cố tình cài cắm các loại mã độc lên chính các thiết bị mà họ tạo ra có thể nói là đang rất phổ biến hiện nay Đối với việc cài cắm này thì có rất nhiều nguyên nhân khiến các nhà sản xuất tiến hành cài cắm
mã độc như: thu thập dữ liệu người dùng, thuận tiện cho việc nâng cấp các phiên bản firmware dễ dàng hơn…
Trang 3937
- Khả năng thứ hai tuy không phổ biến nhưng rất nguy hiểm nếu như kẻ tấn công có thể khai thác được các lỗ hổng tồn tại trên firmware của thiết bị mạng mà cài cắm các mã độc Có thể nói đây là khả năng rất khó để thực hiện, yêu cầu kẻ tấn công phải có kiến thức sâu về firmware cũng như cấu trúc, nguyên lý hoạt động của các thiết bị mạng Do firmware hoạt động ở tầng rất thấp trong thiết bị nên rất khó để tiếp cận và cài cắm mã độc lên đó nếu không được sự cho phép của hệ thống
Có thể kể đến một số trường hợp như: Các nhà nghiên cứu ESET đã công bố Linux/Remaiten – một loại mã độc bot chứa bên trong là một bộ tải về có kiến trúc CPU sử dụng phổ biến trong thiết bị nhúng Linux như ARM, MIPS Hay như Linux/Trojan PNScan có thể lây nhiễm lên các thiết bị có kiến trúc ARM, MIPS, PowerPC theo kết quả phân tích của các nhà nghiên cứu tại Doctor Web…