Sử dụng Nepenthes Honeypots để dò tìm malware thông thường


Giới thiệu

Vài năm qua, một lượng lớn lỗi nghiêm trọng trong hệ điều hành Windows đã được phát hiện. Như MS03-026, bị sâu Blaster khai thác và phát tán năm 2003; hay gần đây là sâu Mocbot/Wargbot, khai thác lỗ hổng MS06-040 từ tháng 8 năm 2006. Số thành phần khác nhau của malware khai thác các lỗ hổng này tăng lên nhanh chóng sau từng chặng thời gian. Nhiều sâu xuất phát từ các biến thể trước đó của nó, và hầu hết đều nằm trong các gia đình bot như Agobot, Phatbot, Sdbot… Chúng ta đã biết, bot là tập hợp các máy tính bị chiếm quyền điều khiển dùng trong cùng một mạng botnet phục vụ cho các mục đích bất chính.

Sử dụng Nepenthes Honeypots để dò tìm malware thông thường
Nguồn: outer-court

"Trong thời gian bốn tháng, chúng tôi thu thập được hơn 15.500 mã nhị phân độc nhất, tương ứng với 1.400 MB dữ liệu. Tính duy nhất trong ngữ cảnh dựa trên thông số MD5sums khác nhau của các mã nhị phân thu được" – Baecher viết.

Khi đó tỷ lệ dò tìm malware nằm trong khoảng từ 73% đến 84% với bốn công cụ diệt virus khác nhau. Rõ ràng, dựa trên phần mềm antivirus không phải lúc nào cũng hiệu quả.

Trong bài này chúng tôi sẽ mô tả một honeypot tương tác thấp là Nepenthes cụ thể được dùng để cảnh báo nhanh quản trị viên khi xuất hiện lỗi mạng như thế nào. Trước hết là khả năng đóng gói malware và hỗ trợ cả hoạt động ngăn chặn, loại bỏ các xâm phạm.

Cảnh báo IDS hữu ích cho việc tìm kiếm sâu theo kiểu quét

Một số sâu nguy hiểm nhất những năm gần đây dựa trên lỗi dịch vụ Windows. Chẳng hạn như Blaster, Sasser, Welchia và Slammer – nguyên nhân chính của một lượng lớn thời gian chết và giảm hiệu suất kinh doanh thương mại trên thế giới.

Hy vọng hãng sản xuất bộ đọc dò tìm xâm phạm Intrusion Detection System (IDS) nhận biết thêm được nhiều tín sâu mới và có thêm nhiều biện pháp quét cổng dò tìm, giúp khám phá được nhiều hơn. Trong trường hợp của Blaster, mỗi host bị tấn công sẽ được gửi khoảng 10 gói tin trong một giây tới cổng 135/tcp. Chỉ có vậy nhưng cũng đủ cho bộ cảnh báo Snort phát hiện ra vấn đề, thậm chí trước khi tín hiệu Blaster được tạo ra.

Một số khám phá về bot

Sự khác nhau chính giữa bot và sâu là bot có kênh điều khiển trung tâm, cung cấp lệnh cho máy bị tấn công, thông thường được hoàn thiện qua IRC. Các bot này có hoạt động quét tương tự như đã được đề cập đến trước đó ở sâu. Tuy nhiên chúng chủ yếu điều khiển qua kênh IRC và chỉ bắt đầu quét hoặc khai thác trên dòng lệnh. Trong một phiên cụ thể, một IDS cũng có thể chọn kiểu lưu lượng C&C. Một cuộc khai thác thành công được báo cáo lại theo kiểu: [SCAN]: Exploited yyy.yyy.123.45.

Nói chung một bot thường khá im ắng cho đến khi nó được chỉ định quét một mạng cụ thể:

#(4 – 1329104) [2005-03-25 03:39:49.297] [snort/2001372]
BLEEDING-EDGE IRC Trojan Reporting (Scan)
IPv4: yyy.yyy.231.32 -> zzz.zzz.163.59
hlen=5 TOS=0 dlen=168 ID=18140 flags=0 offset=0 TTL=127 chksum=56572
TCP: port=3023 -> dport: 8000 flags=***AP*** seq=1483308911
ack=501861482 off=5 res=0 win=64331 urp=0 chksum=51363

Payload: length = 128
000 : 50 52 49 56 4D 53 47 20 23 61 73 74 72 6F 20 3A PRIVMSG #astro :
010 : 5B 53 43 41 4E 5D 3A 20 52 61 6E 64 6F 6D 20 50 [SCAN]: Random P
020 : 6F 72 74 20 53 63 61 6E 20 73 74 61 72 74 65 64 ort Scan started
030 : 20 6F 6E 20 yy yy yy 2E yy yy yy 2E 78 2E 78 3A on yyy.yyy.x.x:
040 : 34 34 35 20 77 69 74 68 20 61 20 64 65 6C 61 79 445 with a delay
050 : 20 6F 66 20 35 20 73 65 63 6F 6E 64 73 20 66 6F of 5 seconds fo
060 : 72 20 30 20 6D 69 6E 75 74 65 73 20 75 73 69 6E r 0 minutes usin
070 : 67 20 32 30 30 20 74 68 72 65 61 64 73 2E 0D 0A g 200 threads…

