TW201319863A - 用於防止惡意軟體執行的方法與系統 - Google Patents

用於防止惡意軟體執行的方法與系統 Download PDF

Info

Publication number
TW201319863A
TW201319863A TW101121939A TW101121939A TW201319863A TW 201319863 A TW201319863 A TW 201319863A TW 101121939 A TW101121939 A TW 101121939A TW 101121939 A TW101121939 A TW 101121939A TW 201319863 A TW201319863 A TW 201319863A
Authority
TW
Taiwan
Prior art keywords
code
executable
memory
executable memory
block
Prior art date
Application number
TW101121939A
Other languages
English (en)
Other versions
TWI567580B (zh
Inventor
Jonathan E Andersson
Shannon Cash
Guy A Stewart
Original Assignee
Standard Microsyst Smc
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 Standard Microsyst Smc filed Critical Standard Microsyst Smc
Publication of TW201319863A publication Critical patent/TW201319863A/zh
Application granted granted Critical
Publication of TWI567580B publication Critical patent/TWI567580B/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

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

Abstract

一種在計算機裝置中用於防止惡意軟體執行的方法與系統。該方法包括載入碼至該計算機裝置的一非可執行記憶體中,並使與該碼有關聯的一驗證簽章有效。接著,該碼被解密,而且最後一旦確定該驗證簽章係有效時,執行該被解密的碼。

Description

用於防止惡意軟體執行的方法與系統
本發明係關於惡意軟體的領域,尤指惡意軟體的偵測。
越來越多的電腦與計算機裝置經由各種的網路(例如網際網路)被互相連接,安全性變得越來越重要,尤其是從網路或是資訊流所傳送的入侵或攻擊。這些攻擊以許多不同的形式出現,例如病毒、蠕蟲及木馬程式,其利用一或多個電腦系統弱點來達成非法的目的。然而熟習此項技術者將瞭解到各種電腦攻擊係獨特地與另一個有區別,為了該描述的目的,所有的惡意電腦程式係歸類於惡意軟體。一般來說,惡意軟體將在無擁有者的同意下進行破壞、降級或滲透一計算機裝置。
安全積體電路(ICs,Integrated Circuits)為了防範攻擊而利用一些安全措施,其中該安全措施之特徵為防止載入可疑碼。此類的技術也用於防止具有加密技術的誤傳導攻擊(fault induction attacks),其中該誤傳導攻擊係能夠攻擊可疑碼的執行。然而,該等特徵在每天時常不能停止新的攻擊發生。此外,當啟動該IC,這些特徵可能尚未被初始化而容易被繞過或篡改。
為了克服這些攻擊,一些硬體與軟體技術開始被提出。硬體技術包括增加矽資源(silicon resources)至該IC 中,例如硬化重置電路系統或額外的靜電放電(ESD,Electrostatic Discharge)保護。其他的增加部分可包括如電源調節器(欠壓/過壓保護)與內部振盪器。然而,硬體的解決方式相當昂貴。
軟體技術包括測量,例如執行遮蔽堆疊(shadow stacks)(手動,複製追蹤與驗證程式資訊流控制的堆疊)、驗證簽章及加密演算法。然而,軟體的解決方式係朝向增加需要降低攻擊風險的投入水平(level of effort)。舉例來說,在啟動載入該IC之前,與該啟動碼有關聯的數位簽章被驗証以識別該惡意軟體。然而,攻擊者可能會經由各種方法例如感應短時脈衝波干擾(inducting glitches)或計時器篡改(clock manipulation)來略過該簽章驗證步驟以強迫執行該惡意軟體。
因此將高度地希望具有簡單與有效的機構來用於防止惡意軟體執行以抵抗不希望得到的攻擊。
本發明揭示描述一種在計算機裝置中用於防止惡意軟體執行的方法與系統。該方法包括從一外部裝置載入碼至該計算機裝置的一非可執行記憶體中,並驗證與該碼有關聯的一驗證簽章。接著,一旦確定該驗證簽章係有效時,該碼被解密且該被解密的碼係執行在一可執行記憶體中。
本發明另一具體實施例揭示描述一種防止惡意軟體執行的系統。該系統包括從一外部裝置接收碼的可執行記憶 體與一非可執行記憶體。可執行記憶體與非可執行記憶體係記憶體區段,該等記憶體區段係分別能夠指令執行及不能夠指令執行。該系統也包括一處理器,該處理器驗證與該碼有關聯的一驗證簽章,以及解密該碼。接著,該處理器一旦確定該驗證簽章係有效時,執行該被解密的碼在該可執行記憶體中。
下述的詳細描述係參考該等圖式。例示的具體實施例係描述例示揭露之標的,並不限於該等附加的申請專利範圍所定義的範圍。
本發明揭露描述一種在計算機裝置中用於防止惡意軟體執行的方法及系統。該方法保證從一外部來源接收的碼之一區塊或韌體係被載入至該裝置之一非可執行記憶體。一處理器驗證與該碼有關聯的一驗證簽章,並接著在該非可執行記憶體中解密該碼。一旦該驗證簽章係有效時,使用一可執行記憶體並接著執行該已解密的碼。
該惡意軟體偵測技術防止惡意軟體進入該可執行記憶體。在非可執行記憶體中,同時地驗證與解密該碼之區塊。若該碼係有效的,並且使用一正確安全性金鑰,該可執行記憶體接收驗證的與已解密的碼可以因此被執行。因為惡意軟體係使用一不正確安全性金鑰來非加密或加密,使得該惡意軟體的解密產生不可執行的資料。因此,該惡意軟體達到該可執行記憶體為未驗證與不可執行的碼。由於本 發明揭露係防止惡意軟體執行,因此能夠抵抗攻擊。
本發明揭露的態樣可幫助執行一安全性積體電路(IC,Integrated Circuit)的安全性啟動載入。當從一外部來源接收啟動碼可能不會有效,本發明揭露以可執行的形式在IC之可執行記憶體中,防止該可疑碼的進入。該等具體實施例在以下被描述用於一安全性IC來使用一例示的啟動-載入程序以防止惡意軟體執行。然而,本發明揭露並不僅限於特定已揭露的啟動-載入程序。本技術領域的通常知識者將理解,該惡意軟體偵測技術適用於任何計算機裝置,其可從外面裝置防止執行的可疑碼或載入韌體。
第1圖例示一系統100的一例示的具體實施例,其允許一IC 102從一外部記憶體裝置104安全地起動。該IC 102包括一處理器106,該處理器106可操作的執行功能,例如藉由執行儲存在該外部記憶體裝置104的啟動碼108來載入啟動。內部的一隨機存取記憶體(RAM,Random Access Memory)110儲存藉由該處理器106所執行的碼。一啟動碼載入器112從該外部記憶體裝置104取得該啟動碼108並傳至該RAM 110。該啟動載入器112可以任何形式的非揮發性記憶體而被儲存在該IC 102中,該非揮發性記憶體包括唯讀記憶體(ROM,Read Only Memory)、電子抹除式可編程唯讀記憶體(EEPROM,Electrically Erasable Programmable Read Only Memory)、快閃記憶體(Flash Memory)、一次性可編程(OTP,One Time Programmable)。本發明揭露的具體實施例描述儲存在啟動唯讀記憶體 113(ROM,Boot Read Only Memory)的啟動碼載入器112。
該系統100藉由僅執行安全啟動碼來提供用於安全啟動的一安全性機構。為了此目的,該RAM 110係分成兩個區段:一可執行RAM 114與一非可執行RAM 116。首先,該啟動碼108被載入至該非可執行RAM 116,其中該處理器106用於執行在轉移該碼108至該可執行RAM 114之前,驗證該碼108。更進一步地,該碼108在該非可執行RAM 116中被解密。熟習此項技術者將理解的是解密惡意碼將造成不可執行的資料。本發明揭露在該啟動階段期間,藉由在該非可執行RAM 116中解密與同時驗證該啟動碼108,防止從任何時候執行未驗證的碼。該系統100可具體化於任何已知安全IC,例如該IC 102,其為了多種目的應用而使用於多種不同的裝置。該IC 102可提供不同的服務或功能,例如電話、電視、音響及網際網路的存取等。在本發明揭露的一具體實施例中,該IC 102可為一嵌入式控制器、電腦卡或類似的積體電路。
該IC 102包括該RAM 110,其用於儲存從該外部記憶體裝置104接收的啟動碼108。如已討論的,該RAM 110係分成兩個區段:該可執行RAM 114,其中從該隨機存取記憶體114的碼之執行係被授權;以及該非可執行RAM 116,其中從該非可執行RAM 116的碼之執行係不被允許。為了例示之目的,該系統100描述該RAM 110,然而,熟習此項技術者將瞭解可使用任何已知可更改的記憶體裝置,例如動態隨機存取記憶體(DRAM,Dynamic Random Access Memory)及靜態隨機存取記憶體(SRAM,Static Random Access Memory)。
該外部記憶體裝置104可透過安全或不安全的網路而被耦合至該IC 102以提供啟動元件至該IC 102。應瞭解的是從一外部記憶體裝置載入的韌體可能不安全。另外,該外部裝置可透過有線或是無線手段(例如:通用序列匯排流(USB,Universal Serial Bus)介面或是藍芽)來耦合至該IC 102。該外部記憶體裝置104可包括任何已知的計算機裝置,或可為一合適的記憶體裝置,例如一NAND快閃記憶體、NOR快閃記憶體或硬碟。
該啟動碼108可包括需要啟動該IC 102的啟動元件。通常,該啟動碼108可為“大尺寸”可執行的碼。該名詞“大尺寸”係指該碼大於該可執行/非可執行RAM有效的尺寸。因此,該碼108係分成複數區塊108-A、108-B等。該碼108可係分成數個區塊,且這些區塊在一指定的順序中可以被載入至該非可執行RAM 116。在本發明揭露的另一具體實施例中,不需要將碼分開,且因此只有碼之一區塊被載入至該非可執行RAM 116。
從該外部記憶體裝置104載入的啟動碼108可為安全或惡意軟體。該名詞“安全啟動碼”藉由一處理器(例如該處理器106)描述程式指令為可解釋或可執行的,且該處理器為可信任的。舉例來說,安全碼可藉由維持在該IC 102中之持久的記憶體中之優點而被瞭解為可信任的。另外,該碼108可以藉由從一信任的來源所接收之效果被確定為 “安全碼”。熟習此項技術者將理解僅安全啟動碼應執行在IC 102上以降低誤加密的傳導攻擊之風險。該等名詞“安全碼”、“信任碼”及“驗證碼”在全發明揭露中可以被替換地使用。
為了驗證安全啟動碼的確實性,該啟動碼108可包括完成資料編碼、加密、驗證簽章及其他已知的技術。一般來說,藉由使用一合適的安全性金鑰來加密該啟動碼108 以回應從該IC 102存取該啟動碼108的一要求,其中該合適的安全性金鑰與該IC 102共用。在該IC 102的末端,該處理器106使用相同的安全性金鑰來解密該加密的碼108以產生可執行的碼。在本發明揭露的一具體實施例中,該啟動碼108可包括執行資料加密演算法,例如高階加密標準(AES,Advanced Encryption Standard)加密。熟習此項技術者將瞭解任何已知資料的加密技術可以被使用來提供安全性特徵給該IC 102。另外,當驗證該碼108時,該碼108以驗證或數位簽章來簽署。
可能造成該安全IC 102損害的可疑啟動碼被視為惡意軟體。應瞭解的是惡意軟體包含不加密或未驗證的加密。因為僅有該外部記憶體裝置104與該IC 102知道該安全性金鑰,任何試圖藉由惡意軟體來代替該安全啟動碼108將造成不正確的解密碼而使得該碼不可操作。解密該惡意軟體造成不可執行的資料被視為混淆資訊。進一步地,該惡意軟體通常不包含一簽章或包含一無效簽章。該等名詞“惡意軟體碼”、“惡意軟體”及“可疑碼”在全發明揭露中可以被 替換地使用。
該處理器106確認用於該IC 102的安全啟動載入。在啟動載入的期間,該處理器106驗證與該啟動碼108有關聯的驗證簽章以呈現在該非可執行RAM 116中。當該碼108係分成複數區塊時,該處理器106累加與每一區塊有關聯的簽章。該處理器106亦解密載入至該非可執行RAM 116的碼之區塊,且轉移該被解密的碼至該可執行RAM 114。在該非可執行RAM 116中解密該碼108會造成可以執行的碼或混淆資訊。接著,該處理器106執行載入至該可執行RAM 114的可執行的碼。該處理器106可為任何合適的處理器形式,例如一中央處理單元(CPU,Central Processing Unit)、繪圖處理核心或其他合適的可編程處理電路系統,但不限於此。
應瞭解的是該系統100在本質上為例示且可預期數種變化,而不違反所請發明的領域或目的。第2圖例示該系統100的另一具體實施例,其使該IC 102從該外部記憶體裝置104安全地啟動。該IC 102包括該RAM 110,其中該RAM 110可不係分成兩個區段(如第1圖所示)。反而,該RAM 110基於該啟動碼108的確實性而從非可執行轉換為可執行。為了此目的,第2圖描述的具體實施例包括一指令執行停止模組202,其使該處理器的能力能夠或不能夠執行儲存在該RAM 110的碼。
如圖所示,RAM 110包括一單一區塊,其藉由該停止模組202而不能初始地用於初始碼執行。該啟動碼載入器 112自該外部記憶體裝置104載入該區塊108-B。該非執行RAM 110不允許指令的執行。接著,該處理器106確認與該區塊108-B有關的驗證簽章。一旦該等簽章被驗證過,該停止模組202切換該RAM 110至可執行記憶體而能夠使碼執行。假使該等簽章係無效的,則本具體實施例標記該碼108為非信任(un-trusted),以防止它的執行。
有一些機械裝置可以被使用從一記憶體(例如RAM 110)來控制指令執行。舉例來說,一哈佛架構(Harvard architecture)機器可藉由用於指令與資料之一分離的存儲與路徑而提供供此特徵。於該指令途徑上的解密碼器可以因為可疑的編碼而失能,又當與該碼108相關的簽章被驗證過而能夠解密碼,且該編碼被解密碼。在另一執行情況中,一范紐曼型架構(Von Neumann architecture)使用一單一路徑與存儲以保持指令,且資料可以被使用,並且取出指令包含該可疑碼的RAM 110之區域將會失敗。在此,該解密碼器被修改,且可需要執行一特殊功能,例如寫入至在一之前指令取出的一特殊暫存器。不適當寫入至該暫存器將導致碼執行失敗。
第3圖概述用於防止惡意軟體的一示範方法之流程圖。當從一外部來源載入韌體或碼時,該方法300提供一抵抗給一計算機裝置來防備碼攻擊。該記算計設備包含具有一可執行部分與一非可執行部分的內部記憶體。該方法300可在該IC 102(第1圖)上實施以執行安全啟動。如上所討論的,如該啟動碼108的軔體之大小通常很大,且基於 該內部記憶體的大小而分成兩個區塊。
該方法300在步驟302開始,其中一碼之區塊係被載入至該非可執行記憶體。當該IC 102打開或需要軟體更新時,該IC 102要求評估儲存於外部裝置101的碼108。使用該啟動碼載入器112以回應該區塊108-A被載入至該非可執行RAM 116。
在步驟304中,與該碼之區塊有關的一驗證或數位簽章係被累加。該處理器106識別與該區塊102-A有關的驗證簽章,並為了確認目的而儲存此簽章於該非可執行RAM 116。該碼108係分成兩個區塊,僅當所有的區塊係載入至該非可執行RAM 116以及對應的簽章為組合時,合適的簽章確認將有可能。
在步驟306中,載入至該非可執行記憶體的碼之區塊係被解密碼。該領域熟習此項技術者將理解自一外部來源載入碼以避免碼攻擊。通常,使用一安全金鑰來加密該碼,且此安全金鑰係提供至計算機裝置以執行成功的碼解密。如上述所討論的,解密未加密的惡意軟體會造成加擾資料。
在步驟308中,已被解密之碼係轉移至該可執行記憶體,例如該可執行RAM 114。接著,該方法300確認被載入的碼之區塊是否為步驟310的最後區塊。該方法300保證該碼所有的區塊(例如該碼108)係載入至該非可執行RAM 116。在方法300的一具體實施例中,該碼基於其大小可能不會係分成複數區塊,且僅需要載入碼的一單一區塊。假使碼的所有區塊不被載入,則該方法300將回去步 驟302,即碼的下個區塊係載入至該非可執行a記憶體。該方法步驟302至步驟308重複進行,直到載入碼的最後區塊。
一旦載入碼的所有區塊,且對應的簽章被累加,在步驟312中,該方法300使該被累加簽章為有效。在步驟314中,該方法300識別簽章是否有效。假使該簽章為有效,在步驟316中,則該方法300執行轉移至可執行記憶體之碼的已解密碼之區塊。假使該簽章為無效,在步驟318中,則該方法300不執行作為識別該碼為惡意軟體之無效簽章的碼之已解密碼之區塊。
第4說明用於防止惡意軟體執行的一方法400之另一具體實施例。該方法400可在IC 102上(第1圖)實施以執行安全啟動。該IC 102包括該RAM 110,該RAM 110包含一單一部分,其在可執行與非可執行間切換,如第2圖所數。在另一執行情況,該RAM 110可係分成可執行與非可執行RAM(第1圖)。
該方法400在步驟402開始,一碼之區塊係載入至該RAM 110。該啟動碼載入器112載入例如該區塊108-B的一區塊至非可執行RAM 116,其中不能執行碼。在一執行情況,該區塊108-B係載入至該非可執行RAM 116。在另一執行情況,該碼108基於其大小而不能係分成複數區塊,且僅載入需要碼的一單一區塊。
在步驟404中,驗證與每一碼之區塊有關的數位或驗證簽章。該領域所屬技術領域者將瞭解每一碼之區塊可包 括完整的簽章,因此每一區塊可以單獨地有效。基於該簽章,該方法400標記該碼為可疑的或安全的。在步驟406中,該方法400驗證該區塊108-B是否為安全的。假使與該區塊108有關的簽章為有效的,則在步驟408中,該方法400標記該區塊為安全的。
假使與該區塊108-B有關的簽章為無效的,則在步驟410中,該區塊係被標記為可疑的。標記為可疑的區塊保證碼的區塊決不執行在記憶體中。為此目的,碼的區塊也從未轉移至該可執行RAM 114,或該RAM 110不能執行該區塊。在步驟412中,該方法400中止載入碼的其餘部分,例如該碼108被識別為惡意軟體。
假使該區塊108-B係被標記為安全的,在步驟414中,該方法400解密該區塊102-B。解密該安全碼的區塊會造成可執行資料。接著,在步驟416中,執行此可執行資料。在一執行情況中,該區塊108-B係轉移至該可執行RAM 114以用於執行。在另一執行情況中,該RAM 110能夠執行該安全區塊108-B。
應瞭解該方法400係被描述用來啟動碼108,其藉由一驗證簽章而被加密與簽署。在一第一種情況中,該碼108不能藉由一驗證簽章而被簽屬,但是可以使用一金鑰來加密。然而,在一第二種情況中,該碼108可以被簽署,但是不能被加密。
在該第一種情況中,該方法400可能無法驗證與碼之區塊有關的任何簽章。因此,步驟404至412無法按照該 方法400而執行;反而載入至該RAM 110之碼的每一區塊係被解密,其後能夠用於執行。如可疑的碼係使用不正確的金鑰來加密,解密碼之區塊將造成加擾資料,其不被執行。如果發生該第二種情況,在方法步驟414中,執行解密的區塊會被略過,且該安全碼會直接執行。
在本發明所揭露論述的方法與系統提供一機械裝置來防止在一安全計算機裝置上執行可疑的碼,其藉由使該碼在一非可執行記憶體或不能執行的記憶體中有效或解密。當有效與解密步驟係實施在該非可執行記憶體中時,該可執行記憶體接收驗證與解密的碼,該碼為安全碼,或未驗證與干擾碼無法被執行,並被視為惡意軟體。在任一例子中,一惡意使用者無法植入可執行惡意軟體至該安全IC裝置的可執行記憶體中。
所屬技術領域之通常知識者將瞭解上述所討論的步驟在所揭示的具體配置可被合併或改變。該等所說明的步驟被用來解釋所示之具體實施例,且應預料到正在進行中技術發展將改變本發明中特定函數的執行方式。這些圖式不用來限制本發明所揭示之範圍,僅藉由參照該等附加的申請專利範圍來判定。
100‧‧‧系統
102‧‧‧IC
104‧‧‧外部記憶體裝置
106‧‧‧處理器
108‧‧‧碼
108-A~108-N‧‧‧區塊
110‧‧‧RAM
112‧‧‧啟動碼載入器
113‧‧‧ROM
114‧‧‧可執行RAN
116‧‧‧非可執行RAM
200‧‧‧系統
202‧‧‧停止模組
300‧‧‧方法
302~318‧‧‧步驟
400‧‧‧方法
402~412‧‧‧步驟
該等圖式的描述陳列如下並說明本發明一些示例性具體實施例。所有的圖式中,類似的參考元件符號歸類於相同或功能類似的元件。該等圖式在本質上係說明性,並非 按比例繪製。
第1圖為根據本發明揭露來說明在一積體電路的防止惡意軟體執行之一例示的系統。
第2圖例示在如第1圖所示的積體電路上之防止惡意軟體執行的一系統之另一具體實施例。
第3圖係用於防止惡意軟體的一示範方法之流程圖。
第4圖係用於防止惡意軟體的一另一示範方法之流程圖。
100‧‧‧系統
102‧‧‧IC
104‧‧‧外部記憶體裝置
106‧‧‧處理器
108‧‧‧碼
108-A~108-N‧‧‧區塊
110‧‧‧RAM
112‧‧‧啟動碼載入器
113‧‧‧ROM
114‧‧‧可執行RAN
116‧‧‧非可執行RAM

Claims (20)

  1. 一種用於防止惡意軟體執行的方法,該方法包含:載入碼至一非可執行記憶體中;使與該碼有關聯的一驗證簽章有效;解密該碼;以及一旦確定該驗證簽章係有效時,執行該被解密的碼在該可執行記憶體中。
  2. 如申請專利範圍第1項所述之方法,其中該碼在該載入步驟前係分成複數區塊的一組。
  3. 如申請專利範圍第2項所述之方法,其中該載入步驟包括載入每一個區塊至該非可執行記憶體中。
  4. 如申請專利範圍第2項所述之方法,其中該有效步驟包括累加與從該區塊的一組之每一個區塊有關聯之驗證簽章與使該累加的驗證簽章有效。
  5. 如申請專利範圍第2項所述之方法,其中該有效步驟包括假使該驗證簽章係有效則標記該碼的區塊為安全。
  6. 如申請專利範圍第2項所述之方法,其中該有效步驟包括假使該驗證簽章係無效則標記該碼的區塊為可疑。
  7. 如申請專利範圍第4項所述之方法,其中該解密步驟包括自該等區塊的一組來解密每一個區塊。
  8. 如申請專利範圍第7項所述之方法,其中該執行步驟包括一旦確定該被累加的驗證簽章係有效時,對於該區塊的一組執行該被解密的碼。
  9. 如申請專利範圍第1項所述之方法,其中當使用一合適的 金鑰加密該碼時,該解密步驟造成可執行資料。
  10. 如申請專利範圍第1項所述之方法,其中當使用一不合適的金鑰加密該碼時,該解密步驟造成不可執行資料。
  11. 如申請專利範圍第1項所述之方法,其中該執行步驟包括轉移該被解密的程式從非可執行記憶體至該執行前的可執行記憶體。
  12. 如申請專利範圍第1項所述之方法,其中該執行步驟包括一旦確定該驗證簽章係有效時,轉換該非可執行記憶體成為該可執行記憶體。
  13. 一種用於防止惡意軟體執行的系統,該系統包含:一非可執行記憶體配置成用於接收被執行的碼;一可執行記憶體;以及一處理器,其配置成用於:驗證與載入至該非可執行記憶體之碼有關聯的一驗證簽證;解密該碼;一旦確定該驗證簽章係有效時,執行該被解密的碼在該可執行記憶體中。
  14. 如申請專利範圍第13項所述之系統,其中該記憶體為隨機存取記憶體(RAM,Read Access Memory)。
  15. 如申請專利範圍第13項所述之系統,其中當使用一合適的金鑰加密該碼時,該處理器解密該碼來提供可執行資料。
  16. 如申請專利範圍第13項所述之系統,其中假使用一不合適的金鑰加密該碼時,該處理器解密該碼來提供非可執行資 料。
  17. 如申請專利範圍第16項所述之系統,其中造成具有一無效的驗證簽章之不可執行資料的碼成為惡意軟體。
  18. 如申請專利範圍第13項所述之系統,其中該處理器更配置成用於轉移該被解密的碼從該非可執行記憶體至該可執行記憶體。
  19. 如申請專利範圍第13項所述之系統,其中該處理器在一旦確定該驗證簽章係有效時,更配置成用於切換該非可執行記憶體成為該可執行記憶體。
  20. 如申請專利範圍第13項所述之系統,其中該碼包括至少一個:加密;或驗證簽章。
TW101121939A 2011-06-23 2012-06-19 用於防止惡意軟體執行的方法與系統 TWI567580B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/166,849 US20120331303A1 (en) 2011-06-23 2011-06-23 Method and system for preventing execution of malware

Publications (2)

Publication Number Publication Date
TW201319863A true TW201319863A (zh) 2013-05-16
TWI567580B TWI567580B (zh) 2017-01-21

Family

ID=47362979

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101121939A TWI567580B (zh) 2011-06-23 2012-06-19 用於防止惡意軟體執行的方法與系統

Country Status (2)

Country Link
US (1) US20120331303A1 (zh)
TW (1) TWI567580B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI791418B (zh) * 2015-12-08 2023-02-11 美商飛塔公司 用以檢測運作時期所產生碼中之惡意碼的系統及方法、與相關電腦程式產品

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5988473B2 (ja) * 2011-09-20 2016-09-07 株式会社Dnpハイパーテック モジュールの暗号化/復号化プログラム
US8776223B2 (en) * 2012-01-16 2014-07-08 Qualcomm Incorporated Dynamic execution prevention to inhibit return-oriented programming
US9135435B2 (en) 2013-02-13 2015-09-15 Intel Corporation Binary translator driven program state relocation
US20150067314A1 (en) * 2013-08-30 2015-03-05 Timothy J. Strauss Secure firmware flash controller
US20160267273A1 (en) * 2013-11-06 2016-09-15 Mitsubishi Electric Corporation Software update apparatus and computer-readable storage medium storing software update program
KR102277666B1 (ko) * 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
FR3044786B1 (fr) * 2015-12-07 2018-07-13 Ingenico Group Procede de chargement d'une ressource informatique au sein d'un dispositif electronique, module electronique et programme d'ordinateur correspondant
TWI606361B (zh) * 2016-08-25 2017-11-21 ming-xian Wang APP Detection Unknown Pattern Acquisition and Judgment Method
CN106384047B (zh) * 2016-08-26 2019-11-15 青岛天龙安全科技有限公司 App检测未知行为采集及判断方法
JP7014969B2 (ja) * 2016-08-30 2022-02-02 株式会社ソシオネクスト 処理装置、半導体集積回路及び半導体集積回路の起動方法
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
US10747878B1 (en) * 2016-10-07 2020-08-18 Rightquestion, Llc Rapid verification of executing processes
US9858424B1 (en) 2017-01-05 2018-01-02 Votiro Cybersec Ltd. System and method for protecting systems from active content
WO2018160341A1 (en) * 2017-03-03 2018-09-07 Google Llc Secure code jump and execution gating
CN110333967B (zh) * 2019-05-09 2022-04-19 深圳市德明利技术股份有限公司 一种防止u盘数据丢失和系统损坏的方法和装置以及设备
US11347860B2 (en) * 2019-06-28 2022-05-31 Seagate Technology Llc Randomizing firmware loaded to a processor memory
CN112395598B (zh) * 2019-08-15 2024-04-19 奇安信安全技术(珠海)有限公司 指令执行序列被破坏的防护方法、装置及设备
US20210097184A1 (en) * 2019-09-27 2021-04-01 Advanced Micro Devices, Inc. Secure buffer for bootloader
US20230195860A1 (en) * 2021-12-20 2023-06-22 International Business Machines Corporation Selective on-demand execution encryption

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530752A (en) * 1994-02-22 1996-06-25 Convex Computer Corporation Systems and methods for protecting software from unlicensed copying and use
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5978484A (en) * 1996-04-25 1999-11-02 Microsoft Corporation System and method for safety distributing executable objects
US5987125A (en) * 1997-12-15 1999-11-16 Western Atlas International, Inc. Method for communicating seismic data
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US7353541B1 (en) * 1999-09-07 2008-04-01 Sony Corporation Systems and methods for content distribution using one or more distribution keys
DE60132962T2 (de) * 2000-01-21 2009-02-26 Sony Corp. Datenverarbeitungsvorrichtung und datenverarbeitungsverfahren
US7043641B1 (en) * 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
US20020124170A1 (en) * 2001-03-02 2002-09-05 Johnson William S. Secure content system and method
US20020141582A1 (en) * 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
US7254706B2 (en) * 2001-06-29 2007-08-07 Hewlett-Packard Development Company, L.P. System and method for downloading of files to a secure terminal
US6685567B2 (en) * 2001-08-08 2004-02-03 Igt Process verification
EP1471405A4 (en) * 2001-11-12 2010-01-13 Gerite Associates Ltd METHOD AND SYSTEM FOR PROTECTING INFORMATION AGAINST UNAUTHORIZED USE
CN1296790C (zh) * 2002-06-05 2007-01-24 富士通株式会社 存储器管理单元、代码验证装置以及代码译码装置
US8438392B2 (en) * 2002-06-20 2013-05-07 Krimmeni Technologies, Inc. Method and system for control of code execution on a general purpose computing device and control of code execution in a recursive security protocol
JP4073913B2 (ja) * 2002-07-09 2008-04-09 富士通株式会社 開放型汎用耐攻撃cpu及びその応用システム
EP1603001B1 (en) * 2002-08-01 2007-10-31 Matsushita Electric Industrial Co., Ltd. Apparatusses and methods for decrypting blocks of data and locating the decrypted blocks of data in memory space used for execution
GB0225649D0 (en) * 2002-11-04 2002-12-11 Transitive Technologies Ltd Incremental validation
US7305564B2 (en) * 2002-12-19 2007-12-04 International Business Machines Corporation System and method to proactively detect software tampering
US20040153644A1 (en) * 2003-02-05 2004-08-05 Mccorkendale Bruce Preventing execution of potentially malicious software
CN101241735B (zh) * 2003-07-07 2012-07-18 罗威所罗生股份有限公司 重放加密的视听内容的方法
EP1688816A4 (en) * 2003-11-28 2012-04-25 Panasonic Corp DATA PROCESSING DEVICE
JP4514473B2 (ja) * 2004-02-23 2010-07-28 富士通株式会社 コンピュータシステム、中央装置及びプログラム実行方法
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7490245B2 (en) * 2004-07-24 2009-02-10 Lenovo (Singapore) Pte. Ltd. System and method for data processing system planar authentication
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US20060053492A1 (en) * 2004-09-07 2006-03-09 Wallace David R Software tracking protection system
US7636856B2 (en) * 2004-12-06 2009-12-22 Microsoft Corporation Proactive computer malware protection through dynamic translation
US7243856B2 (en) * 2005-03-24 2007-07-17 Sandisk Il Ltd.. Loading internal applications on a smartcard
US7490352B2 (en) * 2005-04-07 2009-02-10 Microsoft Corporation Systems and methods for verifying trust of executable files
US7441094B2 (en) * 2005-07-05 2008-10-21 Microsoft Corporation Memory management configuration
US7995753B2 (en) * 2005-08-29 2011-08-09 Cisco Technology, Inc. Parallel cipher operations using a single data pass
US20070050622A1 (en) * 2005-09-01 2007-03-01 Rager Kent D Method, system and apparatus for prevention of flash IC replacement hacking attack
US7805763B2 (en) * 2005-09-29 2010-09-28 Motorola Mobility, Inc. Method for distributing values for networks with mobile nodes
US7366762B2 (en) * 2005-10-04 2008-04-29 International Business Machines Corporation Method for monitoring and reporting usage of non-hypertext markup language e-mail campaigns
US7558830B2 (en) * 2005-10-04 2009-07-07 International Business Machines Corporation Method for tagging and tracking non-hypertext markup language based e-mail
US20070168671A1 (en) * 2006-01-16 2007-07-19 Fujitsu Limited Digital document management system, digital document management method, and digital document management program
JP4655951B2 (ja) * 2006-02-06 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US20080046491A1 (en) * 2006-06-27 2008-02-21 Pixtel Media Technology (P) Ltd. Configurable unit conversion systems and methods thereof
US20100075760A1 (en) * 2006-07-10 2010-03-25 Wms Gaming Inc. Partition management in a wagering game system
WO2008028291A1 (en) * 2006-09-08 2008-03-13 Certicom Corp. Authenticated radio frequency identification and key distribution system therefor
US8201244B2 (en) * 2006-09-19 2012-06-12 Microsoft Corporation Automated malware signature generation
US20080162866A1 (en) * 2006-12-28 2008-07-03 Siddiqi Faraz A Apparatus and method for fast and secure memory context switching
US8375458B2 (en) * 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US7805598B2 (en) * 2007-05-03 2010-09-28 Dell Products L.P. Auto-detecting and auto-correcting system state changes before booting into operating systems
US7984288B2 (en) * 2007-05-21 2011-07-19 Sercomm Corporation Software protection apparatus and protection method thereof
JP5400611B2 (ja) * 2007-05-24 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びアクセス装置
US8433927B2 (en) * 2007-05-29 2013-04-30 International Business Machines Corporation Cryptographically-enabled privileged mode execution
US20090070880A1 (en) * 2007-09-11 2009-03-12 Harris David E Methods and apparatus for validating network alarms
KR20090037712A (ko) * 2007-10-12 2009-04-16 삼성전자주식회사 보안 부트-업되는 전자 장치, 그것의 해쉬값 계산 방법 및부트-업 방법
US20100146589A1 (en) * 2007-12-21 2010-06-10 Drivesentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US8307215B2 (en) * 2008-01-23 2012-11-06 Noam Camiel System and method for an autonomous software protection device
GB2457341B (en) * 2008-02-14 2010-07-21 Transitive Ltd Multiprocessor computing system with multi-mode memory consistency protection
US20090247124A1 (en) * 2008-03-04 2009-10-01 Apple Inc. Provisioning mobile devices based on a carrier profile
US8806618B2 (en) * 2008-03-31 2014-08-12 Microsoft Corporation Security by construction for distributed applications
US8950007B1 (en) * 2008-04-07 2015-02-03 Lumension Security, Inc. Policy-based whitelisting with system change management based on trust framework
US8150039B2 (en) * 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US7984286B2 (en) * 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
EP2166696B1 (fr) * 2008-08-27 2016-10-05 STMicroelectronics (Rousset) SAS Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
WO2010025318A2 (en) * 2008-08-28 2010-03-04 Motorola, Inc. Encrypting a unique cryptographic entity
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8219772B2 (en) * 2009-07-02 2012-07-10 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory
US9087195B2 (en) * 2009-07-10 2015-07-21 Kaspersky Lab Zao Systems and methods for detecting obfuscated malware
US8417889B2 (en) * 2009-07-24 2013-04-09 International Business Machines Corporation Two partition accelerator and application of tiered flash to cache hierarchy in partition acceleration
US8561183B2 (en) * 2009-07-31 2013-10-15 Google Inc. Native code module security for arm instruction set architectures
US8285987B1 (en) * 2009-12-04 2012-10-09 The United States Of America As Represented By The Secretary Of The Air Force Emulation-based software protection
JP5681028B2 (ja) * 2010-04-26 2015-03-04 パナソニック株式会社 改ざん監視システム、管理装置及び管理方法
US8527436B2 (en) * 2010-08-30 2013-09-03 Stratify, Inc. Automated parsing of e-mail messages
US8799997B2 (en) * 2011-04-18 2014-08-05 Bank Of America Corporation Secure network cloud architecture
US9753863B2 (en) * 2014-12-27 2017-09-05 Intel Corporation Memory protection with non-readable pages

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI791418B (zh) * 2015-12-08 2023-02-11 美商飛塔公司 用以檢測運作時期所產生碼中之惡意碼的系統及方法、與相關電腦程式產品

Also Published As

Publication number Publication date
US20120331303A1 (en) 2012-12-27
TWI567580B (zh) 2017-01-21

Similar Documents

Publication Publication Date Title
TWI567580B (zh) 用於防止惡意軟體執行的方法與系統
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
US8006095B2 (en) Configurable signature for authenticating data or program code
US8656146B2 (en) Computer system comprising a secure boot mechanism
KR101735023B1 (ko) 민감한 코드와 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
KR100851631B1 (ko) 보안 모드 제어 메모리
US8775784B2 (en) Secure boot up of a computer based on a hardware based root of trust
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US8464037B2 (en) Computer system comprising a secure boot mechanism on the basis of symmetric key encryption
JP5378460B2 (ja) 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法
KR101567620B1 (ko) 데이터 처리 시스템 및 방법
US9390264B2 (en) Hardware-based stack control information protection
KR20170095161A (ko) 시큐어 시스템 온 칩
EP2947594A2 (en) Protecting critical data structures in an embedded hypervisor system
WO2017000648A1 (zh) 一种被加固软件的认证方法及装置
US20160055331A1 (en) Detecting exploits against software applications
JP4791250B2 (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
US20150186681A1 (en) Method of encryption and decryption for shared library in open operating system
US20230017231A1 (en) Securely executing software based on cryptographically verified instructions
US9740837B2 (en) Apparatus and method for preventing cloning of code
US20150113281A1 (en) Multiple application platform owner keys in a secure object computer system
JP5355351B2 (ja) コンピュータ
WO2016058747A1 (en) System and method for protecting a device against attacks on procedure calls by encrypting arguments
Heath et al. A foundation for secure mobile DRM embedded security
CN102915419A (zh) 一种病毒扫描方法及扫描系统