先將當前軟件樣本件的二進制可執行文件轉換為十六進制字節碼序列,然后采用n-grams方法在十六進制字節碼序列中滑動,產生大量的連續部分重疊的短序列特征,提取得到當前軟件樣本的二進制可執行文件的字節碼n-grams的特征表示。生成軟件樣本的dll和api信息特征視圖,是先統計所有類別已知的軟件樣本的pe可執行文件引用的dll和api信息,從中選取引用頻率**高的多個dll和api信息;然后判斷當前的軟件樣本的導入節里是否存在選擇出的某個引用頻率**高的dll和api信息,如存在,則將當前軟件樣本的該dll或api信息以1表示,否則將其以0表示,從而對當前軟件樣本的所有dll和api信息進行表示形成當前軟件樣本的dll和api信息特征視圖。生成軟件樣本的格式信息特征視圖,是從當前軟件樣本的pe格式結構信息中選取可能區分惡意軟件和良性軟件的pe格式結構特征,形成當前軟件樣本的格式信息特征視圖。從當前軟件樣本的pe格式結構信息中選取可能區分惡意軟件和良性軟件的pe格式結構特征,是從當前軟件樣本的pe格式結構信息中確定存在特定格式異常的pe格式結構特征以及存在明顯的統計差異的格式結構特征。特定格式異常包括:(1)代碼從**后一節開始執行,(2)節頭部可疑的屬性,。覆蓋軟件功能與性能的多維度檢測方案設計與實施!長沙軟件評測公司
在不知道多長的子序列能更好的表示可執行文件的情況下,只能以固定窗口大小在字節碼序列中滑動,產生大量的短序列,由機器學習方法選擇可能區分惡意軟件和良性軟件的短序列作為特征,產生短序列的方法叫n-grams?!?80074ff13b2”的字節碼序列,如果以3-grams產生連續部分重疊的短序列,將得到“080074”、“0074ff”、“74ff13”、“ff13b2”四個短序列。每個短序列特征的權重表示有多種方法。**簡單的方法是如果該短序列在具體樣本中出現,就表示為1;如果沒有出現,就表示為0,也可以用。本實施例采用3-grams方法提取特征,3-grams產生的短序列非常龐大,將產生224=(16,777,216)個特征,如此龐大的特征集在計算機內存中存儲和算法效率上都是問題。如果短序列特征的tf較小,對機器學習可能沒有意義,選取了tf**高的5000個短序列特征,計算每個短序列特征的,每個短序列特征的權重是判斷其所在軟件樣本是否為惡意軟件的依據,也是區分每個軟件樣本的依據。(4)前端融合前端融合的架構如圖4所示,前端融合方式將三種模態的特征合并,然后輸入深度神經網絡,隱藏層的***函數為relu,輸出層的***函數是sigmoid,中間使用dropout層進行正則化,防止過擬合,優化器。軟件產品檢測報告-CNAS報告從傳統到智能:艾策科技助力制造業升級之路。
此外格式結構信息具有明顯的語義信息,但基于格式結構信息的檢測方法沒有提取決定軟件行為的代碼節和數據節信息作為特征。某一種類型的特征都從不同的視角反映刻畫了可執行文件的一些性質,字節碼n-grams、dll和api信息、格式結構信息都部分捕捉到了惡意軟件和良性軟件間的可區分信息,但都存在著一定的局限性,不能充分、綜合、整體的表示可執行文件的本質,使得檢測結果準確率不高、可靠性低、泛化性和魯棒性不佳。此外,惡意軟件通常偽造出和良性軟件相似的特征,逃避反**軟件的檢測。技術實現要素:本發明實施例的目的在于提供一種基于多模態深度學習的惡意軟件檢測方法,以解決現有采用二進制可執行文件的單一特征類型進行惡意軟件檢測的檢測方法檢測準確率不高、檢測可靠性低、泛化性和魯棒性不佳的問題,以及其難以檢測出偽造良性軟件特征的惡意軟件的問題。本發明實施例所采用的技術方案是,基于多模態深度學習的惡意軟件檢測方法,按照以下步驟進行:步驟s1、提取軟件樣本的二進制可執行文件的dll和api信息、pe格式結構信息以及字節碼n-grams的特征表示,生成軟件樣本的dll和api信息特征視圖、格式信息特征視圖以及字節碼n-grams特征視圖。
生成取值表。3把取值表與選擇的正交表進行映射控件數Ln(取值數)3個控件5個取值5的3次冪混合正交表當控件的取值數目水平不一致時候,使用allp**rs工具生成1等價類劃分法劃分值2邊界值分析法邊界值3錯誤推斷法經驗4因果圖分析法關系5判定表法條件和結果6流程圖法流程路徑梳理7場景法主要功能和業務的事件8正交表先關注主要功能和業務流程,業務邏輯是否正確實現,考慮場景法需要輸入數據的地方,考慮等價類劃分法+邊界值分析法,發現程序錯誤的能力**強存在輸入條件的組合情況,考慮因果圖判定表法多種參數配置組合情況,正交表排列法采用錯誤推斷法再追加測試用例。需求分析場景法分析主要功能輸入的等價類邊界值輸入的各種組合因果圖判定表多種參數配置正交表錯誤推斷法經驗軟件缺陷軟件產品中存在的問題,用戶所需要的功能沒有完全實現。云計算與 AI 融合:深圳艾策的創新解決方案。
不*可以用于回歸測試,也可以為以后的測試提供參考。[4](8)錯誤不可避免原則。在測試時不能首先假設程序中沒有錯誤。[4]軟件測試方法分類編輯軟件測試方法的分類有很多種,以測試過程中程序執行狀態為依據可分為靜態測試(StaticTesting,ST)和動態測試(DynamicTesting,DT);以具體實現算法細節和系統內部結構的相關情況為根據可分黑盒測試、白盒測試和灰盒測試三類;從程序執行的方式來分類,可分為人工測試(ManualTesting,MT)和自動化測試(AutomaticTesting,AT)。[5]軟件測試方法靜態測試和動態測試(1)靜態測試。靜態測試的含義是被測程序不運行,只依靠分析或檢查源程序的語句、結構、過程等來檢查程序是否有錯誤。即通過對軟件的需求規格說明書、設計說明書以及源程序做結構分析和流程圖分析,從而來找出錯誤。例如不匹配的參數,未定義的變量等。[5](2)動態測試。動態測試與靜態測試相對應,其是通過運行被測試程序,對得到的運行結果與預期的結果進行比較分析,同時分析運行效率和健壯性能等。這種方法可簡單分為三個步驟:構造測試實例、執行程序以及分析結果。[5]軟件測試方法黑盒測試、白盒測試和灰盒測試(1)黑盒測試。自動化測試發現7個邊界條件未處理的異常情況。軟件檢測費是研發費用嗎
用戶隱私測評確認數據采集范圍超出聲明條款3項。長沙軟件評測公司
第三方軟件檢測機構在開展第三方軟件測試的過程中,需要保持測試整體的嚴謹性,也需要對測試結果負責并確保公平公正性。所以,在測試過程中,軟件測試所使用的測試工具也是很重要的一方面。我們簡單介紹一下在軟件檢測過程中使用的那些軟件測試工具。眾所周知,軟件測試的參數項目包括功能性、性能、安全性等參數,而其中出具軟件測試報告主要的就是性能測試和安全測試所需要使用到的工具了。一、軟件測試性能測試工具這個參數的測試工具有loadrunner,jmeter兩大主要工具,國產化性能測試軟件目前市場并未有比較大的突破,其中loadrunner是商業軟件測試工具,jmeter為開源社區版本的性能測試工具。從第三方軟件檢測機構的角度上來說,是不太建議使用開源測試工具的。首先,開源測試工具并不能確保結果的準確性,雖然技術層面上來說都可以進行測試,但是因為開源更多的需要考量軟件測試人員的測試技術如何進行使用,涉及到了人為因素的影響,一般第三方軟件檢測機構都會使用loadrunner作為性能測試的工具來進行使用。而loadrunner被加拿大的一家公司收購以后,在整個中國市場區域的銷售和營銷都以第三方軟件檢測機構為基礎來開展工作。長沙軟件評測公司