TWI396995B - 惡意軟體清除方法、系統及電腦程式產品與儲存媒體 - Google Patents

惡意軟體清除方法、系統及電腦程式產品與儲存媒體 Download PDF

Info

Publication number
TWI396995B
TWI396995B TW098124903A TW98124903A TWI396995B TW I396995 B TWI396995 B TW I396995B TW 098124903 A TW098124903 A TW 098124903A TW 98124903 A TW98124903 A TW 98124903A TW I396995 B TWI396995 B TW I396995B
Authority
TW
Taiwan
Prior art keywords
node
program
mark
malicious
nodes
Prior art date
Application number
TW098124903A
Other languages
English (en)
Other versions
TW201104489A (en
Inventor
Shih Yao Dai
Yu Chen Chang
Jain Shing Wu
Chih Hung Lin
Yen Nun Huang
Sy Yen Kuo
Original Assignee
Inst Information Industry
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inst Information Industry filed Critical Inst Information Industry
Priority to TW098124903A priority Critical patent/TWI396995B/zh
Priority to US12/571,447 priority patent/US8490192B2/en
Publication of TW201104489A publication Critical patent/TW201104489A/zh
Application granted granted Critical
Publication of TWI396995B publication Critical patent/TWI396995B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

惡意軟體清除方法、系統及電腦程式產品與儲存媒體
本發明是有關於一種清除惡意軟體的機制,且特別是有關於利用關聯圖找出所有與惡意程序相關的程序與元件之惡意軟體的清除方法、系統及所使用之電腦程式產品與儲存媒體。
電腦資訊的發達不僅對社會造成重大影響,也改變人類的生活習慣。人們更是越來越倚賴電腦系統來進行各種作業。而當中許多行為更是透過網際網路來進行,例如瀏覽網頁、收發郵件、網路購物等等。據此,許多不肖份子為了達成某種企圖而製造出惡意軟體(Malicious Software,Malware)來對電腦系統進行入侵。倘若使用者的電腦系統所連線的另一端為惡意網站,其電腦系統便會遭受到惡意軟體的入侵。
由於惡意軟體會威脅電腦系統上機密資訊的安全或是對電腦系統造成傷害,因此任何使用電腦系統或網路之機關團體,無不耗費人力、物力來阻止惡意軟體的入侵。其中多半是利用防毒軟體來進行掃毒的動作。一般而言,防毒軟體公司會對這些惡意軟體進行捕獲,並分析出這些惡意軟體所對應的特徵碼,以提供掃毒軟體在發現惡意軟體入侵時將這些具有特徵碼的惡意軟體移除。
然而,惡意軟體主要有兩種元件,一個是負責攻擊電腦系統的攻擊元件,另一個是負責幕後操控與維護這些惡意程序的幕後操控元件(Instigator)。由於幕後操控元件僅在入侵的電腦系統中負責維護的工作,其並不直接參與攻擊電腦系統,以致於防毒軟體公司並不容易發現它的存在,也就不可能歸納出幕後操控元件的特徵碼,因此無法順利的將幕後操控元件清除乾淨。當攻擊元件被掃毒軟體發現並刪除後,幕後操控元件仍可透過複製產生或下載新的攻擊元件,持續地竊取被入侵地電腦系統的機敏資訊,造成企業或個人在不知不覺下持續外洩具有價值的資料,或持續破壞電腦系統,導致財產及聲譽的損失。
本發明提供一種惡意軟體的清除方法,無論電腦系統尚未被惡意軟體入侵,或已被入侵,都能夠找出與惡意軟體相關的元件並將其清除。
本發明提供一種惡意軟體的清除系統,藉由關聯圖來找出幕後主控元件,據此可將惡意軟體完全移除。
本發明提出一種惡意軟體的清除方法。首先,建立一關聯圖,此關聯圖包括多個節點,這些節點分別對應至作業系統的程序(process)及與這些程序相關的元件,而這些節點之間的關聯是依據這些程序與元件之間的關係所建立。之後,當滿足一預設條件時,對關聯圖進行節點標示動作。上述節點標示動作包括沿著節點的輸出關聯及進入關聯兩者或其中之一進行標示。另外,節點標示動作更包括:將惡意程序的節點及其相關聯的節點標示上第一標記;接著,將未標示上第一標記之正常程序的節點及其相關聯的節點標示上第二標記;之後,針對同時標示上第一標記與第二標記的節點進行篩選,使得各節點僅標示上第一標記與第二標記其中之一。最後,便可清除被標示上第一標記之節點所對應的程序及元件。
另外,本發明提出一種惡意軟體的清除系統,其包括關聯圖建立模組、惡意軟體偵測模組以及可疑物件區別模組。關聯圖建立模組是用以建立一關聯圖。在此,關聯圖包括多個節點,這些節點分別對應作業系統的多個程序及與這些程序相關的元件,而這些節點之間的關聯是依據程序與元件之間的關係而建立。惡意軟體偵測模組是用以在作業系統中偵測惡意程序。當滿足一預設條件時,藉由可疑物件區別模組對關聯圖進行節點標示動作。上述節點標示動作包括沿著節點的輸出關聯及進入關聯兩者或其中之一進行標示。具體而言,節點標示動作包括將惡意程序的節點及其相關聯的節點標示上第一標記;將未標示上第一標記之正常程序的節點及其相關聯的節點標示上第二標記;以及針對同時標示上第一標記與第二標記的節點進行篩選,使得各節點僅標示上第一標記與第二標記其中之一。而可疑物件區別模組在完成節點標示動作之後,便會將被標示上第一標記之節點所對應的程序及元件清除。
在本發明之一實施例中,上述節點標示動作是依據一節點標示規則,判斷各節點的標記是否能夠沿著輸出關聯及進入關聯兩者或其中之一進行標示,以決定節點的標記是否繼續擴散至其相關聯的節點來進行標示。
在本發明之一實施例中,上述針對同時標示上第一標記與第二標記的節點進行篩選的步驟包括:當其中一個節點被同時標示上第一標記與第二標記時,判斷此節點是否存在於白名單中,以重新將此節點標示為第一標記或第二標記。具體而言,若節點不存在於白名單中,則重新將此節點標示為第一標記,並且將與此節點相關聯的節點標示上第一標記。反之,若節點存在於白名單中,則對此節點進行檢驗動作以判斷其是否受到惡意程序的感染。上述檢驗動作是藉由一雜湊演算法來檢驗節點所對應的程序或元件是否遭到惡意程序的感染。當此節點所對應的程序或元件並未受到惡意程序的感染,重新將此節點標示為第二標記;而當此節點所對應的程序或元件受到惡意程序的感染,利用一回復機制來復原此節點所對應的程序或元件。而在利用回復機制來復原節點所對應的程序或元件之後,重新將此節點標示為第二標記。
在本發明之一實施例中,上述預設條件為自這些程序中搜尋到惡意程序,並且惡意程序欲開始危害作業系統。或者,預設條件為自這些程序中搜尋到惡意程序,並且此惡意程序的節點上產生了進入關聯。
本發明另提供一種電腦程式產品,其包括多個程式指令,而這些程式指令用以載入一電腦系統中並且使得電腦系統執行上述惡意軟體的清除方法。
本發明亦提供一種電腦可讀取儲存媒體,其儲存一電腦程式。上述電腦程式用以或入至電腦系統中並且使得電腦系統執行上述之惡意軟體的清除方法。
基於上述,本發明是根據作業系統中程序的行為,建立所有程序與元件之間的關聯圖,藉以做為找尋被惡意程序所感染之元件的依據。另外,在關聯圖中進行節點標示動作,不僅能將與惡意程序相關的元件找出來,更能進一步找出幕後操控元件,而能夠完全移除惡意軟體。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明一實施例所繪示的惡意軟體的清除方法的流程圖。請參照圖1,首先,在步驟S105中,建立關聯圖。在此,關聯圖記錄了作業系統所執行的程序與相關元件之間彼此的關聯,藉此可完整得知與各個程序有關的所有元件。各程序的相關元件例如可執行檔(file)、動態鏈結程式庫(Dynamic Link Library,DLL)、子程序(sub process)、網路連線、作業系統設定等。上述作業系統由一電腦系統執行,上述的各程序相關元件存在於此電腦系統的記憶體與硬碟等儲存裝置之中。
一般而言,程序與作業系統之間的溝通是透過系統呼叫(system call)來使用作業系統提供的資源。例如,開啟檔案要透過相關的系統呼叫,否則便無法開啟檔案。同樣地,惡意程序亦要先透過系統呼叫才能夠危害電腦。而所謂系統呼叫是用來提供程序與作業系統之間的介面,大致可分為以下五類:程序控制(process control)、檔案管理(file management)、裝置管理(device management)、資訊維護(information maintenance)以及通訊(communication)。據此,攔截系統呼叫便能夠得知目前程序的行為,而攔截系統呼叫的技術例如為Heng Yin及Dawn Song於2007年在ACM計算機與通信安全會議(Association for Computing Machinery Conference on Computer and Communications Security)所提出的Panorama:Capturing System-wide Information Flow for Malware Detection and Analysis所述。
本實施例攔截每一個程序的系統呼叫,藉以監控每一個程序在電腦系統的行為。當此程序與其他元件有關連時,便在關聯圖上記錄下此關聯。在此,上述關聯圖包括多個節點,這些節點分別對應作業系統的多個程序及與這些程序相關的元件,而這些節點之間的關聯是依據程序與元件之間的關係而建立。
以下便舉例來說明建立關聯圖的方法。圖2是依照本發明一實施例所繪示的攔截系統呼叫所得到的部分資料的示意圖。圖3A與圖3B是依照圖2所繪示的關聯圖的示意圖。請參照圖2、圖3A與圖3B,圖2所示為攔截系統呼叫所得到的程序4的部分資料,而圖3A與圖3B則是依據圖2所建立的關聯圖,其中節點P4為程序4所對應的節點。
在圖2中,第一行LoadLibraryA與KERNEL32.DLL是代表載入KERNEL32.DLL這個DLL。此時,如圖3A所示,節點P4產生一輸出關聯而與節點DLL相關聯,節點DLL即表示KERNEL32.DLL。另外,第二行GetProcAddress與CreateProcessA代表自KERNEL32.DLL取得CreateProcessA這個指令的位址。由於CreateProcessA指令位於KERNEL32.DLL中,因此關聯圖的建立亦如同圖3A所示(表示不需再建立另一條關聯)。又,第三行的資料與第二行資料相似,即CopyFileA指令位於KERNEL32.DLL中,因此關聯圖的建立亦如同圖3A所示。而第四行CreateProcessA與FileName代表執行了子程序。此時,關聯圖中的元件關係則如圖3B所示,節點P4產生一輸出關聯而與節點SP相關聯,節點SP即表示上述子程序。
基於上述,根據攔截所有程序的系統呼叫的內容,便可將所有相關連的程序描繪出彼此的關連性。為了更清楚地描述關聯圖的建立,以下再舉一實施例來說明。圖4是依照本發明一實施例所繪示的關聯圖的示意圖。請參照圖4,在此,假設攔截程序1、2、3、4的系統呼叫,且各程序所對應的節點分別為節點P1、P2、P3、P4。
當作業系統執行一個程序時,在關聯圖中便會建立與此程序的相關元件所對應的節點。例如,程序1是由可執行檔所執行的,於是在節點P1中產生一輸入關聯以與節點F1相關聯。之後,當作業系統執行程序2時,除了可執行檔以外尚需要外部DLL的支援,據此在關聯圖中,由節點P2建立一條進入關聯與節點F2相關聯,並且建立一條輸出關聯與節點NT.DLL相關聯。以此類推,程序3、4亦如此。
在圖4中,由於程序4登記在作業系統的ASEP(Auto Start Extension Point,自動啟動延伸點)之中,因此每次開機時,節點P4對應的程序4會自動被啟動,也因此圖4中有一個關聯自節點ASEP進入節點P4。此外,程序4亦執行了多個子程序(SP)、使用網路連線(L),並且載入了多個DLL。
值得一提的是,在建立關聯圖的過程中,惡意程序監控程式也會同時偵測是否存在惡意程序,若偵測到惡意程序時會立即在關聯圖中標示出來。惡意程序監控程式可以使用任何一種現有技術來偵測惡意程序,例如使用特徵碼來偵測。倘若偵測到任何一個程序曾經透過任何技巧來判斷惡意程序是否還依然存活,則此程序則可能為用來監控惡意程序的幕後操控元件(Instigator),進而在關聯圖中記錄此一程序與惡意程序之間的關聯。
在此,假設程序4為惡意程序,且程序1曾經偵測過程序4是否還依然存活。據此,在圖4中,節點P4會產生一進入關聯而與節點P1相關聯。
接著,返回圖1,在建立關聯圖之後,如步驟S110所示,當電腦系統滿足一預設條件時,便會開始對關聯圖中的各節點進行節點標示動作。舉例來說,當惡意程序欲開始危害作業系統時,則停止建立關聯圖而開始節點標示動作。又例如,當惡意程序在關聯圖中被標示出來,且惡意程序的節點上產生了進入關聯時(例如圖4中節點P1關聯到節點P4),則停止建立關聯圖而開始節點標示動作。
上述惡意程序危害作業系統的行為可事先針對惡意程序來進行歸納,以得知惡意程序可以進行如何的行為來危害作業系統。然,在此僅為舉例說明,並不以此為限。
另外,節點標示動作是沿著各節點的進入關聯或是輸出關聯來進行標示。在此,每個節點依據其類別會有不同的節點標示規則,而依據節點標示規則來判斷各節點的標記是否能夠沿著輸出關聯或進入關聯進行標示,據以決定節點的標記是否繼續擴散至其相關聯的節點來進行標示。
例如,程序的節點標示是沿著其輸出關聯及進入關聯向外進行雙向擴散標示。另外,例如DLL的節點標示則僅能由與其相關的節點經由進入關聯擴散進來,而無法由DLL節點本身來向外擴散標示。以圖4而言,即是由節點P4(或是節點P2或節點P3)擴散標示至節點NT.DLL,之後,便不再由節點NT.DLL向外繼續擴散標示。此外,ASEP的節點標示則是雙向擴散標示。以圖4而言,當自節點P4擴散標示至節點ASEP之後,再由節點ASEP擴散標示至節點File。
接著,舉一實施例來詳細說明步驟S110的流程。圖5是依照本發明一實施例所繪示的節點標示動作的流程圖。請參照圖5,首先,在步驟S505中,將惡意程序的節點及其相關聯的節點標示上第一標記。在此,例如藉由將節點著色來進行標示。例如,在經由惡意程序偵測技術偵測到惡意程序時,將關聯圖中惡意程序對應的節點塗上第一顏色,並且根據上述的節點標示規則進行擴散,將與惡意程序的相關元件所對應的節點亦塗上第一顏色。
接著,在步驟S510中,將末標示上第一標記的正常程序的節點標示上第二標記,並且根據上述的節點標示規則進行擴散,將相關聯的節點標示上第二標記。例如,將末被著色的正常程序與其相關元件皆標示為第二顏色。
之後,在步驟S515中,針對同時標示上第一標記與第二標記的節點進行篩選,使得各節點僅標示上第一標記或第二標記。由於在經過節點標示動作之後,被正常程序及惡意程序所共同使用的元件,其節點可能會同時被標示上第一標記與第二標記,因而需要進一步分析判斷此節點要標示為第一標記或是第二標記。
以圖4為例,圖6A及圖6B是依照本發明一實施例所繪示的節點標示的示意圖。請參照圖6A及圖6B,當偵測到程序4為惡意程序時,將節點P4標示上第一顏色,並且將程序4的相關元件皆標示上第一顏色,如圖6A所示。接著,將未被著色的正常程序2、3與其相關元件對應的節點皆標示為第二顏色。據此,僅將節點P2、P3與其相關節點標示為第二顏色,如圖6B所示。
值得注意的是,節點P2、節點P3及惡意程序的節點P4皆與節點NT.DLL有所關連。這是因為節點NT.DLL所對應的元件為重要的DLL,而幾乎所有的程序都必須載入它。因此,倘若因為節點NT.DLL與節點P4(惡意程序)相關聯而遭刪除,則電腦系統便無法正常運作。為了避免這種情形產生,在本實施例中,當節點被同時標示上第一標記與第二標記時,便會再進一步去判斷此一節點的元件是否被惡意程序所感染。
以下舉一實施例來詳細說明步驟S515的流程。圖7是依照本發明一實施例所繪示的篩選同時被標示上雙標記的節點的流程圖。請參照圖7,在步驟S705中,在進行標示之後的節點中,判斷是否有節點同時被標示上第一標記與第二標記。若是,執行步驟S710;若否,則如步驟S735所示,結束節點標示。
在步驟S710中,判斷此節點是否存在白名單中。這個白名單是預設的,其中記錄了作業系統中會被所有程序共同使用的、不可刪除的重要元件,例如NT.DLL。一般而言,共用的元件在各個作業系統裡面是固定的,所以可以事先將共用元件設定至白名單中。因此,倘若被標示上雙標記的節點所對應的元件不存在白名單中,即表示此節點並不會被其他正常程序所使用,則如步驟S715所示,重新將此節點標示為第一標記,並且依據節點標示規則進行擴散,重新將與此節點相關聯的節點標示上第一標記,然後重複執行步驟S705。
另一方面,倘若被標示上雙標記的節點所對應的元件 存在於白名單中,表示此節點的元件有可能被惡意程序所感染,之後如步驟S720所示,對此節點進行檢驗動作以判斷此節點是否受到惡意程序的感染。例如,藉由雜湊演算法來檢驗節點所對應的程序或元件是否遭到惡意程序的感染。在此,雜湊演算法例如為訊息摘要演算法(Message-Digest Algorithm 5,MD5)或是安全雜湊標準(Secure Hash Standard,SHA)演算法。藉由雜湊演算法來計算共用元件的核對值(checksum),藉此與前次的作業系統檢查點(checkpoint)所記錄之同一元件的核對值進行比對。如果同一元件的前後兩個核對值相同,就能確定共用元件沒有被惡意程序感染,如果不同就表示共同元件已被感染。
一般作業系統具有一檢查點機制,以在系統更新之後,將檢查點的資訊備份下來。據此,可利用前次檢查點所儲存的元件來判斷目前使用的元件是否被感染。
接著,若是判斷此節點的元件並未受到惡意程序所感染,則如步驟S725所示,重新將此節點標示為第二標記。之後重複執行步驟S705,直至所有節點僅標示第一標記或是第二標記。相反地,若此節點的元件已受到惡意程序所感染,則如步驟S730所示,利用回復機制來復原此節點所對應的程序或元件。例如,可以重新自資料庫中取得一個未感染的元件,或利用網路下載未感染的元件;或者,利用前次檢查點所記錄的元件來進行復原。之後,返回步驟S725,重新將此節點標示為第二標記,並且重複執行步驟S705,直至所有節點僅標示第一標記或是第二標記。
最後,返回圖1,在結束節點標示動作之後,如步驟S115所示,在電腦系統的記憶體和硬碟等儲存裝置中,清除僅被標示上第一標記之節點所對應的程序及元件。
值得注意的是,惡意程序為了要每次開機都能控制電腦系統,因此惡意程序每次開機會自動執行,而不用經過使用者的同意。例如在ASEP中會有一個特定的關聯指向特定的可執行檔。因此,當節點ASEP被標示上第一標記時,並不會刪除節點ASEP,而是將ASEP裡面跟惡意程序相關的設定清除。也就是說,不同節點的清除定義皆不相同,可事先制定清除節點的規定,以做為後續參考依據。
另外,本發明另提供一種惡意軟體的清除系統。圖8是依據本發明一實施例所繪示的惡意軟體清除系統的方塊圖。請參照圖8,惡意軟體清除系統800包括關聯圖建立模組803、惡意軟體偵測模組805以及可疑物件區別模組801。
關聯圖建立模組803是用以建立一關聯圖。在此,關聯圖的建立如上述步驟S105所述,故在此不再贅述。惡意軟體偵測模組805是用以在作業系統中偵測惡意程序。可疑物件區別模組801則是在滿足一預設條件時,對關聯圖進行節點標示動作。而節點標示動作如上述步驟S110所述(包括步驟S505~步驟S515以及步驟S705~步驟S735),在此亦不再贅述。而可疑物件區別模組801在完成節點標示動作之後,便會將被標示上第一標記之節點所對應的程序及元件清除,如上述步驟S115所述。
圖8的惡意軟體清除系統800可以是欲保護的作業系統的一部分,也可以獨立於欲保護的作業系統之外。若是作業系統的一部分,則必須修改欲保護的作業系統,將惡意軟體清除系統800併入其中。若是獨立於欲保護的作業系統之外,可以將惡意軟體清除系統800實施為虛擬主機(virtual machine)軟體的一部分,使用此虛擬主機軟體執行欲保護的作業系統。
本發明另提供一種電腦程式產品,其是由多個程式指令,並且這些程式碼片段在載入電腦系統中並執行之後,即可完成上述惡意程序的清除方法的步驟。另外,本發明更提供一種電腦可讀取儲存媒體,以儲存一電腦程式,此電腦程式在載入至電腦系統中並執行之後,即可完成上述惡意程序的清除方法的步驟。
綜上所述,上述惡意軟體的清除方法是先建立關聯圖,透過惡意軟體偵測技術將惡意程序對應的節點標示出來,之後再對關聯圖進行節點標示動作,以得知惡意程序與哪些元件相關。下一步再針對可疑元件執行進一步的檢驗,以找出是否有元件受到惡意程序的感染,之後再清除掉。據此,在上述實施例中,不只能找出惡意程序,亦能夠找出與惡意程序相關的元件,並且更可找到隱藏的幕後操控元件,以將惡意程序完全移除。即使惡意程序使用亂數產生檔名,在關聯圖中也會被標示,無所遁形。此外,即便電腦系統已經中毒,亦可在中毒之後再進行部署以清除惡意軟體,也就是不論電腦系統是否已遭受惡意軟體感染皆能藉由上述方法來進行掃毒動作。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
800...惡意軟體清除系統
801...可疑物件區別模組
803...關聯圖建立模組
805...惡意軟體偵測模組
S105~S115...本發明一實施例之惡意軟體的清除方法各步驟
S505~515...本發明一實施例之節點標示動作各步驟
S705~S735...本發明一實施例之篩選被標示上雙標記的節點各步驟
圖1是依照本發明一實施例所繪示的惡意軟體的清除方法的流程圖。
圖2是依照本發明一實施例所繪示的攔截系統呼叫所得到的部分資料的示意圖。
圖3A與圖3B是依照圖2所繪示的關聯圖的示意圖。
圖4是依照本發明一實施例所繪示的關聯圖的示意圖。
圖5是依照本發明一實施例所繪示的節點標示動作的流程圖。
圖6A及圖6B是依照本發明一實施例所繪示的節點標示的示意圖。
圖7是依照本發明一實施例所繪示的篩選被標示上雙標記的節點的流程圖。
圖8是依據本發明一實施例所繪示的惡意軟體清除系統的方塊圖。
S105~S115...本發明一實施例之惡意軟體的清除方法各步驟

Claims (17)

  1. 一種惡意軟體的清除方法,包括:建立一關聯圖,該關聯圖包括多個節點,該些節點分別對應至一作業系統的多個程序及與該些程序相關的元件,其中該些節點之間的關聯是依據該些程序與該些元件之間的關係而建立;當滿足一預設條件時,對該關聯圖進行一節點標示動作,其中該節點標示動作包括沿著該些節點的一輸出關聯及一進入關聯兩者或其中之一進行標示,該節點標示動作更包括:將一惡意程序的節點及其相關聯的節點標示上一第一標記;將末標示上該第一標記之正常程序的節點及其相關聯的節點標示上一第二標記;以及針對同時標示上該第一標記與該第二標記的節點進行篩選,使得各該些節點僅標示上該第一標記與該第二標記其中之一;以及清除被標示上該第一標記之節點所對應的程序及元件。
  2. 如申請專利範圍第1項所述之惡意軟體的清除方法,其中該節點標示動作是依據一節點標示規則,判斷各該些節點的標記是否能夠沿著該輸出關聯及該進入關聯兩者或其中之一進行標示,以決定該些節點的標記是否繼續擴散至其相關聯的節點來進行標示。
  3. 如申請專利範圍第1項所述之惡意軟體的清除方法,其中針對同時標示上該第一標記與該第二標記的節點進行篩選的步驟包括:當該些節點其中之一被同時標示上該第一標記與該第二標記時,判斷該節點是否存在於一白名單中,以重新將該節點標示為該第一標記或該第二標記。
  4. 如申請專利範圍第3項所述之惡意軟體的清除方法,其中判斷同時被標示上該第一標記與該第二標記的節點是否存在於該白名單的步驟包括:若該節點不存在於該白名單中,則重新將該節點標示為該第一標記,並且將與該節點相關聯的節點標示上該第一標記;以及若該節點存在於該白名單中,則對該節點進行一檢驗動作以判斷該節點是否受到該惡意程序的感染。
  5. 如申請專利範圍第4項所述之惡意軟體的清除方法,其中該檢驗動作包括:藉由一雜湊演算法來檢驗該節點所對應的程序或元件是否遭到該惡意程序的感染;當該節點所對應的程序或元件並未受到該惡意程序的感染,重新將該節點標示為該第二標記;當該節點所對應的程序或元件受到該惡意程序的感染,利用一回復機制來復原該節點所對應的程序或元件。
  6. 如申請專利範圍第5項所述之惡意軟體的清除方法,其中在利用該回復機制來復原該節點所對應的程序或元件的步驟之後,更包括:重新將該節點標示為該第二標記。
  7. 如申請專利範圍第1項所述之惡意軟體的清除方法,其中該預設條件為自該些程序中搜尋到該惡意程序,並且該惡意程序欲開始危害該作業系統。
  8. 如申請專利範圍第1項所述之惡意軟體的清除方法,其中該預設條件為自該些程序中搜尋到該惡意程序,並且該惡意程序的節點上產生該進入關聯。
  9. 一種惡意軟體的清除系統,包括:一關聯圖建立模組,建立一關聯圖,該關聯圖包括多個節點,該些節點分別對應一作業系統的多個程序及與該些程序相關的元件,其中該些節點之間的關聯是依據該些程序與該些元件之間的關係而建立;一惡意軟體偵測模組,在該作業系統中偵測一惡意程序;以及一可疑物件區別模組;其中,當滿足一預設條件時,藉由該可疑物件區別模組對該關聯圖進行一節點標示動作,該節點標示動作包括沿著該些節點的一輸出關聯及一進入關聯兩者或其中之一進行標示,該節點標示動作更包括:將該惡意程序的節點及其相關聯的節點標示上一第一標記;將未標示上該第一標記之正常程序的節點及其相關聯的節點標示上一第二標記;以及針對同時標示上該第一標記與該第二標記的節點進行篩選,使得各該些節點僅標示上該第一標記與該第二標記其中之一;之後,該可疑物件區別模組清除被標示上該第一標記之節點所對應的程序及元件。
  10. 如申請專利範圍第9項所述之惡意軟體的清除系統,其中該可疑物件區別模組是依據一節點標示規則,判斷各該些節點的標記是否能夠沿著該輸出關聯及該進入關聯兩者或其中之一進行標示,以決定該些節點的標記是否繼續擴散至其相關聯的節點來進行標示。
  11. 如申請專利範圍第9項所述之惡意軟體的清除系統,其中該可疑物件區別模組針對同時標示上該第一標記與該第二標記的節點進行篩選的步驟更包括:當該些節點其中之一被同時標示上該第一標記與該第二標記時,判斷該節點是否存在於一白名單中;若該節點不存在於該白名單中,則重新將該節點標示為該第一標記,並且將與該節點相關聯的節點標示為該第一標記;以及若該節點存在於該白名單中,則對該節點進行一檢驗動作以判斷該節點是否受到該惡意程序的感染。
  12. 如申請專利範圍第11項所述之惡意軟體的清除系統,其中該可疑物件區別模組所進行的該檢驗動作包括:藉由一雜湊演算法來檢驗該節點所對應的程序或元件是否遭到該惡意程序的感染;當該節點所對應的程序或元件並未受到該惡意程序的感染,重新將該節點標示為該第二標記;當該節點所對應的程序或元件受到該惡意程序的感染,利用一回復機制來復原該節點所對應的程序或元件。
  13. 如申請專利範圍第12項所述之惡意軟體的清除系統,其中該可疑物件區別模組在利用該回復機制來復原該節點所對應的程序或元件的步驟之後,更包括:重新將該節點標示為該第二標記。
  14. 如申請專利範圍第9項所述之惡意軟體的清除系統,其中該預設條件為當該惡意軟體偵測模組自該些程序中搜尋到該惡意程序,並且偵測到該惡意程序欲開始危害該作業系統。
  15. 如申請專利範圍第9項所述之惡意軟體的清除系統,其中該預設條件為當該惡意軟體偵測模組自該些程序中搜尋到該惡意程序,並且在該關聯圖中該惡意程序的節點上產生該進入關聯。
  16. 一種電腦可讀取儲存媒體,儲存一電腦程式,該電腦程式用以載入至一電腦系統中並且使得該電腦系統執行如申請專利範圍第1項所述之惡意軟體的清除方法。
  17. 一種電腦程式產品,包括多個程式指令,該些程式指令用以載入一電腦系統中並且使得該電腦系統執行如申請專利範圍第1項所述之惡意軟體的清除方法。
TW098124903A 2009-07-23 2009-07-23 惡意軟體清除方法、系統及電腦程式產品與儲存媒體 TWI396995B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098124903A TWI396995B (zh) 2009-07-23 2009-07-23 惡意軟體清除方法、系統及電腦程式產品與儲存媒體
US12/571,447 US8490192B2 (en) 2009-07-23 2009-10-01 Method and system for cleaning malicious software and computer program product and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098124903A TWI396995B (zh) 2009-07-23 2009-07-23 惡意軟體清除方法、系統及電腦程式產品與儲存媒體

Publications (2)

Publication Number Publication Date
TW201104489A TW201104489A (en) 2011-02-01
TWI396995B true TWI396995B (zh) 2013-05-21

Family

ID=43498436

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098124903A TWI396995B (zh) 2009-07-23 2009-07-23 惡意軟體清除方法、系統及電腦程式產品與儲存媒體

Country Status (2)

Country Link
US (1) US8490192B2 (zh)
TW (1) TWI396995B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119940A1 (en) * 2010-03-26 2011-09-29 Telcordia Technologies, Inc. Detection of global metamorphic malware variants using control and data flow analysis
US8566944B2 (en) * 2010-04-27 2013-10-22 Microsoft Corporation Malware investigation by analyzing computer memory
JP5665188B2 (ja) * 2011-03-31 2015-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウエア更新を適用した情報処理装置を検査するシステム
US8042186B1 (en) * 2011-04-28 2011-10-18 Kaspersky Lab Zao System and method for detection of complex malware
US8918879B1 (en) * 2012-05-14 2014-12-23 Trend Micro Inc. Operating system bootstrap failure detection
US11457029B2 (en) * 2013-12-14 2022-09-27 Micro Focus Llc Log analysis based on user activity volume
US9900342B2 (en) 2014-07-23 2018-02-20 Cisco Technology, Inc. Behavioral white labeling
JP6267089B2 (ja) * 2014-09-25 2018-01-24 株式会社日立製作所 ウイルス検知システム及び方法
CN104866764B (zh) * 2015-06-02 2017-10-03 哈尔滨工业大学 一种基于对象引用图的Android手机恶意软件检测方法
US9967267B2 (en) 2016-04-15 2018-05-08 Sophos Limited Forensic analysis of computing activity
US12093383B2 (en) 2016-04-15 2024-09-17 Sophos Limited Tracking malware root causes with an event graph
US10671725B2 (en) * 2018-03-20 2020-06-02 Didi Research America, Llc Malicious process tracking
US12019742B1 (en) * 2018-06-01 2024-06-25 Amazon Technologies, Inc. Automated threat modeling using application relationships
US10938839B2 (en) 2018-08-31 2021-03-02 Sophos Limited Threat detection with business impact scoring
US11120169B1 (en) * 2019-12-19 2021-09-14 NortonLifeLock Inc. Systems and methods for identifying malware locations based on analyses of backup files
US11706252B1 (en) * 2021-12-27 2023-07-18 Wiz, Inc. Detecting malware infection path in a cloud computing environment utilizing a security graph

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200842716A (en) * 2007-02-28 2008-11-01 Microsoft Corp Spyware detection mechanism
TW200846968A (en) * 2007-05-24 2008-12-01 Microsoft Corp Anti-virus scanning of partially available content
US20090049552A1 (en) * 2005-09-16 2009-02-19 Sana Security Method and Apparatus for Removing Harmful Software
US20090183261A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Malware detection with taint tracking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090049552A1 (en) * 2005-09-16 2009-02-19 Sana Security Method and Apparatus for Removing Harmful Software
TW200842716A (en) * 2007-02-28 2008-11-01 Microsoft Corp Spyware detection mechanism
TW200846968A (en) * 2007-05-24 2008-12-01 Microsoft Corp Anti-virus scanning of partially available content
US20090183261A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Malware detection with taint tracking

Also Published As

Publication number Publication date
TW201104489A (en) 2011-02-01
US8490192B2 (en) 2013-07-16
US20110023120A1 (en) 2011-01-27

Similar Documents

Publication Publication Date Title
TWI396995B (zh) 惡意軟體清除方法、系統及電腦程式產品與儲存媒體
US10984097B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
CN109684832B (zh) 检测恶意文件的系统和方法
US7870612B2 (en) Antivirus protection system and method for computers
US7934261B1 (en) On-demand cleanup system
US20240012907A1 (en) Cloud based just in time memory analysis for malware detection
JP4807970B2 (ja) 自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理
US8935791B2 (en) Asynchronous filtering and processing of events for malware detection
US20140053267A1 (en) Method for identifying malicious executables
US7620990B2 (en) System and method for unpacking packed executables for malware evaluation
US8079085B1 (en) Reducing false positives during behavior monitoring
JP2019082989A (ja) 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法
CN110119619B (zh) 创建防病毒记录的系统和方法
US20140165130A1 (en) Application-specific re-adjustment of computer security settings
KR101132197B1 (ko) 악성 코드 자동 판별 장치 및 방법
EP2306356B1 (en) Asynchronous processing of events for malware detection
US10880316B2 (en) Method and system for determining initial execution of an attack
CN101996287B (zh) 恶意软件清除方法及系统
Al-Sofyani et al. A Survey of Malware Forensics Analysis Techniques and Tools
EP3522058B1 (en) System and method of creating antivirus records
JP2009271686A (ja) ネットワークシステム、マルウェア検出装置、マルウェア検出方法、プログラム及び記録媒体
CN116975857A (zh) 勒索软件检测方法、系统、设备及存储介质
CN118627068A (zh) 一种windows内存木马的检测方法
Abdul-Amir A Trust System Based on Multi Level Virus Detection