李向東
(廈門軟件職業(yè)技術學院,福建 廈門 361000)
惡意代碼(Malware)對計算機系統(tǒng)構成了重要的威脅,可能對用戶和組織的設備和數(shù)據(jù)造成危害[1]。隨著網絡技術的不斷進步以及網絡環(huán)境的持續(xù)變化,惡意代碼的數(shù)量和種類正快速增加,并呈現(xiàn)出越來越復雜和隱蔽的特征。這給傳統(tǒng)的惡意代碼檢測和防范技術帶來了巨大的挑戰(zhàn)。
傳統(tǒng)的惡意代碼檢測和防范技術主要依賴于規(guī)則和特征碼的模式匹配,即基于已知特征和行為模式來判斷是否存在惡意代碼[2]。面對新型惡意代碼和變種時,這種方法的效果不佳。惡意代碼的變種和隱蔽性使得傳統(tǒng)方法無法準確識別和阻止新型病毒的攻擊。研究人員和安全專家需要采用更先進和智能的方法來檢測和防范惡意代碼的威脅。人工智能技術,特別是機器學習和深度學習,為惡意代碼檢測提供了新的可能性。通過訓練模型來學習惡意代碼的特征和行為模式,可以提高檢測的準確性和泛化能力。
相較于傳統(tǒng)方法,基于人工智能的惡意代碼檢測和防范技術能夠更好地適應新型攻擊和惡意代碼的變化[3]。它能夠自動學習新的特征和模式,從而識別未知的惡意代碼。此外,人工智能還能夠通過分析大規(guī)模的數(shù)據(jù)和網絡流量,提供更全面和準確的惡意代碼檢測和防范能力。
盡管人工智能在惡意代碼檢測和防范方面有巨大潛力,不可否認的是,它仍然面臨很大的挑戰(zhàn)。例如,需要大量的高質量訓練數(shù)據(jù)來訓練模型,以獲取良好的性能。此外,保護用戶隱私和數(shù)據(jù)安全也是一個重要的問題,需要在收集和處理數(shù)據(jù)時予以關注。
人工智能為惡意代碼檢測和防范帶來了新的希望。通過采用更先進和智能的方法,可以提高惡意代碼檢測的準確性和防范能力,從而更好地保護計算設備和數(shù)據(jù)的安全。然而,隨著惡意代碼技術的不斷演進,人工智能系統(tǒng)也需要不斷改進和完善,以應對日益復雜和隱蔽性更強惡意代碼的威脅。
本研究旨在運用人工智能的方法改進惡意代碼檢測與防范機制,提高檢測準確性和檢測效率,并增強對新型惡意代碼變種的識別和防范能力。隨著惡意代碼威脅的增長,傳統(tǒng)檢測方法的局限性已經變得越發(fā)明顯,無法有效對抗不斷變化的惡意代碼攻擊。因此,引入人工智能技術成為一種解決惡意代碼攻擊的有效途徑。
通過引入機器學習和深度學習等人工智能技術,利用大量的數(shù)據(jù)和算法來自動學習惡意代碼的行為模式和特征。通過對惡意代碼樣本進行特征提取和建模,訓練模型來識別惡意代碼的署名、惡意行為和潛在威脅。與傳統(tǒng)的基于規(guī)則的方法相比,基于人工智能的方法具有更強的自適應性和泛化能力,能夠應對未知變種的惡意代碼攻擊。引入基于人工智能的方法可以改進傳統(tǒng)的惡意代碼檢測和防范技術,提高檢測的準確性和效率,提供更及時、適應性更強的保護機制。
例如,利用深度學習模型對大量惡意代碼樣本進行自動分析和分類,實時監(jiān)控和識別未知惡意行為。這為個人用戶、企業(yè)和組織提供了更大的保護,有助于減少潛在的損害和數(shù)據(jù)泄露的風險。在當前的信息安全環(huán)境中,改進惡意代碼的檢測方式和防范技術具有重要意義,為保護用戶和組織的安全提供了更加有效的方法。
基于人工智能的惡意代碼檢測與防范方法對學術界和產業(yè)界具有重要意義和實際價值。通過探索人工智能在安全領域的應用,加深了對其在惡意代碼檢測與防范中的潛力和局限性的理解。同時,為安防領域的研究者和從業(yè)人員提供了廣闊的研究方向和創(chuàng)新空間。持續(xù)的實驗和改進可以提高惡意代碼檢測與防范的有效性,并推動整個安全領域的進一步發(fā)展。
傳統(tǒng)的技術主要包括:特征碼匹配、行為分析、沙箱分析、主機和網絡防火墻[4-5]。下面分別介紹這幾種方法:
特征碼匹配:這是最常用的方法之一,它通過在惡意代碼中搜索已知的特征碼或簽名來進行檢測(通過搜索已知特征碼或惡意代碼中的簽名進行檢測)。這些特征碼通常由安全廠商和研究人員手動提取和更新,以識別已知的惡意代碼。然而,這種方法對于新出現(xiàn)的惡意代碼變種和未知的攻擊方式效果卻很有限。
行為分析:行為分析是一種基于惡意代碼執(zhí)行過程中的行為特征來檢測惡意代碼的方法。它通過監(jiān)視惡意代碼、操作系統(tǒng)調用、文件修改和網絡活動等行為來識別潛在的惡意行為。然而,行為分析也面臨著逃避檢測的問題,因為惡意代碼可以采取各種方式來規(guī)避行為分析工具的監(jiān)視。
沙箱分析:沙箱分析是在隔離環(huán)境中運行惡意代碼,觀察其行為并確定其是否為惡意代碼的一種方法。在沙箱中,惡意代碼的行為可以被監(jiān)視和記錄,并且可以進行靜態(tài)和動態(tài)分析。然而,沙箱分析也存在一些問題,如惡意代碼可能檢測到自身在虛擬環(huán)境中運行并采取逃避措施。
主機和網絡防火墻:主機和網絡防火墻是針對惡意代碼的常用安全措施。主機防火墻可用于監(jiān)控和控制計算機的網絡連接和數(shù)據(jù)流量,以防止惡意代碼通過網絡融入系統(tǒng)中。網絡防火墻可以在網絡層面對惡意流量進行過濾和阻斷。?
2.2.1人工智能在惡意代碼檢測和預防中的應用
在惡意代碼的檢測與防范方面,人工智能的應用已成為一個熱門領域。借助機器學習和深度學習等人工智能技術,可以更加準確地識別和阻止惡意代碼的威脅。
在惡意代碼檢測方面,人工智能可以通過學習大量樣本自動提取惡意代碼的特征,從而實現(xiàn)自動化的惡意代碼檢測。傳統(tǒng)的機器學習算法如支持向量機(SVM)、決策樹和隨機森林等被廣泛應用于惡意代碼分類和識別。這些算法能夠根據(jù)惡意代碼的特征對其進行分類,為惡意代碼的檢測提供準確的基礎。
深度學習,特別是深度神經網絡,在惡意代碼檢測中也展現(xiàn)出強大的潛力。通過深度神經網絡的層次化學習和表示能力,可以從惡意代碼中學習更加復雜和抽象的特征。例如,通過卷積神經網絡(CNN)可以有效地捕捉圖像特征,而遞歸神經網絡(RNN)則能夠處理序列數(shù)據(jù),如代碼的執(zhí)行順序。這些深度學習模型可以根據(jù)不同的數(shù)據(jù)類型和問題需求靈活地提取和分類特征,提高惡意代碼檢測的準確性和魯棒性。
此外,人工智能還可以應用于惡意代碼行為分析。通過對惡意代碼的行為進行建模和學習,可以識別出惡意行為的模式和行為序列。通過監(jiān)測和分析惡意代碼的文件操作、注冊表修改、網絡連接和控制流程等行為特征,人工智能可以提供更高級的惡意代碼檢測和防范能力。例如,可以通過深度學習對惡意軟件的網絡行為進行建模,以識別和阻止與惡意代碼相關的惡意域名、惡意IP 地址和惡意網站等網絡活動。
人工智能的應用為惡意代碼檢測與防范提供了新的解決思路和工具。借助機器學習和深度學習等技術,可以更準確地識別和阻止惡意代碼的威脅,從而提高網絡安全的水平。隨著人工智能技術的不斷發(fā)展和完善,相信未來基于人工智能的惡意代碼檢測與防范機制將發(fā)揮越來越重要的作用,為用戶和企業(yè)提供更加安全可靠的網絡環(huán)境。
2.2.2數(shù)據(jù)集和算法介紹
在人工智能應用于惡意代碼檢測與防范中,數(shù)據(jù)集的選擇和算法的設計是非常重要的。
數(shù)據(jù)集:為了訓練和評估惡意代碼檢測模型,需要一個包含惡意代碼和正常代碼樣本的數(shù)據(jù)集。常見的數(shù)據(jù)集包括Malware Genome Project、Microsoft Malware Classification Challenge 和Kaggle 上的公開數(shù)據(jù)集。
算法:常用的算法包括支持向量機(SVM)、決策樹、隨機森林和深度神經網絡等。SVM是一種二分類算法,適用于惡意代碼檢測中的特征向量分類。決策樹和隨機森林可以對惡意代碼的特征進行分層和組合,以提高分類性能。深度神經網絡可以通過學習多層抽象特征來準確地識別和分類惡意代碼。
除了傳統(tǒng)的監(jiān)督式學習算法,還可以使用無監(jiān)督式學習算法進行惡意代碼檢測。無監(jiān)督式學習算法可以從未標記的樣本中發(fā)現(xiàn)潛在的惡意模式和異常行為。常見的無監(jiān)督式學習算法包括聚類、關聯(lián)規(guī)則挖掘和異常檢測等。
在惡意代碼檢測與防范方面,實驗設計是評估算法和方法有效性的關鍵。以下是實驗設計步驟:
數(shù)據(jù)集選擇:選擇具有代表性和多樣化的數(shù)據(jù)集,包括惡意代碼和正常代碼樣本(如表1所示),數(shù)據(jù)集來源于公開數(shù)據(jù)集和自定義構建的數(shù)據(jù)集。

