TWI461953B - 運算環境安全方法和電子運算系統 - Google Patents
運算環境安全方法和電子運算系統 Download PDFInfo
- Publication number
- TWI461953B TWI461953B TW101125177A TW101125177A TWI461953B TW I461953 B TWI461953 B TW I461953B TW 101125177 A TW101125177 A TW 101125177A TW 101125177 A TW101125177 A TW 101125177A TW I461953 B TWI461953 B TW I461953B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- application package
- tested
- similarity
- application
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Description
本揭露是有關於一種運算環境安全方法和電子運算系統。
在智慧型手機上,軟體安全的防護除了應用傳統個人電腦上的機制外,因為有集中的軟體市集例如安卓(Android)平台的“Google Play”,因此在智慧型手機上的應用軟體,都會利用程式碼簽章(Code Signing)的機制來做安全防護。在智慧型手機上執行的軟體,需要有簽章過才能執行,如此可以確保應用軟體沒被修改,也可證明此軟體的開發者有經過軟體市集的驗證。另外智慧型手機上的軟體並不像個人電腦可以自由取得安裝和散布,軟體的安裝過程和安裝後都有保護,無法任意複製並傳播出去。
雖然在智慧型手機上的保護比個人電腦上嚴謹,但是透過系統漏洞,取得手機root或JB後,破解者就有辦法,取得受保護的應用軟體。然後,破解者將取得的應用軟體加入惡意程式碼並適當修改後,產生新的程式碼簽章再重新包裝。此種破解應用軟體簽章,進行修改或加入惡意程式碼再重新包裝後散佈的動作,稱為「重新包裝」(Repackage)。此等重新包裝的程式被再上架到軟體市集,或放到盜版軟體網站或論壇上,讓不知情的使用者下載安裝,而達到惡意程式散布的目的。由於破解者直接修改或植入惡意軟體後,再行重簽即可,故重新包裝的情況在安
卓(Android)平台上屢見不鮮。而相關報告指出,2011年下半年,在Google Android平台上的惡意軟體,月增長率平均有60%,其中大部份均為重新包裝產生至各市集或網路論壇散佈,可見在如Android平台的惡意軟體防治成為運算環境安全所關注的議題。
本揭露有關於一種運算環境安全方法和電子運算系統。
根據一實施例,提出一種運算環境安全方法,包括:(a)藉由一電子運算系統,解開一待測之應用程式包以取得至少一資料組,其中各該至少一資料組是為該應用程式包之複數個方面之一者相關的內容。(b)依據該至少一資料組,估測該待測之應用程式包是否重新包裝程式。(b)包括以下:(c)對於各該至少一資料組,分析該資料組之該對應的方面的相關的內容之特徵關係,並依據該特徵關係產生該資料組對應的特徵資料。(d)依據該至少一資料組的特徵資料及從一資料庫中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,決定該待測之應用程式包是否為一重新包裝之應用程式包。該電子運算系統依據該決定之結果對該待測之應用程式包進行處理。
根據一實施例,一種電子運算系統,包括:一通訊單元以及一控制單元。控制單元,藉由該通訊單元,接收一待測之應用程式包,其中該控制單元至少:解開一待測之應用程式包以取得至少一資料組,其中該待測之應用程式
包包括複數個方面相關的內容,各該至少一資料組是為該應用程式包之該些方面之一者相關的內容;對於各該至少一資料組,分析該資料組之該對應的方面的相關的內容之特徵關係,並依據該特徵關係產生該資料組對應的特徵資料;依據該至少一資料組的特徵資料及從一資料庫單元中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,決定該待測之應用程式包是否為一重新包裝之應用程式包。該電子運算系統依據該決定之結果對該待測之應用程式包進行處理。
為了對本揭露之上述及其他方面有更佳的瞭解,下文以實施例,並配合所附圖式,作詳細說明如下:
以下提供有關於一種運算環境安全方法和電子運算系統之實施例。
第1圖繪示針對應用程式之上架或安裝時實現運算環境安全之機制的示意圖。如第1圖所示,在以伺服系統10提供軟體下載如應用程式市集之運算環境中,伺服系統10如一獨立伺服器或分散式伺服系統或雲端系統具有一篩選機制11,於應用程式未上架前,藉由篩選機制11以助決定應用程式(例如應用程式1及2)是否可能為重新包裝之應用程式,進而判定應用程式是否為惡意程式如包含惡意碼,從而決定是否拒絕此應用程式上架或允許上架。此外,在取得應用程式下載使用之運算環境中,如應用程式市集或其他網站或來源中可能不具有篩選機制11。為免
在不知情下安裝了惡意程式的風險,藉由在電子裝置20上實現篩選機制21,可於應用程式(例如應用程式3)未安裝以前,產生如篩選機制11的作用,從而決定是否允許或拒絕安裝此應用程式。
駭客與抄襲軟體者,藉由破解或修改他人合法軟體並重新包裝為新的應用程式的方式,統稱重新包裝方式(repackage),散播惡意軟體的與剽竊軟體從而獲利或達成其他不正當意圖。而修改軟體的基本作法,就是在原有程式的基礎之下,***具有修改者或駭客目的的程式碼,因此對原始程式的功能或程式碼的刪除或修改將會非常的少(一般來說是不會更動)。重新包裝方式的情形,例如在Android Market(或稱Google Play)上的亦有出現,因為Android Market上的APK採用Safe Sign的機制(即開發者自行簽章),可對其他部份進行檢驗,但實際上並未加密,因此可以輕易的從一破解的應用程式包(如APK)中移除其原有的簽章(如signed A)並在加入惡意碼後,重新簽署一個新的簽章(如稱為signed B)並因此獲得上架許可,因次傳播速度非常之快。
由上可知對於原有程式及重新包裝的程式之可能在內容上具有相似性,故篩選機制11或21可據此觀點實施以決定一應用程式是否可能為重新包裝之應用程式。如第2圖所示,一應用程式可視作包括複數個方面相關的內容,例如使用者介面方面的相關內容、程式運作方面的相關內容、程式所使用的資源方面的相關內容、或針對其他方面的內容。重新包裝之應用程式,在各個方面的相關內
容的比較上,將會大於或等於原始程式。
此外,一般程式間,通常會有一定比例的相似,如某部份程式碼使用相同的應用程式介面(API)、使用者介面布局(UI Layout)等。但若是重新包裝之應用程式的特性,通常以於原始程式中新增或***欲達成其目的的惡意程式碼達成,故其相關程式代表性參數與原始程式間的關係如:
即原始程式所涵蓋之相關內容(AppO)被重新包裝之應用程式之相關內容(AppR)所包含。故篩選機制11或21之一些實施例對於程式各方面相關的內容的比對,可基於此關係從而決定一應用程式是否為重新包裝。
第3圖繪示運算環境安全方法之一實施例的流程圖。上述之篩選機制11或21可據第3圖之實施例實現於一電子運算系統(如伺服系統或電子裝置)中篩選重新包裝之應用程式。
如步驟S10所示,藉由一電子運算系統,解開一待測之應用程式包(application package)以取得至少一資料組,其中該待測之應用程式包包括複數個方面相關的內容(如第2圖所示意),各該至少一資料組是為該應用程式包之該些方面之一者相關的內容。例如,可實施步驟S10針對使用者介面方面、程式運作方面和程式所使用的資源方面中至少一、二或三方面的相關內容以得出相對應的至少一資料組,以供步驟S20針對所採用的資料組作為步驟20中作分析之用。又例如,步驟S10可利用剖析(parsing)的方
式,取得採用的資料組。
如步驟S20所示,依據該至少一資料組,估測該待測之應用程式包是否重新包裝程式,步驟S20包括步驟S21、S23。
如步驟S21所示,對於各該至少一資料組,分析該資料組之該對應的方面的相關的內容之特徵關係,並依據該特徵關係產生該資料組對應的特徵資料。例如,對於使用者介面方面的相關的內容之資料組而言,針對如使用者介面的布局(user interface layout)之關係或使用者介面中元件的階層關係(hierarchy)作出分析,並量化這些被分析出來的關係據以產生特徵資料如以矩陣或陣列之方式描述,以便於後續的相似度評估步驟S21中使用。有關對應用程式的某方面的相關的內容之資料組的分析處理,將以實施例說明於後。
如步驟S23所示,依據該至少一資料組的特徵資料及從一資料庫中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,決定該待測之應用程式包是否為一重新包裝之應用程式包。電子運算系統可依據步驟S23的決定之結果對待測之應用程式包進行處理。其中另一實施例,決定該待測之應用程式包是否為一重新包裝之應用程式包後,輸出該決定之結果。
在步驟S23中,此資料庫例如包括複數個應用程式包所對應的該些方面相關的特徵資料,例如已知的複數個應用程式對於前述之使用者介面方面相關的特徵資料。在步驟S23中,搜尋結果是從資料庫搜尋與待測之應用程式包
之某一或多個資料組的特徵資料相距一對應距離內之資料庫中已知應用程式的特徵資料,其中對於不同的資料組,可以有不同的對應距離。
故此,從資料庫中取得搜尋結果亦即基於前述關係式1:AppOAppR之觀念,從資料庫中找出可能的已知應用程式並假設為原始程式AppO。假設待測之應用程式之某一資料組的特徵資料以矩陣或向量來表達,例如是V1=[m1,m2,...,mk],其中m1至mk為數值,k為大於等於1的整數。在此資料庫中可以尋找與向量V1在一距離內的向量(可能有一個至多個向量),而尋找到的一或多個向量(可將之視為向量之集合)以Vx代表,可對應到此資料庫中一或多個已知的應用程式包(可視為程式包集合)記作Ax。例如,對某一資料組的特徵資料,對於向量V1與資料庫中的向量Vk之距離(或差異的大小),可以利用數學上各種向量之間的距離(distance)(如歐幾里得距離(Euclidean Distance)及其推廣)或相似度(similarity)的定義來加以運算。
例如,將向量V1與Vs進行餘弦數值之計算相似度(cosine similarity)=(V1*
Vs)/(|V1|*
|Vs|),所計算出的餘弦值即為相似度指數α;α=1時,表示兩向量的相似度高(距離最小),α=0時,表示兩向量的相似度最小(或視為距離最大或不相關)。故此在一實施例中,可以設一對應的距離的範圍值,例若向量V1與Vs之相似度(或距離)於0.9至1之間,即可視為在此對應的距離內,從而在資料庫中找出合符此條件的向量Vs(可能有一或多個)以及其對應的
應用程式包(可能有一或多個)作為搜尋結果。據此搜尋結果,例如找到的程式包Vx的數量或當中距離最小的結果,決定該待測之應用程式包是否為一重新包裝之應用程式包。此外,在其他步驟S23實施例中,亦可針對待測之應用程式之多個資料組的特徵資料,找出搜尋結果,以決定是否為一重新包裝。
在其他實施例中,步驟S23亦可包括如步驟S33及S35。如步驟S33所示,依據該至少一資料組的特徵資料及從一資料庫中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,評估該待測之應用程式包之相似度。而該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度。
如步驟S35所示,依據該待測之應用程式之相似度,決定該待測之應用程式包是否為一重新包裝之應用程式包。電子運算系統可依據步驟S35的決定之結果對待測之應用程式包進行處理。其中另一實施例,決定該待測之應用程式包是否為一重新包裝之應用程式包後,輸出該決定之結果。
例如,第4圖繪示運算環境安全方法應用於提供軟體上架之伺服系統上之一實施例的流程圖。如步驟S110所示,回應於一軟體上架之請求,該伺服系統接收該待測之應用程式包。如步驟S120所示,藉由該伺服系統,進行依據如第3圖中實施例之篩選方法。如步驟S130所示,依據該決定之結果,若該待測之應用程式包被決定為一重
新包裝之應用程式包且為一惡意程式,則如步驟S135所示,該伺服系統拒絕該上架之請求,使該待測之應用程式包不能上架。若否,則如步驟S137所示,該伺服系統例如使待測之應用程式包上架。
又如第5圖繪示運算環境安全方法應用於欲進行軟體安裝之電子裝置之一實施例的流程圖。如步驟S210所示,藉由電子裝置,接收該待測之應用程式包。如步驟S220所示,該電子裝置,回應一軟體安裝程式之請求,在欲安裝該待測之應用程式包之前,進行依據如第3圖中實施例之篩選方法。如步驟S230所示,依據該決定之結果,若該待測之應用程式包被決定為一重新包裝之應用程式包且為一惡意程式,則如步驟S235所示該電子裝置拒絕安裝該待測之應用程式包。若否,則如步驟S237所示,該電子裝置例如可安裝待測之應用程式包。
第6圖是為依據運算環境安全方法之一實施例的軟體架構的方塊圖。運算環境安全系統100包括一前置處理模組110、一分析模組120、一相似度評估模組130、一決定模組140以及一資料庫模組150。前置處理模組110例如實現如第3圖所示的步驟S10。分析模組120用以實現步驟S21。相似度評估模組130例如用以實現步驟S33。決定模組140例如用以實現步驟S35。資料庫模組150例如用以實現步驟S23中所使用的資料庫。
而第6圖之實例示意分析模組120針對應用程式包的三個方面相關的內容作出分析其中的關係,故相對地前置處理模組110及相似度評估模組130亦作因應的實現。例
如前置處理模組110實現剖析方式(parsing)解開應用程式包以取得三個資料組,分別給予分析模組120之三個子模組:使用者介面方面的分析模組121、程式運作方面的分析模組123以及程式使用之資源方面的分析模組125,其中分析模組120中各子模組的執行次序可以是平行方式執行或依各種次序執行。
又例如相似度評估模組130亦作因應的實現,由三個子模組:使用者介面方面的相似度評估模組131、程式運作方面的相似度評估模組133以及程式使用之資源方面的相似度評估模組135,分別接收來自分析模組120之三個子模組所產生的特徵資料。相似度評估模組130之三個子模組分別決定使用者介面方面之相似性元資料、程式運作方面之相似性元資料以及程式使用之資源方面之相似性元資料。而相似度評估模組130基於這些相似性元資料,決定待測之應用程式包之相似度,以讓決定模組140據以決定該待測之應用程式包是否為一重新包裝之應用程式包。其中另一實施例,決定該待測之應用程式包是否為一重新包裝之應用程式包後,輸出該決定之結果。
此外,在一些實施例中,分析模組120中各子模組亦可將所得到的特徵資料上傳至資料庫中進行搜尋;而評估模組130可自資料庫模組150取得對應之搜尋結果。
在其他實施例中,分析模組120亦可實施為針對應用程式包的二個方面相關的內容分析其中的關係,例如包括兩個子模組:使用者介面方面的分析模組121和程式運作方面的分析模組123。
第7圖是為實現運算環境安全方法之實施例之一電子運算系統之基本硬體架構的方塊圖。如第7圖所示,一電子運算系統200,包括一控制單元210、一通訊單元220、一儲存單元230以及一顯示單元240。控制單元210可用以實現如第3圖所的運算環境安全方法之實施例。又一些實施例中,電子運算系統200是為一伺服系統,可實施為一單一的伺服器;或由多台伺服機台組成的一分散式的伺服系統,其中的各單元亦可以實作為一伺服器,如儲存單元230可視為儲存一資料庫並作為資料庫伺服器供步驟S23使用。又或伺服系統是一雲端運算系統,其中各單元可為雲端中的伺服器。又一些實施例中,電子運算系統200可實現一電子裝置,如智慧型裝置如手機、平板電腦或智慧型電視或導航裝置等具有通訊功能之裝置,能下載應用程式並安裝之功能。例如,電子裝置利用通訊單元220可接收應用程式包,或透過一通訊連結(如有線或無線網路連結)從外部的資料庫中取得的搜尋結果。此電子運算系統200亦可視所要實現的產品的設計需求而加上其他裝置。
此外,如第6圖所舉例的軟體架構亦可利用第7圖所示的電子運算系統200實施例,例如控制單元210(如處理器或多台伺服器)實現前置處理模組110、分析模組120、相似度評估模組130、決定模組140,而資料庫模組150以儲存單元230或外部的儲存單元實現(如儲存裝置中的資料庫或外部之一資料庫伺服器)。而通訊單元220(如一伺服器中的通訊電路)用以使前置處理模組110、分析模組120、相似度評估模組130、決定模組140得以與外部的資
料庫連結。
以下舉例說明如第3圖之步驟S21針對應用程式的某方面的相關的內容之資料組的分析處理以及步驟S23之相似度評估的實施例。而如第6圖之分析模組120及相似度評估模組130亦可據以實現。
對於使用者介面方面的相關的內容之分析而言,一些實施例中,可針對如使用者介面的布局(user interface layout)、使用者介面中元件的階層關係(hierarchy)、相關的事件(event)、應用程式介面(application interface,API)等之一或多者來作出分析,進而得知待測之應用程式與已知的應用程式的相似度。
如第8圖中,應用程式包之使用者介面程式碼所對應之一畫面(view)300中具有的使用者介面元件例如命令列M1、選擇功能之按鈕B1、B2,這些元件可分別對應到事件1、2、3。故可針對應用程式的使用者界面或各個畫面中的使用者介面元件及相關使用的資訊,如元件間的關係、處理的事件內容或操作,進行分析,並得出可描述用作比對的特徵關係,產生對應的特徵資料,或可稱為詮釋資料或元資料(metadata)。例如以矩陣或陣列或各種合適的編碼方式描述特徵資料,從而有助於從資料庫中檢索及比對之用。
舉例來說,如第8圖中示意的使用者介面的布局(layout),包含圖形、圖片、選項、及其間排列之相對位置
與對應關係,以及與事件處理相關元件(如命令列M1、按鈕B1、B2)。又事件之對應的處理函式的API呼叫及相關的程式資訊,亦可納入分析,並將其分析得出之特徵資料,交由步驟S33之相似度評估或相似度評估模組130進行處理。
針對使用者介面方面,在一實施例中,步驟S21可包括:依據該第一資料組,分析使用者介面中各畫面與各元件之階層關係以作為特徵關係之一,並依據該特徵關係產生該第一資料組對應的一第一特徵資料。又於另一實施例中,步驟S21可更包括:依據該第一資料組,分析使用者介面中各元件與布局相關執行程式碼,以得出各元件與對應的k處理事件之間的關係及對應之應用程式介面的名稱與數量作為特徵關係之一,並依據該特徵關係產生該第一資料組對應的一第二特徵資料。相對於上述步驟S21的實施例,步驟S33可包括:依據該第一資料組的該第一特徵資料和該第二特徵資料以及從該資料庫中取得之與該特徵資料相距一對應距離內之特徵資料對應的搜尋結果,決定使用者介面方面之一相似性元資料;其中該待測之應用程式包之相似度是為基於使用者介面方面之該相似性元資料而決定。此外,針對使用者介面方面,步驟S21亦可僅產生一種特徵資料或更多的特徵資料。
請參考第9圖,步驟S33可基於此實施例而評估待測之應用程式(如稱為A1)與從資料庫搜尋得到之一已知的程式包(或可視為程式包集合)Ax的相似性。如步驟S310所示,決定待測之應用程式A1與程式包Ax是否相似。例
如設定一程式介面如稱為Layout(Ax,A1)函式用來計算Ax與A1間的相似度。依據前述關係式1之觀念,假設A1是Ax的重新包裝,Ax與A1在使用者介面的層級與所包含的元件關係及數量上,則依然會是重新包裝的程式會包含(大於或等於)原始程式。若是Layout(Ax,A1)判斷出來的差距過大,表示使用者介面的布局中各元件資訊的統計或關聯計算產生的結果差距過大使Layout(Ax,A1)=F,則如步驟S315所示,代表待測之應用程式包A1與程式包Ax不相似。若Layout(Ax,A1)=T,即結果為是,則如步驟S320所示,繼續以事件之處理函式中所用之應用程式介面(API)來進行比較。例如設定一程式介面如稱為Api(Ax,A1)函式用來計算Ax與A1間有關應用程式介面方面的相似度。
例如,Layout(Ax,A1)可包括以下關係(稱關係式2),若存在:Ax的布局元件的集合A1的布局元件的集合之關係;且(A1的布局元件的數量)-(Ax的布局元件的數量)d1則Layout(Ax,A1)=T(即判定為相似),其中d1為有關布局元件方面之一對應的距離(或稱為差異)的條件。此函式Layout(Ax,A1)在資料庫中,尋找被A1所包含但距離小於d1的所有應用程式Ax來進行比對,來判定Ax是否可能為重新包裝產生A1前的原始程式。
例如,Api(Ax,A1)可包括以下關係(稱關係式3),若存在:Ax的UI相關API的集合A1的UI相關API的集合之
關係;且(A1的這些API的數量)-(Ax的這些API的數量)d2則Api(Ax,A1)=T(即判定為相似),其中d2為有關布局元件方面之API之一對應的距離的條件。此函式Api(Ax,A1)在資料庫中,尋找被A1所包含但距離小於d2的所有應用程式Ax來進行比對,來判定Ax是否可能為重新包裝產生A1前的原始程式。
若Layout(Ax,A1)=T且Api(Ax,A1)=T,此時表示程式包Ax和A1相似度高,則如步驟S330所示,決定有關於(Ax,A1)的相似性元資料Sim1。故此實施例可視為前述步驟S33之一實施例中,基於第一特徵資料和第二特徵資料以產生使用者介面方面對應的相似性元資料,以供步驟S35或評估模組130使用。
此外,在一些實施例中,可將關係式3所得之A1與Ax有差異的API(其中對應的API數量之差值少於d2)記錄起來,如存於報告文件之中,此記錄的資訊可用作動態檢測時,尋找惡意程式碼位置時的參考資訊。
又在一些實施例中,此部份Layout()與Api()所使用之元資料,亦可用來建立前述資料庫之索引,以便依照其距離參數,以擷取適當的已知應用程式的特徵資料與A1之特徵資料進行比對,從而找出適當的Ax。
針對程式運作方面,可從程式碼中使用的應用程式介面或資料進行分析。在一實施例中,步驟S21可包括:依
據程式運作方面相關的內容的資料組,分析執行碼中各應用程式介面(API)所使用的參數及參數內容的關係以作為特徵關係,並依據該特徵關係產生該資料組對應的特徵資料。
在另一實施例中,步驟S21可包括:依據程式運作方面相關的內容的資料組,分析執行碼之資料流程,對此資料組中複數個輸入資料(或稱為來源資料(source))、這些輸入資料所歷經的處理動作(或稱為處理路徑(path))及所對應的最後動作(或稱為最後流向(sink))以作為特徵關係,並依據該特徵關係產生該資料組對應的特徵資料。這些輸入資料所歷經的處理動作及所對應的最後動作是對應到此資料組之碼流(code flow)中的應用程式介面。
這些程式運作方面有關於資料流向的分析有助判斷重新包裝之應用程式甚至是惡意程式碼。例如,步驟S21(或分析模組120)可針對程式運作方面,對於應用程式核心之執行碼部份(如藉由步驟S10產生的資料組),擷取出所需的相關資訊:如被呼叫的API、敏感性資料於程式中的輸入輸出流向與處理路徑、程式核心片段等,加以分析。
舉例而言,分析程式碼後,得出關於某一資料之碼流以虛擬程式碼表示如下:宣告data1為整數;data2=API1(data1);data3=API2(data2);API3(data3);
故此,來源資料為:data1,處理路徑為:[API1,API2],而最後流向為:API3,故特徵關係為:{data1,[API1,API2],API3}。而一般來說,程式碼中有許多來源資料,以及相對應的資料路徑以及最後流向,這些有關來源資料的特徵關係的集合,可據以產生待測之應用程式針對程式運作方面的特徵資料,或可稱為詮釋資料或元資料(metadata)。例如以矩陣或陣列或各種合適的編碼方式描述特徵資料,從而有助於從資料庫中檢索及比對之用。特號徵資料是為供步驟S33或相似度評估模組130使用。
為了運算環境安全,除了一般的來源資料外,更可針對相關的敏感資料進行分析,例如對於行動通訊裝置(如手機或平板電腦)之應用程式來說,敏感資料如機碼、國際行動設備識別碼(IEMI)、個人識別碼(PIN)、通訊記錄等。舉例而言,分析程式碼發現應用程式介面API_1讀取了手機的機碼mCode(如表示為API_1(mCode)),在經歷一連串的處理路徑後,最後由應用程式介面API_2送至某一網路目的位置(如表示為API_2(URL)),由此{mCode,[API_1(mCode),...],API_2(URL)}代表程式處理資料的特徵關係,可據以產生特徵資料。
在一些實施例中,程式運作方面有關於資料流向的分析,可採用動態分析方法中的污染源分析(Taint Analysis)。污染源分析可追蹤預先定義的敏感性資料或具有危險動作的資料操作,記錄資料之擴散的歷程及資料目的端(sink),可據以發出警告,例如資料目的端可能令資料外洩的程式操作及目的端,如網路或外接記憶卡等。故應
用此污染源分析中有關來源資料到資料目的端的歷程之技術可作為辨識軟體的特徵關係而應用於步驟S33或分析模組123;此外,亦可用以監控資料外洩的方式,從而分辨是否惡意程式。
步驟S21或分析模組120針對程式運作方面之實施例所產生的特徵資料,可進一步由步驟S33或相似度評估模組130進行處理。請參考第10圖,步驟S33或相似度評估模組130可基於此實施例而評估待測之應用程式(如稱為A1)與從資料庫搜尋得到之一已知的程式包(或可視為程式包集合)Bx的相似度。如步驟S410所示,依據針對程式運作方面的特徵資料例如前述從來源資料至目的端的處理路徑,比較已知的程式包Bx與待測之應用程式A1。步驟S410是使用資料庫中已有之記錄作比對;另外,一些例子中,比對的範圍可利用待測之應用程式的其他方向之分析中所搜尋到的範圍例如對於前述靜態檢測中令Layout()=T或Api()=T的程式包集合Ax。此外,例如設定一程式介面如稱為Path(Ax,A1)函式用來計算Ax與A1間有關資料流向的相似度。
Path()例如可包括以下關係(稱關係式4),若存在:Ax的處理路徑的集合A1的處理路徑集合之關係;且(A1的處理路徑的數量)-(Ax的處理路徑的數量)d3則Path(Ax,A1)=T(即判定為相似),其中d3為有關處理路徑方面之一對應的距離(或稱為差異)的條件。此函式Path(Ax,A1)在資料庫中,尋找被A1所包含但距離小於d3的所有應用程式Ax來進行比對,來判定Ax是否可能為重
新包裝產生A1前的原始程式。
如步驟S430所示,判斷處理路徑是否相似。若Path(Ax,A1)=F,則如步驟S435所示,待測之應用程式包A1與程式包Ax不相似。若Path(Ax,A1)=T,表示找出了相似且符合條件的已知的程式包,此時表示程式包Ax和A1相似度高,則如步驟S440所示,決定有關於(Ax,A1)的相似性元資料Sim2。
在一實施例中,針對程式所使用的資源方面,步驟S21可包括:依據程式所使用的資源方面的資料組,分析程式使用之資源之關係以作為特徵關係之一,並依據特徵關係產生該資料組對應的特徵資料。程式使用之資源是指程式所用的資料,故可以視為程式碼中所設定請求的資源(resource)、權限設定(permission)或非程式碼之內容之關係。非程式碼之內容例如程式碼中所使用的超連結、程式腳本(script)、呈現內容的檔(content file)。
例如在安卓(Android)平台上,應用程式包的格式為APK檔(為一封裝格式),其中包含數個dex檔案(程式執行碼)、屬性內容(properties)(所包含的圖片、資料與其他檔案)與清單檔案(manifest),其中清單檔案是為對權限與相關資源使用之設定與程式宣告,並以XML描述。故此,從步驟S10或前置處理模組110,可以產生針對程式所使用的資源方面的資料組。
例如,針對程式所使用的資源方面,步驟S21或分析
模組120可將例如以XML資料表示的所設定請求的資源或權限設定的名稱、個數解析並對其他程式相關參數合併為特徵資料。
又一實施例中,步驟S21或分析模組120可將其他資源資料,如圖片、音訊或其他資料,採用雜湊方式(hash)產生相關的特徵資料,以供步驟S33或相似度評估模組130進行評估。
請參考第11圖,步驟S33或相似度評估模組130可基於此實施例而評估待測之應用程式(如稱為A1)與從資料庫搜尋得到之一已知的程式包(或可視為程式包集合)Ax的相似性。針對程式所使用的資源方面,如步驟S510所示,決定待測之應用程式A1與程式包Ax是否相似。例如設定一程式介面如稱為Per(Ax,A1)函式用來計算Ax與A1間關於權限設定(permission)的相似度。若是Per(Ax,A1)判斷出來的差距過大,則如步驟S315所示,代表待測之應用程式包A1與程式包Ax不相似。若Per(Ax,A1)=T,即結果為是,則進一步評估其他資源方面的相似度。如步驟S520所示,從資料庫中取得與應用程式包A1相關的元資料,例如是前述XML描述的元資料。如步驟S530所示,決定程式包Ax相關的元資料的相似性元資料Sim3。如步驟S540所示,決定其他媒體檔案(如圖檔等)的相似性元資料Sim4。
在步驟S510中,例如將待測之應用程式A1與資料庫中得到之程式包Ax進行比對。由前述關係式1之觀念,若應用程式A1是某支程式的重新包裝的話,其所包括的
權限設定將會是大於或等於原始程式的權限設定。故此,Per(Ax,A1)例如可包括以下關係(稱關係式5),若存在:Ax的權限設定的集合A1的權限設定集合之關係;且(A1的權限設定的數量)-(Ax的權限設定的數量)d4則Per(Ax,A1)=T(即判定為相似),其中d4為有關權限設定方面之一對應的距離(或稱為差異)的條件。此函式Per(Ax,A1)在資料庫中,尋找被A1所包含但距離小於d4的所有程式包Ax來進行比對,來判定Ax是否可能為重新包裝產生A前的原始程式。
對於前述步驟S21、S23或分析模組120、評估模組130之不同實施例,能產生一個或多個相似性元資料,以供如步驟S35或決定模組140決定待測之應用程式是否重新包裝。在一實施例中,步驟S23、或步驟S33或評估模組130所產生之相似性元資料(如Sim1至Sim4之一者或多者),可用來評估出Ax與A1之相似度指數α,以決定待測之應用程式A1是否屬於重新包裝或其他屬性之決定結果。例如,將所有元資料(如sim1至sim4)排列成向量與搜尋到的V1(轉換成數值排列)進行如前述之餘弦數值之計算相似度α。另外,亦可對每一元資料進行加權(表示其所佔比重也許不同)後,所計算出的餘弦值即為相似度指數α。
相似度指數α評估之結果關係表示如下:若αβ(0<β<1),β表示預設之相似度臨界值:則
Ax與A1兩者為相似程式。亦即決定結果是為應用程式A1可視為Ax的重新包裝。
若α<β,則程式包A1為一個新的程式。亦即,決定結果是為應用程式A1可視為不是Ax的重新包裝。
如此步驟S35或決定模組140可得出決定結果。請參考第4圖及第5圖,步驟S130或步驟S230可依據此決定結果而進一步判斷待測之應用程式包A1是否惡意程式。例如,在一實施例中,決定結果是為應用程式A1可視為Ax的重新包裝,若檢查發現A1不是Ax的改版,且並非同一作者或公司之應用程式,則待測之應用程式包A1為惡意程式或侵權程式的可能性非常高,則據此拒絕其上架(如步驟S135)或拒絕安裝(如步驟S235)。此外,亦可記錄此待測之應用程式包A1之相關資訊於資料庫,亦可進一步分析此待測之應用程式包A1,以確認是否有新型惡意程式發現。又一實施例中,若A1不是Ax的重新包裝,可再針對其他相關特徵資料進行分析,以確認是否為惡意程式或正常程式。
在其他實施例中,針對待測之應用程式A1的一個或多方面作分析所產生之差異(如步驟S21或分析模組120),例如令Path()=T的程式包Ax與待測之應用程式包A1有差異的處理路徑的相關資訊,如權限設定(對應到Per())、使用者介面布局(對應到Layout())或應用程式介面(對應Api())有差異的相關資訊,可用來評估是否為惡意程式。此外,而所差異的一個或多個處理路徑更可以直接與既有之惡意程式資訊洩漏之特徵資料比對,可提前找出明
確的惡意程式碼或惡意程式類型。
此外,在其他實施例中,判定產生之結果則依照預先設定的條件決定此程式可否進行上架或是安裝於裝置端,不論可安裝或不可安裝,均可依照市集或是營運商之政策決定後續是否繼續進行其他檢測。
此外,在其他實施例中,拒絕應用程式包之上架或安裝或是否進行如步驟S20之估測亦可配合運算平台的已有機制而進行。例如在安卓(Android)平台上,應用程式包的格式為APK檔(為一封裝格式),其中包含數個dex檔案(程式執行碼)、屬性內容(properties)(所包含的圖片、資料與其他檔案)與清單檔案(manifest),其中清單檔案是為對權限與相關資源使用之設定與程式宣告,並以XML描述。
步驟S10或前置處理模組110例如實施為對APK檔案進行解析的動作,並將dex files、properties及manifest中對應之後的步驟S20或分析模組120所需的相關資訊,進行解析與整理成針對各方面(如使用者介面方面、程式操作方面、程式使用之資源方面之一或多個方面)相關的資料組,或稱為元資料(metadata)。步驟S10或前置處理模組110之一實施例在接收到待測之APK A1時,會將APK中所組成的各個部份解析出來,在將相關資訊交給下一步驟S20或分析模組120以前,會先將待測之APK的安全性資訊(如APK名稱、開發者資訊與簽章等),先作初步篩選。
實現此篩選可設定一比對函式Mt(APKName,Sign_Key)來處理,其中APKName代表此APK的名稱與開發者資訊,而Sign_Key則代表簽章所使用的金鑰,
APKName與Sign_Key的組合,可用來驗證APK與開發者之身份。
如果比對函式Mt()回傳為(T,T)表示待測之APK A1為已知的程式與合法的簽章金鑰,則APK A1可不用再行測試。待測之APK A1為已知即表示之前已測試過並在資料庫中建有記錄,由於合法簽章代表程式內容並未被修改過,可確認其完整性,故APK A1可不用再行測試。但需要進一步比對此待測之APK A1是否在黑名單(blacklist)上。若不在黑名單上,則允許上架或安裝,否則拒絕此黑名單上有記錄之APK進行安裝。
第二種情形為Mt()=(T,F),表示此為已知程式與開發者,但簽章金鑰驗證有誤,表示此程式可能為竄改或傳輸時發生錯誤。無論如何,簽章資訊有誤,表示程式完整性出現問題,則無須進行下一步檢查,直接拒絕。
第三種情形為Mt()=(F,T)或(F,F),Mt()=(F,T)表示簽章金鑰無誤,但是程式名稱未有記錄,則表示待測之APK A1應該是新的程式,需要進行進一步的分析測試。Mt()=(F,F)表示此程式為一個全新的程式,資料庫中對其名稱與金鑰資訊均未有記錄,則也應該繼續進一步的分析測試。故在此種情形下,步驟S10或前置處理模組110所取得的分析資料,將如第3圖所示,由步驟S20繼續處理。
上述有關Android平台之步驟S10或前置處理模組110之實施例,可將不需要進行進一步篩檢的程式先過濾出來。然而,上述僅是一種實施方式而已,運算環境安全方法之實施方式亦不受限於此。
另外,在一些實施例中,有關前述如第3圖之實施例的步驟S21之依據分析待測之應用程式包所得之特徵關係產生該資料組對應的特徵資料,或是步驟S23中使用的資料庫中的特徵資料,可採用統計的方式取得。例如,對於資料庫的建立而言,對於已知的應用程式包如APK1、APK2、AP3等,可以利用剖析(parsing)後統計程式元件等被使用的數量、或被呼叫的次數或其他引用情況等,並予以量化,例如以如前述的向量或陣列或矩陣等方式,以作為某一APK的特徵資料。例如,表一所示,為使用者介面方面或程式運作方面以其他方面,有關於程式的描述,如Android程式中Activity,service、view的數目之個數等,對APK1而言,此特徵資料為[4,2,2,2,1],其他可如此類推。又如表二所示,某種或多種程式介面,如個別或不同的API、類別(class)、類別的方法(method)之使用情況。對於待測之應用程式包而言,亦可以採用與同樣的方式,予以量化,以得到對應的特徵資料,以便於前述之資料庫中進行搜尋。
另外一些實施例中,對於每個APK中經由剖析後統計可得知的資料如表一及表二所示,此部份對應dex file中經剖析後,對於API呼叫的內容產生之統計結果,可預先建立所有APK可用API之詞庫,包含Android及Java可用之API名稱,並進行排序(或予以編號),以利建立各APK的特徵資料或元資料。依此,此已知的APK或待測之應用程式包,對其dex file全域範圍所作之統計資料,可描述為產生Vapi=[v1,v2,v3……vk]之向量代表其dex中所使用各API之統計向量,Vapi的元素如v3為0可代表此對應的API未被使用,而k的個數,即為Android及Java中所可以使用的API個數(或經刪除無意義的API後的個數)。
又,對於步驟S23之一實施例中,在進行尋找與向量V1在一對應距離內的向量Vs時,對向量V1=[m1,m2,...,mk]中的各個值,可依照經驗或歸納之權重對m1,m2,...,mk各施以加權值w1,w2,…,wk以表示其所佔比重不同,依此再進行向量Vs之尋找。例如參照表二為例,當中
URLConnection之方法與APK與網路連線有關,亦與運算環境安全有關,故可將之權重增加。在一些實施例中,對於加權值之觀念,亦可用於如步驟S33、S35之相似度計算,即以不同角度,作出待測應用程式是否為重新包裝之決定。
前述如第3圖之運算環境安全方法之步驟或如第6圖之運算環境安全之軟體架構之模組,可實現於電子裝置端或伺服系統(如應用市集端)執行,亦可分散於兩者而作不同的實現方現。例如第12圖是為於一電子裝置400及一伺服系統500上實現運算環境安全方法之實施例的方塊圖。電子裝置400及伺服系統500分別實現通訊模組410及510。如第12圖所示,伺服系統500利用運算環境安全方法之實施例於應用程式上架前作出檢測是否重新包裝。另外,電子裝置400亦可實現運算環境安全方法之實施例逕行快速篩檢以維護裝置端之安全。如第12圖所示之實施例,配置於電子裝置400的模組為靜態分析之模組(如使用者介面方面或程式使用之資料方面的分析模)。此實施方式不會耗用大量之裝置端資源進行應用程式的即時檢視與監視,能避免消耗有限的行動裝置電源。
其中電子裝置400用以查詢及比對之資料,可藉由通訊模組410建立通訊連結從資料庫(如伺服系統500之資料庫或其他資料庫)取得與待測之應用程式包A1相類似之程式包的特徵資料,或元資料(metadata)來進行比對。若電子裝置400依據靜態檢測部分得出之相似度指數α
判定待測之應用程式包A1為重新包裝之應用程式,則不需要回
到伺服系統500再進行檢測,即可拒絕執行安裝動作。在一實施例中,若電子裝置400判定待測之應用程式包A1是為一全新的程式,則回傳靜態檢測所分析得到的特徵資料到資料庫(例如建立在伺服系統500或其他資料庫)進行儲存。伺服系統500例如是一分散式系統或雲端之伺服系統。
在一實施例中,電子裝置400例如為智慧型裝置(如手機、平板電腦、網路電視等)上所預載之安裝程式(installer)搭配,以確認使用者不會忽略雲端所回應之結果而依舊安裝有惡意威脅之不明來源程式。此外,在伺服系統500及電子裝置400上實施的方式當可參照如第3圖或第6圖之實施例作各種不同的方式實施,故並不受限於第12圖之實施例。
此外,雖然上述實施例中以安卓平台舉例,然而依上述運算環境安全方法、伺服系統及電子裝置之實施例可實施於任可平台如各種智慧型裝置的作業平台、甚至是個人電腦的運算環境中。
此外,另揭露一種電腦或運算裝置可讀式資訊儲存媒體之實施例,其上儲存有至少一程式或軟體模組執行上述運算環境安全方法之實施例。當具有記憶體的電子裝置或伺服系統(稱為電子運算系統)載入此資訊儲存媒體後,此電子運算系統執行多個程式指令,這些程式指令用於執行上述運算環境安全方法之實施例,例如是實施於伺服系統(如作為軟體市集)或電子裝置(如手機、平板電腦、網路電視等)。本實施例的電腦可讀式資訊儲存媒體比如但不受限
於,光學式資訊儲存媒體、磁式資訊儲存媒體或韌體,亦可包括可在網路/傳遞媒介(如空氣等)上傳遞的程式碼等。
綜上所述,雖然以實施例揭露如上,然其並非用以限定本案之實施方式。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本案之保護範圍當視後附之申請專利範圍所界定者為準。
10‧‧‧伺服系統
11、21‧‧‧篩選機制
20‧‧‧電子裝置
100‧‧‧運算環境安全系統
110‧‧‧前置處理模組
120‧‧‧分析模組
121‧‧‧使用者介面方面的分析模組
123‧‧‧程式運作方面的分析模組
125‧‧‧程式使用之資源方面的分析模組
130‧‧‧相似度評估模組
131‧‧‧使用者介面方面的相似度評估模組
133‧‧‧程式運作方面的相似度評估模組
135‧‧‧程式使用之資源方面的相似度評估模組
140‧‧‧決定模組
150‧‧‧資料庫模組
200‧‧‧電子運算系統
210‧‧‧控制單元
220‧‧‧通訊單元
230‧‧‧儲存單元
240‧‧‧顯示單元
300‧‧‧畫面
400‧‧‧電子裝置
410、510‧‧‧通訊模組
500‧‧‧伺服系統
S10-S35、S110-S137、S210-S237、S310-S330、S410-440、S510-S540‧‧‧步驟
第1圖繪示針對應用程式之上架或安裝時實現運算環境安全之機制的示意圖。
第2圖示意一應用程式具有複數個方面相關之內容。
第3圖繪示運算環境安全方法之一實施例的流程圖。
第4圖繪示運算環境安全方法應用於提供軟體上架之伺服系統上之一實施例的流程圖。
第5圖繪示運算環境安全方法應用於欲進行軟體安裝之電子裝置之一實施例的流程圖。
第6圖是為依據運算環境安全方法之一實施例的軟體架構的方塊圖。
第7圖繪示實現運算環境安全方法之實施例之一電子運算系統之基本架構之方塊圖。
第8圖是為針對應用程式包中使用者介面方面的相關內容作分析之一實施例之示意圖。
第9圖是為針對使用者介面方面的相關內容作相似度評估之一實施例之流程圖。
第10圖是為針對程式運作方面的相關內容作相似度評估之一實施例之流程圖。
第11圖是為針對程式所使用的資源方面的相關內容作相似度評估之一實施例之流程圖。
第12圖是為一電子裝置及一伺服系統上實現運算環境安全方法之實施例的方塊圖。
S10-S35‧‧‧步驟
Claims (26)
- 一種運算環境安全方法,包括:(a)藉由一電子運算系統,解開一待測之應用程式包以取得至少一資料組,其中各該至少一資料組是為該應用程式包之複數個方面之一者相關的內容,其中該些方面相關的內容包括使用者介面方面的內容,各該至少一資料組包括:一第一資料組,該第一資料組是為該應用程式包中與使用者介面方面相關的內容。;以及(b)依據該至少一資料組,估測該待測之應用程式包是否重新包裝程式,該步驟(b)包括:(c)對於各該至少一資料組,分析該資料組之該對應的方面的相關的內容之特徵關係,並依據該特徵關係產生該資料組對應的特徵資料;以及(d)依據該至少一資料組的特徵資料及從一資料庫中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,決定該待測之應用程式包是否為一重新包裝之應用程式包,其中該資料庫包括複數個應用程式包所對應的該些方面相關的特徵資料;其中該電子運算系統依據該決定之結果對該待測之應用程式包進行處理。
- 如申請專利範圍第1項所述之運算環境安全方法,其中在解開一待測之應用程式包之步驟之前,更包括:回應於一軟體上架之請求,藉由該電子運算系統之一通訊單元,接收該待測之應用程式包;其中藉由該電子運算系統,進行該步驟(b); 其中該電子運算系統是為一伺服系統,依據該決定之結果,若該待測之應用程式包被決定為一重新包裝之應用程式包且為一惡意程式,則該伺服系統拒絕該上架之請求,使該待測之應用程式包不能上架。
- 如申請專利範圍第1項所述之運算環境安全方法,其中在解開一待測之應用程式包之步驟之前,更包括:藉由該電子運算系統之一通訊單元,接收該待測之應用程式包;其中藉由該電子運算系統之一控制單元,回應一軟體安裝程式之請求,在欲安裝該待測之應用程式包之前,進行該步驟(b);其中依據該決定之結果,若該待測之應用程式包被決定為一重新包裝之應用程式包且為一惡意程式,則該電子運算系統拒絕安裝該待測之應用程式包。
- 如申請專利範圍第1項所述之運算環境安全方法,其中該步驟(d)包括:依據該至少一資料組的特徵資料及從一資料庫中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,評估該待測之應用程式包之相似度,其中該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度;以及依據該待測之應用程式之相似度,決定該待測之應用程式包是否為一重新包裝之應用程式包;其中,藉由該電子運算系統之該通訊單元,該電子運算系統透過一通訊連結從該資料庫中取得該搜尋結果。
- 如申請專利範圍第1項所述之運算環境安全方法,其中該步驟(c)包括:依據該第一資料組,分析使用者介面中各畫面與各元件之階層關係以作為特徵關係之一,並依據該特徵關係產生該第一資料組對應的一第一特徵資料。
- 如申請專利範圍第5項所述之運算環境安全方法,其中該步驟(c)更包括:依據該第一資料組,分析使用者介面中各元件與布局相關執行程式碼,以得出各元件與對應的處理事件之間的關係及對應之應用程式介面的名稱與數量作為特徵關係之一,並依據該特徵關係產生該第一資料組對應的一第二特徵資料。
- 如申請專利範圍第6項所述之運算環境安全方法,其中該步驟(d)包括:依據該第一資料組的該第一特徵資料和該第二特徵資料以及從該資料庫中取得之與該特徵資料相距一對應距離內之特徵資料對應的搜尋結果,決定使用者介面方面之一相似性元資料;基於使用者介面方面之該相似性元資料,決定該待測之應用程式包之相似度,其中該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度;以及依據該待測之應用程式之相似度,決定該待測之應用程式包是否為一重新包裝之應用程式包。
- 如申請專利範圍第1項所述之運算環境安全方 法,其中該些方面相關的內容更包括程式運作方面的內容,各該至少一資料組更包括:一第二資料組,該第二資料組是為該應用程式包中與程式運作方面相關的內容。
- 如申請專利範圍第8項所述之運算環境安全方法,其中該步驟(c)包括:依據該第二資料組,分析執行碼中各應用程式介面(API)所使用的參數及參數內容的關係以作為特徵關係,並依據該特徵關係產生該第二資料組對應的一第一特徵資料。
- 如申請專利範圍第8項所述之運算環境安全方法,其中該步驟(c)包括:依據該第二資料組,分析執行碼之資料流程,對該第二資料組中複數個輸入資料、該些輸入資料所歷經的處理動作及所對應的最後動作以作為特徵關係,並依據該特徵關係產生該第二資料組對應的一第一特徵資料,其中該些輸入資料所歷經的處理動作及所對應的最後動作對應到該第二資料組之碼流中的應用程式介面。
- 如申請專利範圍第8項所述之運算環境安全方法,其中該步驟(d)包括:依據該第一資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第一定距離內之特徵資料對應的搜尋結果,決定使用者介面方面之一相似性元資料;以及依據該第二資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第二定距離內之特徵資 料對應的搜尋結果,決定程式運作方面之一相似性元資料;基於使用者介面方面之該相似性元資料及該程式運作方面之該相似性元資料,決定該待測之應用程式包之相似度,其中該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度;以及依據該待測之應用程式之相似度,決定該待測之應用程式包是否為一重新包裝之應用程式包。
- 如申請專利範圍第8項所述之運算環境安全方法,其中該些方面相關的內容更包括程式使用之資源方面的內容,各該至少一資料組包括:一第三資料組,該第三資料組是為該應用程式包中與程式使用之資源方面的內容。
- 如申請專利範圍第12項所述之運算環境安全方法,其中該步驟(c)包括:依據該第三資料組,分析程式使用之資源之關係以作為特徵關係之一,並依據該特徵關係產生該第三資料組對應的一特徵資料。
- 如申請專利範圍第13項所述之運算環境安全方法,其中程式使用之資源之關係是為該待測之應用程式包之所設定請求的權限設定之關係。
- 如申請專利範圍第13項所述之運算環境安全方法,其中程式使用之資源之關係是為該待測之應用程式包之非程式碼之內容之關係。
- 如申請專利範圍第12項所述之運算環境安全方法,其中該步驟(d)包括:依據該第一資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第一定距離內之特徵資料對應的搜尋結果,決定使用者介面方面之一相似性元資料;依據該第二資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第二定距離內之特徵資料對應的搜尋結果,決定程式運作方面之一相似性元資料;依據該第三資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第三定距離內之特徵資料對應的搜尋結果,決定程式使用之資源方面之一相似性元資料;基於使用者介面方面之該相似性元資料及該程式運作方面之該相似性元資料及程式使用之資源方面之該相似性元資料,決定該待測之應用程式包之相似度,其中該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度;以及依據該待測之應用程式之相似度,決定該待測之應用程式包是否為一重新包裝之應用程式包。
- 一種為運算系統可讀取記錄媒體,其中係記錄包括運算系統可執行之複數多個指令,當一運算系統執行該些指令後,該運算系統用以執行如申請專利範圍第1至17 項之任一項所述之運算環境安全方法。
- 一種電子運算系統,包括:一通訊單元;以及一控制單元,藉由該通訊單元,接收一待測之應用程式包,其中該控制單元至少:解開一待測之應用程式包以取得至少一資料組,其中該待測之應用程式包包括複數個方面相關的內容,各該至少一資料組是為該應用程式包之該些方面之一者相關的內容,其中該些方面相關的內容包括使用者介面方面的內容,各該至少一資料組包括:一第一資料組,該第一資料組是為該應用程式包中與使用者介面方面相關的內容;對於各該至少一資料組,分析該資料組之該對應的方面的相關的內容之特徵關係,並依據該特徵關係產生該資料組對應的特徵資料;依據該至少一資料組的特徵資料及從一資料庫單元中取得之與該特徵資料相距一對應距離內之對應的搜尋結果,決定該待測之應用程式包是否為一重新包裝之應用程式包,其中該電子運算系統依據該決定之結果對該待測之應用程式包進行處理。
- 如申請專利範圍第18項所述之電子運算系統,更包括該資料庫單元,該資料庫單元具有複數個應用程式包所對應的該些方面相關的特徵資料,其中該電子運算系統是為一伺服系統,若該控制單元決定該待測之應用程式包為一重新包裝之應用程式包且為惡意程式,則該伺服系 統拒絕該待測之應用程式包之上架之請求,使該待測之應用程式包不能上架。
- 如申請專利範圍第18項所述之電子運算系統,其中該電子運算系統是為一電子裝置,藉由該通訊單元,該電子運算系統透過一通訊連結從該資料庫單元中取得該搜尋結果。
- 如申請專利範圍第20項所述之電子運算系統,其中若該待測之應用程式包被決定為一重新包裝之應用程式包且為一惡意程式,則該電子運算系統拒絕安裝該待測之應用程式包。
- 如申請專利範圍第20項所述之電子運算系統,其中若該控制單元決定該待測之應用程式包並非為重新包裝且為全新的程式,則該電子運算系統透過一通訊連結將該至少一資料組的特徵資料回傳到該資料庫單元儲存。
- 如申請專利範圍第18項所述之電子運算系統,其中該些方面相關的內容更包括程式運作方面的內容,各該至少一資料組更包括:一第二資料組,該第二資料組是為該應用程式包中與程式運作方面相關的內容。
- 如申請專利範圍第23項所述之電子運算系統,其中該控制單元:依據該第一資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第一定距離內之特徵資料對應的搜尋結果,決定使用者介面方面之一相似性元資料;以及依據該第二資料組的一特徵資料及從該資料庫中取 得之與該特徵資料相距一對應的第二定距離內之特徵資料對應的搜尋結果,決定程式運作方面之一相似性元資料;該控制單元基於使用者介面方面之該相似性元資料及該程式運作方面之該相似性元資料,決定該待測之應用程式包之相似度,並依據該待測之應用程式包之相似度決定該待測之應用程式包是否為一重新包裝之應用程式包,其中該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度。
- 如申請專利範圍第23項所述之電子運算系統,其中該些方面相關的內容更包括程式使用之資源方面的內容,各該至少一資料組包括:一第三資料組,該第三資料組是為該應用程式包中與使用者介面方面相關的內容。
- 如申請專利範圍第25項所述之電子運算系統,其中該控制單元:依據該第一資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第一定距離內之特徵資料對應的搜尋結果,決定使用者介面方面之一相似性元資料;以及依據該第二資料組的一特徵資料及從該資料庫中取得之與該特徵資料相距一對應的第二定距離內之特徵資料對應的搜尋結果,決定程式運作方面之一相似性元資料;依據該第三資料組的一特徵資料及從該資料庫中取 得之與該特徵資料相距一對應的第三定距離內之特徵資料對應的搜尋結果,決定程式使用之資源方面之一相似性元資料;該控制單元基於該使用者介面方面之該相似性元資料及該程式運作方面之該相似性元資料及程式使用之資源方面之該相似性元資料,決定該待測之應用程式包之相似度,並依據該待測之應用程式包之相似度決定該待測之應用程式包是否為一重新包裝之應用程式包,其中該待測之應用程式包之相似度是為該待測之應用程式包與該搜尋結果所對應的該資料庫中的應用程式包的相似度。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101125177A TWI461953B (zh) | 2012-07-12 | 2012-07-12 | 運算環境安全方法和電子運算系統 |
CN201310000890.1A CN103544430B (zh) | 2012-07-12 | 2013-01-04 | 运算环境安全方法和电子运算*** |
US13/741,426 US9053322B2 (en) | 2012-07-12 | 2013-01-15 | Computing environment security method and electronic computing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101125177A TWI461953B (zh) | 2012-07-12 | 2012-07-12 | 運算環境安全方法和電子運算系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201403368A TW201403368A (zh) | 2014-01-16 |
TWI461953B true TWI461953B (zh) | 2014-11-21 |
Family
ID=49915209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101125177A TWI461953B (zh) | 2012-07-12 | 2012-07-12 | 運算環境安全方法和電子運算系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9053322B2 (zh) |
CN (1) | CN103544430B (zh) |
TW (1) | TWI461953B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053307B1 (en) | 2012-07-23 | 2015-06-09 | Amazon Technologies, Inc. | Behavior based identity system |
KR101739125B1 (ko) * | 2013-02-27 | 2017-05-24 | 한국전자통신연구원 | 모바일 디바이스용 어플리케이션의 권한을 분석하고 위험성을 검출하기 위한 장치 및 방법 |
KR102038964B1 (ko) * | 2013-03-18 | 2019-11-26 | 삼성전자주식회사 | 어플리케이션 간의 상호 인증 방법 및 장치 |
US9652617B1 (en) * | 2013-06-25 | 2017-05-16 | Amazon Technologies, Inc. | Analyzing security of applications |
US9921827B1 (en) | 2013-06-25 | 2018-03-20 | Amazon Technologies, Inc. | Developing versions of applications based on application fingerprinting |
US9262470B1 (en) | 2013-06-25 | 2016-02-16 | Amazon Technologies, Inc. | Application recommendations based on application and lifestyle fingerprinting |
US10269029B1 (en) | 2013-06-25 | 2019-04-23 | Amazon Technologies, Inc. | Application monetization based on application and lifestyle fingerprinting |
JP6161459B2 (ja) * | 2013-07-31 | 2017-07-12 | 株式会社日立製作所 | 事業性評価装置、事業性評価方法及び事業性評価プログラム |
CN103632089A (zh) * | 2013-12-16 | 2014-03-12 | 北京网秦天下科技有限公司 | 应用安装包的安全检测方法、装置和*** |
EP3136278B1 (en) * | 2014-05-26 | 2018-10-10 | Nippon Telegraph and Telephone Corporation | Dynamically loaded code analysis device, dynamically loaded code analysis method, and dynamically loaded code analysis program |
EP2953045A1 (en) * | 2014-06-05 | 2015-12-09 | Thomson Licensing | Apparatus and method for data taint tracking |
JP6258189B2 (ja) * | 2014-12-24 | 2018-01-10 | 日本電信電話株式会社 | 特定装置、特定方法および特定プログラム |
US9866574B1 (en) * | 2015-06-01 | 2018-01-09 | Amazon Technologies, Inc. | Protected data type handling awareness |
US9940479B2 (en) * | 2015-10-20 | 2018-04-10 | International Business Machines Corporation | Identifying and tracking sensitive data |
CN106506597B (zh) * | 2016-10-09 | 2019-06-21 | 腾讯科技(北京)有限公司 | 对象控制方法和装置 |
EP3416085B1 (en) * | 2017-06-16 | 2020-06-03 | AO Kaspersky Lab | System and method of detecting malicious files with the use of elements of static analysis |
RU2654146C1 (ru) | 2017-06-16 | 2018-05-16 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа |
US11710067B2 (en) * | 2018-10-10 | 2023-07-25 | Visa International Service Association | Offline security value determination system and method |
CN112632551B (zh) * | 2021-03-11 | 2021-09-28 | 北京邮电大学 | 一种第三方库信息泄露检测方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200824401A (en) * | 2006-08-31 | 2008-06-01 | Microsoft Corp | Software authorization utilizing software reputation |
US20080184369A1 (en) * | 2007-01-31 | 2008-07-31 | Samsung Electronics Co., Ltd. | Apparatus for detecting intrusion code and method using the same |
US20100229239A1 (en) * | 2009-03-08 | 2010-09-09 | Deutsche Telekom Ag | System and method for detecting new malicious executables, based on discovering and monitoring characteristic system call sequences |
TW201220118A (en) * | 2010-11-12 | 2012-05-16 | Univ Nat Chiao Tung | A method and a system for automatically analyzing and classifying a malicious program |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282698B1 (en) | 1998-02-09 | 2001-08-28 | Lucent Technologies Inc. | Detecting similarities in Java sources from bytecodes |
US7284274B1 (en) | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US6792543B2 (en) | 2001-08-01 | 2004-09-14 | Networks Associates Technology, Inc. | Virus scanning on thin client devices using programmable assembly language |
TWI256212B (en) | 2003-11-05 | 2006-06-01 | Ind Tech Res Inst | Architecture and method of multilayered DRM protection for multimedia service |
WO2005107143A1 (en) * | 2004-04-30 | 2005-11-10 | Research In Motion Limited | System and method for administering digital certificate checking |
US20070239993A1 (en) * | 2006-03-17 | 2007-10-11 | The Trustees Of The University Of Pennsylvania | System and method for comparing similarity of computer programs |
US8321941B2 (en) | 2006-04-06 | 2012-11-27 | Juniper Networks, Inc. | Malware modeling detection system and method for mobile platforms |
US9367680B2 (en) | 2008-10-21 | 2016-06-14 | Lookout, Inc. | System and method for mobile communication device application advisement |
US8347386B2 (en) | 2008-10-21 | 2013-01-01 | Lookout, Inc. | System and method for server-coupled malware prevention |
KR101122650B1 (ko) | 2010-04-28 | 2012-03-09 | 한국전자통신연구원 | 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법 |
US8844032B2 (en) * | 2012-03-02 | 2014-09-23 | Sri International | Method and system for application-based policy monitoring and enforcement on a mobile device |
US20130254880A1 (en) * | 2012-03-21 | 2013-09-26 | Mcafee, Inc. | System and method for crowdsourcing of mobile application reputations |
US8756432B1 (en) * | 2012-05-22 | 2014-06-17 | Symantec Corporation | Systems and methods for detecting malicious digitally-signed applications |
-
2012
- 2012-07-12 TW TW101125177A patent/TWI461953B/zh active
-
2013
- 2013-01-04 CN CN201310000890.1A patent/CN103544430B/zh active Active
- 2013-01-15 US US13/741,426 patent/US9053322B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200824401A (en) * | 2006-08-31 | 2008-06-01 | Microsoft Corp | Software authorization utilizing software reputation |
US20080184369A1 (en) * | 2007-01-31 | 2008-07-31 | Samsung Electronics Co., Ltd. | Apparatus for detecting intrusion code and method using the same |
US20100229239A1 (en) * | 2009-03-08 | 2010-09-09 | Deutsche Telekom Ag | System and method for detecting new malicious executables, based on discovering and monitoring characteristic system call sequences |
TW201220118A (en) * | 2010-11-12 | 2012-05-16 | Univ Nat Chiao Tung | A method and a system for automatically analyzing and classifying a malicious program |
Also Published As
Publication number | Publication date |
---|---|
US20140020094A1 (en) | 2014-01-16 |
US9053322B2 (en) | 2015-06-09 |
TW201403368A (zh) | 2014-01-16 |
CN103544430B (zh) | 2016-06-01 |
CN103544430A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI461953B (zh) | 運算環境安全方法和電子運算系統 | |
US9582668B2 (en) | Quantifying the risks of applications for mobile devices | |
US9930071B2 (en) | System and methods for secure utilization of attestation in policy-based decision making for mobile device management and security | |
US9438631B2 (en) | Off-device anti-malware protection for mobile devices | |
US9374386B2 (en) | Application malware filtering for advertising networks | |
US10419222B2 (en) | Monitoring for fraudulent or harmful behavior in applications being installed on user devices | |
Zhauniarovich et al. | FSquaDRA: Fast detection of repackaged applications | |
CN103679031B (zh) | 一种文件病毒免疫的方法和装置 | |
Sejfia et al. | Practical automated detection of malicious npm packages | |
US8875303B2 (en) | Detecting pirated applications | |
US10387889B1 (en) | Brand recognition and protection in mobile applications | |
CN102985928A (zh) | 识别多态性恶意软件 | |
Khanmohammadi et al. | Empirical study of android repackaged applications | |
Huang et al. | Android malware development on public malware scanning platforms: A large-scale data-driven study | |
CN110298171A (zh) | 移动互联网大数据应用的智能检测与安全防护方法 | |
Suarez-Tangil et al. | Thwarting obfuscated malware via differential fault analysis | |
KR101605783B1 (ko) | 악성 애플리케이션 탐지 방법 및 이 방법을 실행시키는 컴퓨터프로그램 | |
US11550926B2 (en) | Managing the loading of sensitive modules | |
CN109492392B (zh) | 一种核心函数的检测方法及*** | |
Ishii et al. | Appraiser: A large scale analysis of android clone apps | |
KR20150089664A (ko) | 모바일 악성코드 탐지 시스템 | |
TW201911102A (zh) | 利用多維度自動判定Android App惡意程度的方法 | |
Faruki | Techniques For Analysis And Detection Of Android Malware... | |
Weissbacher | Measurement and Detection of Security Properties of Client-Side Web Applications | |
CN116961993A (zh) | 服务配置方法、***、设备及介质 |