Một bot khác do Daniel Cid ghi lại, dùng Google để tìm kiếm lỗ hổng tiềm ẩn khi cài đặt Mambo. Điều đó có nghĩa là quá trình quét cổng để tìm các đích mới không còn cần thiết. Do đó một quản trị viên không nên chỉ dựa vào giải pháp quét cổng khi muốn tìm bot. Phần thông tin lại được chuyển qua IRC và có dạng:

"PRIVMSG #ch :[GOOGLE] Trying to
exploit http://www.example.com/index.php"

Bot không phải lúc nào cũng dễ quét như sâu. Vì chúng có thể nằm im trong suốt thời gian dài và chỉ bắt đầu khởi động các cảnh báo IDS khi được chỉ thị cách phát tán tới các máy khác.

Dùng honeypots để tìm bot

Sử dụng Nepenthes Honeypots để dò tìm malware thông thường
Nguồn: net-security

Với hầu hết sâu quét và bot, nhiều lưu lượng được hướng tới mục đích mở rộng. Trong trường hợp này, bạn nên đặt các kiểu mô hình quét kích thước lớn vào log IDS. Nhưng rốt cuộc vẫn sẽ có lúc các bot này quét hệ thống mạng nội bộ của bạn, tìm kiếm nhiều lỗ hổng hệ thống hơn để tấn công.

Chương trình honeypot tốt nhất giúp bạn trong việc này là Nepenthes, chạy trên server UNIX, cung cấp đủ kiểu dịch vụ mô phỏng Windows để lừa các cuộc tấn công tự động. Nepenthes sẽ cố gắng download payload độc hại và cung cấp tuỳ chọn tự động đưa nó tới Norman sandbox. Sau đó bạn sẽ nhận được bản ghi thuộc tính malware gửi dến theo địa chỉ e-mail cung cấp.

Nếu chạy Nepenthes trên máy mở, bạn sẽ nhanh chóng biết được có bao nhiêu malware trôi nổi trên net. Hiện nay có nhiều biến thể khác nhau của một vài gia đình bot như: SpyBot, Agobot… Nhiều chương trình antivirus vẫn chưa dò tìm được một số lượng đáng kể các bot này. Có thể mọi người không mấy vui vẻ, nhưng Nepenthes lại trở nên đặc biệt hữu ích.

Cài đặt và cấu hình Nepenthes

Các bộ đọc dùng Debian Linux có gói xây dựng trước, trong nhánh không ổn định thường được dùng để cài đặt Nepenthes. Người dùng của các hệ thống khác có thể tham khảo thêm tài liệu để biết thêm chi tiết về xây dựng gói tin. Nếu bạn không thích tự mình xây dựng, có một vài ảnh Debian dựng sẵn cho VMWware chỉ đòi hỏi lượng tối thiểu các hoạt động cài Nepenthes. (Bạn có thể dùng các liên kết BitTorrent cũng được).

Sau khi cài đặt Nepenthes, hãy xem xét đến việc chính sửa /etc/nepenthes/nepenthes.conf và đừng bình luận gì về "submitnorman.so", "submit-norman.conf", "" để dùng Norman sandbox. Nội dung của file submit-norman.conf có dạng:

submit-norman

   // địa chỉ e-mail các report của nornam sandbox sẽ được gửi tới; ví dụ 
   email "[email protected]";
};

Từng đệ trình để xem xét sẽ được gửi tới sandbox trực tuyến thông minh của Norman để thực hiện quá trình phân tích thời gian chạy và gửi bản copy kết quả bằng e-mail. Điều này có thể cung cấp cho bạn thông tin rất hữu ích về hoạt động của mã nhị phân khi không phải thực thi và dò tìm nó trong máy riêng ảo của bạn hoặc đảo ngược quá trình xây dựng nó.

Khi Nepenthes khởi động và bắt đầu chạy, nó sẽ được nghe trên một lượng lớn các cổng TCP/IP thông thường, có thể như sau:

#lsof -i
nepenthes 25917 nepenthes 6u IPv4 162588 TCP *:smtp (LISTEN)
nepenthes 25917 nepenthes 7u IPv4 162589 TCP *:pop3 (LISTEN)
nepenthes 25917 nepenthes 8u IPv4 162590 TCP *:imap2 (LISTEN)
nepenthes 25917 nepenthes 9u IPv4 162591 TCP *:imap3 (LISTEN)
nepenthes 25917 nepenthes 10u IPv4 162592 TCP *:ssmtp (LISTEN)

Dùng Nepenthes