表1 惡意代碼和正常代碼
數(shù)據(jù)預處理:對數(shù)據(jù)集進行預處理,例如特征提取、特征選擇和數(shù)據(jù)規(guī)范化。這可以幫助降低數(shù)據(jù)維度、減少噪聲和增加算法的效果。
提取惡意代碼的API 調用序列作為特征表示是一種常用的方法。表2展示了惡意代碼樣本的API調用序列特征表示:

表2 惡意代碼API調用序列
使用API 調用序列作為特征表示是一種有效的方法來捕獲惡意代碼的行為和功能。以下用一個示例說明如何轉化API調用序列為特征表示形式,并使用特征選擇方法選擇最具區(qū)分性和相關性的特征子集。
將API 調用序列視為一個包含多個元素的順序列表,每個元素代表一個API 調用。為了將API 調用序列轉化為特征表示形式,可以考慮使用以下2 種方式:
Bag-of-Words(詞袋模型):
將API 調用序列看作是一個文本,并將每個API調用作為一個詞語。然后,可以使用詞袋模型來表示每個樣本的特征向量。特征向量的每個維度表示一個API調用,用于表示該樣本中是否存在該API調用。
樣本1 的API 調用序列: ["CreateFile", "Read-File","WriteFile","CryptoAPI","DeleteFile"]
轉化為特征表示形式:
特征向量:[1,1,1,1,1,0,0,0,...]
在特征向量中,每個維度對應一個API 調用。如果樣本中存在該API調用,則該維度的值設為1,否則設為0。這種特征表示形式忽略了API 調用的順序,只關注存在與否。
N-gram 模型:
除了考慮API 調用的存在與否,還可以考慮API調用的順序。在N-gram模型中,將API調用序列劃分為長度為N 的子序列,并將每個子序列作為一個特征。
樣本1 的API 調用序列: ["CreateFile", "Read-File","WriteFile","CryptoAPI","DeleteFile"]
當N=2時,轉化為特征表示形式:
特征向量:[1,1,1,1,0,0,0,0,...]
在特征向量中,每個維度對應一個N-gram 子序列。如果樣本中存在該N-gram 子序列,則該維度的值設為1,否則設為0。
在實際應用中,除了API 調用序列之外,還可以將其他特征添加到特征向量中,例如文件大小、文件類型等。將這些特征與API調用序列特征結合起來,可以提高分類模型的準確性。
在特征選擇階段,可以使用信息增益、方差閾值等特征選擇方法,選擇最具區(qū)分性和相關性的特征子集。這些方法可以幫助剔除與分類任務無關或冗余的特征,提高模型的效果。

圖1 人工智能識別病毒流程圖
設計惡意代碼檢測與防范系統(tǒng)或模型是一個多步驟的過程,其中人工智能技術發(fā)揮著重要作用。在數(shù)據(jù)收集、預處理、數(shù)據(jù)集劃分以及模型選擇與訓練等步驟中,人工智能的應用可以提高惡意代碼檢測與防范的準確性和效率。未來的惡意代碼檢測與防范系統(tǒng)或模型可以進一步優(yōu)化和改進。一方面,可以探索更先進的機器學習或深度學習算法,以更好地捕捉惡意代碼的特征和行為模式,提高防護能力。另一方面,可以考慮引入更多的特征,構建更細致、全面的模型,以應對惡意代碼的不斷演化和變異。此外,利用大數(shù)據(jù)和云計算等技術可以提高檢測與防范的效率和效果。同時,為了應對惡意代碼的變化和演進,惡意代碼檢測與防范也需要與時俱進。持續(xù)監(jiān)測和更新模型能夠及時適應新的惡意代碼類型和攻擊手法。此外,還需要加強惡意代碼檢測和防御系統(tǒng)的安全性和魯棒性,以防止惡意代碼的繞過和攻擊。綜上所述,惡意代碼檢測與防范是一項具有挑戰(zhàn)性的任務,但通過持續(xù)的研究和改進,可以構建更有效、可靠的系統(tǒng)或模型來應對不斷演化的惡意代碼威脅。人工智能的技術和方法在這一過程中發(fā)揮著關鍵的作用,為惡意代碼檢測與防范提供了新的可能性。