Tải bản đầy đủ (.doc) (10 trang)

giới thiệu các lý thuyết về honeypot CHO MALWARE TRÊN CÁC THIẾT BỊ LƯU TRỮ USB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (286.09 KB, 10 trang )

Bài tiểu luận số 1 môn an ninh mạng
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.
Trương Thị Tú Oanh – M13CQTE01-B 1
Bà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 đó

Trương Thị Tú Oanh – M13CQTE01-B 2
Bài tiểu luận số 1 môn an ninh mạng
Hì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
lệ ghi dữ liệu lên các thiết bị USB kết nối tới chúng hoặc người dùng vô tình copy file
lên các thiết bị ảo này, vì vậy các thiết bị USB ảo này phải được để ẩn đối với các user
của hệ điều hành để ngăn ngừa tình huống ghi dữ liệu như vậy. Quá trình mount các
Trương Thị Tú Oanh – M13CQTE01-B 3
Bà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.
Trương Thị Tú Oanh – M13CQTE01-B 4
Bài tiểu luận số 1 môn an ninh mạng
Hì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à
tính năng “tháo rời” này trong Windows được thiết lập bởi trình điều khiển ổ đĩa (disk
driver), nó xác định xem một thiết bị lưu trữ là di động hay không. Một thiết bị ảo phải
Trương Thị Tú Oanh – M13CQTE01-B 5
Bà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
Trương Thị Tú Oanh – M13CQTE01-B 6
Bài tiểu luận số 1 môn an ninh mạng
yê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
malware được chuyển xuống ngăn xếp trình điều khiển và cuối cùng chuyển qua trình
điều khiển của bộ nhớ ảo, ghostdrive.sys. Tại đây đọc các yêu cầu malware và giải
quyết chúng đồng thời ghi tất cả dữ liệu vào một file ảnh để phân tích sau đó.
Trương Thị Tú Oanh – M13CQTE01-B 7
Bà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
Trương Thị Tú Oanh – M13CQTE01-B 8
Bài tiểu luận số 1 môn an ninh mạng
Hì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ổ
chức thì có thể dùng giải pháp này để tìm hiểu sự lây nhiễm lên máy tính của họ khi
các tuyến phòng thủ trước đó gặp thất bại và do đó có thể coi đây là một hệ thống phát
hiện xâm nhập (IDS) đáng tin cậy.
Trương Thị Tú Oanh – M13CQTE01-B 9
Bà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: />6. Microsoft, “Microsoft security intelligence report.” [Online]. Available:
/>7. Microsoft, “Introduction to wdm.” [Online]. Available:
/>ff548158%28v=VS.85%29.aspx
8. Microsoft, “Device object example for a usb mass storage device.” [Online].
Available: />us/library/ff552547%28v=VS.84%29.aspx
9. Sebastian Poeplau, Jan Gassen “A Honeypot for Arbitrary Malware on USB
Storage Devices”
Trương Thị Tú Oanh – M13CQTE01-B 10

×