HONEYPOT CHO MALWARE TRÊN CÁC THIẾT BỊ LƯU TRỮ USB Tóm tắt: Malware là mối đe dọa nghiêm trọng đối với công nghệthông tin thếhệmới, vì vậy vấn đềphát hiện và phân tích malware là một yêu cầu bức thiết. Honeypot là một công cụ hỗ trợ công việc đó, chúng thu thập các mẫu malware để phân tích. Thật không may, các honeypot phát hiện malware nhưng ởphạm vi mạng (network)do đó sẽkhông thểphát hiện các malware mà không dùng mạng làm phương tiện truyền dẫn. Kỹthuật phổbiến của các malware loại này đó là nó có thểcopy chính nó vào các thiết bịlưu trữnhư USB. Bài báo này sẽ giới thiệu Ghost, một dạng honeypot mới cho các loại USB malware như vậy. Honeypot này phát hiện malware bằng cách giảlập một thiết bịdi động bằng phần mềm, khi đó malware sẽcopy chính nó vào thiết bịmà chúng ta vừa tạo ra. 1. GIỚI THIỆU Malware là từ viết tắt của malicious software tức là các phần mềm độc hại, chúng thực hiện các hành vi bất hợp pháp trên các thiết bị của người khác vì các lợi ích về kinh tế cũng như chính trị. Đối tượng mà chúng hướng tới không giới hạn ở người dùng máy tính thông thường, thậm chí các công ty, chính phủ và ngay cả internet cũng bị ảnh hưởng nghiêm trọng. Một khi bị nhiễm bởi malware, một máy tính có thể bị chi phối theo các ràng buộc mà người tạo ra nó xây dựng lên, có thể làm lộ các thông tin cá nhân hoặc bị điều khiển để tham gia tấn công DDoS. Phần mềm anti-virus của McAfee đã thống kê được hơn 20 triệu mẫu malware mới trong năm 2011 [2]. Việc phòng chống malware đỏi hỏi sự hiểu biết sau rộng về cơ chế lây nhiễm của malware cũng như là kỹ thuật chiếm quyền kiểm soát máy tính (rootkit). Để thu thập các mẫu malware để phân tích thì honeypot là một giải pháp. Honeypot thu thập các mẫu đó bằng cách giả mạo các hệ thống cũng như dịch vụ mà có nhiều lỗ hổng. Mục đích là để các nhà nghiên cứu và các công ty phát triển phần mềm anti-virus phân tích các dạng malware mới để từ đó đưa ra các biện pháp đối phó bằng việc tạo ra các dấu hiệu nhận biết cho các malware chưa từng được biết tới. Có rất nhiều định nghĩa về honeypot nhưng tựu chung là chúng giải quyết vấn đề là làm thế nào để lừa các malware lây nhiễm vào máy của mình. Honeypot thường giả dạng là các dịch vụ mạng hoặc hệ điều hành có nhiều lỗ hổng, cách này được chứng minh là thành công trong việc thu hút malware để thu thập số lượng các mạng bị lây nhiễm, cách thức mà malware ẩn mình hay đơn giản là lỗ hổng mà malware khai thác. Một số malware được biết tới nhiều trong thời gian gần đây như Conficker [3], [4] Stuxnet [1] và Flame [5] không chỉ sử dụng mạng là phương tiện truyền dẫn mà còn có thể nhân bản chính nó vào các thiết bị lưu trữ di động. Theo đó trong bản báo cáo về bảo mật của Microsoft (Microsoft`s Security Intelligence Report) [6] thì hơn 1/4 số malware được phát hiện bởi Malicious Software Removal Tool trong nửa đầu năm 2011 có khả năng khai thác vào tính năng autorun của Window từ thiết bị USB. 2. NỘIDUNG 2.1. Ý tưởng Mục tiêu của bất kỳ honeypot là thu thập thông tin của các malware bao gồm thông tin về người viết malware hoặc cách thức lây nhiễm của chúng. Trong trường hợp này, chỉ xét đến trường hợp thu thập mẫu malware ở máy tính bị lây nhiễm đầu tiên. Có nhiều điểm khác nhau trong vòng đời của malware mà tại đó một honeypot có thể thu thập bảnsao của file thực thi malware. Ở đây, “vòng đời” có thể hiểu là quá trình malware lây nhiễm
Trang 1HONEYPOT CHO MALWARE TRÊN CÁC THIẾT BỊ
LƯU TRỮ USB
Tóm tắt: Malware là mối đe dọa nghiêm trọng đối với công nghệthông tin thếhệmới, vì vậy vấn đềphát hiện và phân tích malware là một yêu cầu bức thiết Honeypot là một công cụ hỗ trợ công việc đó, chúng thu thập các mẫu malware để phân tích Thật không may, các honeypot phát hiện malware nhưng ởphạm vi mạng (network)do đó sẽkhông thểphát hiện các malware mà không dùng mạng làm phương tiện truyền dẫn Kỹthuật phổbiến của các malware loại này đó là nó có thểcopy chính nó vào các thiết bịlưu trữnhư USB Bài báo này sẽ giới thiệu Ghost, một dạng honeypot mới cho các loại USB malware như vậy Honeypot này phát hiện malware bằng cách giảlập một thiết bịdi động bằng phần mềm, khi đó malware sẽcopy chính nó vào thiết bịmà chúng ta vừa tạo ra.
1 GIỚI THIỆU
Malware là từ viết tắt của malicious software tức là các phần mềm độc hại, chúng thực hiện các hành vi bất hợp pháp trên các thiết bị của người khác vì các lợi ích về kinh tế cũng như chính trị Đối tượng mà chúng hướng tới không giới hạn ở người dùng máy tính thông thường, thậm chí các công ty, chính phủ và ngay cả internet cũng bị ảnh hưởng nghiêm trọng Một khi bị nhiễm bởi malware, một máy tính có thể bị chi phối theo các ràng buộc mà người tạo ra nó xây dựng lên, có thể làm
lộ các thông tin cá nhân hoặc bị điều khiển để tham gia tấn công DDoS
Phần mềm anti-virus của McAfee đã thống kê được hơn 20 triệu mẫu malware mới trong năm 2011 [2] Việc phòng chống malware đỏi hỏi sự hiểu biết sau rộng về
cơ chế lây nhiễm của malware cũng như là kỹ thuật chiếm quyền kiểm soát máy tính (rootkit)
Để thu thập các mẫu malware để phân tích thì honeypot là một giải pháp Honeypot thu thập các mẫu đó bằng cách giả mạo các hệ thống cũng như dịch vụ mà
có nhiều lỗ hổng Mục đích là để các nhà nghiên cứu và các công ty phát triển phần mềm anti-virus phân tích các dạng malware mới để từ đó đưa ra các biện pháp đối phó bằng việc tạo ra các dấu hiệu nhận biết cho các malware chưa từng được biết tới Có rất nhiều định nghĩa về honeypot nhưng tựu chung là chúng giải quyết vấn đề là làm
Trang 2Bài tiểu luận số 1 môn an ninh mạng
Honeypot thường giả dạng là các dịch vụ mạng hoặc hệ điều hành có nhiều lỗ hổng, cách này được chứng minh là thành công trong việc thu hút malware để thu thập số lượng các mạng bị lây nhiễm, cách thức mà malware ẩn mình hay đơn giản là
lỗ hổng mà malware khai thác
Một số malware được biết tới nhiều trong thời gian gần đây như Conficker [3], [4] Stuxnet [1] và Flame [5] không chỉ sử dụng mạng là phương tiện truyền dẫn mà còn có thể nhân bản chính nó vào các thiết bị lưu trữ di động Theo đó trong bản báo cáo về bảo mật của Microsoft (Microsoft`s Security Intelligence Report) [6] thì hơn 1/4 số malware được phát hiện bởi Malicious Software Removal Tool trong nửa đầu năm 2011 có khả năng khai thác vào tính năng autorun của Window từ thiết bị USB
2 NỘIDUNG
2.1 Ý tưởng
Mục tiêu của bất kỳ honeypot là thu thập thông tin của các malware bao gồm thông tin về người viết malware hoặc cách thức lây nhiễm của chúng Trong trường hợp này, chỉ xét đến trường hợp thu thập mẫu malware ở máy tính bị lây nhiễm đầu tiên
Có nhiều điểm khác nhau trong vòng đời của malware mà tại đó một honeypot
có thể thu thập bảnsao của file thực thi malware Ở đây, “vòng đời” có thể hiểu là quá trình malware lây nhiễm sang máy tính, ẩn mình, thực thi các tác vụ như là gửi spam hoặc thu thập thông tin cá nhân và cuối cùng là lây nhiễm sang các máy tính khác
Đặc biệt Stuxnet đã chỉ ra rằng cách lây lan qua các thiết bị lưu trữ di động là đặc điểm quan trọng của những malware gần đây [1] Các thiết bị như USB vừa rẻ lại
dễ dàng sử dụng, chúng được sử dụng rộng rãi trong việc trao đổi dữ liệu và đây là môi trường lý tưởng của malware trong việc lây nhiễm vào hệ thống Stuxnet có thể lây nhiễm vào máy tính thông qua các file được copy trước đó vào USB khi chúng được cắm vào máy tình đã bị lây nhiễm Hình dưới đây miêu tả quá trình lây nhiễm đó
Trang 3Hình 1.Quá trình lây nhiễm malware thông qua USB
Yêu cầu đặt ra là xây dựng một honeypot để khai thác các hành vi chung nhất trong quá trình lây nhiễm lên USB bằng cách xây dựng một thiết bị lưu trữ USB ảo mà
có thể kết nối tới được các máy tính bị lây nhiễm Tuy nhiên, cách tiếp cận này có hai nhược điểm:
1 Máy tính mục tiêu bị lây nhiễm trước khi có thể chụp (capture) lại được malware
2 Các malware thông minh đã lây nhiễm lên máy tính có khả năng phát hiện và phá hủy các thiết bị giả dạng như vậy
Chúng ta không mong chờ chụp lại được malware trước khi chúng đã phá hủy
hệ thống, do đó mục đích của việc xây dựng này là biết được cách thức hoạt động cũng như cách lây nhiễm của chúng Có thể nói đây là tuy ến phòng thủ cuối cùng sau khi các giải pháp bảo vệ trước đó gặp thất bại
Hiểu biết sự khác biệt cơ bản giữa một honeypot thông thường và hệ thống được xây dựng ở đây kết hợp các lý thuyết về ổ đĩa flash USB (USB flash driver) ảo hứa hẹn sẽ đem lại một số lợi ích:
1 Cung cấp định nghĩa mới về Hostbased IDS ở mức thấp
2 Nếu malware đã lây nhiễm lên các thiết bị ảo được xây dựng ở đây thì vô hình malware đã cung cấp cho chúng ta tất cả các file thực thi cũng như hành vi của malware
Honeypot có thể hoạt động sai, hai kịch bản có thể đặt ra: hoặc là ứng dụng hợp
Trang 4Bài tiểu luận số 1 môn an ninh mạng
thiết bị này càng ngắn thì càng dễ dàng ẩn toàn bộ tiến trình đối với các user Vì vậy việc thiết kế các honeypot này phải tính toán, thiết kế sao cho thời gian mount là nhỏ nhất
Đối với malware, thì các file được ghi vào USB thì với mục đích là lây nhiễm sang các máy tính khác, vì v ậy cần kiểm tra các file thực thi trong toàn bộ quá trình Thông thường xác suất chúng cung cấp tất cả các file là lớn, và nếu không như vậy thì chí it chúng ta cũng biết được nơi để tìm các dữ liệu còn lại Về mặt lý thuyết, malware chỉ cần ghi một đoạn loader vào USB sau đó download các mailware ảo ở địa chỉ nào đó trên mạng Nhưng cách tiếp cận này đỏi hỏi máy tính mục tiêu phải có kết nối mạng các loại malware như vậy chưa được tìm thấy trong thực tế
2.2 Thực hiện
Phần này sẽ thảo luận về cách hệ thống đã đề xuất ở phần trước có thể thực hiện được Hệ thống mục tiêu được xây dựng trên hệ điều hành XP, việc lựa chọn này xuất phát từ các nguyên nhân: Là hệ điều hành vẫn được sử dụng phổ biến trên thế giới, có nhiều lỗ hổng và là mục tiêu ưu thích của malware Tuy nhiên, phần code có thể được
mở rộng để có thể hoạt động trên các phiên bản hệ điều hành Windows khác
Những thách thức của việc thực hiện một USB ảo bao gồm hai phần: Thứ nhất,
đó là một dạng lưu trữ ảo, ví dụ như là một thiết bị lưu trữ được mô phỏng để hỗ trợ các file ảnh (image file) Ứng dụng phải có khả năng đọc và ghi từ thiết bị ảo Thứ hai, thiết bị ảo này phải giống một thiết bị lưu trữ di động để bất kỳ ứng dụng nào cũng có thể truy vấn thông tin về nó Vấn đề là các giải pháp có sẵn không không có tính linh hoạt,ví dụ như công cụ FileDiskchỉ có thể mô phỏng được ổ cứng mà không mô phỏng được các thiết bị lưu trữ di động Tất nhiên, hoạt động của honeypot phải đủ phức tạp
để cung cấp đủ chức năng, nhưng với yêu cầu là không được phức tạp quá Vì vậy, một cách tiếp cận khác được xem xét để đạt được hai yếu tố như trên: mô phỏng sự lưu trữ và làm cho nó rông giống có tính di động (removable)
Microsoft cung cấp Device Simulation Framework, một khung phần mềm cái
mà có thể dễ dàng mô phỏng các thiết bị như USB Nó cho phép thực thi các đoạn code mô phỏng trong chế độ người dùng (user mode) và biên dịch đến kernel bằng một trình điều khiển tùy chỉnh Tuy nhiên, mục đích chính của Framework này là dùng
để kiểm tra các trình điều khiển (driver) Ngoài ra nó đòi hỏi việc thực hiện của các thiết bị mô phỏng ở mức rất thấp, điều này là không cần thiết cho các lý thuyết đã được trình bày ở phần trên
Trang 5Hình 2.Phát hiện thiết bị bằng cách sử dụng hàm WM_DEVICECHANCE
Hơn nữa, vấn đề cấp phép sẽ phải được xem xét nếu Device Simulation Framework là một phần của honeypot, đây có vẻ là một lựa chọn không có tính thực
tế
Đầu tiên, các malware phải có khả năng phát hiện các thiết bị USB mỗi khi USB được cắm vào Cách phổ biến là dựa vào hàm M_DEVICECHANGE Hệ điều hành sẽ gọi hàm đó mỗi khi thiết bị mới cắm vào, chương trình nhận dựa vào các tham
số đầu ra để kết luận đây có phải là các thiết bị lưu trữ di động hay không (hình 2) Virus Conficker [3] và Stuxnet [1] sử dụng công nghệ này Cách khác ít được sử dụng hơn đó là malware thường xuyên truy vấn tất cả tên ổ đĩa (thường từ C: đến Z:) để từ
đó phát hiện một thiết bị mới cắm vào Cách này có nhược điểm là truy vẫn ngay cả khi không có thiết bị mới cắm vào và do đó dễ bịphát hiện
Trước khi tìm hiểu cách tạo ra một thiết bị ảo như vậy, chúng ta phải tìm hiểu cách thức xử lý các thiết bị của nhân Windows (Windows kernel) Mỗi thiết bị được biểu diễn là một đối tượng và mỗi đối tượng được quản lý bởi trình điều khiển của thiết bị đó Mỗi khi có một kết nối của một thiết bị mới, Windows sẽ quyết định trình điều khiển nào được nạp vào dựa vào định danh thiết bị mới được kết nối đó Các đối tượng và các trình điều khiển liên quan được sắp xếp dưới dạng ngăn xếp (Stack) Thông thường các thiết bị lưu trữ như USB và các hệ thống có liên quan bên trong được sắp xếp ở đáy ngăn xếp, còn đỉnh ngăn xếp là trình điểu khiển file hệ thống
Mục tiêu là tạo ra được thiết bị được như có thể tháo rời khỏi hệ điều hành Và
Trang 6Bài tiểu luận số 1 môn an ninh mạng
hoạt động như một trình điều khiển Windows, hoạt động cùng lớp với trình điều khiển
ổ đĩa và để cờ của thiết ảo này là “removable”: ghostdrive.sys Hình 3 sẽ so sánh ngăn xếp các trình điều khiển của một thiết bị lưu trữ USB thật và của thiết bị ảo tạo ra Trình điều khiển ghostdrive.sys sẽ thay thế trình điều khiển ổ đĩa cho các thiết bị USB
ảo và phải đảm bảo rằng chúng được đảm nhận gửi các thông tin về các thiết bị lưu trữ
di động lên trình điều khiển ở mức cao hơn
Hình 3.Ngăn xếp trình điều khiểnminh họa của honeypot Ghost [8]
Trình điểu khiển thứ hai trong hình 3 đó là ghostbus.sys, trình điều khiển này liên quan đến liệt kê thiết bị (device enumeration) tức là một thiết bị mới phải khai báo với nhân Windows để nạp các trình điều khiển Tiến trình này được gọi là device enumeration Đối với các trình điều khiển phù hợp với Windows Driver Model [7] thì
sẽ có hai lựa chọn:
1 Một thiết bị có thể là rootenumerationed Theo đó, thiết bị với một định danh xác định được mặc định là khởi động cùng hệ thống đồng thời nạp các trình điều khiển
Trang 7yêu cầu Trình điều khiển bus PCI là một ví dụ cho trình điều khiển được nạp theo cách này
2 Thiết bị có thể được liệt kê bởi các đối tượng thiết bị khác (bus enumeration) Nếu trình điều khiển của một thiết bị đang tồn tại tạo ra một một đối tượng thiết bị mới thì sau đó Windows sẽ nạp các trình điều khiển tương ứng Rõ ràng, một chuỗi sự liệt
kê phải xuất phát từ một nơi nào đó, và đó chính là root-enumeration
Hình 4.Các thành phần cơ bản của honeypot Ghost
Các ổ đĩa USB ảo được thiết kế sao cho có khả năng mount theo nhu cầu vì vậy trình điều khiển của nó không nên được nạp vào khi máy tính khởi động Đây chính là giải pháp của trình điều khiển thứ hai, ghostbus.sys: nó được nạp bởi rootenumeration
và có thể báo cáo khi có một thiết bị USB mới cắm vào theo nhu cầu với chức năng của một bus ảo Vì vậy, bất cứ khi nào muốn mount một thiết bị ảo nào thì phải cần ra lệnh để bus ảo này báo cáo về thiết bị mới đó với một định danh thiết bị mà sau đó Windows sẽ nạp trình điều khiển ghostdrive.sys Hình 4 cho thấy cấu trúc tổng thể của việc thực hiện như đã mô tả
Việc phát hiện sự lây nhiễm và chụp lại các mẫu malware hoạt động như sau: Trình điều khiển bus ảo được hướng dẫn để nạp các thiết bị lưu trữ ảo, sẽ báo cáo với
hệ thống là có một thiết bị di động Malware sau khi phát hiện một thiết bị USB cắm vào sẽ lây nhiễm sang thiết bị đó bằng ghi dữ liệu lên trên đó Yêu cầu ghi dữ liệu của
Trang 8Bài tiểu luận số 1 môn an ninh mạng
Sẽ là tốt hơn nếu ta phân tích nội dung của các thiết bị ảo trực tiếp trên honeypot nhưng phải chú ý: trong trường hợp máy tính bị lây nhiễm, một số loại malware có khả năng cài đặt các rootkit để ẩn các tiến trình trong hệ thống, vì vậy việc
sử dụng các API thông thường có thể đem lại kết quả không chính xác
3 ĐÁNH GIÁ
Phần này sẽ đánh giá các khái được đề xuất dựa vào việc thực hiện đã trình bày ở trên Tất các các đánh giá được thực hiện trên Windows XP SP2 Các mẫu malware dành cho thử nghiệm yêu cầu là cách thức lây nhiễm lên cách thiết bị USB là đáng tin cậy và có thể kiểm tra được Trong trường hợp này là Conficker, đây là loại malware phổ biến với hoạt động tinh vi
Tham số đánh giá như phân tích ở trên là thời gian mount thiết bị ảo, kết quả thử nghiệm được gọi là thành công nếu các file ghi vào thiết bị ảo được kiểm ta là trùng khớp với thiết bị USB thật
Theo kết quả thử nghiệm ở [9] thì thời gian mount chậm nhất là 35s, thời gian trung bình là 7.9s Trong một số trượng hợp, một số mẫu Conficker có thời gian mount dưới 1s
Bảng 1.Sự phân chia malware của các hãng
Trang 9Hình 5.Thời gian nhỏ nhất để các mẫu malware lây nhiễm vào các thiết bị ảo
Thực tế chỉ ra:
1 Không có mẫu malware nào có khả năng phát hiện thiết bị ảo và thiết bị thật
2 Thời gian mount là đủ nhỏ để ẩn các tiến trình đối với người dùng, do đó tránh đường các trường hợp nghi không mong muốn lên các thiết bị ảo
4 KẾT LUẬN
Bài tiểu luận đã giới thiệu các lý thuyết về honeypot để thu thập các mẫu malware phát tán qua các thiết bị lưu trữ USB Kết quả đánh giá cũng cho thấy các malware phức tạp cũng không có khả năng phát hiện honeypot từ bất kỳ mục tiêu bị lây nhiễm nào khác Vì vậy có thể đưa ra kết luận rằng phương pháp này là phù hợp để phát hiện sự lây nhiễm trên máy tính và thu thập các mẫu malware Đối với các tổ
Trang 10Bài tiểu luận số 1 môn an ninh mạng
5 TÀI LIỆU THAM KHẢO
1 N Falliere, L Murchu, and E Chien, “W32 stuxnet dossier,” Symantec Security Response
2 McAfee Labs, “Mcafee threats report: Fourth quarter 2011,” 2011
3 Symantec, “The downadup codex,” Symantec, Tech Rep., 2009
4 F Leder and T Werner, “Know your enemy: Containing conficker,” The Honeynet Project, University of Bonn, Germany, Tech Rep, 2009
5 Kaspersky, “Flame: Bunny, frog, munch and beetlejuice ” [Online] Available: https://www.securelist.com/en/blog?weblogid=208193538#w208193538
6 Microsoft, “Microsoft security intelligence report.” [Online] Available: http://www.microsoft.com/sir
7 Microsoft, “Introduction to wdm.” [Online] Available: http://msdn.microsoft.com/en-us/library/
ff548158%28v=VS.85%29.aspx
8 Microsoft, “Device object example for a usb mass storage device.” [Online]
http://msdn.microsoft.com/en-us/library/ff552547%28v=VS.84%29.aspx
9 Sebastian Poeplau, Jan Gassen “A Honeypot for Arbitrary Malware on USB Storage Devices”