Thứ Hai, 22 tháng 7, 2013

Basic Dynamic Analysis: Sandbox

Dynamic analysis là bất cứ quá trình phân tích nào được thực hiện sau khi thực thi malware. Dynamic analysis techniques là bước thứ hai trong quá trình phân tích malware. Dynamic analysis thường được thực hiện sau basic static analysis đã được thực hiện xong, có hay không obfuscation, packing hoặc là việc phân tích đã tận dụng hết các kĩ thuật phân tích tĩnh chưa. Nó có thể yêu cầu monitering malware khi nó runs hoặc là kiểm tra hệ thống sau khi malware đã được thực thi.

Không giống như static analysis, dynamic analysis giúp bạn quan sát được các chức năng thực sự của malware, bởi vì, cho ví dụ, sự tồn tại của một action string trong một binary không có nghĩa là action sẽ thực sự được thực thi. Dynamic analysis còn là một cách hiệu quả để nhận dạng những chức năng mà malware thực hiện. Cho ví dụ, nếu malware của bạn là một keylogger, dynamic analysis có thể cho phép bạn tìm được vị trí của keylogger's log file trên hệ thống, phát hiện ra những kiểu records nó giữ, giải mã được nơi nó gửi thông tin của nó, và còn nhiều thứ khác. Những kiểu thông tin như vầy có thể rất khó có được khi ta chỉ sử dụng basic static techniques.

Mặc dù dynamic analysis techniques là cực kì mạnh mẽ, chúng chỉ nên được thực hiện sau khi basic static analysis đã được hoàn thành, bởi vì dynamic analysis có thể đặt mạng và hệ thống của bạn vào mối nguy hiểm. Dynamic techniques cũng có những giới hạn của chúng, bởi vì không phải tất cả code paths có thể thực thi khi một mảnh malware được run. Cho ví dụ, trong trường hợp command-line malware mà yêu cầu arguments, mỗi argument có thể thực thi các chức năng khác nhau của chương trình, và nếu không biết về options bạn không thể nào phân tích động tất cả các chức năng của chương trình. Bạn có thể cần sử dụng advanced dynamic hoặc static techniques để tìm ra cách làm cho malware thực thi tất cả các chức năng của nó. Bài viết này mô tả basic dynamic analysis techniques.

Sandboxes: The Quick-and-Dirty Approach

Một vài sản phầm phần mềm "tất cả trong một" có thể được sử dụng để thực hiện basic dynamic analysis, và phổ biến nhất là sử dụng sandbox. sandbox là một cơ chế bảo vệ (security mechanism) dành cho việc running các chương trình không đáng tin mà không phải lo sợ nó ảnh hưởng đến các hệ thống thực. Sandboxes bao gồm các môi trường được ảo hóa mà thường mô phỏng các dịch vụ mạng theo một vài kiểu mẫu nào đó để đảm bảo rằng phần mềm  hoặc là malware được tested sẽ hoạt động bình thường.

Using a Malware Sandbox

Nhiều malware sandboxes - như là Norman SandBox, GFI Sandbox, Anubis, Joe Sandbox, ThreatExpert, BitBlaze, và Comodo Instant Malware Analysis - sẽ phân tích malware miễn phí. Hiện tại, Norman Sandbox và GFI Sandbox (ban đầu có tên là CWSandbox) là 2 sandboxes phổ biến nhất.

Các sandboxes  cung cấp output dễ hiểu và là thích hợp cho bước phân loại ban đầu, miễn là bạn submit malware của mình lên sandbox websites. Mặc dù sandboxes được tự động, bạn có thể chọn để không phải submit malware chứa thông tin về công ty lên public website.

Hầu hết sandboxes làm việc tương tự như nhau, vì vậy tôi sẽ thảo luận về một sandbox, GFI sandbox. Figure 4-1 hiển thị bảng nội dung của một PDF report được sinh ra bởi việc running một file thông qua GFI Sandbox's automated analysis. Malware report bao gồm nhiều chi tiết khác nhau về malware, như là hành vi mạng nó thực hiện, file nó tạo ra, kết quả sinh ra thông qua việc scan với VirusTotal,...
 Reports được sinh bởi GFI sandbox khác nhau trong số lượng sections chúng chứa, dựa trên những gì analysis tìm được. GFI sandbox report 6 sections trong Figure 4-1, như sau:


  • Analysis Summary liệt kê static analysis information và một toàn cảnh ở mức cao của các kết quả phân tích động. 
  • File Activity section liệt kê các files được mở, được tạo, hoặc bị xóa cho mỗi process bị tác động bởi malware. 
  • Created Mutexes section liệt kê mutexes tạo bởi malware. 
  • Registry Activity section liệt kê các thay đổi đến registry.
  • Network Activity section bao gồm network activity được sinh ra bởi malware, bao gồm cả việc thiết lập một listening port hoặc thực hiện một DNS request. 
  • VirusTotal Results section liệt kê các kết quả của VirusTotal scan đối với malware.
Sandbox Drawbacks

Malware sandboxes thường có một vài nhược điểm chính. Cho ví dụ, sandbox đơn giản chỉ run executable, mà không có command-line options. Nếu malware executable yêu cầu command-line options, nó sẽ không thực thi bất cứ code nào và nó chỉ run khi cung cấp một option. Ngoài ra, nếu subject malware của bạn đang chờ cho command-and-control packet được trả về trước khi launching một backdoor, backdoor sẽ không được lanched trong sandbox. 

Sandbox có thể không record được tất cả events, bởi vì cả bạn lẫn sandbox không thể chờ đợi trong một thời gian đủ dài. Cho ví dụ, nếu malware được thiết lập để sleep trong vòng một ngày trước khi thực hiện các hành vi nguy hiểm, bạn có thể lỡ mất sự kiện đó. (Hầu hết sandboxes hook Sleep function và thiết lập nó ngủ chỉ trong một thời gian ngắn, nhưng để ngủ thì đâu phải chỉ có một cách này, và sandboxes không thể theo kịp tất cả những cách thức trên.)

Các khuyết điểm tiềm ẩn khác bao gồm:
  • Malware thường phát hiện khi nó đang đực running trong một máy ảo, và nếu một máy ảo bị phát hiện, malware có thể dùng việc running hoặc trở mặt cư xử khác đi. Không phải tất cả sandboxes đều giải quyết được vấn đề này. 
  • Một vài malware yêu cầu sự hiện diện của registry keys nhất định hoặc files trên hệ thống mà những thứ này có thể không được tìm thấy trong sandbox. Nhiều cái còn yêu cầu chứa dữ liệu hợp lệ, ví dụ như commands hoặc encrytion keys. 
  • Nếu malware là một DLL, một lượng nhất định exported functions sẽ không được invoked một cách thích hợp, bởi vì một DLL sẽ không run dễ dàng như là một excutable. 
  • Sandbox environment OS có thể không đúng với malware. Cho ví dụ, malware có thể crash Windows XP nhưng sẽ run mà không hề gì trong Windows 7.
  • Một sandbox không thể nói cho bạn những gì malware làm. Nó có thể report các chức năng cơ bản, nhưng không thể nói cho bạn nếu malware là một custom Security Account Manager (SAM) hash dump utility hoặc một encryted keylogging backdoor. 

2 nhận xét: