TW202416160A - 關於網路安全之程式執行異常偵測 - Google Patents
關於網路安全之程式執行異常偵測 Download PDFInfo
- Publication number
- TW202416160A TW202416160A TW112139014A TW112139014A TW202416160A TW 202416160 A TW202416160 A TW 202416160A TW 112139014 A TW112139014 A TW 112139014A TW 112139014 A TW112139014 A TW 112139014A TW 202416160 A TW202416160 A TW 202416160A
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- code
- event
- operating mode
- computer system
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title description 53
- 230000006399 behavior Effects 0.000 claims description 183
- 238000000034 method Methods 0.000 claims description 118
- 230000009471 action Effects 0.000 claims description 89
- 238000013473 artificial intelligence Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 description 54
- 230000008569 process Effects 0.000 description 48
- 238000007667 floating Methods 0.000 description 19
- 238000012544 monitoring process Methods 0.000 description 18
- 230000002159 abnormal effect Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 17
- 238000007619 statistical method Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 7
- 206010000117 Abnormal behaviour Diseases 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004886 process control Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009474 immediate action Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012567 pattern recognition method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Abstract
根據無惡意行為之正常操作在一受控環境中在一第一操作模式下執行一程式。基於在該程式之該正常操作期間發生的複數個事件序列產生一可接受行為模型。該可接受行為模型指示在該正常操作期間發生的該程式之正常行為。接著,在一操作環境中在一第二操作模式下執行該程式。將一事件操作序列(在該第二操作模式期間判定)與該可接受行為模型進行比較。當該事件操作序列與該可接受行為模型之間存在一匹配時,繼續在該第二操作模式下執行。當該事件操作序列與該可接受行為模型之間不存在一匹配時,停止在該第二操作模式下執行。
Description
本發明係一關於網路安全之程式執行異常偵測。本申請案主張在2023年10月11日申請之題為「關於網路安全之程式執行異常偵測(Program Execution Anomaly Detection for Cybersecurity)」的美國非臨時專利申請第18/485,049號之優先權,該非臨時專利申請案主張在2022年10月13申請之題為「關於網路安全之程式執行異常偵測系統(Program Execution Anomaly Detection System for Cyber Security)」的美國臨時專利申請案第63/415,852號之優先權,該兩個專利申請案出於所有目的特此以全文引用方式併入。
軟體程式經設計以執行某些預期功能且以預期方式操作。此預期執行及操作可被描述為「正常操作」。然而,在相對複雜的系統中,錯誤、漏洞、弱點及/或漏洞不可避免且可使程式或運行程式之電腦系統容易遭受資料洩漏、惡意程式及其他安全漏洞或惡意攻擊。解決此問題之習知習知方法可在安全漏洞發生之後偵測該安全漏洞,例如藉由監測「全域」異常,例如不正常的網路流量、CPU使用、記憶體存取、檔案使用及/或資料使用。此等方法中之許多方法通常涉及對日誌檔案之事後分析,此可能為時已晚,無法阻止安全漏洞或其他錯誤或意外操作發生。其他習知方法可提供可在軟體開發期間使用以分析代碼且識別有可能被惡意行為者利用之弱點的工具。舉例而言,開發工具可掃描代碼,且尋找針對已知類型攻擊的漏洞。另外其他習知方法可能能夠偵測諸如SQL注入攻擊的某些已知攻擊,但無法偵測非預期的、無意的或潛在地為安全漏洞之其他行為。
在一些態樣中,本文描述之技術係關於一種方法(或一種執行該方法之電腦化系統),該方法包括:由一電腦系統根據無惡意行為之一正常操作在一受控環境中在一第一操作模式下執行一程序;由該電腦系統產生一事件記錄,該事件記錄包括在該程式之該正常操作期間發生的複數個事件序列;由該電腦系統使用該事件記錄產生一可接受行為模型,該可接受行為模型指示在無該惡意行為之該正常操作期間發生的該程式之正常行為;由該電腦系統在一操作環境中在一第二操作模式下執行該程式;由該電腦系統判定在該程式在該第二操作模式下執行期間的該程式之一事件操作序列,該操作事件序列包括一當前動作;由該電腦系統將該事件操作序列與該可接受行為模型進行比較;當該比較步驟導致該事件操作序列與該可接受行為模型之間的一匹配時,在該第二操作模式下執行該當前動作;及當該比較步驟未導致該事件操作序列與該可接受行為模型之間的該匹配時,不執行該當前動作且產生一警報以停止該程式之該執行或在該當前動作處標記該第二操作模式下的該當前動作。
在一些態樣中,本文描述之技術係關於一種方法(或一種執行該方法之電腦化系統),該方法包括:由一電腦系統根據無惡意行為之一正常操作在一受控環境中在一第一操作模式下執行一程式;由該電腦系統產生一事件記錄,該事件記錄包括在該程式之該正常操作期間發生的複數個事件序列;及由該電腦系統使用該事件記錄產生一可接受行為模型,該可接受行為模型指示在無該惡意行為之該正常操作期間發生的該程式之正常行為;其中:該可接受行為模型用於在判定該程式之一當前動作為不匹配該可接受行為模型之一事件操作序列的一部分時,阻止在一操作環境中在一第二操作模式下執行該程式之該當前動作。
在一些態樣中,本文描述之技術係關於一種方法(或一種執行該方法之電腦化系統),該方法包括:由一電腦系統接收一可接受行為模型,該可接受行為模型指示一程式的無惡意行為之正常操作,如藉由根據無惡意行為之該正常操作在一受控環境中在一第一操作模式下執行該程式判定的;由該電腦系統在一操作環境中在一第二操作模式下執行該程式;由該電腦系統判定在該程式在該第二操作模式下執行期間的該程式之一事件操作序列,該事件操作序列包括一當前動作;由該電腦系統將該事件操作序列與該可接受行為模型進行比較;當該比較步驟導致該事件操作序列與該可接受行為模型之間的一匹配時,在該第二操作模式下執行該當前動作;及當該比較步驟未導致該事件操作序列與該可接受行為模型之間的該匹配時,不執行該當前動作且產生一警報以停止該程式之該執行或在該當前行動處標記該第二操作模式下的該當前動作。
本發明使得經改良系統及/或方法能夠偵測受監督程式何時將要進行非預期、異常或惡意的行為,即,軟體異常。然後,經改良系統及/或方法可在非預期、異常或惡意的行為發生之前停止受監督程式之執行。替代地,經改良系統及/或方法可標記該行為或一當前函數、動作或事件。因此,經改良系統及/或方法提供「程式行為施行」。在一些實施例中,本發明偵測與正常行為之偏差而非明顯的惡意動作。換言之,本發明並不判定受監督程式在所有情況下可以做什麼,而是判定受監督程式在正常情況下只能做什麼。
根據一些實施例,圖1為經改良程式執行異常偵測系統(偵測系統) 100的簡化示意方塊圖。偵測系統100通常包括儀器化模組101及用於偵測受監督程式103之執行異常的監督器(即,哨兵) 102。兩種主要組件(儀器化模組101及監督器102)一起工作,以偵測受監督程式103中的即將來臨之非預期或異常行為,且在非預期或異常行為發生之前,停止、暫停及/或標記受監督程式之執行及/或執行(例如,受監督程式103指定或請求之)一或多個異常例行常式。
在一些實施例中,儀器化模組101產生用於受監督程式103之儀器化項105,使得儀器化項105可與監督器102通信以為監督器102 (即,型樣偵測單元與安全系統)提供關於受監督程式103在模型構建模式(例如,訓練模式或學習模式)及操作模式(或真實世界執行模式或監測模式)兩者期間之行為的資訊(即,報告受監督程式103之事件或動作),如下文所論述。下面論述用於由儀器化模組101產生儀器化項105之技術。
一般而言,儀器化模組101產生用於受監督程式103之儀器化項,使得該儀器化項可產生關於受監督程式103正在做什麼(即,受監督程式103在模型構建模式(即,受控環境中之第一操作模式)或操作模式(即,操作環境中之第二操作模式)期間正在執行或將要執行的事件或動作)的資訊且將該資訊發送至監督器102。每一記錄之事件或動作按其發生之順序提供。此類動作或事件之一些實例可包括但不限於:
● 受監督程式103正在調用具有特定參數之特定函數;
● 受監督程式103正在自具有特定結果之特定函數返回;或
● 受監督程式103正在拋出特定種類之異常。
在模型構建模式期間,監督器102自儀器化項105接收此等類型之事件等,且基於在受監督程式103之正常操作期間發生的行為模式或事件序列來建構「正常行為」模型或「可接受行為」模型104 (例如,使用人工智慧(AI)、機器學習(ML)、統計分析及/或啟發式編譯器)。因此,可接受行為模型104指示在無任何攻擊、惡意行為/動作或異常事件或不存在外部敵意影響的正常操作期間發生的受監督程式103之正常行為,即,該模型為受監督程式103在操作模式期間使用的流程控制及其他操作參數之類型及範圍的建立圖。
在操作模式期間,監督器102自儀器化項105接收此等事件且將事件之模式或序列(即,操作事件及操作序列)與可接受行為模型104進行比較,例如,作為AI模型、統計分析及/或其他恰當的模式偵測技術或其組合的輸入。此比較使監督器102能夠判定當前或即時動作或事件或事件序列是否匹配已知或預期在受監督程式103之正常操作或行為期間發生或已知或預期代表正常操作的模式或事件序列。因此,監督器102執行此比較以判定何時存在匹配及何時不存在匹配。在一些實施例中,此匹配不需要精確,但需要足夠接近以被接受為匹配,如在模型構建模式期間根據經驗可判定的。因此,利用儀器化項105,儀器化受監督程式103之執行產生一系列信號或訊息,該等信號或訊息指示執行中的儀器化受監督程式103內之流程控制或流程狀態,且此等信號由監督器102監測且與可接受行為模型104之參考進行比較以確定儀器化受監督程式103是否在預期限制內或外執行。
當比較導致事件操作序列與可接受行為模型104之間的匹配時,此指示不應發生或已偵測到異常,因此監督器102通常不採取任何動作以對此作出回應(或命令(instruct)儀器化項105或受監督程式103繼續操作),由此允許受監督程式103在受監督程式103之正常操作中執行當前動作或事件。另一方面,當比較未導致事件操作序列與可接受行為模型104之間的匹配(即,事件操作序列偏離可接受行為模型104)時,此指示已偵測到異常(若繼續執行受監督程式103,則會發生異常)。在此情況下,監督器102回應以使受監督程式103不執行當前動作或事件之動作。在一些實施例中,監督器102產生警報以停止或暫停程式之執行。因此,監督器102將資訊發送回至受監督程式103或儀器化項105,資訊例如(但不限於)受監督程式103應在操作模式期間終止或暫停、當前動作/事件應被標記及/或應(例如,由受監督程式103)運行一或多個預定異常例行常式。
儀器化可執行碼之習知使用通常搜尋已知類型的易受攻擊或不安全的功能/狀態或可由代碼執行之惡意動作,例如,如可自控制流圖及/或資料流模型判定的。可產生例如控制流圖或資料流模型以嘗試判定程式可進行的所有可能的動作或事件或程式在所有情況下可進入之狀態。此使得能夠分析惡意行為者可利用之潛在漏洞或攻擊向量。程式開發者可藉由更改代碼來對程式除錯,以確保漏洞不出現在最終控制流圖中,由此移除或修復漏洞。此等習知技術需要了解潛在漏洞或攻擊向量之特性、程式之結構及程式的全部功能,使得對控制流圖或資料流模型之分析可偵測潛在漏洞或攻擊向量。另一方面,本發明具有不需要此種知識之優點,因為本發明沒有明確地尋找受監督程式103之代碼中的漏洞、攻擊向量或潛在惡意動作。相反,本發明有利地尋找受監督程式103之正常行為,而不管代碼中之任何潛在漏洞,使得本發明可偵測與此種正常行為之偏差。在模型構建模式中,偵測系統100不關心受監督程式103之全部能力且可能不會遇到受監督程式103有可能實行的所有可能的動作、事件、序列或狀態。然而,在模型構建模式期間遇到之動作、事件、序列或狀態必然為正常操作之一部分,使得由此產生之可接受行為模型104可用於與操作期間的操作事件及操作序列進行比較。換言之,本發明偵測與正常行為之偏差而非明顯的惡意動作。換言之,本發明並不判定受監督程式103在所有情況下可以做什麼,而是判定受監督程式103在正常情況下只能做什麼。
根據以上描述,根據一些實施例,圖2為偵測系統100之功能模組的簡化方塊圖。在模型構建模式及操作模式期間,受監督程式103執行之函數、動作或事件被提供至儀器化項105之儀器化收集模組201。儀器化收集模組201收集此資訊以產生儀器化資料202。儀器化資料202由儀器化項105提供至監督器102。
監督器控制面板203將「訓練」或「模型構建」信號204提供至監督器102,以使監督器102在模型構建模式下操作以產生或訓練可接受行為模型104。監督器控制面板203亦將「運行」信號205提供至監督器102,以使監督器102在操作模式下操作以基於可接受模型104來偵測受監督程式103之動作或事件中的異常。監督器控制面板203亦將「停止」信號206提供至監督器102,以使監督器102在任一模式下終止或暫停受監督程式103、儀器化模組101及/或監督器102的操作。
監督器102包括線程定時器207 (例如,「看門狗」定時器),該等線程定時器將針對被追蹤之每一線程或過程設定以確保在預期時間量記憶體在預期回應。此用於確保受監督程式103按預期地運行代碼。定時器207中之一些或全部的持續時間可藉由判定在模型構建模式期間正常執行觀察或監測之函數、動作或事件所花費的時間長度來設定,使得若定時器207中之一者超過操作模式期間的先前判定之持續時間,則此可指示異常行為或執行或對正常操作之干擾。在一些情況下,在由定時器207監測之時間段內期望來自儀器化項105之回應,且若在該時間段內監督器102未接收到回應,則產生停止/終止/標記警報/訊息,如下所述。監督器102亦包括「停止」命令208,該命令發送至儀器化項105、受監督程式103、碼解譯器或操作系統以停止或暫停受監督程式103 (或其線程或過程),因此,監督器102已偵測到異常。監督器102亦包括「存錄」功能209,該功能用於提供已發生異常或非預期行為之信號或記錄。監督器102亦包括「API」功能210,該功能用於允許外部程式(例如,經由應用程式設計介面(API))利用處於發信狀態下的受監督程式103來執行功能,由此擴展監督器102之有用性。此種外部程式之一實例可為除錯器應用程式,該應用程式可幫助程式員理解異常發生的原因。
在一些實施例中,儀器化模組101與監督器102之間的通信較佳使用具有低潛時通信之高頻寬,以便不使受監督程式103之運作減慢太過明顯。用於提供通信之合適協定可包括但不限於:
● 共享記憶體,其中監督器102及受監督程式103在同一個虛擬機(VM)及計算節點上運行;
● VM間共享記憶體,其中監督器102及受監督程式103在不同VM上運行,但兩者在同一計算節點上運行;或
● 高效能計算(HPC)互連(例如,遠端直接記憶體存取(RDMA)、無限帶寬(IB)、融合乙太網路上之RDMA (RoCE)等),其中監督器102及受監督程式103可在不同VM及不同計算節點上運行,只要監督器及受監督程式之間有HPC互連。
在一些實施例中,監督器102可與儀器化模組101、受監督程式103及儀器化項105一起在同一過程空間中運行,然而,此並不理想。此種方法可使監督器102暴露於已攻擊受監督程式103之惡意代碼的無限制存取。在此種情況下,受監督程式103或惡意程式碼的不可接受動作將更容易可能繞過監督器102,由此阻止偵測執行異常。因此,出於安全原因,較佳方法提供監督器102與儀器化模組101之間的分離,即不同的過程空間。
儀器化模組
儀器化模組101之實現通常取決於用於受監督程式103之技術,例如,解譯語言或編譯語言。舉例而言,用於以Java程式設計語言編寫的受監督程式103之儀器化模組101不同於用於以JavaScript程式設計語言編寫的程式之儀器化模組101,後者不同於用於以Python程式設計語言編寫的程式之儀器化模組101,後者不同於用於以C或C++程式設計語言等之一編寫的程式之儀器化模組101。
在一些實施例中,對於以解譯或位元組碼語言編寫的受監督程式103,已修改的碼解譯器(其包括儀器化模組101)在其解譯程式碼/程式時產生儀器化項105,因此儀器化項105包括由已修改的碼解譯器使用儀器化模組101產生的儀器化之可執行碼部分。替代地,與儀器化模組101分開的碼解譯器可解譯已經由儀器化模組101利用儀器化項105儀器化的代碼,因此儀器化模組101包括儀器化解譯語言碼之能力,且儀器化項105包括由碼解譯器產生的儀器化之可執行碼部分。在一些實施例中,對於以編譯語言編寫的受監督程式103,由已修改編譯器(其包括儀器化模組101)重新編譯先前編譯之代碼(或最初編譯代碼)以將儀器化項105自動添加至產生之可執行碼。在一些實施例中,儀器化模組101包括硬體實現(視情況與受監督程式103之儀器化代碼組合),該硬體實現提供儀器化項105以自受監督程式103之執行中代碼收集儀器化資料且將該資料提供至監督器102。在下文更詳細地描述此等實施例。
另外,在一些實施例中,虛擬機(VM)或碼解譯器為儀器化模組101提供可用於產生儀器化項105之儀器化設施(例如,用於Java之儀器化API)。通常,用於此等技術之儀器化項係本領域中眾所周知的。
在一些實施例中,儀器化模組101識別功能、事件或動作,且在受監督程式103之入口點、出口點及異常點處插入額外代碼(即,作為儀器化項105包括的儀器化代碼)以用於監測此等點處之執行。舉例而言,此可在分別針對編譯語言或解譯語言編譯或解譯受監督程式103之代碼後立即進行。替代地,硬體實現偵測或識別產生儀器化資料所在之儀器化點或位置。在一些實施例中,儀器化模組101可識別所有功能或功能之選定子集以用於插入額外碼。在一些實施例中,程式流程控制連同與程式控制相關之參數一起在受監督程式103被儀器化。
在一些實施例中,當受監督程式103之執行(在模型構建模式或操作模式期間)遇到額外碼(藉由編譯碼中的儀器化或藉由碼解譯器的儀器化)時,執行額外碼。這樣做時,額外碼(即,儀器化項105)產生受監督程式103之執行已達到給定或預定點、動作或事件的訊息且將該等訊息發送至監督器102。替代地,硬體實現產生且發送該等訊息。受監督程式103之執行因此被儀器化項105觀察到。通常,在模型構建模式及操作模式兩者期間,儀器化項105執行相同類型的觀察且發送訊息。
在模型構建模式中,在一些實施例中,監督器102通常不需要將訊息發送回至儀器化項105或儀器化模組101,因此儀器化項105通常不間斷地繼續執行受監督程式103。然而,在其他實施例中,儀器化項105接收自監督器102返回的所有請求或訊息之核准。在操作模式中,在一些實施例中,在發送每一訊息之後,取決於儀器化項105之組態,儀器化項105在繼續執行監督程式103之代碼的下一個步驟、函數、動作或事件之前可等待來自監督器102之核准,因此監督器102在執行即時動作或事件之前可判定是否立即停止受監督程式103之執行。在其他實施例中,替代地,儀器化項105在一些情況下可等待此種核准,例如在預定數目個訊息之後,或僅對於某些功能,或可不等待核准。在一些實施例中,例如,出於性能原因,若儀器化項105經組態為不等待核准,則若監督器102隨後判定不應允許受監督程式103繼續運行,則儀器化項稍後可獲得程式終止/停止/終止/暫停信號。
在一些實施例中,預期,出於性能原因,可出現在代碼中的一些類型之功能可能不需要儀器化,例如,純粹計算的且不與受監督程式103本身之外的環境相互作用的功能。另一方面,較佳將與使用者輸入相互作用或控制流程之功能儀器化。然而,期望一些實施例可涉及受監督程式103之整體碼的儀器化。
在模型構建模式期間,儀器化模組101使用測試案例來運行受監督程式103,該等測試案例通常由程式員、開發者或使用者設計,以例如利用與受監督程式103的預期正常使用者交互、API交互、檔案交互等來測試受監督程式103。另外,儀器化模組101運行受監督程式103 (一次或多次)以作為強制、隔離或受控網路環境中之正常操作(強制正常操作)。在一些實施例中,強制正常操作為必要的,因為程式員、開發者或使用者在設計測試案例時可能無法預見所有可能的正常操作場景,即測試案例可能並不「完整」。
在如模型構建模式中所用的受監督程式103之強制正常操作中,對受監督程式進行測試,但將系統與外部環境(包括例如公眾網際網路或與受監督程式103在同一電腦上運行之其他程式)隔離。在一些實施例中,模型構建模式與隔離的強制網路環境中之外部影響隔離地進行,以避免敵對、惡意或異常行為被錯誤地辨別為可接受或正常的行為而接著併入可接受行為模型104中的風險。藉由在隔離的強制網路環境中進行監測,模型構建模式確保僅發生有效操作,避免敵意動作或影響,或訓練保持「乾淨」。另外,在強制正常操作期間,訓練可標記在運行測試案例時未顯示的行為,從而提供可用於產生更多針對此行為之測試案例的資訊。使用測試案例及受監督程式103之強制正常操作通常改良監督器102監測程式流程及偵測異常的能力。另外,在偵測系統100已產生與特定軟體套件、套件組及/或系統組態相關的可接受行為模型104之後,可接受行為模型104可被傳播至位於別處的其他合適或類似之偵測系統100,而無需將每一此類裝置、機器或系統運送至強制、隔離或受控網路環境進行訓練。
監督器
在一些實施例中,監督器102可以任一種模式(模型構建模式或操作模式)運行。在模型構建模式中,監督器102經訓練或教導以解譯自儀器化項105接收之事件序列的資料且自該資料學習。在一些實施例中,在此模式下,監督器102核准來自儀器化項105之所有請求或訊息,且收集儀器化項105提供之事件/序列資料以建立可接受行為模型104。監督器102通常為受監督程式103構建可接受行為模型104之初始版本或增強可接受行為模型104之現有版本。
在一些實施例中,產生可接受行為模型104通常涉及借助於儀器化項105運行受監督程式103之正常操作的代表性測試案例或實例,使得監督者102可了解或建立受監督程式之正常或可接受操作的包絡,即一連串正常或可接受行為。(在一些實施例中,使用AI技術(例如,利用統計資料)產生或訓練可接受行為模型104,以判定當前或即時指令或事件序列是否為正常、可接受或預期行為之一部分。)換言之,監督器102使用可接受行為模型104判定是否應准許當前或即時指令繼續執行或是否應終止受監督程式103。在一實例中,為了進行此判定,可接受行為模型104考慮諸如事件序列(即,包括當前或即時事件及足夠數目個先前事件的事件窗口)的資訊、正在調用之函數及此函數之輸入資料以及其他可能的參數。因此,在模型構建模式中,儀器化項105將訊息發送至監督器102以進行正常的網路包傳輸/接收、正常的檔案讀取/寫入、正常的資料庫存取、正常的函數調用及受監督程式103可執行的其他恰當正常動作或事件。因此,監督器102將此等訊息之資料(作為執行代碼時的每一儀器化點或位置處之事件序列)併入至建構可接受行為模型104中。
在模型構建模式期間,監督器102接收函數、動作或事件之訊息,且基於在受監督程式103之正常操作(即,沒有任何攻擊、惡意行為/動作或異常事件)期間發生的關於控制流及/或資料流之行為模式或事件序列(即,構建模式事件及構建模式序列)來建構可接受行為模型104。因此,此等模式或序列成為「已知」、「參考」、「正常」或「正確」的模式或序列,已知該等模式或序列在受監督程式103之正常操作或行為期間發生,或已知該等模式或序列代表正常操作。因此,可接受行為模型104指示在正常操作(沒有任何攻擊、惡意行為/動作或異常事件)期間發生的受監督程式103之正常行為。在一些實施例中,監督器102使用AI以基於模型構建模式事件及模型構建模式序列來訓練或產生可接受行為模型104 (即,ML或AI模型)。因此,模型構建模式涉及將多個模式或事件序列輸入到AI系統中以訓練或產生可接受行為模型104。在一些實施例中,可接受行為模型104涉及分析由監督器102開發或產生之資料,以對受監督程式103在正常操作期間可執行之事件或事件序列進行統計分析。在一些實施例中,AI可包括統計分析、人工智慧或其組合。
在可接受行為模型104在模型構建模式中經開發、驗證及測試(此可為迭代過程且可使用本領域中已知之技術)之後,部署偵測系統100以在任何數目個電腦化系統內需要的任何地方在操作模式下強制執行程式行為。因此,監督器102之許多副本可在操作模式下操作,每一副本使用可接受行為模型104之副本以判定受監督程式103之操作是否正常或異常地表現。在操作模式期間,監督器102自儀器化項105接收動作或事件之訊息,且發回核准以繼續操作及/或發回警報(例如,超出範圍警報)以終止、停止或暫停受監督程式103之執行。在一些實施例中,終止發生在執行即時或當前事件或函數(在最近訊息中指示)之前、緊接在執行即時或當前事件或函數之後(即,在緊接著的後續事件或動作之前)或在執行即時或當前事件或函數之後相對不久。另外,在一些實施例中,在終止信號的情況下,監督器102亦將較佳執行例如作業系統級程式終止,以確保不允許潛在受損之受監督程式繼續執行。
在一些實施例中,監督器102根據來自儀器化項105之當前訊息(即,受監督程式103之當前執行點)及執行的歷史或上下文(即,受監督程式103在當前執行點之前執行的事件序列)來判定受監督程式103是否應繼續操作或執行。以此方式,監督器102並非獨立於其他事件而是在其他事件及其他資料間的上下文內分析或觀察每一事件。換言之,監督器102利用AI模型或統計分析來分析當前事件及其所屬之事件序列(即,許多連續事件或連續事件「窗口」)。因此,監督器102進行之分析判定在受監督程式103之給定情況或狀態下或在特定事件或歷史、上下文或事件序列之後發生的事件或多個事件。
分析用於形成每一窗口或事件序列(包括當前或即時事件及先前事件)的事件數目可為可組態的,且可取決於當前或即時事件之類型、可接受行為模型104之需求、監督器102之執行能力及任何其他恰當的考量。另外,對於相對較小數目或較短的窗口或事件序列(例如,憑經驗判定之數目),事件序列通常可按原樣使用以產生可接受行為模型104。另一方面,對於相對較大數目或較長的窗口或事件序列(例如,憑經驗判定之數目),事件序列可使用壓縮演算法進行壓縮以產生可接受行為模型104,使得在操作模式期間,可更快或更有效地進行操作事件或序列與可接受行為模型104之比較。不同的實施例可以或不可使用此種壓縮。此外,當受監督程式103發現事件序列重複時,則此事件序列可僅儲存一次以在產生可接受行為模型104時使用,由此減小可接受行為模型104之大小。
在使用機器學習(ML)或人工智慧(AI)以使監督器102判定是繼續操作還是終止受監督程式103之操作的一些實施例中,AI能夠將複雜行為(例如,受監督程式103之預期或正常行為)模型化,以便辨別事件序列中之模式。因此,AI模型使監督器102能夠辨別(在模型構建模式期間學習的)預期或正常行為與(在操作模式期間遇到的)並非預期或正常之行為之間的差異。另一方面,在使用統計分析之一些實施例中,使用統計分析來取代AI實施例或作為AI實施例之補充,AI實施例用於將預期或正常行為模型化。然而,對於相對複雜之軟體,AI實施例通常為更實用的方法。
在操作模式中,對於自儀器化項105接收之每一訊息,監督器102使用即將來臨之行為(即,即將由監督程式103執行之指令或事件)及上文提及的歷史、輸入資料及/或其他參數以判定即將來臨之行為是否落在可接受行為模型104所包封的行為或行為範圍內。監督器102藉由將事件序列(包括當前或即時事件及足夠數目個先前事件)、輸入資料等與可接受行為模型104中之正常事件序列進行比較來進行此判定。監督器接著發送用於使操作繼續即時事件之核准訊息或信號,或用於終止、停止或暫停受監督程式103之執行及/或執行一或多個程式指定或程式請求之異常例行常式的警報訊息或信號。以此方式,在一些實施例中,操作模式下之監督器102監測且核准接收到的訊息或訊息之子集。在一些實施例中,監督器102監測接收到訊息中之資訊而不發送核准(即,儀器化項105假定核准),但在偵測到即時事件可能為異常或非預期行為時發送終止信號/警報。作為一實例,當監督器102偵測到已調用非預期流程控制操作時,諸如可能為惡意或流氓碼(例如,惡意意圖之結果)或應用程式碼內之非預期錯誤(程式設計上的可能導致安全漏洞之錯誤)的情況,監督器102產生且發送終止信號/警報。以此方式,偵測系統100可阻止異常或非預期行為或阻止程式之當前動作的執行,由此提供程式行為強制執行。
替代地,在一些實施例中,監督器102可代表實體及/或邏輯上彼此分開的學習監督器及監測監督器。在此情況下,替代監督器102能夠在兩種模式下運行,學習監督器在模型構建模式下運行,且監測監督器在操作模式下運行。
模型構建模式之總結
上文已描述了儀器化模組101及監督器102在模型構建模式期間之操作。根據一些實施例,圖3為用於在模型構建模式下產生可接受行為模型104之實例彙總過程300的簡化流程圖。僅出於說明目的提供了此過程的特定步驟、步驟組合及步驟之次序。具有不同步驟、步驟組合或步驟次序之其他過程亦可用於達成相同或相似結果。在一些實施例中,可在不同的步驟或組件中實現關於由組件中之一者執行的步驟中之一者描述的特徵或功能。另外,不管圖示的步驟次序,一些步驟可在其他步驟之前、之後或與其他步驟重疊地執行。另外,該過程的一些功能(或此等功能之替代方案)已在本文中別處描述。
在301處,儀器化模組101針對受監督程式103產生儀器化項105。舉例而言,對於解譯語言實施例,儀器化模組101配備有已修改的碼解譯器,該碼解譯器產生具有儀器化額外碼之可執行碼,該儀器化額外碼可中斷已修改的碼解譯器偵測到的恰當分接頭或儀器化點或位置處的受監督程式103之正常解譯,或儀器化模組101產生用於受監督程式103之儀器化代碼,習知碼解譯器利用該儀器化代碼產生此種可執行碼。對於編譯語言實施例實例,儀器化模組101編譯或重新編譯受監督程式103且將儀器化額外碼插入至受監督程式103之現有代碼中。對於硬體實現實例,儀器化模組101包括一附屬處理器子系統,該附屬處理器子系統監測執行可具有儀器化代碼之受監督程式103的主處理器。
在302處,以執行程式之正常方式但在儀器化項105增強的情況下執行受監督程式103,儀器化資料係利用儀器化項105產生且被傳送至監督器102。在此執行期間,儀器化項105觀察或監測受監督程式103在強制、隔離或受控網絡環境中之執行(根據無惡意行為或不存在外部敵對影響之正常操作),以產生儀器化資料(例如,指示事件之資料)。儀器化項105接著將具有儀器化資料之儀器化訊息發送至監督器102。以此方式,儀器化項105產生一事件記錄,該事件記錄包括在受監督程式103之正常操作期間發生的事件序列。舉例而言,對於解譯語言實施例實例,由已修改或習知的碼解譯器產生的可執行碼中之額外碼在受監督程式103之正常執行期間產生儀器化資料,且將受監督程式103之動作或事件的訊息發送至監督器102。對於編譯語言實施例實例,受監督程式103之編譯代碼的執行導致儀器化額外碼的執行,其將受監督程式103之動作或事件的訊息發送至監督器102。對於硬體實現實例,附屬處理器子系統在主處理器執行受監督程式103期間偵測恰當的儀器化點或回應儀器化碼執行,收集執行中代碼之動作或事件的儀器化資料,且在至監督器102之訊息中提供該資料。
在303,監督器102按動作或事件序列之發生次序接收且收集來自訊息之資訊/資料,以由此形成此等序列。監督器102亦可壓縮資料、合併重複序列及/或以其他方式準備資料,以作為產生可接受行為模型104之輸入。
在304,監督器102基於所收集的動作或事件序列之資訊(即,事件記錄)產生可接受行為模型104。此可為例如AI模型之訓練、統計分析模型之產生或關於另一恰當的模式偵測技術。此時,可接受行為模型104已建立且準備好在操作模式中使用。因此,隨後,監督器102使用可接受行為模型104來監測在儀器化資料中接收到的函數、動作、事件或事件序列,以判定是否允許繼續受監督程式103之操作、暫停、終止或停止執行受監督程式103及/或執行一或多個程式指定或程式請求之異常例行常式。
操作模式之總結
上文已描述了儀器化模組101及監督器102在操作模式期間的操作。根據一些實施例,圖4為用於根據操作模式下的可接受行為模型104來監測受監督程式103之異常行為的實例彙總過程400的簡化流程圖。僅出於說明目的提供了此過程的特定步驟、步驟組合及步驟之次序。具有不同步驟、步驟組合或步驟次序之其他過程亦可用於達成相同或相似結果。在一些實施例中,可在不同的步驟或組件中實現關於由組件中之一者執行的步驟中之一者描述的特徵或功能。另外,不管圖示的步驟次序,一些步驟可在其他步驟之前、之後或與其他步驟重疊地執行。另外,該過程的一些功能(或此等功能之替代方案)已在本文中別處描述。
在401處,以執行程式之正常方式執行受監督程式103。在此執行期間,儀器化項105觀察或監測受監督程式103在非隔離的、真實世界操作網路環境中之執行(即,有或沒有未知的惡意行為)以產生儀器化資料(例如,指示事件之資料)。儀器化項105接著將具有儀器化資料之儀器化訊息發送至監督器102。換言之,儀器化項105偵測或判定在受監督程式103在操作模式下執行期間的受監督程式103之一或多個動作或事件(事件操作序列之一部分)。以此方式,儀器化項105產生關於在受監督程式103之真實世界操作期間發生的事件序列之事件記錄,且儀器化項105在操作模式期間在受監督程式103進行之動作或事件的訊息中將該事件記錄發送至監督器102,所用方式與在模型構建模式期間在302處執行的方式相同或類似。
在402處,監督器102按動作或事件序列之發生次序接收且收集來自訊息之資訊/資料,以由此形成此等序列。監督器102亦可壓縮資料、合併重複序列及/或以其他方式準備資料,如可接受行為模型104之輸入所需的。
在403處,監督器102將模式或事件序列(即,操作事件或事件操作序列)與可接受行為模型104中的參考模式或事件序列進行比較。可進行此比較例如以作為AI模型、統計分析或其他恰當的模式偵測技術之輸入。
在404處,基於403處之比較,監督器102判定當前或即時動作/事件或事件序列(即,操作事件或事件操作序列)與預期或已知在受監督程式103之正常操作或行為期間發生的參考模式或事件序列(即,在可接受行為模型104中)之間是否存在匹配。可進行此比較例如以作為來自AI模型、統計分析或其他恰當的模式偵測技術之輸出。
在405處,當404處之判定為肯定/是(即,存在匹配)時,監督器102或不做任何事情,或將核准信號/訊息(以虛線示出為可選的)發送至儀器化項105或受監督程式103以繼續操作。因此,受監督程式103之操作或執行繼續(在406處),包括執行當前或即時動作/事件。
在407處,當404處之判定為否定/否(即,不存在匹配)時,監督器102將停止/終止/標記警報/訊息發送至儀器化項105、受監督程式103或操作系統以:暫停、終止或停止受監督程式103或其當前線程之執行;標記當前動作;及/或執行一或多個程式指定或程式請求之異常例行常式。因此,回應於停止/終止/標記警報/訊息,終止、停止或暫停受監督程式103之操作或執行,或標記當前動作(在408處),且受監督程式103不執行當前或即時動作/事件。在一些實施例中,受監督程式103執行一或多個程式指定或程式請求之異常例行常式。舉例而言,為了終止受監督程式103或其線程,監督器102直接終止受監督程式103或線程,運行終止程序,或調用終止處置器。
因此,在一些實施例中,在操作模式中,儀器化項105不斷地將具有事件之訊息發送至監督器102,且監督器102不斷地評估或分析事件或事件序列及看門狗線程定時器207以判定是否允許受監督程式103繼續正常執行或終止受監督程式103。
樣本演算法
由儀器化項105發送至監督器102之訊息中的資訊或資料精確地識別當前或即時事件、函數或正在或將要由受監督程式103執行之代碼行的位置。另外,在一些實施例中,訊息含有使監督器102能夠區分不同邏輯執行流的上下文資訊(例如,線程ID、最終使用者ID等)。此區分可為重要的,因為現代系統通常為非順序的,即同時處置多個任務或線程。
在給定上下文內(即,在給定執行線程內),來自儀器化項105之訊息序列描述受監督程式103之執行。此將用於在模型構建模式期間產生可接受行為模型104。用於在模型構建模式期間根據訊息序列產生可接受行為模型104之演算法通常取決於用於判定任何事件序列是否匹配操作模式下之可接受行為模型104的演算法。
此演算法之選項通常至少包括兩種類型之演算法:
● 基於ML/AI之演算法,該等演算法類似於包括大語言模型之模式辨識方法類別;及
● 具有前綴查找結構之統計分析演算法。
兩種類型之演算法具有不同的結構及特性。然而,兩種演算法均用於進行當前前綴是否屬於可接受行為模型104的相同判定。在此上下文中,「前綴」意味著包括當前事件及直接在當前事件前面的有限事件序列之事件序列。
基於ML/AI之方法可導致可接受行為模型104更小且監督器102進行之監測更快地執行。然而,此等優點可能以更複雜的訓練及/或更多的誤否定(即,當異常發生時未偵測到異常)及/或誤肯定(即,當異常未發生時偵測到異常)為代價。
由統計分析演算法產生之查找結構可更簡單地建構且導致更少量的誤肯定及誤否定。然而,此可能以更大模型及操作模式期間之監測的更大執行影響作為潛在代價。
偵測系統100之上述操作不同於監測不尋常「全域」異常(諸如不尋常網路流量、CPU使用、記憶體存取、檔案使用、資料使用等)的習知方法。此等習知方法必然在安全漏洞已出現後偵測到該安全漏洞,而非在漏洞出現之前提供停止執行之方法。另外,此等習知方法通常假設了解潛在的攻擊向量、惡意軟體功能或漏洞;然而,偵測系統100具有不必假設此了解的優點,因此偵測系統100產生關於正常可接受行為的知識,無需考慮代碼中之潛在攻擊向量、惡意軟體能力或代碼中之漏洞。
監督器控制
根據一些實施例,圖5為供使用者將控制參數輸入至監督器102以在模型構建模式及操作模式下操作的簡化之使用者輸入/控制介面(UI) 500。僅出於說明目的提供了用於此資料結構之特定控制參數、控制參數組合及控制參數次序。其他實施例可使用不同的控制參數、控制參數組合或控制參數次序以達成相同或相似結果。實例UI 500通常圖示准許客戶端、程式員、開發者或使用者(經過恰當培訓)運行偵測系統100且出於保證目的提供恰當碼簽名的API或使用者介面之可能實現的實例。其他實例可包括其他類型之控制項或控制參數。
公司ID參數501及使用者ID參數502識別登入且正在使用偵測系統100之開發者(例如,個人或實體)。每一註冊開發者為公司ID參數501創建主控公司ID。此僅為內部項目,永遠不會在應用程式簽名中顯示。另外,使用者ID參數502對每一註冊開發者而言係唯一的。
監督器102 (即「程式異常偵測器」)具備版本參數503及程式名稱參數504。版本參數503識別由開發者設定的受監督程式103之版本。程式名稱參數504識別亦由開發者設定的受監督程式103之名稱且對每一開發者而言係唯一的。
政策名稱參數505 (當前為「未命名」)為使開發者能夠識別或記住已經在使用者輸入/控制介面500中指定的規則或參數之特定集合的名稱(為開發者內在的)。因此,開發者可具有不同的規則集,每一規則集藉由不同的政策名稱參數505來識別,利用此等規則集來試驗用於受監督程式103之模型構建模式及操作模式的不同參數。
提供「未進行域驗證」核取方塊506以供註冊開發者選擇是否對程式進行驗證及簽名。若選擇核取方塊506,則使用為偵測系統100之操作員/所有者內在的且由其控制之域來對受監督程式103進行驗證及簽名,以保護域的唯一性。
若未選擇核取方塊506,則以此方式對受監督程式103進行驗證及簽名。相反,利用具有DNS記錄之DNS簽名驗證507及特殊伺服器對受監督程式103進行驗證。可經由用版本參數503 (如上提供的自動填寫)、程式名稱參數504 (如上提供的自動填寫)及經驗證基域508形成的URL來存取特殊伺服器,經驗證基域508只能由基域之所有者或管理者(通常為註冊開發者)設定。以此方式,證明了受監督程式103之所有權或提供。
提供訓練參數區段509以用於設定在模型構建模式期間使用以產生可接受行為模型104的參數。舉例而言,第一解析度參數510設定儀器化模組101創建儀器化項105以產生及發送的資料(例如系統調用、程式庫調用、程序調用及/或流程控制以及其他類型之資料)的量。在一些實施例中,此區段由第一浮動塊條511設定(示出為設定為程式庫調用)。
舉例而言,若選擇系統調用資料(例如,當第一浮動塊條511設定在「系統調用」上方時),則僅關於系統調用之資料將由儀器化項105產生及發送,且由監督器102在模型構建模式下使用。若選擇程式庫調用資料(例如,當第一浮動塊條511如圖所示地設定在「程式庫調用」上方時),則關於系統調用及程式庫調用之資料將由儀器化項105產生及發送,且由監督器102在模型構建模式下使用。若選擇程序調用資料(例如,當第一浮動塊條511設定在「程序調用」上方時),則關於系統調用、程式庫調用及程序調用之資料將由儀器化項105產生及發送,且由監督器102在模型構建模式下使用。若選擇流程控制資料(例如,當第一浮動塊條511設定在「流程控制」上方時),則關於系統調用、程式庫調用、程序調用及流程控制之資料將由儀器化項105產生及發送,且由監督器102在模型構建模式下使用。替代地,在一些實施例中,可使用核取方塊(替代第一浮動塊條511)來單獨選擇第一解析度參數510中之每一者。另一方面,在一些實施例中,可(例如,利用另一核取方塊)告知監督器102正在使用測試案例,在此情況下,監督器102將使用可產生的所有資料。
另外,若受監督程式103引發線程或額外過程,如多線程應用程式所常見的,則第一引發源始深度參數512設定要監測的量或要監測的深度,使得儀器化模組101可為此等線程或過程創建恰當的儀器化項105。在一些實施例中,設定此參數以監測「所有」(如所示)引發的線程或過程(例如,預設的),或任何其他期望或恰當的深度。此外,第一定時變化容差參數513可用於設定記錄定時之解析度。
提供部署參數區段514以設定在操作模式期間部署偵測系統100時所用的參數,例如使儀器化項105產生操作事件及操作序列,及/或使監督器102在使用可接受行為模型104以判定任何事件序列是否匹配可接受行為模型104及判定是否允許受監督程式103繼續正常執行或終止受監督程式103時選擇要監測哪些操作事件及操作序列。舉例而言,第二解析度參數515設定將由儀器化項105產生及收集且由監督器102使用之資料(例如,系統調用、程式庫調用、程序調用及/或流程控制以及其他類型之資料)的量。在一些實施例中,此由第二浮動塊條516設定(示出為設定為程式庫調用)。替代地,在一些實施例中,可使用核取方塊(替代浮動塊條516)來單獨選擇解析度參數515中之每一者。
在一些實施例中,第二解析度參數515由第二浮動塊條516設定,其方式類似於訓練參數區段509中之第一解析度參數510及第一浮動塊條511的方式。因此,若為操作模式選擇的第二解析度參數515與為模型建立模式選擇的第一解析度參數510相同(即,若第二浮動塊條516被設定為與第一浮動塊條511相同的解析度參數),則儀器化項105將產生且發送在模型構建模式下產生、發送、收集且使用的相同類型之資料,且監督器102在操作模式下將收集且使用該資料。然而,若為操作模式選擇的第二解析度參數515少於為模型構建模式選擇的第一解析度參數510 (即,若第二浮動塊條516被設定為比第一浮動塊條511之解析度參數少的解析度參數),則儀器化項105將產生且發送僅選擇類型之資料(即,如第二浮動塊條516所指示)而不產生且發送在模型構建模式中產生、發送、收集且使用的任何額外類型之資料,且監督器102在操作模式下將收集且使用僅選擇類型之資料(即,如第二浮動塊條516所指示)而不收集且使用在模型構建模式中產生、發送、收集且使用的任何額外類型之資料。換言之,在此情況下,操作模式將使用模型建立模式中所用之資料的子集。另一方面,若為操作模式選擇的第二解析度參數515多於為模型構建模式選擇的第一解析度參數510 (即,若第二浮動塊條516被設定為比第一浮動塊條511之解析度參數多的解析度參數),則此似乎指示可在操作模式下使用在模型構建模式中未使用之額外資料。然而,在此情況下,儀器化項105將產生且發送在模型構建模式下產生、發送、收集且使用的相同類型之資料,且監督器102在操作模式下將僅收集且使用該資料。。換言之,可接受行為模型104對未用於產生該模型之任何額外資料可能無效。因此,不理會對第二解析度參數515之選擇(即,第二浮動塊條516之設定),偵測系統100在操作模式下將產生、發送、收集且使用所選的資料類型,只要在模型構建模式下亦產生、發送、收集且使用該資料。
另外,若受監督程式103引發線程或額外過程,則第二引發源始深度參數517設定要監測的量或要監測的深度。在一些實施例中,設定此參數以監測「所有」(如所示)引發的線程或過程(例如,預設的),或任何其他期望或恰當的深度。此外,第二定時變化容差參數518可用於設定記錄定時之解析度,該解析度指示在線程定時器207指示在預期時間量內還沒有預期回應之前的運行時間期間允許的定時之鬆弛量。
已修改的碼解譯器
對於以解譯或位元組碼語言(例如,諸如但不限於PHP (超文本預處理器之遞歸字首語PHP)、Ruby、Python及JavaScript)編寫的受監督程式103,不需要對代碼進行編譯。相反,在一些實施例中,已修改的碼解譯器(其包括儀器化模組101)在解譯代碼以產生儀器化可執行碼以供執行時產生儀器化項105。在其他實施例中,儀器化模組101將解譯語言碼儀器化,且碼解譯器產生之儀器化可執行碼以供執行。藉由比較,習知碼解譯器可用於執行、模擬或除錯解譯之代碼。然而,習知除錯通常需要預先了解漏洞或潛在攻擊之類型。另一方面,本發明具有不需要此種知識的優點。
根據一些實施例,圖6為用於儀器化且監測包括解譯語言碼之受監督程式103的實例彙總過程600的簡化流程圖。僅出於說明目的提供了此過程的特定步驟、步驟組合及步驟之次序。具有不同步驟、步驟組合或步驟次序之其他過程亦可用於達成相同或相似結果。在一些實施例中,可在不同的步驟或組件中實現關於由組件中之一者執行的步驟中之一者描述的特徵或功能。另外,不管圖示的步驟次序,一些步驟可在其他步驟之前、之後或與其他步驟重疊地執行。另外,該過程的一些功能(或此等功能之替代方案)已在本文中別處描述。
過程600通常以受監督程式103之人類可讀原始碼開始(在601處),人類可讀原始碼為編寫用於程式執行之指令的傳統方式。在602處,儀器化模組101在解譯之前或期間插入儀器化項105,因此儀器化項105可監測流程及狀態資訊。因此,在一些實施例中,已修改的碼解譯器在解譯原始碼之代碼行期間插入儀器化項105。以此方式,已修改的碼解譯器亦監測流量及狀態資料。因此,已修改的碼解譯器為單獨程式,其不僅解譯為受監督程式103編寫的程式碼(如通常習知碼解譯器所進行的),而且監測代碼之指令、動作或事件以找出恰當的儀器化點。因此,已修改的碼解譯器在解譯及執行期間即時地安裝必要的分接點以產生觀察受監督程式103之執行需要的儀器化資料。因此,對於每一行代碼,已修改的碼解譯器解譯該代碼且判定在執行當前動作或事件之前是否需要針對當前動作或事件產生儀器化資料(且將該資料發送至監督器102)。替代地,在602處,儀器化模組101將解譯語言碼儀器化,使得碼解譯器產生可執行碼以包括受監督程式103的可執行儀器化碼部分(即,儀器化項105)及可執行常規碼部分。另外,此時,亦可判定看門狗線程定時器207之持續時間。監督器102接著偵測(在603處)正常事件及異常事件。
已修改編譯器
在一些實施例中,編譯語言受監督程式103的先前編譯之代碼由合併儀器化模組101的已修改編譯器重新編譯(或第一次編譯程式碼)。已修改編譯器使用儀器化模組101以在產生已編譯可執行碼之前自動將儀器化指令添加至原始碼。(另外,在一些實施例中,對於一些編譯語言,作業系統設施可由儀器化項105使用(例如,可用於Linux作業系統的ptrace),或對共享程式庫之調用可由儀器化項105攔截。)
根據一些實施例,圖7為用於使用已修改編譯器來儀器化且監測受監督程式103之實例彙總過程700的簡化流程圖。僅出於說明目的提供了此過程的特定步驟、步驟組合及步驟之次序。具有不同步驟、步驟組合或步驟次序之其他過程亦可用於達成相同或相似結果。在一些實施例中,可在不同的步驟或組件中實現關於由組件中之一者執行的步驟中之一者描述的特徵或功能。另外,不管圖示的步驟次序,一些步驟可在其他步驟之前、之後或與其他步驟重疊地執行。另外,該過程的一些功能(或此等功能之替代方案)已在本文中別處描述。
過程700通常以受監督程式103之人類可讀原始碼開始(在701處)。在702處,已修改編譯器使用儀器化模組101以插入儀器化記錄功能,接著編譯原始碼以產生包括儀器化項105之可執行碼。因此,除了創建人類可讀原始碼之機器碼解譯之外,已修改編譯器添加流程及狀態記錄功能以產生儀器化可執行碼703。儀器化可執行碼703以開發者或程式員期望之方式由硬體處理器運行,同時將狀態及流程資訊發送至監督器102。在704處,儀器化可執行碼703中之儀器化項105監測儀器化可執行碼703之執行的流程及狀態。在705處,監督器102偵測正常事件及異常事件且標記流程異常及/或狀態異常。
硬體實現
硬體實現通常具有比純軟體實施例更快且更有效率的潛力。在一些硬體實現實施例中,儀器化模組101將受監督程式103儀器化,該儀器化與已修改的碼解譯器或已修改編譯器實施例類似,但不若該等實施例廣泛,但儀器化項105及監督器102之操作由連結至正在執行受監督程式103之主處理器系統的單獨附屬處理器子系統加速。在一些硬體實現實施例中,附屬處理器子系統在主處理器之全部或一部分I/O接腳上接收信號,用該等信號判定主處理器在其執行受監督程式103時的動作,接著基於此等動作判定要產生的儀器化資料。在模型構建模式及操作模式中,附屬處理器子系統自受監督程式103之(可選地儀器化的)執行碼收集儀器化資料,且將該資料提供至可用軟體實現之監督器102。
在一些實施例中,附屬處理器子系統盡可能緊密地連結至主處理器系統。舉例而言,附屬處理器子系統可併入定制積體電路(IC)晶片(例如,經由諸如HDL之設計可移性模式)、單獨的計算裝置或具有恰當匯流排存取之插入卡。另外,在一些實施例中,附屬處理器子系統使用獨立於主處理器系統之相應部分的RAM/ROM及/或EEPROM或等效物。
在一些實施例中,在高階層上,實例硬體實現可包含附屬處理器子系統,該附屬處理器子系統或與主處理器系統並置在同一IC晶片中或同一印刷電路板(PCB)上,或呈(直接或間接)附接至主處理器系統之PCB的子板或與含有主處理器系統之計算裝置分開的計算裝置的形式位於板外。根據一些實施例,圖8為具有主處理器系統801及附屬處理器子系統802之實例硬體實現的計算系統800的簡化方塊圖。
主處理器系統801通常包括主處理器(CPU) 803、主記憶體804、通信匯流排805及輸入/輸出(I/O)子系統806,以及為簡單起見未示出的其他適當組件。附屬處理器子系統802通常包括附屬處理器807、專用記憶體808 (例如,揮發性及/或非揮發性)、專用通信匯流排809、用於與I/O子系統806通信之第一專用I/O匯流排810、用於與主處理器803直接通信之第二專用I/O匯流排811及AI引擎812,以及為了簡單起見未示出的其他適當組件。
在一些實施例中,附屬處理器子系統802執行儀器化模組101及監督器102。因此,除了受監督程式103之可選儀器化之外,偵測系統100之硬體實現不依賴主處理器系統801來操作指令。在具有受監督程式103之儀器化的一些硬體實施例中,附屬處理器子系統802監測由儀器化項105標記之事件。(在用於產生儀器化資料供監督器102使用的硬體實現實施例中之一些實施例中,因此,受監督程式103中之可選儀器化項與附屬處理器807之相關操作相結合形成圖1之儀器化項105。)可選儀器化項幫助減少附屬處理器807上之負載且提高在操作模式下做出決策的速度。因此,附屬處理器807偵測如在主處理器系統801上運行之儀器化項指示的程式流程控制變化(即,儀器化資料),且將彼等輸入用於監督器102以在模型構建模式下構建可接受行為模型104且在操作模式下監測受監督程式103。在沒有添加可選儀器化之一些實施例中,附屬處理器子系統802可例如藉由監聽其I/O插腳上之信號來監測由主處理器系統801執行之每條指令。另外,在一些實施例中,第二專用I/O匯流排811為專用I/O通道,該I/O通道使監督器102能夠存取主處理器803之內部狀態、管線及內部暫存器以監測控制信號且觀察受監督程式103之一些動作,例如以偵測分支何時將要出現且判定該分支是否正常或異常。另外,AI引擎812可為與附屬處理器807分開的硬體組件(例如,共處理器)或在附屬處理器807上運行之軟體模組。AI引擎由監督器102用來在模型構建模式下構建可接受行為模型104且在操作模式下監測受監督程式103。另外,看門狗線程定時器207在附屬處理器807中實施。
主處理器系統801及附屬處理器子系統802兩者經由通信匯流排805連接至主記憶體804。主記憶體804含有受監督程式103且經由通信匯流排805將代碼提供至主處理器803以用習知計算系統之正常方式來執行該代碼。主記憶體804亦經由通信匯流排805將受監督程式103之代碼提供至附屬處理器807以監測該代碼。
在模型構建模式及操作模式中,附屬處理器子系統802監測主處理器系統801對受監督程式103之儀器化執行。因此,附屬處理器807接收到的監測資料包括受監督程式103的已編譯儀器化代碼之指令(經由通信匯流排805)、受監督程式103之執行導致的記憶體存取之副本(經由通信匯流排805)、受監督程式103之執行導致的自I/O子系統806之I/O存取的副本(經由專用I/O匯流排810)及經由第二專用I/O匯流排811接收的控制信號或指令。利用此資料,儀器化項105 (根據附屬處理器807之操作執行)產生儀器化資料且將該資料發送至監督器102 (亦在附屬處理器807上操作),監督器102將該資料儲存在專用記憶體808中(經由專用通信匯流排809)。
在一些實施例中,附屬處理器子系統802回應於經由專用I/O埠接收之指令而進入模型構建模式。在模型構建模式中,附屬處理器子系統802 (根據儀器化項105之操作)監測主處理器系統801對受監督程式103之儀器化執行,較佳在隔離的強制環境中組態以便只能發生有效操作。然後,在一些實施例中,附屬處理器子系統802 (根據監督器102之操作)在AI引擎812中使用儲存於專用記憶體808中之儀器化資料以產生可接受行為模型104。可接受行為模型104由監督器102儲存在專用記憶體808中,而非儲存在主記憶體804中。
由於子系統AI引擎係用於處理由儀器化項105產生且由監督器102收集之儀器化資料,因此與使用替代訓練方法可能實現的情況相比,可更快地處理此資料且對於給定範圍之測試案例,具有低誤警率(即,上文提及之誤肯定)的更大置信度。此過程產生可接受行為模型104,由於在操作模式期間收集的更多資訊,可細化且改良該模型。在一些實施例中,附屬處理器子系統802經程式設計以能夠經由安全介面上載自實體上分開的強制隔離測試台導出之可接受行為模型104的操作度量,由此允許將學習到之度量快速部署至許多此種系統。
在操作模式中,附屬處理器子系統802類似地監測由儀器化項105提供的主處理器系統801之儀器化操作。因此,在操作模式中,附屬處理器子系統802 (運行監督器102)獲取儀器化資料之每一接收輸入,特別但不限於流程改變操作、動作或事件,且使用可接受行為模型104在每一步驟考慮此種操作是否匹配「正常操作」,如上所述。若根據可接受行為模型104,操作不匹配正常或預期操作或不匹配正常或預期操作範圍,則附屬處理器子系統802使用不可遮罩中斷(NMI)及/或其與主處理器系統801之I/O連接(例如,經由806、810及/或811)以停止操作、將操作標記為超出預期範圍及/或執行一或多個程式指定或程式請求之異常例行常式。不可遮罩中斷確保停止無法被破壞。另外,第二專用I/O匯流排811使監督器102能夠將中斷指令提供至主處理器803,以在接收到NMI且停止受監督程式103或其線程後採取適當動作,使得潛在的惡意代碼不能控制主處理器803之操作。
因此,硬體實現與上文關於已修改的碼解譯器實施及已修改編譯器實現描述的方法類似,以下各項除外:a)主處理器系統801上之任何負載減至最小;b)模型構建模式可預期更快地進行;且c)偵測系統100將以更高之完整度操作,因為該偵測系統不依賴主處理器系統801之底層作業系統或應用程式碼。另外,與在所有實現中一樣,可接受行為模型104之產生係在不知道(或揭示)受監督程式103中所用之代碼的情況下執行,除了包括某些儀器化特徵以便利用附屬處理器子系統802之能力的一些實施例。
根據一些實施例,圖9為用於使用硬體實現來儀器化且監測受監督程式103之實例彙總過程900的簡化流程圖。僅出於說明目的提供了此過程的特定步驟、步驟組合及步驟之次序。具有不同步驟、步驟組合或步驟次序之其他過程亦可用於達成相同或相似結果。在一些實施例中,可在不同的步驟或組件中實現關於由組件中之一者執行的步驟中之一者描述的特徵或功能。另外,不管圖示的步驟次序,一些步驟可在其他步驟之前、之後或與其他步驟重疊地執行。另外,該過程的一些功能(或此等功能之替代方案)已在本文中別處描述。
過程900通常以受監督程式103之人類可讀原始碼開始(在901處)。在902處,在一些實施例中,類似於上文的已修改編譯器實現之步驟702,將儀器化記錄功能插入至原始碼中。因此,流程及狀態記錄功能被添加至人類可讀原始碼之已編譯機器碼解譯中以產生(儀器化)可執行碼903。另一方面,在其他實施例中,可執行碼903不包括儀器化項,因為附屬處理器子系統802經組態以處置產生儀器化資料之功能。可執行碼903 (無論是否儀器化)以開發者或程式員期望之方式由主處理器系統801運行。在904處,附屬處理器子系統802 (藉由執行儀器化項105)監測可執行碼903之執行的流程及狀態。在905處,附屬處理器子系統802 (藉由執行監督器102)偵測正常事件及異常事件,標記流程異常及/或狀態異常,停止可執行碼903之執行,及/或執行一或多個程式指定或程式請求之異常例行常式。
根據一些實施例,圖10為展示用於偵測系統100中以執行本文描述之軟體程式中之任一者的實例電腦系統1000 (代表電腦系統中之一或多者的任何組合)的簡化示意圖。其他實施例可使用其他組件及組件之組合。舉例而言,電腦系統1000可代表具有一或多個處理器或一或多個處理器核心(取決於偵測系統100之複雜性)的一或多個實體電腦裝置或伺服器,諸如網站伺服器、機架安裝電腦、網路儲存裝置、桌上型電腦、膝上型/筆記型電腦等。在至少部分地在可能具有跨多個地理位置同步的資料之雲端網路中實現的一些實施例中,電腦系統1000可被稱為一或多個雲端伺服器。在一些實施例中,電腦系統1000之功能在單一電腦裝置實現。在更複雜實現中,計算系統之功能中的一些分佈在多個電腦裝置上,無論在單一伺服器場設施內抑或在多個物理位置內,及是否在具有相同或不同架構或類型之處理器的電腦系統上實現。因此,在技術方案引用「電腦系統」或「電腦化系統」的情況下,應理解,此可指代此等實施例中之任一者。
在電腦系統1000代表多個電腦裝置或系統的一些實施例中,電腦系統1000之功能中的一些電腦裝置中的一些中實現,而其他功能在其他電腦裝置中實現。舉例而言,偵測系統100之各種部分可在同一電腦裝置或單獨的電腦裝置上實現,無論電腦裝置是否具有相同或不同架構或類型之處理器。
在所示實施例中,電腦系統1000通常包括由資料通信子系統1012連接或耦接在一起的至少一個處理器1002、至少一個主電子記憶體1004、至少一個資料儲存器1006、至少一個使用者I/O 1009及至少一網路I/O 1010,以及為簡單起見未示出的其他組件。
處理器1002代表在一或多個IC晶片中、在一或多個PCB (印刷電路板)上及/或在一或多個外殼或殼體中的一或多個中央處理單元、電腦處理器、共處理器、處理器核心或處理器叢集。在一些實施例中,處理器1002代表處於由一或多個資料通道互連的多個實體位置之多個電腦裝置中的多個微處理器單元。因此,在技術方案引用「處理器」的情況下,應理解,此可指代此等實施例中之任一者。另外,當與主電子記憶體1004合作執行用於執行電腦系統1000 (即,偵測系統100)之上述功能的電腦可執行指令時,處理器1002變成用於執行該等指令之功能的專用電腦。
主電子記憶體1004代表一或多個外殼或殼體中之一或多個PCB上的一或多個RAM模組。在一些實施例中,主電子記憶體1004代表處於多個實體位置之多個電腦裝置中的多個記憶體模組單元。在與處理器1002一起操作時,主電子記憶體1004儲存由處理器1002執行之電腦可執行指令及由處理器1002處理或產生之資料,以執行電腦系統1000 (即,偵測系統100)之上述功能。
資料儲存器1006代表或包含任何適當數目個內部或外部實體大容量儲存裝置或其組合,諸如硬碟、光碟機、網路附接儲存(NAS)裝置、快閃驅動等。在一些實施例中,資料儲存器1006代表處於多個實體位置之多個電腦裝置中的多個大容量儲存裝置。資料儲存器1006通常為在處理器1002及主電子記憶體1004之操作中使用的程式(例如,電腦可執行指令)及資料提供持久性儲存(例如,在非暫時性電腦可讀或機器可讀媒體1008中)。非暫時性電腦可讀媒體1008包括指令(例如,程式及資料1020至1048),當由處理器1002執行時,該等指令使處理器1002執行包括電腦系統1000 (即,偵測系統100)之上述功能的操作。
在一些實施例中,主電子記憶體1004及資料儲存器1006包括處理器1002執行本文(例如,在圖1至圖9中)揭示之方法、過程及功能所需的程式及資料(例如,由1020至1048表示)之全部或一部分。在此等程式控制下且使用此資料,處理器1002與主電子記憶體1004合作執行電腦系統1000 (即,偵測系統100)之上述功能。
使用者I/O 1009代表一或多個適當的使用者介面裝置,諸如鍵盤、指向裝置、顯示器等。在一些實施例中,使用者I/O 1009代表用於處於多個實體位置之多個電腦裝置的多個使用者介面裝置。系統管理員可例如使用此等裝置來存取、設定及控制電腦系統1000。
網路I/O 1010代表用於在整個偵測系統100中通信之任何適當網路連接裝置,諸如網路配接器等。在一些實施例中,網路I/O 1010代表用於處於多個實體位置之多個電腦裝置的多個此種網路連接裝置,以用於經由多個資料通道進行通信。
資料通信子系統1012代表用於連接單一單元中或以分散方式處於一或多個PCB上、一或多個外殼或殼體內、一或多個機架總成內、一或多個地理位置內的其他組件之任何適當的通信硬體。
已詳細參考所揭示發明之實施例,該等實施例之一或多個實例已在附圖中示出。已藉由解釋本發明技術之方式提供每一實例,而非作為對本發明技術之限制。事實上,儘管已經關於本發明之特定實施例詳細描述了說明書,但將了解,熟習此項技術者在獲得對前述內容之理解後可容易地想到對此等實施例之更改、此等實施例之變化及等效實施例。舉例而言,圖示或描述為一個實施例之一部分的特徵可與另一實施例一起使用以產生又一實施例。因此,本標的旨在涵蓋在所附申請專利範圍及其等效物之範疇內的此等修改及變化。在不背離本發明之範疇(其在所附申請專利範圍中更特定地闡述)的情況下,一般熟習此項技術者可實踐本發明之此等及其他修改及變化。此外,一般熟習此項技術者將了解,前述描述僅以舉例說明,且不意欲限制本發明。
100:程式執行異常偵測系統(偵測系統)
101:儀器化模組
102:監督器
103:受監督程式
104:「正常行為模型」或「可接受行為」模型
105:儀器化項
201:儀器化收集模組
202:儀器化資料
203:監督器控制面板
204:「訓練」或「模型構建」信號
205:「運行」信號
206:「停止」信號
207:線程定時器
208:「停止」命令
209:「存錄」功能
210:「API」功能
300:實例彙總過程
301:步驟
302:步驟
303:步驟
304:步驟
400:實例彙總過程
401:步驟
402:步驟
403:步驟
404:步驟
405:步驟
406:步驟
407:步驟
408:步驟
500:簡化之使用者輸入/控制介面(UI)
501:公司ID參數
502:使用者ID參數
503:版本參數
504:程式名稱參數
505:政策名稱參數
506:「未進行域驗證」核取方塊
507:DNS簽名驗證
508:基域
509:訓練參數區段
510:第一解析度參數
511:第一浮動塊條
512:第一引發源始深度參數
513:第一定時變化容差參數
514:部署參數區段
515:第二解析度參數
516:第二浮動塊條
517:第二引發源始深度參數
518:第二定時變化容差參數
600:實例彙總過程
601:步驟
602:步驟
603:步驟
700:實例彙總過程
701:步驟
702:步驟
703:步驟
704:步驟
705:步驟
800:計算系統
801:主處理器系統
802:附屬處理器子系統
803:主處理器(CPU)
804:主記憶體
805:通信匯流排
806:輸入/輸出(I/O)子系統
807:附屬處理器
808:專用記憶體
809:專用通信匯流排
810:第一專用I/O匯流排
811:第二專用I/O匯流排
812:AI引擎
900:實例彙總過程
901:步驟
902:步驟
903:步驟
904:步驟
905:步驟
1000:電腦系統
1002:處理器
1004:主電子記憶體
1006:資料儲存器
1008:非暫時性電腦可讀或機器可讀媒體
1009:使用者I/O
1010:網路I/O
1012:資料通信子系統
1020:程式及資料
1022:程式及資料
1024:程式及資料
1026:程式及資料
1028:程式及資料
1030:程式及資料
1032:程式及資料
1034:程式及資料
1036:程式及資料
1038:程式及資料
1040:程式及資料
1042:程式及資料
1044:程式及資料
1046:程式及資料
1048:程式及資料
根據一些實施例,圖1為經改良程式執行異常偵測系統的簡化示意方塊圖。
根據一些實施例,圖2為偵測系統之功能模組的簡化方塊圖。
根據一些實施例,圖3為用於產生可接受行為模型以在圖1所示之偵測系統中使用的實例彙總過程的簡化流程圖。
根據一些實施例,圖4為用於由圖1所示之偵測系統監測受監督程式以發現異常行為的示例彙總過程的簡化流程圖。
根據一些實施例,圖5為用於圖1所示之偵測系統的供使用者用於輸入控制參數的簡化之使用者輸入/控制介面。
根據一些實施例,圖6為用於由圖1所示之偵測系統進行的儀器化且監測包括解譯語言碼之受監督程式的實例彙總過程的簡化流程圖。
根據一些實施例,圖7為用於由圖1所示之偵測系統進行的使用已修改編譯器來儀器化且監測受監督程式的實例彙總過程的簡化流程圖。
根據一些實施例,圖8為圖1所示之偵測系統的實例硬體實現之計算系統的簡化方塊圖。
根據一些實施例,圖9為用於使用圖1所示之偵測系統的硬體實現來儀器化且監測受監督程式的實例彙總過程的簡化流程圖。
根據一些實施例,圖10為展示用於圖1所示之偵測系統中的實例電腦系統的簡化示意圖。
100:程式執行異常偵測系統(偵測系統)
101:儀器化模組
102:監督器
103:受監督程式
104:「正常行為模型」或「可接受行為」模型
105:儀器化項
Claims (40)
- 一種方法,該方法包含: 由一電腦系統根據無惡意行為之一正常操作在一受控環境中在一第一操作模式下執行一程式; 由該電腦系統產生一事件記錄,該事件記錄包含在該程式之該正常操作期間發生的複數個事件序列; 由該電腦系統使用該事件記錄產生一可接受行為模型,該可接受行為模型指示在無該惡意行為之該正常操作期間發生的該程式之正常行為; 由該電腦系統在一操作環境中在一第二操作模式下執行該程式; 由該電腦系統判定在該程式在該第二操作模式下執行期間的該程式之一事件操作序列,該操作事件序列包括一當前動作; 由該電腦系統將該事件操作序列與該可接受行為模型進行比較; 當該比較步驟導致該事件操作序列與該可接受行為模型之間的一匹配時,在該第二操作模式下執行該當前動作;及 當該比較步驟未導致該事件操作序列與該可接受行為模型之間的該匹配時,不執行該當前動作且產生一警報以停止該程式之該執行或在該當前行動處標記該第二操作模式下的該當前動作。
- 如請求項1之方法,其中: 該複數個事件序列中之每一事件序列包含在該程式之該正常操作期間發生的複數個事件。
- 如請求項1之方法,其中: 用一解譯語言編寫該程式;且 該方法進一步包含; 將該程式之代碼儀器化以包括儀器化代碼;及 由一碼解譯器解譯該程式以產生基於該程式之該代碼的一第一可執行碼部分及基於該儀器化代碼的一第二可執行碼部分。
- 如請求項3之方法,其中: 在該碼解譯器解譯該程式之後,執行該程式在該第一操作模式下及該第二操作模式下的該執行;且 藉由執行該第二可執行碼部分來執行該事件記錄之該產生。
- 如請求項3之方法,其中: 在將該程式提供至該碼解譯器之前,執行該程式之該代碼的該儀器化以包括該儀器化代碼。
- 如請求項3之方法,其中: 在解譯該程式之該代碼的同時,由該碼解譯器執行該程式之該代碼的該儀器化以包括該儀器化代碼。
- 如請求項1之方法,該方法進一步包含: 由該電腦系統使用一編譯器將該程式之代碼儀器化,該程式含有儀器化可執行碼; 其中: 根據該程式之該儀器化可執行碼的儀器化,該程式在該第一操作模式下的該執行導致該事件記錄之該產生。
- 如請求項1之方法,其中: 由該電腦系統之一第一處理器執行該程式在該第一操作模式下的該執行; 由與該第一處理器分開之一第二處理器執行該事件記錄之該產生。
- 如請求項1之方法,其中: 由該電腦系統之一第一處理器執行該程式在該第二操作模式下的該執行; 由該電腦系統的與該第一處理器分開之一第二處理器執行該事件操作序列之該判定。
- 如請求項1之方法,其中: 該可接受行為模型為基於該複數個事件序列進行訓練之一人工智慧模型,已知該複數個事件序列在該程式的無該惡意行為之該正常操作期間發生。
- 一種方法,該方法包含: 由一電腦系統根據無惡意行為之一正常操作在一受控環境中在一第一操作模式下執行一程式; 由該電腦系統產生一事件記錄,該事件記錄包含在該程式之該正常操作期間發生的複數個事件序列;及 由該電腦系統使用該事件記錄產生一可接受行為模型,該可接受行為模型指示在無該惡意行為之該正常操作期間發生的該程式之正常行為; 其中: 該可接受行為模型經組態以用於在判定該程式之一當前動作為不匹配該可接受行為模型之一事件操作序列的一部分時,阻止在一操作環境中在一第二操作模式下執行該程式之該當前動作。
- 如請求項11之方法,其中: 該複數個事件序列中之每一事件序列包含在該程式之該正常操作期間發生的複數個事件。
- 如請求項11之方法,其中: 用一解譯語言編寫該程式;且 該方法進一步包含將該程式之代碼儀器化以包括儀器化代碼; 該方法進一步包含由一碼解譯器解譯該程式以產生基於該程式之該代碼的一第一可執行碼部分及基於該儀器化代碼的一第二可執行碼部分; 在該碼解譯器解譯該程式之後,執行該程式在該第一操作模式下及該第二操作模式下的該執行;且 藉由執行該第二可執行碼部分來執行該事件記錄之該產生。
- 如請求項11之方法,該方法進一步包含: 由該電腦系統使用一編譯器將該程式之代碼儀器化,該程式含有儀器化可執行碼; 其中: 根據該程式之該儀器化可執行碼的儀器化,該程式在該第一操作模式下的該執行導致該事件記錄之該產生。
- 如請求項11之方法,其中: 由該電腦系統之一第一處理器執行該程式在該第一操作模式下的該執行; 由該電腦系統的與該第一處理器分開之一第二處理器執行該事件記錄之該產生。
- 如請求項11之方法,其中: 該可接受行為模型為基於該複數個事件序列進行訓練之一人工智慧模型,已知該複數個事件序列在該程式的無該惡意行為之該正常操作期間發生。
- 一種方法,該方法包含: 由一電腦系統接收一可接受行為模型,該可接受行為模型指示一程式的無惡意行為之正常操作,如藉由根據無惡意行為之該正常操作在一受控環境中在一第一操作模式下執行該程式判定的; 由該電腦系統在一操作環境中在一第二操作模式下執行該程式; 由該電腦系統判定在該程式在該第二操作模式下執行期間的該程式之一事件操作序列,該操作事件序列包括一當前動作; 由該電腦系統將該事件操作序列與該可接受行為模型進行比較; 當該比較步驟導致該事件操作序列與該可接受行為模型之間的一匹配時,在該第二操作模式下執行該當前動作;及 當該比較步驟未導致該事件操作序列與該可接受行為模型之間的該匹配時,不執行該當前動作且產生一警報以停止該程式之該執行或在該當前行動處標記該第二操作模式下的該當前動作。
- 如請求項17之方法,其中: 用一解譯語言編寫該程式;且 該方法進一步包含將該程式之代碼儀器化以包括儀器化代碼; 該方法進一步包含由一碼解譯器解譯該程式以產生基於該程式之該代碼的一第一可執行碼部分及基於該儀器化代碼的一第二可執行碼部分; 在該碼解譯器解譯該程式之後,執行該程式在該第二操作模式下的該執行;且 藉由執行該第二可執行碼部分來執行該事件操作序列之該判定。
- 如請求項17之方法,其中: 該程式含有儀器化可執行碼;且 根據該程式之該儀器化可執行碼的儀器化,該程式在該第二操作模式下的該執行導致該事件操作序列之該產生。
- 如請求項17之方法,其中: 由該電腦系統之一第一處理器執行該程式在該第二操作模式下的該執行; 由該電腦系統的與該第一處理器分開之一第二處理器執行該事件操作序列之該判定。
- 一種電腦化系統,該電腦化系統包含: 一記憶體,該記憶體儲存可執行指令;及 耦接至該記憶體之一處理器,該處理器藉由執行儲存於該記憶體中之該等指令來執行一方法,該方法包含: 由一電腦系統根據無惡意行為之一正常操作在一受控環境中在一第一操作模式下執行一程式; 由該電腦系統產生一事件記錄,該事件記錄包含在該程式之該正常操作期間發生的複數個事件序列; 由該電腦系統使用該事件記錄產生一可接受行為模型,該可接受行為模型指示在無該惡意行為之該正常操作期間發生的該程式之正常行為; 由該電腦系統在一操作環境中在一第二操作模式下執行該程式; 由該電腦系統判定在該程式在該第二操作模式下執行期間的該程式之一事件操作序列,該操作事件序列包括一當前動作; 由該電腦系統將該事件操作序列與該可接受行為模型進行比較; 當該比較步驟導致該事件操作序列與該可接受行為模型之間的一匹配時,在該第二操作模式下執行該當前動作;及 當該比較步驟未導致該事件操作序列與該可接受行為模型之間的該匹配時,不執行該當前動作且產生一警報以停止該程式之該執行或在該當前行動處標記該第二操作模式下的該當前動作。
- 如請求項21之電腦化系統,其中: 該複數個事件序列中之每一事件序列包含在該程式之該正常操作期間發生的複數個事件。
- 如請求項21之電腦化系統,其中: 用一解譯語言編寫該程式;且 該方法進一步包含; 將該程式之代碼儀器化以包括儀器化代碼;及 由一碼解譯器解譯該程式以產生基於該程式之該代碼的一第一可執行碼部分及基於該儀器化代碼的一第二可執行碼部分。
- 如請求項23之電腦化系統,其中: 在該碼解譯器解譯該程式之後,執行該程式在該第一操作模式下及該第二操作模式下的該執行;且 藉由執行該第二可執行碼部分來執行該事件記錄之該產生。
- 如請求項23之電腦化系統,其中: 在將該程式提供至該碼解譯器之前,執行該程式之該代碼的該儀器化以包括該儀器化代碼。
- 如請求項23之電腦化系統,其中: 在解譯該程式之該代碼的同時,由該碼解譯器執行該程式之該代碼的該儀器化以包括該儀器化代碼。
- 如請求項21之電腦化系統,該電腦化系統進一步包含: 由該電腦系統使用一編譯器將該程式之代碼儀器化,該程式含有儀器化可執行碼; 其中: 根據該程式之該儀器化可執行碼的儀器化,該程式在該第一操作模式下的該執行導致該事件記錄之該產生。
- 如請求項21之電腦化系統,其中: 由該電腦系統之一第一處理器執行該程式在該第一操作模式下的該執行; 由與該第一處理器分開之一第二處理器執行該事件記錄之該產生。
- 如請求項21之電腦化系統,其中: 由該電腦系統之一第一處理器執行該程式在該第二操作模式下的該執行; 由該電腦系統的與該第一處理器分開之一第二處理器執行該事件操作序列之該判定。
- 如請求項21之電腦化系統,其中: 該可接受行為模型為基於該複數個事件序列進行訓練之一人工智慧模型,已知該複數個事件序列在該程式的無該惡意行為之該正常操作期間發生。
- 一種電腦化系統,該電腦化系統包含: 一記憶體,該記憶體儲存可執行指令;及 耦接至該記憶體之一處理器,該處理器藉由執行儲存於該記憶體中之該等指令來執行一方法,該方法包含: 由一電腦系統根據無惡意行為之一正常操作在一受控環境中在一第一操作模式下執行一程式; 由該電腦系統產生一事件記錄,該事件記錄包含在該程式之該正常操作期間發生的複數個事件序列;及 由該電腦系統使用該事件記錄產生一可接受行為模型,該可接受行為模型指示在無該惡意行為之該正常操作期間發生的該程式之正常行為; 其中: 該可接受行為模型經組態以用於在判定該程式之一當前動作為不匹配該可接受行為模型之一事件操作序列的一部分時,阻止在一操作環境中在一第二操作模式下執行該程式之該當前動作。
- 如請求項31之電腦化系統,其中: 該複數個事件序列中之每一事件序列包含在該程式之該正常操作期間發生的複數個事件。
- 如請求項31之電腦化系統,其中: 用一解譯語言編寫該程式;且 該方法進一步包含將該程式之代碼儀器化以包括儀器化代碼; 該方法進一步包含由一碼解譯器解譯該程式以產生基於該程式之該代碼的一第一可執行碼部分及基於該儀器化代碼的一第二可執行碼部分; 在該碼解譯器解譯該程式之後,執行該程式在該第一操作模式下及該第二操作模式下的該執行;且 藉由執行該第二可執行碼部分來執行該事件記錄之該產生。
- 如請求項31之電腦化系統,該電腦化系統進一步包含: 由該電腦系統使用一編譯器將該程式之代碼儀器化,該程式含有儀器化可執行碼; 其中: 根據該程式之該儀器化可執行碼的儀器化,該程式在該第一操作模式下的該執行導致該事件記錄之該產生。
- 如請求項31之電腦化系統,其中: 由該電腦系統之一第一處理器執行該程式在該第一操作模式下的該執行; 由該電腦系統的與該第一處理器分開之一第二處理器執行該事件記錄之該產生。
- 如請求項31之電腦化系統,其中: 該可接受行為模型為基於該複數個事件序列進行訓練之一人工智慧模型,已知該複數個事件序列在該程式的無該惡意行為之該正常操作期間發生。
- 一種電腦化系統,該電腦化系統包含: 一記憶體,該記憶體儲存可執行指令;及 耦接至該記憶體之一處理器,該處理器藉由執行儲存於該記憶體中之該等指令來執行一方法,該方法包含: 由一電腦系統接收一可接受行為模型,該可接受行為模型指示一程式的無惡意行為之正常操作,如藉由根據無惡意行為之該正常操作在一受控環境中在一第一操作模式下執行該程式判定的; 由該電腦系統在一操作環境中在一第二操作模式下執行該程式; 由該電腦系統判定在該程式在該第二操作模式下執行期間的該程式之一事件操作序列,該操作事件序列包括一當前動作; 由該電腦系統將該事件操作序列與該可接受行為模型進行比較; 當該比較步驟導致該事件操作序列與該可接受行為模型之間的一匹配時,在該第二操作模式下執行該當前動作;及 當該比較步驟未導致該事件操作序列與該可接受行為模型之間的該匹配時,不執行該當前動作且產生一警報以停止該程式之該執行或在該當前行動處標記該第二操作模式下的該當前動作。
- 如請求項37之電腦化系統,其中: 用一解譯語言編寫該程式;且 該方法進一步包含將該程式之代碼儀器化以包括儀器化代碼; 該方法進一步包含由一碼解譯器解譯該程式以產生基於該程式之該代碼的一第一可執行碼部分及基於該儀器化代碼的一第二可執行碼部分; 在該碼解譯器解譯該程式之後,執行該程式在該第二操作模式下的該執行;且 藉由執行該第二可執行碼部分來執行該事件操作序列之該判定。
- 如請求項37之電腦化系統,其中: 該程式含有儀器化可執行碼;且 根據該程式之該儀器化可執行碼的儀器化,該程式在該第二操作模式下的該執行導致該事件操作序列之該產生。
- 如請求項37之電腦化系統,其中: 由該電腦系統之一第一處理器執行該程式在該第二操作模式下的該執行; 由該電腦系統的與該第一處理器分開之一第二處理器執行該事件操作序列之該判定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/415,852 | 2022-10-13 | ||
US18/485,049 | 2023-10-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202416160A true TW202416160A (zh) | 2024-04-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheng et al. | Orpheus: Enforcing cyber-physical execution semantics to defend against data-oriented attacks | |
Manès et al. | The art, science, and engineering of fuzzing: A survey | |
Muench et al. | What You Corrupt Is Not What You Crash: Challenges in Fuzzing Embedded Devices. | |
McNally et al. | Fuzzing: The State of the Art. | |
Qasem et al. | Automatic vulnerability detection in embedded devices and firmware: Survey and layered taxonomies | |
US9218254B2 (en) | Systems, methods, and media for recovering an application from a fault or attack | |
US8694833B2 (en) | Methods, media, and systems for detecting an anomalous sequence of function calls | |
Feng et al. | Detecting vulnerability on IoT device firmware: A survey | |
Saha et al. | Hector: Detecting resource-release omission faults in error-handling code for systems software | |
Eceiza et al. | Fuzzing the internet of things: A review on the techniques and challenges for efficient vulnerability discovery in embedded systems | |
JP2008547070A (ja) | アプリケーションを修理するための方法及びシステム | |
EP1952240A2 (en) | Methods, media and systems for detecting anomalous program executions | |
Cheng et al. | Checking is believing: Event-aware program anomaly detection in cyber-physical systems | |
Zhang et al. | Static detection of silent misconfigurations with deep interaction analysis | |
Gao et al. | Beyond output voting: Detecting compromised replicas using HMM-based behavioral distance | |
CN111859380A (zh) | Android App漏洞的零误报检测方法 | |
Chen et al. | Sfuzz: Slice-based fuzzing for real-time operating systems | |
Zhao et al. | A systematic review of fuzzing | |
Kwon et al. | Proving flow security of sequential logic via automatically-synthesized relational invariants | |
US11989296B2 (en) | Program execution anomaly detection for cybersecurity | |
TW202416160A (zh) | 關於網路安全之程式執行異常偵測 | |
Benameur et al. | {MINESTRONE}: Testing the {SOUP} | |
RU2817547C1 (ru) | Система и способ контроля работоспособности процессов в операционной системе | |
Lin et al. | Detecting {API}{Post-Handling} Bugs Using Code and Description in Patches | |
Kononenko | An approach to error correction in program code using dynamic optimization in a virtual execution environment |