Mỗi khi bộ cảm biến của Nepenthes nhận thấy có cuộc tấn công, Nepenthes sẽ cố gắng download bản copy của malware và đưa nó vào sandbox Norman để xem xét. Đây là một phần của bản báo cáo về một bot IRC:

[ Network services ]
  * Looks for an Internet connection.
  * Connects to xxx.example.net on port 7654 (TCP).
  * Sends data stream (24 bytes) to remote address xxx.example.net, port 7654.
  * Connects to IRC Server.
  * IRC: Uses nickname xxx.
  * IRC: Uses username xxx. 
  * IRC: Joins channel #xxx with password xxx.
  * IRC: Sets the usermode for user xxx to …

Như bạn có thể thấy, thực hiện kiểu phân tích tương tự bằng cách dò tìm mã hoặc xây dựng ngược malware dễ dàng hơn nhiều. Một số malware như Agobot có mã chống sửa lỗi ngăn cản sandbox thực hiện phân tích. Trong trường hợp này, bạn có thể cần dùng đến chương trình antivirus yêu thích của mình. Nếu vẫn thất bại, bạn nên đặt vấn đề download mã nhị phân cho Virus Total. Thông tin về mã nhị phân của hai mươi sản phẩm antivirus đứng đầu hoặc hơn sẽ được cung cấp cho bạn.

Các mã nhị phân đóng gói được đặt tên sau khoảng thời gian md5sums của chúng. Trên Debian các mã này được tìm thấy trong thư mục /var/lib/nepenthes/binaries:

# ls /var/lib/nepenthes/binaries/
01a7b93e750ac9bb04c24c739b09c0b0 547765f9f26e62f5dfd785038bb4ec0b
99b5a3628fa33b8b4011785d0385766b 055690bcb9135a2086290130ae8627dc
54b27c050763667c2b476a1312bb49ea …

Các file log cũng cung cấp vị trí và cách thức từng mã nhị phân được lưu trữ:

# tail -1 /var/log/nepenthes/logged_submissions
[2006-07-05T20:37:52]
ftp://ftp:[email protected]:21/host.exe eb6f41b9b17158fa1b765aa9cb3f36a0

Nếu hãng cung cấp phần mềm diệt virus không nhận thấy mối đe doạ ở điểm này, bạn nên cung cấp cho họ mẫu ví dụ cụ thể để sớm có được bản update phù hợp nhanh chóng. Điều đó cho phép bạn giao phó công việc làm sạch cho kỹ thuật viên dễ dàng hơn nhưng nên để diện phát tán ở mức vừa phải.

Kết quả sử dụng Nepenthes

Tổ chức New Zealand Honeynet Project đã cài đặt honeypot Nepenthes phiên bản 0.17 chạy trên nền Debian không ổn định. Nó được nghe trên 255 địa chỉ IP, /24 tiền tố mạng. Qua 5 ngày, nó thu thập được 74 mẫu khác nhau phân biệt bằng bảng băm MD5 của các mã nhị phân. Trong đó chỉ có 48 mẫu được một chương trình chống virus xác định là malware vào ngày cuối cùng. Trong các mẫu thu được có nhiều sâu đã được biết đến như Korgo, Doomjuice, Sasser và Mytob. Các sâu còn lại là bot IRC trong một trật tự sắp xếp nào đấy như SDBot, Spybot, Mybot và Gobot. Phần lớn mã nhị phân được phân lớp như sâu và bot có một số kiểu chức năng backdoor IRC. Nếu phân tích kỹ hơn về các mẫu này bạn sẽ thấy có thể chúng cũng được thực thi bởi bộ đọc.

Kết luận

Có nhiều bản vá lỗi đã được cung cấp cho Windows nhằm khắc phục các vấn đề khai thác từ xa. Ngay cả với một hệ thống quản lý vá lỗi tốt, nhiều host nội bộ của bạn có thể vẫn không dùng được các bản vá lỗi này. Do lỗi cấu hình, lỗi từ phía con người hoặc vì chúng đang trong quá trình cài đặt lại. Một lượng lớn malware nhị phân khác nhau tồn tại có thể khai thác lỗ hổng để tăng khả năng truy cập vào máy chưa được cập nhật. Mã nguồn cho malware, điểm lợi dụng tuyệt vời của các hacker mũ đen với nhiều biến thể khác nhau tồn tại mà không phải tất cả phần mềm antivirus thông thường đều có thể dò tìm được.

Một honeypot tương tác thấp như Nepenthes dễ cài đặt và chỉ đòi hỏi sự bảo dưỡng hay duy trì ở mức tối thiểu. Nó cung cấp thông tin giá trị về các cuộc tấn công. Khi được dùng kết hợp với hệ thống dò tìm xâm phạm, thông tin giá trị về hoạt động của malware, đóng gói gói tin và malware tự mã hoá nhị phân sẽ nhiều hơn.

Nguồn: Internet

Có thể bạn quan tâm

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố.