什么是軟件測試通過手工和自動化工具對被測對象進行檢測,驗證實際結果和預期結果之間的差異。軟件測試的原則1測試是為了證明軟件存在缺陷2測試應該盡早介入3注意測試缺陷的群集效應80-204殺蟲劑現象5合法數據和不合法數據和邊界值,網絡異常和電源斷電等6回歸測試防止出現更多問題7妥善保存一切測試文檔軟件測試的目的1暴露軟件中的缺陷和BUG2記錄軟件運行中產生的一些數據,為開發提供改良的數據支持為什么需要軟件測試1功能實現且正確執行2軟件運行的信息數據如果一個產品開發完成之后發現了很多問題,說明此軟件開發過程很可能是有缺陷的,因此,軟件測試的目的是保證整個軟件開發過程是高質量的。測試分類1單元測試分單元2集成測試多個單元3系統測試用戶角度-功能主體4驗證測試α測試-內測β測試-公測UAT測試-客戶驗收使用系統測試分類1功能測試2性能測試3安全測試4兼容性測試測試方法1按照測試對象分類白盒測試黑盒測試灰盒測試2按照測試對象是否執行分類靜態測試動態測試3按照測試手段進行分類手工測試靈活改變測試操作和環境自動化測試1自己寫腳本2第三方工具進行測試軟件質量1維護性2移植性3效率性4可靠性5易用性6功能性軟件測試流程1需求分析2設計用例3評審用例4。多平臺兼容性測試顯示Linux環境下存在驅動適配問題。第三方軟件評測機構
先將訓練樣本的dll和api信息特征視圖、格式信息特征視圖以及字節碼n-grams特征視圖分別輸入至一個深度神經網絡中抽取高等特征表示,然后合并抽取的高等特征表示并將其作為下一個深度神經網絡的輸入進行模型訓練,得到多模態深度集成模型。進一步的,所述多模態深度集成模型的隱藏層的***函數采用relu,輸出層的***函數采用sigmoid,中間使用dropout層進行正則化,優化器采用adagrad。進一步的,所述訓練得到的多模態深度集成模型中,用于抽取dll和api信息特征視圖的深度神經網絡包含3個隱含層,且3個隱含層中間間隔設置有dropout層;用于抽取格式信息特征視圖的深度神經網絡包含2個隱含層,且2個隱含層中間設置有dropout層;用于抽取字節碼n-grams特征視圖的深度神經網絡包含4個隱含層,且4個隱含層中間間隔設置有dropout層;用于輸入合并抽取的高等特征表示的深度神經網絡包含2個隱含層,且2個隱含層中間設置有dropout層;所述dropout層的dropout率均等于。本發明實施例的有益效果是,提出了一種基于多模態深度學習的惡意軟件檢測方法,應用了多模態深度學習方法來融合dll和api、格式結構信息、字節碼n-grams特征。第三方軟件評測機構功能完整性測試發現3項宣傳功能未完全實現。
比黑盒適用性廣的優勢就凸顯出來了。[5]軟件測試方法手動測試和自動化測試自動化測試,顧名思義就是軟件測試的自動化,即在預先設定的條件下運行被測程序,并分析運行結果。總的來說,這種測試方法就是將以人驅動的測試行為轉化為機器執行的一種過程。對于手動測試,其在設計了測試用例之后,需要測試人員根據設計的測試用例一步一步來執行測試得到實際結果,并將其與期望結果進行比對。[5]軟件測試方法不同階段測試編輯軟件測試方法單元測試單元測試主要是對該軟件的模塊進行測試,通過測試以發現該模塊的實際功能出現不符合的情況和編碼錯誤。由于該模塊的規模不大,功能單一,結構較簡單,且測試人員可通過閱讀源程序清楚知道其邏輯結構,首先應通過靜態測試方法,比如靜態分析、代碼審查等,對該模塊的源程序進行分析,按照模塊的程序設計的控制流程圖,以滿足軟件覆蓋率要求的邏輯測試要求。另外,也可采用黑盒測試方法提出一組基本的測試用例,再用白盒測試方法進行驗證。若用黑盒測試方法所產生的測試用例滿足不了軟件的覆蓋要求,可采用白盒法增補出新的測試用例,以滿足所需的覆蓋標準。其所需的覆蓋標準應視模塊的實際具體情況而定。
之所以被稱為黑盒測試是因為可以將被測程序看成是一個無法打開的黑盒,而工作人員在不軟件測試方法考慮任何程序內部結構和特性的條件下,根據需求規格說明書設計測試實例,并檢查程序的功能是否能夠按照規范說明準確無誤的運行。其主要是對軟件界面和軟件功能進行測試。對于黑盒測試行為必須加以量化才能夠有效的保證軟件的質量。[5](2)白盒測試。其與黑盒測試不同,它主要是借助程序內部的邏輯和相關信息,通過檢測內部動作是否按照設計規格說明書的設定進行,檢查每一條通路能否正常工作。白盒測試是從程序結構方面出發對測試用例進行設計。其主要用于檢查各個邏輯結構是否合理,對應的模塊**路徑是否正常以及內部結構是否有效。常用的白盒測試法有控制流分析、數據流分析、路徑分析、程序變異等,其中邏輯覆蓋法是主要的測試方法。[5](3)灰盒測試。灰盒測試則介于黑盒測試和白盒測試之間。灰盒測試除了重視輸出相對于出入的正確性,也看重其內部表現。但是它不可能像白盒測試那樣詳細和完整。它只是簡單的靠一些象征性的現象或標志來判斷其內部的運行情況,因此在內部結果出現錯誤,但輸出結果正確的情況下可以采取灰盒測試方法。因為在此情況下灰盒比白盒**。代碼簽名驗證確認所有組件均經過可信機構認證。
在不知道多長的子序列能更好的表示可執行文件的情況下,只能以固定窗口大小在字節碼序列中滑動,產生大量的短序列,由機器學習方法選擇可能區分惡意軟件和良性軟件的短序列作為特征,產生短序列的方法叫n-grams。“080074ff13b2”的字節碼序列,如果以3-grams產生連續部分重疊的短序列,將得到“080074”、“0074ff”、“74ff13”、“ff13b2”四個短序列。每個短序列特征的權重表示有多種方法。**簡單的方法是如果該短序列在具體樣本中出現,就表示為1;如果沒有出現,就表示為0,也可以用。本實施例采用3-grams方法提取特征,3-grams產生的短序列非常龐大,將產生224=(16,777,216)個特征,如此龐大的特征集在計算機內存中存儲和算法效率上都是問題。如果短序列特征的tf較小,對機器學習可能沒有意義,選取了tf**高的5000個短序列特征,計算每個短序列特征的,每個短序列特征的權重是判斷其所在軟件樣本是否為惡意軟件的依據,也是區分每個軟件樣本的依據。(4)前端融合前端融合的架構如圖4所示,前端融合方式將三種模態的特征合并,然后輸入深度神經網絡,隱藏層的***函數為relu,輸出層的***函數是sigmoid,中間使用dropout層進行正則化,防止過擬合,優化器。第三方實驗室驗證數據處理速度較上代提升1.8倍。代碼審計測試
第三方驗證實際啟動速度較廠商宣稱慢0.7秒。第三方軟件評測機構
k為短序列特征總數,1≤i≤k。可執行文件長短大小不一,為了防止該特征統計有偏,使用∑knk,j進行歸一化處理。逆向文件頻率(inversedocumentfrequency,idf)是一個短序列特征普遍重要性的度量。某一短序列特征的idf,可以由總樣本實施例件數目除以包含該短序列特征之樣本實施例件的數目,再將得到的商取對數得到:其中,|d|指軟件樣本j的總數,|{j:i∈j}|指包含短序列特征i的軟件樣本j的數目。idf的主要思想是:如果包含短序列特征i的軟件練樣本越少,也就是|{j:i∈j}|越小,idf越大,則說明短序列特征i具有很好的類別區分能力。:如果某一特征在某樣本中以較高的頻率出現,而包含該特征的樣本數目較小,可以產生出高權重的,該特征的。因此,,保留重要的特征。此處選取可能區分惡意軟件和良性軟件的短序列特征,是因為字節碼n-grams提取的特征很多,很多都是無效特征,或者效果非常一般的特征,保持這些特征會影響檢測方法的性能和效率,所以要選出有效的特征即可能區分惡意軟件和良性軟件的短序列特征。步驟s2、將軟件樣本中的類別已知的軟件樣本作為訓練樣本,然后分別采用前端融合方法、后端融合方法和中間融合方法設計三種不同方案的多模態數據融合方法。第三方軟件評測機構