黑箱測試的專業

黑箱測試的專業

這篇文章主要說明黑箱測試專業的提升有哪些技巧與工具。

筆者認為病毒分析的專業其實是黑箱測試的專業極致,

因為為了要判斷病毒的行為,許多情況是進行很多的黑箱測試並且做各種分析

這樣的分析方法其實可以應用在許多一般應用程式的黑箱測試。

運用相關黑箱測試的技巧與工具,將黑箱測試的專業進一步的提升。

黑箱測試一個檔案的行為可以分為下列幾類:

檔案基本屬性分析

Windows PE (DLL, EXE, SYS)檔案,都會有固定 PE File的檔案結構,

因此,觀察該檔案結構可以在尚未執行檔案前,可以知道該檔案的一些特徵。例如:該檔案是否有被 Packed過。

筆者很推薦使用 PEStudio   https://www.winitor.com/

因為使用簡單,分析的結果詳細,例如:檔案執行時所需要的 DLL, 檔案可疑的地方用紅色標明並且會加以說明

檔案ASCII分析

每個應用程式或是檔案都一定會有輸出的訊息、例如錯誤訊息、提示輸入、甚至是網路傳輸用的訊息

這些訊息大部分會是以 ASCII 的形式存在,因此如果可以將檔案內部所有的ASCII 字元取出,也可以對於該檔案的行為做某些程度的了解。

這邊就要介紹一個微軟提供的工具,Strings

https://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

該程式使用上,僅需要指令列下執行,就會輸出該檔案內部所有 ASCII的文字

strings   Targetfile

這邊用 notepad.exe 為例子

notepad   notepad.exe

輸入擷取如下

Strings v2.51
Copyright (C) 1999-2013 Mark Russinovich
Sysinternals – www.sysinternals.com!This program cannot be run in DOS mode.
91?
?1?
/1?
(1?
81?
=1?
1Rich
.text
`.data
.rsrc
@.reloc
ADVAPI32.dll
KERNEL32.dll
NTDLL.DLL
GDI32.dll
USER32.dll
msvcrt.dll
COMDLG32.dll
SHELL32.dll
!This program cannot be run in DOS mode.這是一個Windows PE檔案的明顯特徵。不管副檔名如何改變,檔案開頭都會有這樣的特徵。另外,相關該檔案會用到的DLL 也會列出。
<application xmlns=”urn:schemas-microsoft-com:asm.v3″>
<windowsSettings>
<dpiAware
</windowsSettings>
</application>
檔案內部定義的一析資料結構與設定也會知道

除此之外,如果該檔案有對外連線的 URL 、IP Address、Email 信箱,也都可以透過這樣的方式取得。

還包含存取特定的檔案路徑 c:\windows\system 或是 registry key \runonce\等

Strings 是一個簡單,又不需要執行檔案就可以對檔案有初步了解的一個好用工具

 

檔案對於系統的影響

另外我們會分析該檔案執行後,會對於系統造成哪些影響,這些影響例如

  • 啟動的 process
  • 啟動的服務
  • 修改的 Registry Key
  • 存放的檔案

要知道這些就必須要將檔案執行起來觀察,筆者建議兩個工具。

  • Process monitor:  可以將所有系統的”歷史”執行資訊不斷的記錄下來
  • Process Explorer: 進階版的 Task Manager 只會顯是”當下”即時的訊息

https://technet.microsoft.com/en-us/library/bb896645.aspx

https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

建議可以使用 process monitor 將相關的歷史資訊紀錄,以方便事後分析。

檔案如何存取網路資源

檔案執行時候,該檔案如何對外連線? 使用哪些 protocol? 連到哪些網站 or IP address,連線的內容為何?

這部分最簡單的方式就是檔案執行時,直接啟動 WireShark 將相關的網路資訊記錄下來,最事後的分析

流程圖

另外一個分析的方式就是利用 IDA  這個工具進行 Reverse Engineering

其中最為推薦的,就是對於檔案流程的分析,儘管組合語言的部分不一定可以全然理解

透過一些錯誤訊息或是函數呼叫,該流程圖可以讓我們了解程式的基本邏輯。

IDA Pro Graph View of msvbvm60!DllFunctionCall

小結

這些分析不外乎是知道該檔案執行後的行為,這篇沒有提起到的另外一個領域是 “效能”,當檔案對於系統效能的影響,

情境 使用工具 說明
如何在執行前知道檔案的一些基本行為? Strings 例如可以從 menu、button、使用者提示訊息、錯誤訊息等知道該檔案的基本 input/ouput可以根據此設計相關測試個案
網路行為 WireSharkTCPView
  • 開啟哪些 port
  • 連線的通訊協定
  • 訊息溝通的內容
  • 遠端連線電腦的 IP
系統互動行為 Process monitorProcess Explorer 檔案的存取與建立process or 服務的啟動Registry key的存取與建立載入的 DLL

透過這幾個層面的分析,就可以對該未知檔案的行為有某些程度的了解。這也是黑箱測試的另一個專業領域。

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *