TWI698755B - 用於快速且可擴充的功能性檔案相互關聯之系統及方法 - Google Patents
用於快速且可擴充的功能性檔案相互關聯之系統及方法 Download PDFInfo
- Publication number
- TWI698755B TWI698755B TW104140908A TW104140908A TWI698755B TW I698755 B TWI698755 B TW I698755B TW 104140908 A TW104140908 A TW 104140908A TW 104140908 A TW104140908 A TW 104140908A TW I698755 B TWI698755 B TW I698755B
- Authority
- TW
- Taiwan
- Prior art keywords
- aforementioned
- file
- hash
- level
- function
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
一種用於由計算裝置獲得檔案之方法、電腦程式產品及電腦系統,其中該檔案包括複數個部分。可產生複數個部分之第一部分的第一雜湊。可將該第一部分與複數個部分之第二部分組合。可產生具有複數個部分之第二部分的該第一部分之第二雜湊,其中該第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與該檔案之功能及該第二檔案之功能的功能性相似性之第二等級。
Description
[相關案例]
本申請案主張美國臨時申請案號62/088,119之權益,該美國臨時申請案由Tomislav Pericin於2014年12月05日申請,且標題為「快速且可擴充的功能性檔案相互關聯」,其內容以引用方式全部併入本文中。
傳統的檔案雜湊演算法可經設計以將選定檔案之所有位元加總成獨特數字,該數字可表示檔案內容。現存許多此類型之演算法,且該等演算法針對相同檔案內容所產生之結果可為確定性的。通常,除非檔案之一或複數個位元亦改變,否則所得雜湊摘要不改變。因此,此方法可用於確保例如自從上次使用或傳輸檔案內容後,該檔案內容未經改變。雖然傳統的檔案雜湊演算法可用於持續追蹤對檔案之改變,但傳統的檔案雜湊演算法可能不可用於識別相似(但不同的)檔案且/或將其分組在一起。
在一個示例性實行方案中,由一或複數個計算裝置執行之方法可包括但不限於,由計算裝置獲得檔案,其中該檔案包括複數個部分。可產生複數個部分之第一部分的第一雜湊。第一部分可與複數個部分之第二部分組合。可產生具有複數個部分之第二部分的第一部分之第二雜湊,其中第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與檔案之功能及第二檔案之功能的功能性相似性之第二等級。
可包括以下示例性特徵中之一或多者。第一部分可與複數個部分之第二部分組合以及與複數個部分之第三部分組合。可產生具有複數個部分之第二部分以及具有複數個部分之第三部分的第一部分之第三雜湊,其中第三雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第三等級。第一部分可與複數個部分之第二部分組合,與複數個部分之第三部分組合以及與複數個部分之第四部分組合。可產生具有複數個部分之第二部分、具有複數個部分之第三部分以及且具有複數個部分之第四部分的第一部分之第四雜湊,其中第四雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第四等級。複數個部分之每一部分可包括檔案之不同功能性檔案特徵。檔案之不同功能性檔案特徵可包括以下各項中之一或多者:檔案所使
用之第一組功能、檔案所提供之第二組功能、與第一組功能及第二組功能中之至少一者的關係、檔案之檔案標頭資訊以及檔案之檔案內容佈局。功能性相似性之第一等級可為25%,功能性相似性之第二等級可為50%,功能性相似性之第三等級可為75%以及功能性相似性之第四等級可為100%。可使用功能性雜湊演算法來產生第一雜湊以及第二雜湊。產生每一雜湊之順序可為相同的。
在另一示例性實行方案中,計算系統包括經組配以執行操作之處理器及記憶體,該等操作可包括但不限於獲得檔案,其中檔案包括複數個部分。可產生複數個部分之第一部分的第一雜湊。第一部分可與複數個部分之第二部分組合。可產生具有複數個部分之第二部分的第一部分之第二雜湊,其中第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與檔案之功能及第二檔案之功能的功能性相似性之第二等級。
可包括以下示例性特徵中之一或多者。第一部分可與複數個部分之第二部分組合以及與複數個部分之第三部分組合。可產生具有複數個部分之第二部分以及具有複數個部分之第三部分的第一部分之第三雜湊,其中第三雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第三等級。第一部分可與複數個部分之第二部分組合,與
複數個部分之第三部分組合以及與複數個部分之第四部分組合。可產生具有複數個部分之第二部分、具有複數個部分之第三部分以及具有複數個部分之第四部分的第一部分之第四雜湊,其中第四雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第四等級。複數個部分之每一部分可包括檔案之不同功能性檔案特徵。檔案之不同功能性檔案特徵可包括以下各項中之一或多者:檔案所使用之第一組功能、檔案所提供之第二組功能、與第一組功能及第二組功能中之至少一者的關係、檔案之檔案標頭資訊以及檔案之檔案內容佈局。功能性相似性之第一等級可為25%,功能性相似性之第二等級可為50%,功能性相似性之第三等級可為75%以及功能性相似性之第四等級可為100%。可使用功能性雜湊演算法來產生第一雜湊及第二雜湊。產生每一雜湊之順序可為相同的。
在另一示例性實行方案中,電腦程式產品儲存於電腦可讀儲存媒介上,該電腦可讀儲存媒介具有儲存於其上之複數個指令。當由處理器執行指令時,該複數個指令致使處理器執行操作,該等操作可包括但不限於獲得檔案,其中檔案包括複數個部分。可產生複數個部分之第一部分的第一雜湊。第一部分可與複數個部分之第二部分組合。可產生具有複數個部分之第二部分的第一部分之第二雜湊,其中第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與檔案之
功能及第二檔案之功能的功能性相似性之第二等級。
可包括以下示例性特徵中之一或多者。第一部分可與複數個部分之第二部分組合以及與複數個部分之第三部分組合。可產生具有複數個部分之第二部分以及具有複數個部分之第三部分的第一部分之第三雜湊,其中第三雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第三等級。第一部分可與複數個部分之第二部分組合,與複數個部分之第三部分組合以及與複數個部分之第四部分組合。可產生具有複數個部分之第二部分、具有複數個部分之第三部分以及具有複數個部分之第四部分的第一部分之第四雜湊,其中第四雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第四等級。複數個部分之每一部分可包括檔案之不同功能性檔案特徵。檔案之不同功能性檔案特徵可包括以下各項中之一或多者:檔案所使用之第一組功能、檔案所提供之第二組功能、與第一組功能及第二組功能中之至少一者的關係、檔案之檔案標頭資訊以及檔案之檔案內容佈局。功能性相似性之第一等級可為25%,功能性相似性之第二等級可為50%,功能性相似性之第三等級可為75%以及功能性相似性之第四等級可為100%。可使用功能性雜湊演算法來產生第一雜湊及第二雜湊。產生每一雜湊之順序可為相同的。
在隨附圖式及以下描述中闡述一或多個示例性實行方
案之細節。其他可能的示例性特徵及/或可能的示例性優點將從描述、圖式及申請專利範圍中變得顯而易見。一些實行方案可能不具有彼等可能的示例性特徵及/或可能的示例性優點,且一些實行方案可能不一定需要此類可能的示例性特徵及/或可能的示例性優點。
10‧‧‧相似性處理程序/SP處理程序/SP
12‧‧‧電腦
14‧‧‧網路
16‧‧‧儲存裝置
18‧‧‧次要網路
20‧‧‧防毒應用程式
22、24、26、28‧‧‧用戶端應用程式
30、32、34、36‧‧‧儲存裝置
38、40、42、44‧‧‧用戶端電子裝置
46、48、50、52‧‧‧使用者
54‧‧‧假想連結線
56、60‧‧‧無線通訊通道
58‧‧‧無線存取點/WAP
62‧‧‧蜂巢式網路/橋接器
200‧‧‧微處理器
202‧‧‧I/O控制器
206‧‧‧鍵盤
208‧‧‧滑鼠
210‧‧‧顯示器配接器
212‧‧‧顯示器
214‧‧‧網路控制器/配接器
215‧‧‧裝置
300~314‧‧‧步驟
400‧‧‧檔案
402‧‧‧特徵
404‧‧‧第一等級特徵雜湊清單
406‧‧‧第二等級特徵雜湊清單
500‧‧‧相似性圖
600‧‧‧視覺表示
700‧‧‧虛擬代碼
800‧‧‧曲線圖
900‧‧‧圖
圖1為根據本案公開之一或多個示例性實行方案的耦
接至分佈式計算網路之相似性處理程序的示例性示意圖。
圖2為根據本案公開之一或多個示例性實行方案的圖1之用戶端電子裝置的示例性示意圖。
圖3為根據本案公開之一或多個示例性實行方案的圖1之相似性處理程序的示例性流程圖。
圖4為根據本案公開之一或多個示例性實行方案的檔案特徵之示例性示意圖。
圖5為根據本案公開之一或多個示例性實行方案的功能性雜湊分組之示例性示意圖。
圖6為根據本案公開之一或多個示例性實行方案的結構性檔案視覺化之示例性示意圖。
圖7為根據本案公開之一或多個示例性實行方案的虛擬代碼之示例性示意圖。
圖8為根據本案公開之一或多個示例性實行方案的獨特二進位數之曲線圖的示例性示意圖。
圖9為根據本案公開之一或多個示例性實行方案的正規化威脅名稱之圖的示例性示意圖。
各個圖式中類似的參考符號指示類似的元件。
[系統概述]
如以下將更詳細地討論,在一些實行方案中,與本公開一起使用之雜湊演算法可為功能性雜湊演算法,該功能性雜湊演算法經特別地設計來基於功能性檔案特徵將檔案關聯至群組中。此等特徵可包括例如:諸如格式特定標頭資訊之檔案特性、檔案佈局以及如代碼及資料關係之功能性檔案資訊。所使用之資料點的數目及選擇資料點之方式可允許針對每一檔案創建複數個雜湊。此等雜湊可例如用作檔案之間的功能性相似性之某一等級的保證。功能性相似性之等級可稱為精度等級。在一些實行方案中,功能性雜湊演算法所支援之每一格式可帶有四個不同精度等級,
該等精度等級可保證例如以25%遞增,自25%變化至100%之功能性相似性匹配。
功能性雜湊演算法本質上可為通用的,從而可使得此等雜湊可適用於任何可執行檔案格式(或任何其他類型之檔案)。如以下將更詳細地討論,為達成此效果,特定檔案格式之不同特徵可被抽象成諸如以下類別:結構、佈局、內容、符號、功能及關係。然後,每一類別可按精度等級劃分成特定實行方案,該等特定實行方案以特定方式摘錄檔案資料。實行方案可隨格式不同而變化,但通常可由資料排序及簡化之方式來表示。處於不同精度等級之此等操作可確保可能被認為係功能上相關的不同檔案(具有不同內容)落入同一功能性雜湊群組中。每一精度等級之雜湊可為確定性的,且可與該功能性雜湊組態綁定。此又可在雜湊查找中產生(幾乎沒有重疊或)不具有重疊之不同精度等級。在實例中,雜湊決定論可實現最快的可能雜湊查找時間。
如所屬技術領域中具有通常知識者將瞭解,本公開可被實施為方法、系統或電腦程式產品。因此,本公開可採取以下形式:完全硬體實行方案、完全軟體實行方案(包括韌體、常駐軟體、微代碼等)或將軟體態樣及硬體態樣組合之實行方案,該等實行方案在本文中通常都稱為「電路」、「模組」或「系統」。此外,本公開可採取電腦可用儲存媒
介上之電腦程式產品的形式,該電腦可用儲存媒介具有在該媒介中實施之電腦可用程式代碼。
可利用任何合適的電腦可用或電腦可讀媒介(或媒體)。電腦可讀媒介可為電腦可讀信號媒介或電腦可讀儲存媒介。電腦可用儲存媒介或電腦可讀儲存媒介(包括與計算裝置或用戶端電子裝置相關聯之儲存裝置)可為,例如但不限於,電子、磁性、光學、電磁、紅外線或半導體系統、設備、裝置,或上述各項之任何合適組合。電腦可讀媒介之更多特定實例(非詳盡清單)可包括以下各項:具有一或複數個導線之電氣接頭、可攜式電腦磁片、硬碟、隨機存取記憶體(random access memory;RAM)、唯讀記憶體(read-only memory;ROM)、可抹除可程式化唯獨記憶體(erasable programmable read-only memory;EPROM;或快閃記憶體)、光纖、可攜式光碟唯讀記憶體(compact disc read-only memory;CD-ROM)、光學儲存裝置、數位通用磁碟(digital versatile disk;DVD)、靜態隨機存取記憶體(static random access memory;SRAM)、記憶棒、磁片、諸如打孔卡片或溝槽中之凸起結構(上面記錄有指令)的機械編碼裝置、諸如支援網際網路或內部網路的媒介或磁性儲存裝置。應注意,電腦可用媒介或電腦可讀媒介甚至可為合適的媒介,在該媒介上程式可被儲存、掃描、編譯、解譯或以其他合適方式處理,必要時,且然後將程式儲存於電腦記憶體中。在本公開之情境中,電腦可用儲存媒介或
電腦可讀儲存媒介可為可含有或儲存由執行指令的系統、設備或裝置使用或與指令執行系統、設備或裝置結合使用的任何有形媒介。
電腦可讀信號媒介可包括傳播資料信號,其中電腦可讀程式碼內嵌於該傳播資料信號中,例如,實施於基頻中或為載波之一部分。此種傳播信號可採取各種形式中之任一者,該等形式包括但不限於電磁、光學或其任何合適組合。可使用任何適當的媒介來傳輸電腦可讀程式碼,該媒介包括但不限於網際網路、纜線、光纖電纜、RF(Radio Frequency;射頻)等。電腦可讀信號媒介可為任何電腦可讀媒介,其並非電腦可讀儲存媒介並且其可傳達、傳播或傳送以被指令執行系統、設備或裝置使用或與指令執行系統、設備或裝置結合使用之程式的。
用於進行本公開之操作的電腦程式碼可為組譯器指令、指令集架構(instruction-set-architecture;ISA)指令、機器指令、機器相關指令、微代碼、韌體指令、狀態設定資料或用一或複數個程式設計語言之任何組合撰寫的原始碼或目標碼,該或該等程式設計語言包括物件導向式程式設計語言,諸如Java®、Smalltalk、C++等。Java及所有基於Java的商標及標誌為Oracle及/或其附屬機構之商標或註冊商標。然而,用於進行本公開之操作的電腦程式碼亦可用諸如「C」程式設計語言、PASCAL或相似程式設計語
言的習知程序性程式設計語言來撰寫,或用諸如Javascript、PERL或Python的劇本式(Script)程式設計語言來撰寫。程式碼可完全地在使用者電腦上執行、部分地在使用者電腦上執行,可作為獨立套裝軟體部分地在使用者電腦上且部分地在遠程電腦上執行或完全地在遠程電腦或伺服器上執行。在後一種方案中,遠程電腦可經由區域網路(local area network;LAN)或廣域網路(wide area network;WAN)連接至使用者電腦,或可(例如,使用網際網路服務提供者來經由網際網路)與外部電腦形成連接。在一些實行方案中,包括例如可程式化邏輯電路、現場可程式化閘陣列(field-programmable gate array;FPGA)、微控制器單元(micro-controller unit;MCU)或可程式化邏輯陣列(programmable logic array;PLA)之電子電路可藉由利用電腦可讀程式指令之狀態資訊來執行電腦可讀程式指令/程式碼,以將電子電路個人化,以便執行本公開之態樣。
圖中之流程圖及方塊圖例示根據本公開之各種實行方案的設備(系統)、方法及電腦程式產品之可能的實行方案之架構、功能及操作。將可理解地,流程圖及/或方塊圖中之每一方塊以及流程圖及/或方塊圖中之方塊的組合可表示代碼之模組、片段或部分,該模組、片段或部分包含用於實行規定的(數個)邏輯功能/(數個)邏輯動作之一或複數個可執行電腦程式指令。可將此等電腦程式指令提供至通用電腦、專用電腦或其他可程式化資料處理設備之處理器
以產生機器,以使得可經由電腦或其他可程式化資料處理設備之處理器執行的電腦程式指令產生如下能力:實行流程圖及/或方塊圖的方塊或數個方塊或其組合中所規定之功能/動作中的一或多者。應注意,在一些替代實行方案中,(數個)方塊中所標注之功能可不按圖中所標注之順序發生。例如,相繼展示的兩個方塊事實上可大致同時執行,或者取決於所涉及之功能,該等方塊有時可按相反順序來執行。
此等電腦程式指令亦可儲存於電腦可讀記憶體中,該電腦可讀記憶體可引導電腦或其他可程式化資料處理設備以特定方式起作用,以使得儲存於電腦可讀記憶體中之指令產生包括指令構件的製造物品,該等指令構件實行流程圖及/或方塊圖的方塊或數個方塊或其組合中所規定之功能/動作。
電腦程式指令亦可載入至電腦或其他可程式化資料處理設備上,以致使一系列操作步驟在電腦或其他可程式化設備上執行(不一定按特定順序)以產生電腦實行處理程序,以使得在電腦或其他可程式化設備上執行之指令提供用於實行流程圖及/或方塊圖的方塊或數個方塊或其組合中所規定之功能/動作(不一定按特定順序)的步驟。
現在參考圖1,展示相似性處理程序10,該相似性處
理程序10可常駐於電腦(例如,電腦12)上且可由電腦執行,該電腦可連接至網路(例如,網路14)(例如,網際網路或區域網路)。電腦12(及/或以下所標注的用戶端電子裝置中之一或多者)之實例可包括但不限於(數個)個人電腦、(數個)膝上型電腦、(數個)行動計算裝置、伺服器電腦、一系列伺服器電腦、(數個)主機電腦或(數個)計算雲端。電腦12可執行作業系統,該作業系統例如為但不限於Microsoft® Windows®、Mac® OS X®、Red Hat® Linux®或客製的作業系統。(Microsoft及Windows為Microsoft Corporation在美國、其他國家或兩者中之註冊商標;Mac及OS X為Apple Inc.在美國、其他國家或兩者中之註冊商標;Red Hat為Red Hat Corporation在美國、其他國家或兩者中之註冊商標;且Linux為Linus Torvalds在美國、其他國家或兩者中之註冊商標)。
如以下將更詳細地討論,相似性處理程序10可藉由計算裝置獲得檔案,其中檔案包括複數個部分。可產生複數個部分之第一部分的第一雜湊。第一部分可與複數個部分之第二部分組合。可產生具有複數個部分之第二部分的第一部分之第二雜湊,其中第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與檔案之功能及第二檔案之功能的功能性相似性之第二等級。
可儲存於耦接至電腦12之儲存裝置16上的相似性處理程序10之指令集及次常式可由電腦12內所包括的一或複數個處理器(未展示)及一或複數個記憶體架構(未展示)來執行。儲存裝置16可包括但不限於:硬碟機;快閃磁碟機、磁帶機;光碟機;RAID(Redundant Array of Independent Disk;獨立磁碟冗餘陣列)陣列;隨機存取記憶體(RAM);以及唯讀記憶體(ROM)。
網路14可連接至一或複數個次要網路(例如,次要網路18),該或該等次要網路之實例可包括但不限於:例如,區域網路、廣域網絡或內部網路。
電腦12可包括資料儲存器,諸如資料庫(例如,關聯式資料庫、物件導向式資料庫、三元組儲存資料庫(triplestore database)等),並且可位於任何合適的記憶體位置內,諸如耦接至電腦12之儲存裝置16。在本公開全篇中描述之任何資料、元資料、資訊等可儲存於資料儲存器中。在一些實行方案中,電腦12可利用諸如但不限於DB2的任何已知資料庫管理系統,以便提供對一或複數個資料庫的多使用者存取,該或該等資料庫諸如上述關聯式資料庫。資料儲存器亦可為客製的資料庫,諸如,例如,平坦檔案資料庫或XML(Extensible Markup Language;可延伸標示語言)資料庫。亦可使用任何其他(數個)形式之資料儲存結構及/或組織。相似性處理程序10可為資料儲存器之
組件、與上述資料儲存器介接之獨立應用程式及/或經由用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28來存取之小型應用程式(applet)/應用程式。上述資料儲存器可完全地或部分地分佈於雲端計算拓撲中。以此方式,電腦12及儲存裝置16可指代亦可分佈於整個網路中的複數個裝置。
電腦12可執行防毒應用程式(例如,防毒應用程式20),該防毒應用程式之實例可包括但不限於,例如,防毒/惡意軟體應用程式或可受益於識別相似檔案且/或將其分組在一起(例如,基於檔案之功能性相似性)之能力的其他應用程式。因而,防毒應用程式之使用應僅視為實例,而非以其他方式限制本公開之範疇。可經由用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28來存取相似性處理程序10及/或防毒應用程式20。相似性處理程序10可為獨立應用程式,或可為:可與防毒應用程式20互動且/或在防毒應用程式20內執行之小型應用程式/應用程式/指令碼/延伸、防毒應用程式20之組件及/或用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者。防毒應用程式20可為獨立應用程式,或可為:可與相似性處理程序10互動且/或在相似性處理程序10內執行之小型應用程式/應用程式/指令碼/延伸、相似性處理程序10之組件及/或用戶端應用程式22、用戶端應用程式24、用戶端應用程式
26、用戶端應用程式28中之一或多者。用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者可為獨立應用程式或可為可與相似性處理程序10互動且/或在相似性處理程序10內執行之小型應用程式/應用程式/指令碼/延伸及/或為相似性處理程序10及/或防毒應用程式20之組件。用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28之實例可包括但不限於,例如,防毒/惡意軟體應用程式或可受益於識別相似檔案且/或將其分組在一起(例如,基於檔案之功能性相似性)之能力的其他應用程式、標準網頁瀏覽器及/或行動網頁瀏覽器、電子郵件應用程式(例如,電子郵件用戶端應用程式)、文字使用者介面及/或圖形使用者介面、客製化網頁瀏覽器、外掛程式、應用程式設計介面(Application Programming Interface;API)或客製的應用程式。可儲存於耦接至用戶端電子裝置38、用戶端電子裝置40、用戶端電子裝置42、用戶端電子裝置44之儲存裝置30、儲存裝置32、儲存裝置34、儲存裝置36上的用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28之指令集及次常式可由併入至用戶端電子裝置38、用戶端電子裝置40、用戶端電子裝置42、用戶端電子裝置44中之一或複數個處理器(未展示)及一或複數個記憶體架構(未展示)來執行。
儲存裝置30、儲存裝置32、儲存裝置34、儲存裝置
36可包括但不限於:硬碟機、快閃磁碟機、磁帶機、光碟機、RAID陣列、隨機存取記憶體(RAM)以及唯讀記憶體(ROM)。用戶端電子裝置38、用戶端電子裝置40、用戶端電子裝置42、用戶端電子裝置44(及/或電腦12)之實例可包括但不限於,個人電腦(例如,用戶端電子裝置38)、筆記型電腦(例如,用戶端電子裝置40)、智慧型/具備資料功能的(data-enabled)蜂巢式電話(例如,用戶端電子裝置42)、筆記型電腦(例如,用戶端電子裝置44)、平板電腦(未展示)、伺服器(未展示)、電視(未展示)、智慧型電視(未展示)、媒體(例如,視訊、照片等)擷取裝置(未展示),以及專用網路裝置(未展示)。用戶端電子裝置38、用戶端電子裝置40、用戶端電子裝置42、用戶端電子裝置44可各自執行作業系統,該作業系統之實例可包括但不限於,Androidtm、Apple® iOS®、Mac® OS X®;Red Hat® Linux®或客製的作業系統。
用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者可經組配來實現相似性處理程序10之功能中之一些或全部(反之亦然)。因此,相似性處理程序10可為:純粹伺服器側應用程式、純粹用戶端側應用程式或由用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者及/或相似性處理程序10合作執行的混合式伺服器側/用戶端側應用程式。
用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者可經組配來實現防毒應用程式20之功能中之一些或全部(反之亦然)。因此,防毒應用程式20可為:純粹伺服器側應用程式、純粹用戶端側應用程式,或由用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者及/或防毒應用程式20合作執行的混合式伺服器側/用戶端側應用程式。因為用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者、相似性處理程序10及防毒應用程式20單獨地或以任何組合的方式可實現同一功能中之一些或全部,所以對經由用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者、相似性處理程序10、防毒應用程式20或其組合來實現此功能之任何描述,以及用以實現此功能的用戶端應用程式22、用戶端應用程式24、用戶端應用程式26、用戶端應用程式28中之一或多者、相似性處理程序10、防毒應用程式20或其組合之間的任何所描述的(數個)互動,僅應視為實例而非限制本公開之範疇。
使用者46、使用者48、使用者50、使用者52可(例如,使用用戶端電子裝置38、用戶端電子裝置40、用戶端電子裝置42、用戶端電子裝置44中之一或多者)直接經由
網路14或經由次要網路18來存取電腦12及相似性處理程序10。此外,如使用假想連結線54所例示,電腦12可經由次要網路18連接至網路14。相似性處理程序10可包括一或複數個使用者介面,諸如瀏覽器及文字使用者介面或圖形使用者介面,使用者46、使用者48、使用者50、使用者52可經由該或該等使用者介面來存取相似性處理程序10。
各種用戶端電子裝置可直接或間接耦接至網路14(或次要網路18)。例如,用戶端電子裝置38係展示為經由固線式網路連接直接耦接至網路14。此外,用戶端電子裝置44係展示為經由固線式網路連接直接耦接至次要網路18。用戶端電子裝置40係展示為經由無線通訊通道56無線耦接至網路14,該無線通訊通道56建立於用戶端電子裝置40與無線存取點58(亦即,wireless access point;WAP)之間,該無線存取點係展示為直接耦接至網路14。WAP 58可為例如IEEE 802.11a、802.11b、802.11g、Wi-Fi®及/或Bluetoothtm(包括Bluetoothtm低功耗)裝置,該裝置能夠在用戶端電子裝置40與WAP 58之間建立無線通訊通道56。用戶端電子裝置42係展示為經由無線通訊通道60無線耦接至網路14,該無線通訊通道60建立於用戶端電子裝置42與蜂巢式網路/橋接器62之間,該蜂巢式網路/橋接器62係展示為直接耦接至網路14。
一些或全部IEEE 802.11x規範可使用乙太網路協定及具有避免衝突的載波感測多重存取(亦即,carrier sense multiple access with collision avoidance;CSMA/CA)以用於路徑共用。各種802.11x規範可使用例如相移鍵控(亦即,phase-shift keying;PSK)調變或互補碼鍵控(亦即,complementary code keying;CCK)調變。Bluetoothtm(包括Bluetoothtm低功耗)為電信工業規範,該電信工業規範允許例如使用短程無線連接將行動電話、電腦、智慧型電話及其他電子裝置互連。亦可使用其他形式之互連(例如,近場通訊(Near Field Communication;NFC))。
亦參考圖2,其展示用戶端電子裝置38之示意圖。雖然在此圖中展示用戶端電子裝置38,但因為其他組態係可能的,所以此僅出於示例性目的且不意欲為本公開之限制。另外,能夠完全地或部分地執行相似性處理程序10之任何計算裝置可(完全地或部分地)替代圖2內的用戶端電子裝置38,該計算裝置之實例可包括但不限於電腦12及/或用戶端電子裝置40、用戶端電子裝置42、用戶端電子裝置44。
用戶端電子裝置38可包括處理器及/或微處理器(例如,微處理器200),該處理器及/或微處理器經組配以例如處理資料且執行上述代碼/指令集及次常式。微處理器200可經由儲存器配接器(未展示)耦接至上述(數個)儲存裝置
(例如,儲存裝置30)。I/O(Input/Output;輸入/輸出)控制器(例如,I/O控制器202)可經組配以將微處理器200與各種裝置耦接,該等裝置諸如鍵盤206、指向/選擇裝置(例如,觸控板、觸控螢幕、滑鼠208等)、客製裝置(例如,裝置215)、USB(Universal Serial Bus;通用串列匯流排)埠(未展示)以及印表機埠(未展示)。顯示器配接器(例如,顯示器配接器210)可經組配以將顯示器212(例如,(數個)觸控螢幕監視器、(數個)電漿監視器、(數個)CRT(Cathode Ray Tube;陰極射線管)監視器或(數個)LCD(Liquid Crystal Display;液晶顯示器)監視器等)與微處理器200耦接,而網路控制器/配接器214(例如,乙太網路配接器)可經組配以將微處理器200耦接至上述網路14(例如,網際網路或區域網路)。
[相似性處理程序]
如上且亦至少參考圖3至9所描述,相似性處理程序10(similarity process;SP)可於步驟300獲得檔案,其中檔案包括複數個部分。可由SP 10產生步驟302中複數個部分之第一部分的第一雜湊。可在步驟304將第一部分與複數個部分之第二部分組合。可由SP 10產生步驟306中具有複數個部分之第二部分的第一部分之第二雜湊,其中第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與檔案之功能及第二檔案之功能的功能性相似性之第二等級。
如上所述,傳統的檔案雜湊演算法可經設計以將選定檔案之位元加總成獨特數字,該數字可表示檔案內容。當今存在許多此類型之演算法,且該等演算法針對相同檔案內容所產生之結果可為確定性的。通常,除非檔案之一或複數個位元亦改變,否則所得雜湊摘要不改變。因此,此方法可用於確保例如自從上次使用或傳輸檔案內容後,該檔案內容未經改變,以用於去除重覆(deduplication)等。
雖然傳統的檔案雜湊演算法可用於持續追蹤對檔案之改變,但傳統的檔案雜湊演算法可能不可用於識別相似(但不同的)檔案且/或將其分組在一起。在一些實行方案中,可特別創建此等種類之演算法以允許檔案內容變化(例如,其中兩個或兩個以上檔案之檔案內容不同,但產生相同雜湊)。如以下將更詳細地討論,檔案可圍繞其分組在一起之主要特徵可為該等檔案之功能。
在一些實行方案中,相似性處理程序(SP)10可在步驟300獲得檔案,其中檔案包括複數個部分。例如,且至少參考圖4,SP處理程序10可自資料儲存器、本地儲存裝置或以其他方式在步驟300獲得檔案(例如,檔案400)。如上所述,檔案可圍繞其分組在一起之主要特徵可為該等檔案之功能。在一些實行方案中,功能可被廣泛定義為可執行檔案(例如,檔案400)之執行其操作所需要的一或複數個
特徵之集合。此可包括但不限於應用程式所使用之該組功能、應用程式所提供之該組功能、功能自身與其關係、通用檔案標頭資訊及檔案內容佈局。僅出於示例性目的展示用於檔案400之示例性特徵402。將瞭解,可在不脫離本公開之範疇的情況下使用各種其他特徵、欄位等。
在一些實行方案中,可由SP 10的步驟302產生複數個部分之第一部分的第一雜湊。例如,檔案400可包括複數個部分,該等部分可表示例如欄位及彼等欄位(或其他特徵402)內之內容。例如,第一部分可包括以下特徵:例如,機器欄位、特性欄位、進入點位址、子系統欄位、匯出表內容、匯入表內容、延遲匯入表內容、TLS(Transport Layer Security;傳送層保全)表內容及結束。在實例中,SP 10可在步驟302產生第一部分之雜湊。在一些實行方案中,可使用功能性雜湊演算法來產生第一雜湊。在一些實行方案中,SP 10所使用之功能性檔案雜湊演算法可經設計以選擇性地遍歷可執行檔案(或其他檔案類型),且收集關於例如該等檔案之標頭、內容佈局及代碼之資訊,以便創建獨特的資料模型,SP 10可藉由該資料模型將特徵自複雜結構轉換成雜湊摘要。在一些實行方案中,可由SP 10基於選定特徵類型來預先處理此模型內之資料。在一些實行方案中,此預先處理可針對特徵以相同方式進行,此舉可確保即使檔案之間存在一些差異(例如,特徵排序或某些數值/內容的輕微變化等),仍可將相似檔案分組在一起。
在一些實行方案中,由於此等種類之演算法的性質,可能必須針對每一支援的可執行格式類型來明確定義演算法。此可經由與SP 10相關聯之使用者介面來完成。由於進行雜湊之方式,可能無法保證在不同可執行格式之間將不存在任何衝突。將瞭解,雖然本公開涉及具有功能性檔案雜湊演算法之可攜式可執行檔案格式,但可在不脫離本公開之範疇的情況下使用其他類型之檔案(例如,可執行檔案格式或其他格式)及/或其他類型之雜湊演算法。在一些實行方案中,無論可執行檔案格式如何,可由SP 10實行功能性檔案雜湊之方法論可保持不變。
在一些實行方案中,由SP 10將資料準備且分離成功能性群組可實現由必要精度或由所要特徵來創建雜湊的靈活性。例如,不同檔案之間的功能性相似性之等級或精度等級通常可被定義為最小特徵集,當該最小特徵集由SP 10雜湊在一起時可產生不同檔案所共用的確定性結果。在一些實行方案中,複數個部分之每一部分可包括檔案之不同功能性檔案特徵;然而,在一些實行方案中,為幫助確保可定義許多精度等級,下一精度等級可始終包括前一精度等級之全部內容。例如,在一些實行方案中,可由SP 10的步驟304將第一部分與複數個部分之第二部分組合。例如,如圖4所示,第一部分(例如,機器欄位、特性欄位、進入點位址、子系統欄位、匯出表內容、匯入表內容、延
遲匯入表內容、TLS表內容及結束)可與檔案400之第二部分(例如,進入點代碼、匯出表代碼、TLS回呼代碼及檔案佈局資訊)在步驟304組合。因此,在實例中,當在步驟304組合時,結果為第一部分(例如,機器欄位、特性欄位、進入點位址、子系統欄位、匯出表內容、匯入表內容、延遲匯入表內容、TLS表內容及結束)加上額外的第二部分(例如,進入點代碼、匯出表代碼、TLS回呼代碼及檔案佈局資訊)之全部內容。
在一些實行方案中,可由SP 10的步驟306產生具有複數個部分之第二部分的第一部分之第二雜湊。因此,在實例中,SP 10可在步驟306產生(例如,機器欄位、特性欄位、進入點位址、進入點代碼、子系統欄位、匯出表內容、匯出表代碼、匯入表內容、延遲匯入表內容、TLS表內容、TLS回呼代碼、檔案佈局資訊及結束)之雜湊。如上所述,檔案之不同功能性檔案特徵可包括以下各項中之一或多者:檔案所使用之第一組功能、檔案所提供之第二組功能、與第一組功能及第二組功能中之至少一者的關係、檔案之檔案標頭資訊,以及檔案之檔案內容佈局。
在一些實行方案中,第一雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中第二雜湊可指示與檔案之功能及第二檔案之功能的功能性相似性之第二等級。例如,此可將從傳統檔案角度來看不同的
檔案放入從功能性檔案雜湊角度來看相同的群組中,其中不同精度等級可使更細的粒度進入功能性檔案分組。因此,最低精度雜湊(例如,具有最少數目個雜湊特徵的第一雜湊)可使用用於資料集之相同特徵的相同功能性雜湊演算法,在由SP 10創建的其他檔案雜湊之選定資料集內提供最多結果。在圖4中之第一等級特徵雜湊清單404處展示用於最低精度雜湊之特徵的實例。在圖4中之第二等級特徵雜湊清單406處展示用於下一等級精度雜湊之特徵的實例。雖然增加精度可減少被判定為彼此相似之檔案的數目,但彼等檔案的個別功能性相似性等級可增加。此情況之實例可自圖5看出,圖5使用功能性相似性之四個不同等級(例如,PE01、PE02、PE03及PE04)來例示示例性相似性圖500。將瞭解,可在不脫離本公開之範疇的情況下使用任何數目個等級。
較低精度等級及較高精度等級兩者都可用於檔案分析。任何精度等級之性質可被聲明為對於外部邏輯足夠,該外部邏輯尤其可基於此雜湊來執行檔案分類。在一些實行方案中,僅當匹配用於該分類之準則集時,SP 10才可將分類指派至功能性群組。可在功能性檔案相似性之範疇外設定(經由SP 10)此準則。用此等種類之分類進行的實驗可展示,若用於該種類之分類的準則係嚴格的,則可甚至使用最低精度等級來完成分類。此可限制分類僅限於SP 10可能已知之群組以僅牽制(contain)大量惡意檔案。
在一些實行方案中,可攜式可執行檔案格式可為主要以Microsoft® Windows®作業系統為中心的檔案格式。在實例中,該檔案格式之結構及內容可為該平台及編譯的可執行檔案之功能所特有的。在一些實行方案中,如上所述,出於創建功能性檔案雜湊之目的,在此檔案格式內所觀察到的各種功能性特徵可包括,例如,標頭常數、匯入功能、匯出功能、TLS回呼、資料表佈局、選定的進入點組譯代碼以及具有其性質之功能性呼叫圖。將理解,在不脫離本公開之範疇的情況下,其他作業系統可根據在適當檔案格式情況下所觀察到的它們的關鍵功能性特徵來使用。在一些實行方案中,與特徵自身一起,它們的剖析及資料準備對於創建上述功能性雜湊可為關鍵的。用於此檔案格式之準備可包括,例如,數字捨入、表資料合併、字串排序、佈局最佳化、基準正規化、碼分析、死代碼及垃圾代碼消除以及其他準備。
如以下將更詳細地討論,可使用兩個以上等級之功能性相似性分組。例如,可使用四個功能性相似性群組。在一些實行方案中,功能性相似性之第一等級可為25%,功能性相似性之第二等級可為50%,功能性相似性之第三等級可為75%以及功能性相似性之第四等級可為100%。在一些實行方案中,取決於精度等級,列出的特徵中之一或多者可用以產生上述功能性檔案雜湊。如上所述,用於可
攜式執行檔案格式之最佳精度等級的數目可為四個。在實例中,此等精度等級中之每一者可表示功能性相似性的25%的增量。功能性相似性群組之名稱在實例中為:PE01(25%)、PE02(50%)、PE03(75%)及PE04(100%)。功能性檔案雜湊字串在此示例性且非限制性格式中可表示為精度等級群組及其內容雜湊:pe0x-hash_of_the_group_content,其中x從0變至4。將理解,在不脫離本公開之範疇的情況下,亦可使用更多或更少之精度等級,以及增加的功能性相似性之其他間隔。如上所述,由SP 10應用於資料檔案之選定的雜湊演算法(SHA,Selected Hashing Algorithm)可改變,然而SHA-1可具有有益的速度及長度性質。
在一些實行方案中,可使用功能性雜湊演算法來產生第二雜湊。在一些實行方案中,用於可攜式可執行格式之第二精度等級(例如,功能性相似性之第二等級)可由以下由SP 10執行之示例性可攜式可執行檔案格式剖析及資料準備動作組成。
可由SP 10擷取且雜湊可攜式可執行機器欄位。
可由SP 10擷取可攜式可執行(pe,Portable executable)標頭特性欄位。在一些實行方案中,僅可使用以下位元,該等位元之值可由可攜式可執行格式規範針對該欄位來定
義,該等位元係。
pe::image_file_executable_image_k
pe::image_file_system_k
pe::image_file_dll_k
可由SP 10擷取進入點之可攜式可執行位址。在一些實行方案中,由SP 10將該位址之值可捨位至最接近頁面且進行雜湊。如以下將更詳細地描述,亦可在此步驟中由SP 10雜湊原始進入點之組譯內容。
可由SP 10擷取且雜湊可攜式可執行子系統欄位。
可由SP 10剖析可攜式可執行匯出表且雜湊其內容。在一些實行方案中,匯出的功能可按字母順序排序,且使用與進入點相同的程序來雜湊其代碼。在一些實行方案中,若資料表含有無效項目,則可由SP 10雜湊有效項目且將資料表索引之值添加至雜湊位元串流。
可由SP 10剖析可攜式可執行匯入表且將其內容排入佇列以用於雜湊。匯入表資訊可由SP 10按字母順序排序。可使用資料去除重覆,以使得具有其功能的僅一個程
式館被註冊以用於雜湊。在一些實行方案中,若資料表含有無效項目,則可由SP 10雜湊有效項目且將資料表索引之值添加至雜湊位元串流。
可由SP 10剖析可攜式可執行匯入表且將其內容排入佇列以用於雜湊。可由SP 10將延遲匯入表資訊與匯入表資料合併。可使用資料去除重覆,以使得具有其功能的僅一個程式館被註冊以用於雜湊。在一些實行方案中,若資料表含有無效項目,則可由SP 10雜湊有效項目且將資料表索引之值添加至雜湊位元串流。
可由SP 10剖析可攜式可執行TLS表,且可將其回呼位址轉換為相對虛擬位址、進行捨位且進行雜湊。可使用與進入點及匯出功能相同的程序來雜湊回呼代碼。在一些實行方案中,若資料表含有無效項目,則可由SP 10雜湊有效項目且將資料表索引之值添加至雜湊位元串流。
在一些實行方案中,可分析可攜式可執行檔案之至少一部分(或整體),且可使用其資料表位置來創建區域資訊,該區域資訊可由SP 10正規化且雜湊。在圖6中展示此處理程序之示例性視覺表示600。
藉由由SP 10將合併的匯入資訊添加至雜湊位元串流,可結束功能性雜湊。
如上所述及圖4所展示,第一精度等級與第二精度等級之間的差異由欄位及彼等欄位內之內容來表示,該內容由第一等級特徵雜湊清單404第二等級特徵雜湊清單406進行雜湊、標注。將瞭解,更多或更少的欄位可在日後添加至雜湊/自雜湊移除,以提高/降低由功能性相似性雜湊等級提供的精度。
在一些實行方案中,可由SP 10針對所有可攜式可執行格式進入點執行基本代碼分析。彼等進入點可由例如進入點位址、匯出的功能及TLS回呼所覆蓋。可由SP 10分析且使用此等功能所表示之代碼以取得資料,該資料之雜湊更新功能性檔案摘要。
在一些實行方案中,因為可攜式可執行檔案格式可支援許多不同處理器架構,所以可單獨地開發用於該等處理器架構中之每一者的代碼分析器。一般分析方法可能針對所有架構係相同的,但圖7中所展示之示例性且非限制性虛擬代碼700可指代Intel®處理器架構。
在一些實行方案中,由SP 10執行的代碼分析可為線性掃描分解操作,該操作追蹤所分析的位址,且跟隨非條件性代碼分支,直至已發現終止條件。可能被認為是終止條件之一些示例性條件可包括,例如,之前已見到將要分
析之位址(防止迴圈),分支條件為條件性的或最終的(自功能返回),所分析的運算碼的數目達到預定義之最大值(限制分析深度)。
在一些實行方案中,可由SP 10使用除了非操作指令外的所有指令來更新功能性檔案摘要。然而,在一些實行方案中,可能不使用全部指令來更新摘要。例如,可使用的部分可為運算碼類型及所有運算元類型。此可指示,使用表示全部指令之整體而非組成指令之位元組來更新摘要。在一些實行方案中,除非指令首碼對於指令操作很重要,否則可忽略指令首碼。
如上所述,可由SP 10產生功能性相似性之各種其他等級。在一些實行方案中,此可使用與產生上述功能性相似性之較低等級(例如,第一等級及第二等級)的技術相似的技術來完成。例如,可由SP 10在步驟308將第一部分與複數個部分之第二部分組合,且與複數個部分之第三部分組合。複數個部分之第三部分可包括額外特徵,該等額外特徵在產生第一功能性雜湊及第二功能性雜湊時未包括在內。可由SP 10在步驟310產生具有複數個部分之第二部分以及具有複數個部分之第三部分的第一部分之第三雜湊,其中第三雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第三等級。因此,在實例中,可將第一部分之特徵、第二部分之特徵及第三部分之特徵組合,
然後對其進行雜湊。
如上所述,可由SP 10產生功能性相似性之各種其他等級。在一些實行方案中,此可使用與產生上述功能性相似性之較低等級(例如,第一等級、第二等級及第三等級)的技術相似的技術來完成。例如,可由SP 10在步驟308將第一部分與複數個部分之第二部分組合,與複數個部分之第三部分組合以及與複數個部分之第四部分組合。複數個部分之第四部分可包括額外特徵,該等額外特徵在產生第一功能性雜湊、第二功能性雜湊及第三功能性雜湊時未包括在內。可由SP 10在步驟314產生具有複數個部分之第二部分、具有複數個部分之第三部分以及具有複數個部分之第四部分的第一部分之第四雜湊,其中第四雜湊可指示檔案之功能與第二檔案之功能之間的功能性相似性之第四等級。因此,在實例中,可將第一部分之特徵、第二部分之特徵、第三部分之特徵及第四部分之特徵組合,然後對其進行雜湊。
在一些實行方案中,用於可攜式可執行格式之第四精度等級可取決於由SP 10對整個應用程式之代碼流分析。例如,在準備步驟中,可由SP 10偵測基本功能塊且將其組織成功能。可由SP 10執行用於代碼流資料之以下示例性功能性檔案雜湊準備。
可由SP 10單獨雜湊基本功能塊。可使用與組譯代碼分析區段中所描述之指令雜湊原理相同的指令雜湊原理。在一些實行方案中,可能不使用此等雜湊來更新功能性檔案摘要。
功能內的基本功能塊可由SP 10按該等基本功能塊之摘要值進行組織及排序。附加至每一塊,基本塊關係之清單可由SP 10提供。此等關係可由SP 10在基本塊內編號,且可與代碼所在之位址無關。
功能可由SP 10按該等功能之摘要值進行組織及排序。功能摘要值可由SP 10根據基本塊雜湊之摘要來計算。附加至每一功能,功能關係之清單可由SP 10提供。此等關係可由SP 10在應用程式內編號,且可與代碼所在之位址無關。
在一些實行方案中,產生每一雜湊之順序可為相同的。例如,當在步驟306產生第二雜湊時,可按預處理順序(例如,機器欄位、特性欄位、進入點位址、子系統欄位、匯出表內容、匯入表內容、延遲匯入表內容、TLS表內容、結束、進入點代碼、匯出表代碼、TLS回呼代碼及檔案佈局資訊)來雜湊選定功能。在一些實行方案中,一旦針對功能檔案雜湊準備了資料,由SP 10執行之操作可為按預處理順序之所有選定功能的摘要。在一些實行方案中,功能
選擇可為精度等級三與四之間的關鍵差異。例如,第三精度等級可基於諸如功能重要性之準則來功能過濾,而第四精度等級可能不做任何種類之功能過濾,因為第四精度等級可覆蓋整個檔案及其所有功能性特徵。
在一些實行方案中,檔案編譯可為自原始的原始代碼到二進位可攜式可執行物件之轉譯,在請求載入檔案或執行檔案後,可由作業系統重新解譯該二進位可攜式可執行物件。任何數目的程式設計語言可以用於Windows®作業系統之可攜式可執行檔案格式來產生其輸出。在一些實行方案中,程式設計語言自身可影響由SP 10匯入之功能、代碼自身及檔案之佈局。此等中之每一者可影響功能性檔案雜湊。因而,在一些實行方案中,若使用兩個不同編譯器,或甚至不同編譯器選項來編譯原始的原始代碼,則針對此等檔案之所得功能性雜湊可能不同。在一些實行方案中,最低精度等級(例如,功能性相似性之第一等級)可最好地緩解此問題,而不完全降低其效果。
可在使用惡意軟體之實例中描述SP 10之有效性。例如,僅出於示例性目的,假定在約7.75M個獨特的惡意軟體二進位數之樣本集上測試上述處理程序,針對該等二進位數,至少一個防毒供應商聲稱檔案為Zeus惡意軟體家族之一部分。在SP 10使用上述演算法處理樣本後,SP 10可能能夠在最低精度點處區別約475k個獨特雜湊。此可有
效地將工作惡意軟體集大小降低約93%。
相同惡意軟體家族之成員的樣本獨特性之此降低可為值得注意的,但總降低數目可能看起來比可能預期的數目更好。為幫助理解雜湊演算法之有效性為何如此高,可執行樣本資料之分析。在實例中,且至少參考圖8,展示了示例性曲線圖800。起始點可為得出最佳匹配結果的最好雜湊。曲線圖800可展示以最低精度映射至單一雜湊的獨特二進位數之數目。
在一些實行方案中,最佳匹配雜湊檔案樣本可展示,最好匹配可能不處於任何特定惡意軟體家族自身上,而是可處於可用以遮掩真實攻擊之打包封套上。所討論的打包層可能並非是諸如UPX(the ultimate packer for executables;終極可執行檔案打包器)的普通現貨打包器,而是可為專門開發來隱藏惡意軟體的存在之客製打包解決方案。在實例中,因為打包可隱藏偵測及其惡意軟體家族分組,所以審查防毒解決方案以看出它們正如何將最佳匹配分類。在實例中,且至少參考圖9,展示了示例性圖900。圖900可展示用於最好雜湊之100k檔案的正規化威脅名稱。
在一些實行方案中,將檔案解開可展示最佳匹配可能使用複數個打包層。在實例中,毀壞的檔案及錯誤打包的
檔案之數目可能較低,從而使SP 10能夠成功解開樣本之95%。追蹤甚至跨越複數個打包層的最低雜湊可仍然將所有檔案保存在相同功能性雜湊群組內。
在實例中,甚至最低精度等級處之雜湊可展示與允許清單檔案幾乎沒有或沒有衝突,並且因此可安全地應用於與SP 10相關聯之自動雜湊雲端分類。在實例中,SP 10可經由其格式簽章及其最低等級雜湊將客製打包器列入封鎖清單,從而使SP 10能夠偵測及分組使用該客製打包器之複數個惡意軟體家族。
本文中所使用之術語僅為了描述特定實行方案,且不意欲限制本公開。如本文所使用,單數形式「一」、及「該」意欲同樣包括複數形式,除非上下文另外清楚地指示。將進一步理解,術語「包含(comprises及/或comprising)」當用在本說明書中時,規定存在陳述的特徵、整數、步驟(不一定按特定順序)、操作、元件及/或組件,但不排除存在或添加一或複數個其他特徵、整數、步驟(不一定按特定順序)、操作、元件、組件及/或其群組。
以下申請專利範圍中之(例如,所有手段或步驟加上功能元件的)對應結構、材料、動作及等效物意欲包括用於執行與具體主張的其他所主張元件組合之功能的任何結構、材料或動作。出於例示及描述目的已給出本公開之描述,
但該描述並不意欲為詳盡的或將本公開限制於所揭示形式。在不脫離本公開之範疇及精神的情況下,許多修改、變化、替換及其任何組合將對一般熟習此項技術者顯而易見。選擇且描述(數個)實行方案,以便解釋本公開之原理及實際應用,且使其他一般熟習此項技術者能夠理解具有各種修改及/或(數個)實行方案之任何組合的各種(數個)實行方案之本公開適合於所預期的特定用途。
已因此詳細地且參考本公開之(數個)實行方案來描述本申請案之公開,將顯而易見的是,在不脫離隨附申請專利範圍中所定義的本公開之範疇的情況下,修改、變化及(數個)實行方案之任何組合(包括任何修改、變化、替換及其組合)係可能的。
10‧‧‧相似性處理程序/SP處理程序/SP
12‧‧‧電腦
14‧‧‧網路
16‧‧‧儲存裝置
18‧‧‧次要網路
20‧‧‧防毒應用程式
22、24、26、28‧‧‧用戶端應用程式
30、32、34、36‧‧‧儲存裝置
38、40、42、44‧‧‧用戶端電子裝置
46、48、50、52‧‧‧使用者
54‧‧‧假想連結線
56、60‧‧‧無線通訊通道
58‧‧‧無線存取點/WAP
62‧‧‧蜂巢式網路/橋接器
Claims (24)
- 一種電腦實行方法,包含:由計算裝置獲得檔案,其中前述檔案包括複數個部分;產生前述複數個部分之第一部分的第一雜湊;將前述第一部分與前述複數個部分之第二部分組合;以及產生具有前述複數個部分之前述第二部分的前述第一部分之第二雜湊,其中前述第一雜湊指示前述檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中前述第二雜湊指示與前述檔案之前述功能及前述第二檔案之前述功能的功能性相似性之第二等級。
- 如請求項1所記載之電腦實行方法,進一步包含:將前述第一部分與前述複數個部分之前述第二部分組合,且與前述複數個部分之第三部分組合;以及產生具有前述複數個部分之前述第二部分以及具有前述複數個部分之前述第三部分的前述第一部分之第三雜湊,其中前述第三雜湊可指示前述檔案之前述功能與前述第二檔案之前述功能之間的功能性相似性之第三等級。
- 如請求項2所記載之電腦實行方法,進一步包含: 將前述第一部分與前述複數個部分之前述第二部分組合,與前述複數個部分之前述第三部分組合以及與前述複數個部分之第四部分組合;以及產生具有前述複數個部分之前述第二部分、具有前述複數個部分之前述第三部分以及具有前述複數個部分之前述第四部分的前述第一部分之第四雜湊,其中前述第四雜湊可指示前述檔案之前述功能與前述第二檔案之前述功能之間的功能性相似性之第四等級。
- 如請求項1所記載之電腦實行方法,其中前述複數個部分之每一部分包括前述檔案之不同功能性檔案特徵。
- 如請求項4所記載之電腦實行方法,其中前述檔案之前述不同功能性檔案特徵包括以下各項中之一或多者:前述檔案所使用之第一組功能、前述檔案所提供之第二組功能、與前述第一組功能及前述第二組功能中之至少一者的關係、前述檔案之檔案標頭資訊以及前述檔案之檔案內容佈局。
- 如請求項3所記載之電腦實行方法,其中功能性相似性之前述第一等級為25%,功能性相似性之前述第二等級為50%,功能性相似性之前述第三等級為75%以及功能性相似性之前述第四等級為100%。
- 如請求項1所記載之電腦實行方法,其中使用功能性雜湊演算法來產生前述第一雜湊以及前述第二雜湊。
- 如請求項1所記載之電腦實行方法,其中產生每一雜湊的順序係相同的。
- 一種電腦程式產品,其儲存於電腦可讀儲存媒體上,前述電腦可讀儲存媒體具有複數個指令儲存於其上,當由處理器執行前述複數個指令時,前述複數個指令致使前述處理器執行操作,前述操作包含:獲得檔案,其中前述檔案包括複數個部分;產生前述複數個部分之第一部分的第一雜湊;將前述第一部分與前述複數個部分之第二部分組合;以及產生具有前述複數個部分之前述第二部分的前述第一部分之第二雜湊,其中前述第一雜湊指示前述檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中前述第二雜湊指示與前述檔案之前述功能及前述第二檔案之前述功能的功能性相似性之第二等級。
- 如請求項9所記載之電腦程式產品,進一步包含:將前述第一部分與前述複數個部分之前述第二部分組合且與前述複數個部分之第三部分組合;以及產生具有前述複數個部分之前述第二部分以及具有前述複數個部分之前述第三部分的前述第一部分之第三雜湊,其中前述第三雜湊可指示前述檔案之前述功能與前述第二檔案之前述功能之間的功能性相似性之第三等級。
- 如請求項10所記載之電腦程式產品,進一步包含:將前述第一部分與前述複數個部分之前述第二部分組合,與前述複數個部分之前述第三部分組合且與前述複數個部分之一第四部分組合;以及產生具有前述複數個部分之前述第二部分、具有前述複數個部分之前述第三部分以及具有前述複數個部分之前述第四部分的前述第一部分之第四雜湊,其中前述第四雜湊可指示前述檔案之前述功能與前述第二檔案之前述功能之間的功能性相似性之第四等級。
- 如請求項9所記載之電腦程式產品,其中前述複數個部分之每一部分包括前述檔案之不同功能性檔案特徵。
- 如請求項12所記載之電腦程式產品,其中前述檔案之前述不同功能性檔案特徵包括以下各項中之一或多者:前述檔案所使用之第一組功能、前述檔案所提供之第二組功能、與前述第一組功能及前述第二組功能中至少一者的關係、前述檔案之檔案標頭資訊以及前述檔案之檔案內容佈局。
- 如請求項11所記載之電腦程式產品,其中功能性相似性之前述第一等級為25%,功能性相似性之前述第二等級為50%,功能性相似性之前述第三等級為75%以及功能性相似性之前述第四等級為100%。
- 如請求項9所記載之電腦程式產品,其中使用功能性雜湊演算法來產生前述第一雜湊及前述第二雜湊。
- 如請求項9所記載之電腦程式產品,其中產生每一雜湊之順序係相同的。
- 一種計算系統,包括經組配以執行操作的處理器及記憶體,前述操作包含:獲得檔案,其中前述檔案包括複數個部分;產生前述複數個部分之第一部分的第一雜湊;將前述第一部分與前述複數個部分之第二部分組合;以及產生具有前述複數個部分之前述第二部分的前述第一部分之第二雜湊,其中前述第一雜湊指示前述檔案之功能與第二檔案之功能之間的功能性相似性之第一等級,其中前述第二雜湊指示與前述檔案之前述功能及前述第二檔案之前述功能的功能性相似性之第二等級。
- 如請求項17所記載之計算系統,進一步包含:將前述第一部分與前述複數個部分之前述第二部分組合且與前述複數個部分之第三部分組合;以及產生具有前述複數個部分之前述第二部分以及具有前述複數個部分之前述第三部分的前述第一部分之第三雜湊,其中前述第三雜湊可指示前述檔案之前述功能與前述第二檔案之前述功能之間的功能性相似性之第三等級。
- 如請求項18所記載之計算系統,進一步包含:將前述第一部分與前述複數個部分之前述第二部分組合,與前述複數個部分之前述第三部分組合以及與前述複數個部分之一第四部分組合;以及產生具有前述複數個部分之前述第二部分、具有前述複數個部分之前述第三部分以及具有前述複數個部分之前述第四部分的前述第一部分之第四雜湊,其中前述第四雜湊可指示前述檔案之前述功能與前述第二檔案之前述功能之間的功能性相似性之第四等級。
- 如請求項17所記載之計算系統,其中前述複數個部分之每一部分包括前述檔案之不同功能性檔案特徵。
- 如請求項20所記載之計算系統,其中前述檔案之前述不同功能性檔案特徵包括以下各項中之一或多者:前述檔案所使用之第一組功能、前述檔案所提供之第二組功能、與前述第一組功能及前述第二組功能中之至少一者的關係、前述檔案之檔案標頭資訊以及前述檔案之檔案內容佈局。
- 如請求項19所記載之計算系統,其中功能性相似性之前述第一等級為25%,功能性相似性之前述第二等級為50%,功能性相似性之前述第三等級為75%以及功能性相似性之前述第四等級為100%。
- 如請求項17所記載之計算系統,其中使用功能性雜湊演算法來產生前述第一雜湊以及前述第二雜湊。
- 如請求項17所記載之計算系統,其中產生每一雜湊之順序係相同的。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462088119P | 2014-12-05 | 2014-12-05 | |
| US62/088,119 | 2014-12-05 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201633188A TW201633188A (zh) | 2016-09-16 |
| TWI698755B true TWI698755B (zh) | 2020-07-11 |
Family
ID=55135183
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104140908A TWI698755B (zh) | 2014-12-05 | 2015-12-04 | 用於快速且可擴充的功能性檔案相互關聯之系統及方法 |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US10218723B2 (zh) |
| EP (1) | EP3227797B1 (zh) |
| CA (1) | CA2969371C (zh) |
| ES (1) | ES2865149T3 (zh) |
| HR (1) | HRP20210646T1 (zh) |
| HU (1) | HUE053847T2 (zh) |
| PT (1) | PT3227797T (zh) |
| TW (1) | TWI698755B (zh) |
| WO (1) | WO2016087662A1 (zh) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11126594B2 (en) | 2018-02-09 | 2021-09-21 | Exagrid Systems, Inc. | Delta compression |
| CN109766084B (zh) * | 2018-12-28 | 2021-04-23 | 百富计算机技术(深圳)有限公司 | 支付应用的定制开发方法、装置、计算机设备和存储介质 |
| US11340894B2 (en) | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
| US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
| US11386233B2 (en) | 2019-04-30 | 2022-07-12 | JFrog, Ltd. | Data bundle generation and deployment |
| US10999314B2 (en) | 2019-07-19 | 2021-05-04 | JFrog Ltd. | Software release tracking and logging |
| US10972289B2 (en) | 2019-07-19 | 2021-04-06 | JFrog, Ltd. | Software release verification |
| US11068595B1 (en) * | 2019-11-04 | 2021-07-20 | Trend Micro Incorporated | Generation of file digests for cybersecurity applications |
| US11695829B2 (en) | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
| US11860680B2 (en) | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
| US12536008B2 (en) | 2021-10-29 | 2026-01-27 | JFrog Ltd. | Managing a federated software repository across multiple devices |
| US12061889B2 (en) | 2021-10-29 | 2024-08-13 | JFrog Ltd. | Software release distribution across a hierarchical network |
| CN114443131B (zh) * | 2021-12-20 | 2025-03-21 | 奇安信科技集团股份有限公司 | 程序运行环境确认方法、装置、电子设备、介质及产品 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1986120A1 (en) * | 2007-04-23 | 2008-10-29 | Secure Computing Corporation | Systems, apparatus, and methods for detecting malware |
| US8021625B2 (en) * | 2004-01-28 | 2011-09-20 | Dnt Scientific Research, Llc | Interrupted, gravity-promoted, diffused flow chromatography strip testing device and method |
| US8302193B1 (en) * | 2008-05-30 | 2012-10-30 | Symantec Corporation | Methods and systems for scanning files for malware |
| WO2014032507A1 (en) * | 2012-09-03 | 2014-03-06 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for clustering portable executable files |
| TW201413589A (zh) * | 2004-12-17 | 2014-04-01 | Microsoft Corp | 可延伸檔案系統 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8621625B1 (en) | 2008-12-23 | 2013-12-31 | Symantec Corporation | Methods and systems for detecting infected files |
| US9202050B1 (en) * | 2012-12-14 | 2015-12-01 | Symantec Corporation | Systems and methods for detecting malicious files |
| US20170193230A1 (en) * | 2015-05-03 | 2017-07-06 | Microsoft Technology Licensing, Llc | Representing and comparing files based on segmented similarity |
-
2015
- 2015-12-03 US US14/958,168 patent/US10218723B2/en active Active
- 2015-12-04 HR HRP20210646TT patent/HRP20210646T1/hr unknown
- 2015-12-04 HU HUE15823595A patent/HUE053847T2/hu unknown
- 2015-12-04 PT PT158235952T patent/PT3227797T/pt unknown
- 2015-12-04 WO PCT/EP2015/078716 patent/WO2016087662A1/en not_active Ceased
- 2015-12-04 ES ES15823595T patent/ES2865149T3/es active Active
- 2015-12-04 CA CA2969371A patent/CA2969371C/en active Active
- 2015-12-04 TW TW104140908A patent/TWI698755B/zh active
- 2015-12-04 EP EP15823595.2A patent/EP3227797B1/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8021625B2 (en) * | 2004-01-28 | 2011-09-20 | Dnt Scientific Research, Llc | Interrupted, gravity-promoted, diffused flow chromatography strip testing device and method |
| TW201413589A (zh) * | 2004-12-17 | 2014-04-01 | Microsoft Corp | 可延伸檔案系統 |
| EP1986120A1 (en) * | 2007-04-23 | 2008-10-29 | Secure Computing Corporation | Systems, apparatus, and methods for detecting malware |
| US8302193B1 (en) * | 2008-05-30 | 2012-10-30 | Symantec Corporation | Methods and systems for scanning files for malware |
| WO2014032507A1 (en) * | 2012-09-03 | 2014-03-06 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for clustering portable executable files |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2969371C (en) | 2021-06-22 |
| HRP20210646T1 (hr) | 2021-05-28 |
| US20160164900A1 (en) | 2016-06-09 |
| US10218723B2 (en) | 2019-02-26 |
| HUE053847T2 (hu) | 2021-07-28 |
| CA2969371A1 (en) | 2016-06-09 |
| WO2016087662A1 (en) | 2016-06-09 |
| ES2865149T3 (es) | 2021-10-15 |
| PT3227797T (pt) | 2021-05-04 |
| EP3227797A1 (en) | 2017-10-11 |
| EP3227797B1 (en) | 2021-01-27 |
| TW201633188A (zh) | 2016-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI698755B (zh) | 用於快速且可擴充的功能性檔案相互關聯之系統及方法 | |
| US11481494B2 (en) | System and method for identifying and comparing code by semantic abstractions | |
| EP3828746A1 (en) | Systems and methods for triaging software vulnerabilities | |
| US10043009B2 (en) | Technologies for software basic block similarity analysis | |
| US8843912B2 (en) | Optimization of an application to reduce local memory usage | |
| CN104428750A (zh) | 代码片段的泛化和/或特化 | |
| US11023654B2 (en) | Analyzing document content and generating an appendix | |
| JP2015118609A (ja) | 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム | |
| US20140245068A1 (en) | Using linked data to determine package quality | |
| US20130159346A1 (en) | Combinatorial document matching | |
| US20200372005A1 (en) | Space- efficient change journal for a storage system | |
| CN116880847A (zh) | 基于开源项目的溯源方法、装置电子设备及存储介质 | |
| US11880391B2 (en) | Clustering software codes in scalable manner | |
| US9575750B2 (en) | Generic annotation seeker | |
| US9110893B2 (en) | Combining problem and solution artifacts | |
| US20140207729A1 (en) | Rapid Provisioning of Information for Business Analytics | |
| CN109597933A (zh) | 医疗关键词精确搜索的方法、系统、设备及存储介质 | |
| US9471715B2 (en) | Accelerated regular expression evaluation using positional information | |
| US9652359B1 (en) | Annotation natural keys for source code analysis | |
| CN108875374A (zh) | 基于文档节点类型的恶意pdf检测方法及装置 | |
| RU2778979C1 (ru) | Способ и система кластеризации исполняемых файлов | |
| TWI903215B (zh) | 惡意程式碼偵測之電腦實施方法、系統及電腦程式產品 | |
| CN119885211A (zh) | 数据加密、解密的方法及装置、电子设备和存储介质 | |
| Song et al. | Multimodal Cancer Modeling in the Age of Foundation Model Embeddings | |
| US9208151B2 (en) | Method, program, and system for specification verification |