国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用動態(tài)優(yōu)化框架的應用沙盒化的制作方法

      文檔序號:6497429閱讀:213來源:國知局
      使用動態(tài)優(yōu)化框架的應用沙盒化的制作方法
      【專利摘要】一種用于防止惡意軟件攻擊的方法,包括:在電子設備上啟動應用;攔截來自所述應用的一個或多個指令;確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖;重寫所述一個或多個指令以訪問所述電子設備的安全系統資源;在所述電子設備上執(zhí)行重寫的指令;以及觀察所述重寫的指令的結果。所述應用企圖執(zhí)行所述一個或多個指令。
      【專利說明】使用動態(tài)優(yōu)化框架的應用沙盒化

      【技術領域】
      [0001]概括地說,本發(fā)明涉及計算機安全和惡意軟件防護,更具體地說,本發(fā)明涉及使用動態(tài)優(yōu)化框架的應用沙盒化。

      【背景技術】
      [0002]計算機和其它電子設備上的惡意軟件感染是非常侵入的,并且難以檢測和修復。反惡意軟件解決方案可能需要對惡意代碼或文件的簽名與被評估軟件進行匹配來確定該軟件對計算系統是有害的。惡意軟件可以通過使用多形態(tài)的可執(zhí)行文件來偽裝自己,其中,惡意軟件改變其自身以避免被反惡意軟件解決方案檢測到。在這種情況下,反惡意軟件解決方案在零日攻擊中可能無法檢測到新的或演變的惡意軟件。惡意軟件可能包括但不限于:間諜軟件、后門、密碼竊取、垃圾郵件、網絡釣魚攻擊源、拒絕服務攻擊源、病毒、記錄器、木馬、廣告軟件、或產生不需要活動的任何其它數字內容。


      【發(fā)明內容】

      [0003]在一個實施例中,一種用于防止惡意軟件攻擊的方法包括:在電子設備上啟動應用;攔截來自所述應用的一個或多個指令;確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖;重寫所述一個或多個指令以訪問所述電子設備的安全系統資源;在所述電子設備上執(zhí)行重寫的指令;以及觀察所述重寫的指令的結果。所述應用企圖執(zhí)行所述一個或多個指令。
      [0004]在另一個實施例中,一件制造的物品包括計算機可讀介質以及所述計算機可讀介質上攜帶的計算機可執(zhí)行指令。該指令是處理器可讀取的。當被讀取和執(zhí)行時,所述指令使所述處理器用于:在電子設備上啟動應用;攔截來自所述應用的一個或多個指令;確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖;重寫所述一個或多個指令以訪問所述電子設備的安全系統資源;在所述電子設備上執(zhí)行重寫的指令;以及觀察所述重寫的指令的結果。所述應用企圖執(zhí)行所述一個或多個指令。
      [0005]在又一個實施例中,一種用于防止惡意軟件攻擊的系統包括:耦接到存儲器的處理器,以及由所述處理執(zhí)行的動態(tài)優(yōu)化框架。所述動態(tài)優(yōu)化框架位于所述存儲器內。所述動態(tài)優(yōu)化框架被配置為:在電子設備上啟動應用;攔截來自所述應用的一個或多個指令;確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖;重寫所述一個或多個指令以訪問所述電子設備的安全系統資源;在所述電子設備上執(zhí)行重寫的指令;以及觀察所述重寫的指令的結果。所述應用企圖執(zhí)行所述一個或多個指令。

      【專利附圖】

      【附圖說明】
      [0006]為了更加完整地理解本發(fā)明及其特征和優(yōu)點,現在結合附圖引用以下描述,在附圖中:
      [0007]圖1是使用動態(tài)優(yōu)化框架應用沙盒化的示例系統的圖示;
      [0008]圖2是用于對來自應用的代碼或指令進行攔截和重寫的運行時代碼操縱器和反惡意軟件模塊的配置和操作的更詳細的圖示;
      [0009]圖3是用于對來自應用的代碼或指令進行攔截和重寫的分配模塊、代碼高速緩存器、以及反惡意軟件模塊的配置和操作的更詳細的圖示;
      [0010]圖4是用于對針對電子設備上的敏感文件的指令或代碼進行重寫的反惡意軟件模塊的配置和操作的更詳細的圖示;
      [0011]圖5是用于對針對電子設備上的注冊表的指令或代碼進行重寫的反惡意軟件模塊的配置和操作的更詳細的圖示;
      [0012]圖6是用于對企圖在電子設備上進行存儲器修改的指令或代碼進行重寫的反惡意軟件模塊的配置和操作的更詳細的圖示;
      [0013]圖7是用于對企圖在電子設備上調用操作系統函數的指令或代碼進行重寫的反惡意軟件模塊的配置和操作的更詳細的圖示;
      [0014]圖8是用于對企圖在電子設備上加載內核模式驅動器的指令或代碼進行重寫的反惡意軟件模塊的配置和操作的更詳細的圖示;以及
      [0015]圖9是用于提供使用動態(tài)優(yōu)化框架的應用沙盒化的方法的示例實施例的圖示。

      【具體實施方式】
      [0016]圖1是使用動態(tài)優(yōu)化框架的應用沙盒化的示例系統100的圖示。系統100可以被配置為:以安全方式執(zhí)行應用104,以便將應用104的執(zhí)行與電子設備102的其余部分隔開。這樣的執(zhí)行隔開可以被稱為沙盒。系統100可以被配置為:提供一組安全資源讓應用104來執(zhí)行,從而使得應用104的任何惡意動作可以被重定向、監(jiān)測和記錄。系統100可以被配置為:在允許應用104在電子設備102上本地運行之前,在沙盒中操作應用104。為了以這樣的安全方式來執(zhí)行應用104,系統100可以被配置為使用動態(tài)優(yōu)化框架,其包括通信地耦接到反惡意軟件模塊110的運行時代碼操縱器106。運行時代碼操縱器106和反惡意軟件模塊110可以被配置為:攔截應用104的企圖執(zhí)行,重寫訪問敏感系統資源112的指令,對安全系統資源112執(zhí)行重寫的執(zhí)行,以及確定由應用104做出的動作是否是惡意的。
      [0017]雖然應用104代表應用,但應用104可以包括數據、文件、過程、可執(zhí)行文件、腳本、代碼或共享庫,或者由上述各項來體現。就惡意軟件來說,應用104可以是未知的或未經測試的,或者可以包括未知或未經測試的代碼。例如,應用104可以是其惡意軟件身份未知的獨立的應用。在另一個示例中,應用104可以是具有數據或代碼的已知應用,其中,這些數據或代碼的惡意軟件身份是未知的。這些示例可以包括:具有未驗證的文字處理文件的微軟? Word,具有未驗證的.PDF文件的Adobe? Acrobat?,或者具有未驗證的下載的JavaScript的網絡瀏覽器。例如,惡意軟件可以通過作為惡意應用執(zhí)行或者通過利用已知應用中的弱點來感染電子設備。惡意軟件可以通過使應用打開、運行或執(zhí)行嵌有用于利用已知應用的弱點的指令的文件或代碼來利用該已知應用的弱點。這樣的惡意軟件攻擊可以包括利用棧、堆或其它緩沖器超限(overrun)或溢出(overflow)的那些惡意軟件攻擊。
      [0018]應用104可以包括:通過網絡108從網絡目的地118下載的數據120。例如,數據120可以包括:代碼、文件、應用、腳本或其它適當的實體。網絡目的地118可以包括:服務器、網站或可由應用104或電子設備102上的另一實體訪問的其它網絡實體。網絡目的地118可以包含通過電子設備102上的惡意代理偽裝下載的數據120形式的惡意內容。例如,在電子設備102上執(zhí)行的惡意軟件可以聯系網絡目的地118來下載數據120形式的額外內容,以便利用電子設備102的系統資源112。網絡目的地118可以偽造合法數據、頁面或應用104可能企圖訪問的其它內容,并且反而可以使應用104下載惡意應用、數據、文件、代碼或數據120形式的其它內容。例如,電子設備102上的網絡瀏覽器應用可以訪問網絡目的地118來訪問看似合法的網站,但作為數據120的一部分而下載用來在電子設備102上執(zhí)行的腳本可能包括惡意軟件。
      [0019]因此,系統100可以被配置為:使用沙盒安全技術來執(zhí)行應用104,以避免執(zhí)行這種惡意內容。在一個實施例中,系統100可以被配置為:對從網絡目的地118下載數據120進行檢測,并且當應用104使用動態(tài)優(yōu)化框架時執(zhí)行這樣的數據120,以便確定應用104是否是安全。在另一個實施例中,系統100可以被配置為:對從網絡目的地118下載數據120進行檢測,并且用使用動態(tài)優(yōu)化框架的應用104來執(zhí)行這樣的內容,以便確定該內容是否是安全。
      [0020]雖然在圖1中將系統100示為在電子設備102(其可以是發(fā)起數據120的下載的電子設備102)上使用運行時代碼操縱器106和反惡意軟件模塊110,但使用運行時代碼操縱器106和反惡意軟件模塊110進行的沙盒化操作可以在單獨的電子設備上進行。例如,系統100可以包括被配置為攔截數據120的下載的網關或網絡服務器。另外,運行時代碼操縱器106和反惡意軟件模塊110可以被配置為在這樣的網關或網絡服務器上進行操作。因此,可以防止?jié)撛诘膼阂鈹祿?20甚至進入目標電子設備102所在的網絡。
      [0021]網絡108可以包括用于在電子設備102與網絡目的地118之間進行通信的任意適當的網絡、一系列網絡或網絡的部分。這樣的網絡可以包括但不限于:互聯網、內聯網、廣域網、局域網、回程網絡、對等網絡、或者它們的任意組合。
      [0022]運行時代碼操縱器106可以被配置為:在來自應用104的代碼或指令的企圖執(zhí)行在系統資源112上進行之前,攔截這樣的企圖執(zhí)行。運行時代碼操縱器可以被配置為:分析這樣的代碼或指令以便確定這些指令是否需要修改。怎樣分析給定的代碼或指令以及隨后怎樣修改這些指令可以由反惡意軟件模塊110確定。例如,訪問敏感系統資源112的代碼或指令可以被運行時代碼操縱器106攔截,通過參考反惡意軟件模塊110來分析,被確定正在訪問敏感系統資源112,被重寫以便訪問安全系統資源112,并且隨后在電子設備102上執(zhí)行。在另一個示例中,訪問非敏感系統資源112的代碼或指令可以被運行時代碼操縱器106攔截,通過參考反惡意軟件模塊110來分析,被確定正在訪問非敏感系統資源112,被保留為訪問非敏感系統資源112的原始形式,并且隨后在電子設備102上執(zhí)行。
      [0023]運行時代碼操縱器106可以被配置為:確定是否以安全方式來執(zhí)行數據120。這些確定可以是通過配置運行時代碼操縱器106訪問反惡意軟件模塊110來獲得是否以安全方式執(zhí)行數據120的標準而做出的。在一個實施例中,運行時代碼操縱器106可以被配置為:如果數據120是未知或惡意的、應用104是未知或惡意的、或者如果網絡目的地118是未知或惡意的,則以安全方式執(zhí)行數據120。
      [0024]運行時代碼操縱器106可以被配置為:基于數據120來啟動應用104。通過啟動應用104,運行時代碼操縱器106可以被配置為:攔截運行時代碼操縱器106對系統資源112的企圖訪問。
      [0025]運行時代碼操縱器106可以被配置為:訪問反惡意軟件模塊110,以便確定怎樣對所攔截的代碼或指令進行重寫,以便重定向代碼或指令的執(zhí)行、運行時代碼操縱器106。例如,訪問反惡意軟件模塊110可以通過調用由反惡意軟件模塊110暴露的函數來進行。運行時代碼操縱器106可以被配置為:允許指令或代碼(包括那些重寫的以及那些被允許保留其原始狀態(tài)的指令或代碼)在系統資源112上執(zhí)行。
      [0026]運行時代碼操縱器106可以被配置為:在代碼或指令的企圖執(zhí)行時,重寫這些代碼或指令,或者重定向這些代碼或指令的執(zhí)行。因此,運行時代碼操縱器106可以被配置為在運行時操作。此外,運行時代碼操縱器106可以被配置為:在執(zhí)行期間的任意時刻允許修改或重定向代碼或指令。因此,運行時代碼操縱器106可以被配置作為動態(tài)運行時代碼操縱器。
      [0027]反惡意軟件模塊110可以被配置為:通過使用沙盒化技術的執(zhí)行,確定應該監(jiān)測什么類型的應用104或數據120。可以向運行時代碼操縱器106提供這種確定以便攔截特定的代碼或指令。
      [0028]給定所攔截的指令或代碼,反惡意軟件模塊110可以被配置為:確定企圖的執(zhí)行是否表示對敏感的系統資源112的企圖訪問。例如,可以接收指令或代碼以進行讀或寫或修改敏感文件、修改注冊表、調用系統函數或訪問系統服務分配表格、向另一過程的存儲器讀或寫過程、或者加載內核模式驅動器。在這樣的示例中,惡意軟件可以操作以便惡意地損害或利用所描述的敏感系統資源。如果反惡意軟件模塊110確定企圖的執(zhí)行并不企圖訪問敏感資源或進行惡意操作,那么反惡意軟件模塊110可以被配置為:確定所攔截的指令或代碼并不需要被重寫。
      [0029]然而,如果反惡意軟件模塊110確定企圖的執(zhí)行并不企圖訪問敏感系統資源,那么反惡意軟件模塊110可以被配置為:確定怎樣重寫所攔截的代碼或指令??梢詫λ鶖r截的代碼或指令進行重寫以便在安全資源上執(zhí)行。在安全資源上的執(zhí)行可以限制應用104的執(zhí)行,并且作為沙盒化技術來工作。安全資源可以包括偽造的、假的、或者被配置為向應用104提供執(zhí)行所期望的指令或代碼的表觀的其它資源??梢詡卧旆祷刂?、參數或其它信息并將其返回應用104??梢杂涗泩?zhí)行和執(zhí)行的效果。例如,可以將企圖的寫入重定向到偽造的文件??梢杂涗浧髨D的寫入,以及寫入到偽造的文件的值。
      [0030]反惡意軟件模塊110或其它反惡意軟件的軟件可以被配置為:對企圖的寫入的效果進行分析,并且確定企圖的執(zhí)行是否構成惡意行為。為了做出這樣的確定,例如,反惡意軟件模塊110可以被配置為:咨詢表示指示惡意軟件的行為的行為分析規(guī)則。這樣的規(guī)則可以由反惡意軟件研究者開發(fā),并且在本地提供給反惡意軟件模塊110或者在反惡意軟件服務器上可用。例如,一些靈敏操作系統函數通??赡軆H由其它操作系統函數調用。被非授權的函數訪問可以指示惡意軟件攻擊。如果應用104企圖執(zhí)行這樣的函數,即使該企圖被重定向到偽造的函數,則反惡意軟件模塊110可以被配置為:對執(zhí)行的企圖進行分析,并且確定應用104是惡意的或者在執(zhí)行惡意代碼。反惡意軟件模塊110可以被配置為:確定惡意操作,例如企圖進行調試、終止、寫入存儲器或將代碼注入另一過程、與諸如網絡配置、用戶配置、服務調度和管理或驅動器安裝的各個操作系統服務或子系統進行交互等。
      [0031]可以允許由反惡意軟件模塊110確定以便在沙盒內安全操作的所攔截和重寫的代碼按照初始被應用104配置的來執(zhí)行。反惡意軟件模塊110可以被配置為:對應用104的全部執(zhí)行進行分析,并且確定在允許正常執(zhí)行應用104之前不存在惡意威脅。
      [0032]運行時代碼操縱器106可以由一個或多個過程、應用、腳本、可執(zhí)行文件、庫、或其它實體來實現。運行時代碼操縱器106可以包含用于執(zhí)行本文中描述的功能的指令。指令可以存儲在存儲器116中用于由處理器114執(zhí)行。在一個實施例中,可以使用DynamoR1動態(tài)插裝工具平臺來實現運行時代碼操縱器106。
      [0033]反惡意軟件模塊110可以由一個或多個過程、應用、腳本、可執(zhí)行文件、庫、或其它實體來實現。在一個實施例中,反惡意軟件模塊110可以由共享庫或動態(tài)鏈接庫(“DLL”)來實現。在另一個實施例中,反惡意軟件模塊110可以并入運行時代碼操縱器106。反惡意軟件模塊110可以包含用于執(zhí)行本文中描述的功能的指令。指令可以存儲在存儲器116中用于由處理器114執(zhí)行。
      [0034]例如,處理器114可以包括:微處理器、微控制器、數字信號處理器(DSP)、專用集成電路(ASIC)、或者被配置為解釋和/或執(zhí)行程序指令和/或過程數據的任何其它數字或模擬電路。在一些實施例中,處理器114可以解釋和/或執(zhí)行存儲在存儲器116中的程序指令和/或過程數據。存儲器116可以整體或部分被配置為應用存儲器、系統存儲器或這二者。存儲器116可以包括被配置為持有和/或容納一個或多個存儲器模塊的任何系統、設備或裝置。每一個存儲器模塊可以包括被配置為將程序指令和/或數據保留某個時間段的系統、設備或裝置(例如,計算機可讀介質)。
      [0035]當應用104的代碼或指令被運行時代碼操縱器106和反惡意軟件模塊110重寫或重定向時,應用104本身可以保持不變。此外,敏感的底層系統資源112可以保持不變。
      [0036]運行時代碼操縱器106和反惡意軟件模塊110可以被配置為在電子設備102上在用戶模式中運行。另外,運行時代碼操縱器106和反惡意軟件模塊110可以被配置為:不依賴于安裝在電子設備102上的驅動器來運行,以特別地啟用本文中描述的功能。此外,運行時代碼操縱器106和反惡意軟件模塊110可以被配置為:在沒有對電子設備102的特定硬件要求和沒有特定虛擬化特征的情況下進行操作。通過在代碼級攔截、分析和修改指令,運行時代碼操縱器106和反惡意軟件模塊110可以被配置為:在很低的級別上使代碼無害。例如,運行時代碼操縱器106和反惡意軟件模塊110可以被配置為:識別低級別磁盤驅動器或原始磁盤寫入指令。這種低級別的操作可以在沒有內核模式掛鉤、用戶模式掛鉤、或在電子設備102的操作系統中注冊的回調函數的情況下進行。因此,運行時代碼操縱器106和反惡意軟件模塊110的執(zhí)行可以與后門或掛鉤預防工具(諸如來自McAfee, Inc.或微軟? Patch Guard?的反惡意軟件產品)兼容。這樣的產品可以其它方式拒絕對需要掛鉤的沙盒化技術的訪問。運行時代碼操縱器106和反惡意軟件模塊110的執(zhí)行可以不需要整個虛擬機來模擬或仿真電子設備102。因此,與否則會需要的系統占用空間(footpringt)相t匕,運行時代碼操縱器106和反惡意軟件模塊110的執(zhí)行可以需要較小的系統占用空間。
      [0037]在操作中,反惡意軟件模塊110可以結合運行時代碼操縱器106來操作,以便保護電子設備102不遭受惡意操作。在一個實施例中,反惡意軟件模塊110和運行時代碼操縱器106可以在電子設備102上執(zhí)行。在另一個實施例中,反惡意軟件模塊110和運行時代碼操縱器106可以在服務器上執(zhí)行以便保護電子設備102不遭受惡意操作。
      [0038]應用104可能企圖訪問電子設備102上的敏感系統資源112。在Iv實施例中,應用104可以是以數據120的形式通過網絡108從網絡目的地118下載的。在另一個實施例中,數據120可以是通過網絡108從網絡目的地下載以與應用104—起使用的。反惡意軟件模塊110和運行時代碼操縱器106可以在沙盒中運行應用104的執(zhí)行或具有數據120的應用104,以便將這樣的執(zhí)行與敏感系統資源112隔離開。
      [0039]反惡意軟件模塊110和運行時代碼操縱器106可以確定是否通過任意適當的方式來在沙盒中執(zhí)行應用104。例如,如果應用104或數據120是從不受信任的或未知的網絡目的地118下載的,則可以在沙盒中執(zhí)行應用104。例如,可以通過訪問信譽服務器來做出關于網絡目的地118的這樣的確定。網絡目的地118的惡意軟件身份可以是惡意的、已知是安全、或者未知的。如果網絡目的地118的惡意軟件身份已知是惡意的或者未知的,則可以在沙盒中執(zhí)行應用104。在另一個示例中,如果應用104或數據120的惡意軟件身份是未知的或已知是惡意的,則可以在沙盒中執(zhí)行應用104。在又一個示例中,如果應用104企圖訪問敏感系統資源112,則可以在沙盒中執(zhí)彳丁應用104。
      [0040]運行時代碼操縱器106可以啟動應用104并占用應用104的地址空間。運行時代碼操縱器106可以攔截針對系統資源112的應用104的代碼或指令的企圖執(zhí)行。運行時代碼操縱器106可以訪問反惡意軟件模塊110以便確定代碼或指令的企圖執(zhí)行是否以敏感的系統資源112為目標。如果是以這些敏感資源為目標,那么可以訪問反惡意軟件模塊110以便確定怎樣對代碼或指令進行重寫以便尋址安全系統資源112。例如,可以將系統資源112的一些部分建立為沙盒存儲器。應用104所針對的一個或多個實體可以被偽造,從而使得應用104不知道其企圖已經被重定向了。
      [0041]運行時代碼操縱器106可以攔截從系統資源112到應用104的返回值或者控制轉移。系統資源112中的沙盒的元件可以偽造這些值。運行時代碼操縱器可以對控制轉移進行重定向,以便保持對應用104的操作的控制。
      [0042]反惡意軟件模塊110可以分析該操作,因為在系統資源112內該操作被隔離在了沙盒中。反惡意軟件模塊112可以確定操作是否指示惡意軟件攻擊。如果是,那么應用程序104可被清理、隔離、或者從電子設備102移除。
      [0043]圖2是用于對來自應用104的代碼或指令進行攔截和重寫的運行時代碼操縱器106和反惡意軟件模塊110的配置和操作的更詳細的圖示。
      [0044]運行時代碼操縱器106可以包括:通信地耦接到塊生成器204和代碼高速緩存器206的分配模塊202。分配模塊202、塊生成器204和代碼高速緩存器206可以實現為模塊、函數、庫或任何其它適當的實體。分配模塊202可以被配置為:攔截來自應用104的代碼或指令的企圖執(zhí)行。分配模塊202可以被配置為:向塊生成器204傳送代碼或指令。塊生成器204可以被配置為:將代碼或指令組裝成塊??梢詫⒏鱾€指令或代碼片段組裝成基本塊。然后可以將分別組裝成基本塊的指令的連續(xù)字符串或代碼片段組裝成軌跡(trace)。分配模塊202和/或塊生成器204可以通信地耦接到反惡意軟件模塊110,以便確定基本塊或字符串是否因為包含的指令或代碼針對敏感系統資源而應該被重寫。代碼或指令的基本塊或字符串可以代表順序操作且沒有分支點的代碼或指令的片段。分支點可以包括:其中接下來可以執(zhí)行代碼片段的兩個或更多個可能選擇的指令或代碼。因此,運行時代碼操縱器106可以選擇分支點作為不同的代碼片段之間的分界線。
      [0045]一旦已組裝好并且可能重寫基本塊或軌跡,則可以將其存儲在代碼高速緩存器206中。運行時代碼操縱器106下一次攔截到相同的代碼或指令時,分配模塊202可以被配置為:指導執(zhí)行存儲在代碼高速緩存器206中的相應塊或軌跡。因此,給定的一系列代碼或指令可以僅需要分析和重寫一次。當實時重寫代碼時,這加快了系統100的操作速度。代碼高速緩存器206可以被配置為:向系統資源發(fā)送適當的經分析的以及可能重寫的指令或代碼。代碼高速緩存器206可以被配置為:從系統資源接收返回信息。例如,可以將代碼或指令從代碼高速緩存器206傳遞到操作系統208,其中,代碼或指令可以應用于操作系統208或在硬件210上操作的其它實體。在企圖執(zhí)行函數、命令或系統調用之后,操作系統208可以向目的地傳送企圖的執(zhí)行,并且返回操作的結果。
      [0046]在操作中,應用104可以向諸如操作系統208或硬件210的系統資源發(fā)送代碼或指令的企圖執(zhí)行。運行時代碼操縱器106可以攔截企圖的執(zhí)行。這樣的攔截可以由分配模塊202進行。分配模塊202可以訪問塊生成器204,以便根據所攔截的代碼或指令來構建基本塊或軌跡。如果所攔截的代碼或指令是之前接收到的,那么可能已經構建了相應的基本塊或軌跡并將其存儲在了代碼高速緩存器206中。在這種情況下,分配模塊202可以使代碼高速緩存器206中的相應的基本塊或軌跡轉發(fā)到系統資源。塊生成器204、分配模塊202和/或運行時代碼操縱器106的其它部分可以訪問反惡意軟件模塊110,以便確定是否以及怎樣重寫接收到的代碼或指令。塊生成器204可以對代碼高速緩存器206的內容進行分析,以便確定代碼高速緩存器206的現有內容是否可以與接收到的并且可能被重寫了的代碼結合來形成新的軌跡??梢詫⑺玫降闹貙懙拇a或指令構建成相應的基本塊或軌跡,并將其存儲在代碼高速緩存器206中。
      [0047]與所攔截的代碼或指令相對應的重寫的指令可以由代碼高速緩存器206作為重定向的執(zhí)行發(fā)布給操作系統208或電子設備102的其它部分。重寫的指令的隨后執(zhí)行可以導致返回值被企圖發(fā)送到應用104。代碼高速緩存器206可以攔截這樣的返回值。返回值206可以用于確定接下來執(zhí)行代碼高速緩存器206的哪些部分。如果返回值206尚未由被配置為提供應用104的沙盒安全操作的安全資源修改或偽造的話,則可以偽造或修改返回值206,并將其返回應用104。
      [0048]系統資源208可以企圖向應用104轉移執(zhí)行的控制。例如,分配模塊202可以攔截這樣的企圖??梢孕薷目刂频霓D移,從而保持運行時代碼操縱器106對應用104的執(zhí)行的控制??梢韵驊?04發(fā)送經修改的或重定向的控制轉移。
      [0049]通過代碼高速緩存器206的使用,系統100可以被配置為:通過對已經重寫的指令的重用而不需要隨后對之前從應用104接收到的相同指令進行重復分析和重寫,以接近本機速度的速度進行操作。
      [0050]圖3是用于對來自應用104的代碼或指令進行攔截和重寫的分配模塊202、代碼高速緩存器206和反惡意軟件模塊110的配置和操作的更詳細的圖示。
      [0051]代碼302可以表示應用104企圖執(zhí)行的一系列指令或代碼。例如,代碼302可以包括:應用104企圖順序執(zhí)行的一系列九個指令:
      [0052]Code—segment—I
      [0053]Code—segment—2
      [0054]Code—segment—3
      [0055]Codit1nal—I
      [0056]Code—segment—4
      [0057]Code_segment_5
      [0058]Codit1nal_2
      [0059]Code_segment_4
      [0060]Code_segment_5
      [0061]Codit1nal_3
      [0062]其中,每一個〃Code_segment_N〃表示沒有決策分支的一個或多個順序指令,并且每一個“Codit1nal_N”表不在代碼302內形成決策分支的一個或多個指令。在一個實施例中,由應用104在給定的“Codit1nal_N”之后發(fā)布的代碼302的內容可以基于從執(zhí)行接收到的返回值來發(fā)送。
      [0063]對于代碼302的每一個這樣的元素來說,元素可以由分配202攔截。分配模塊202可以確定元素是否已經提交給了代碼高速緩存器206,如果是,那么元素可以分配給操作系統208。分配模塊202可以確定元素是否可以與另一元素組合以包括在代碼高速緩存器206中的軌跡。為了做出這樣的確定,分配模塊202可以檢查代碼302中的下一元素。如果代碼302中的下一元素并不包含分支操作(諸如代碼分叉、條件語句或類似的操作),那么可以對元素進行組合。如果代碼302中的下一元素包含這樣的分支操作,那么軌跡可以終止,并且可以創(chuàng)建以分支操作開始的新的軌跡??梢韵虿僮飨到y208分配組合的軌跡。
      [0064]如果元素或元素的組合以及相鄰元素尚未被提交給代碼高速緩存器206,那么可以將元素發(fā)送到塊生成器204。塊生成器204和/或分配模塊202可以確定元素是否包含對敏感資源的企圖訪問。為了做出這樣的確定,分配模塊202和/或塊生成器204可以訪問反惡意軟件模塊110。反惡意軟件模塊110還可以提供關于元素要怎樣重寫的信息,以便避免訪問敏感資源而是訪問沙盒化的或者私有資源。在一個實施例中,反惡意軟件模塊110可以重寫元素中的指令??梢詫⒔浶薷牡脑胤祷胤峙淦?02并且發(fā)送到代碼高速緩存器206。
      [0065]例如,Code_segment_l可以由分配202接收。塊生成器204和反惡意軟件模塊110可以確定Code_segment_l包含企圖訪問電子設備102的敏感資源的指令。因此,塊生成器204和反惡意軟件模塊110可以修改Code_segment_l的指令以便反而訪問沙盒化的資源。經修改的元素(被表示為Code_segment_l')可以構建為基本塊,返回分配模塊202,并且添加到代碼高速緩存器206。
      [0066]Code_segment_2可以由分配202接收。塊生成器204和反惡意軟件模塊110可以確定Code_segment_2不包含企圖訪問電子設備102的敏感資源的指令。因此,塊生成器204和反惡意軟件模塊110可以保留Code_segment_l的指令以便反而訪問沙盒化的資源。元素可以構建為基本塊,返回分配模塊202,并且添加到代碼高速緩存器206。
      [0067]Code_segment_3可以由分配202接收。塊生成器204和反惡意軟件模塊110可以確定Code_segment_3包含企圖訪問電子設備102的敏感資源的指令。因此,塊生成器204和反惡意軟件模塊110可以修改Code_segment_3的指令以便反而訪問沙盒化的資源。經修改的元素(被表示為Code_segment_3')可以構建為基本塊,返回分配模塊202,并且添加到代碼高速緩存器206。
      [0068]Codit1nal_l可以由分配202接收。塊生成器204可以識別該條件語句中斷了從應用104接收到的以Code_segment_l開始并且以Code_segment_3結束的順序指令流。塊生成器204可以根據之前存儲的與Code_segment_l'、Code_segment_2和Code_segment_3,相對應的基本塊形成軌跡,例如Trace_l??梢詫race_l傳遞到操作系統208來執(zhí)行??梢詫odit1nalj傳遞到操作系統208來執(zhí)行。可以接收作為Codit1nalj的結果的返回值。Codit1nal_l的結果可以確定要執(zhí)行的下一代碼。可以向應用104發(fā)送Codit1nal_l的結果??梢詫⑴c來自Trace_l或Codit1nal_l的響應相對應的其它返回值(其可以是偽造的)返回應用104。
      [0069]Code_segment_4可以由分配202接收。塊生成器204和反惡意軟件模塊110可以確定Code_segment_4包含企圖訪問電子設備102的敏感資源的指令。因此,塊生成器204和反惡意軟件模塊110可以修改Code_segment_4的指令以便反而訪問沙盒化的資源。經修改的元素(被表示為Code_segment_4')可以構建為基本塊,返回分配模塊202,并且添加到代碼高速緩存器206。
      [0070]Code_segment_5可以由分配202接收。塊生成器204和反惡意軟件模塊110可以確定Code_segment_2不包含企圖訪問電子設備102的敏感資源的指令。因此,塊生成器204和反惡意軟件模塊110可以保留Code_segment_5的指令以便反而訪問沙盒化的資源。元素可以構建為基本塊,返回分配模塊202,并且添加到代碼高速緩存器206。
      [0071]Codit1nal_2可以由分配202接收。塊生成器204可以識別該條件語句中斷了從應用104接收到的以Code_segment_4開始并且以Code_segment_5結束的順序指令流。塊生成器204可以根據之前存儲的與Code_segment_4 '和Code_segment_5相對應的基本塊形成軌跡,例如Trace_2??梢詫race_2傳遞到操作系統208來執(zhí)行??梢詫odit1nal_2傳遞到操作系統208來執(zhí)行。
      [0072]Code_segment_4可以由分配202接收。塊生成器204或分配模塊202可以確定Code_segment_4已經被分析、重寫并且存儲在代碼高速緩存器206中。在一個實施例中,可以將Code_segment_f發(fā)布到操作系統208來執(zhí)行。在另一個實施例中,分配模塊202可以檢查接收到的下一代碼Code_segment_5。塊生成器204或分配模塊202可以確定Code_segment_5已經被分析并且存儲在代碼高速緩存器206中。分配模塊202可以檢查接收到的下一代碼 Code_segment_3,并且確定執(zhí)行 Code_segment_4'和 Code_segment_5 的企圖與Trace_2相對應。可以將Trace_2發(fā)布到操作系統來執(zhí)行。
      [0073]圖4是用于對針對電子設備102上的敏感文件的指令或代碼進行重寫的反惡意軟件模塊110的配置和操作的更詳細的圖示。電子設備102可以包括文件406,文件406的存在或內容可以是電子設備102上的惡意軟件攻擊的對象。
      [0074]例如,應用104可以企圖使用例如具有“向文件X進行寫入”的指令的代碼片段402來向文件“X”406進行寫入。運行時代碼操縱器106可以攔截代碼片段402。運行時代碼操縱器106可以訪問反惡意軟件模塊110,以便確定代碼片段402是否是要訪問敏感系統資源的企圖。如果文件“X”406是由反惡意軟件模塊110所使用的規(guī)則所定義的這樣的敏感系統資源,那么反惡意軟件模塊110可以確定代碼片段402應該被重寫。反惡意軟件模塊110可以確定沙盒資源,例如存儲器的受保護部分、偽造的文件、或在其上可以安全地執(zhí)行指令并且可以觀察到其效果的其它這樣的資源。
      [0075]例如,反惡意軟件模塊110可以確定代碼片段402應該被修改為針對文件“Y”410。文件“Y” 410可以位于沙盒存儲器408之內,沙盒存儲器408可以是安全,以便限制和觀察所應用的指令的效果,而不會損害電子設備102的其它部分。該修改可以導致代碼片段'404,其可以包含用于“向文件Y進行寫入”的指令。經修改的指令可以存儲在沙盒記錄412中??梢栽谏澈写鎯ζ?08內觀察經修改的寫入的效果,以便確定該寫入是否產生對電子設備102的惡意企圖攻擊。反惡意軟件模塊110或其它適當的實體可以被配置為:對結果進行分析并且將結果與例如反惡意軟件簽名、反惡意軟件聲譽知識、或反惡意軟件行為規(guī)則進行比較。例如,如果向文件“Y”410寫入的內容會導致將惡意軟件代碼插入文字處理文檔中,則這樣的企圖執(zhí)行是惡意的。
      [0076]如果確定了企圖執(zhí)行是惡意的,則反惡意軟件模塊110或對經修改的指令的結果進行分析的另一個實體可以被配置為:確定應用104是惡意的、不安全、或者以其它方式與惡意軟件相關聯的??梢詫?04和電子設備102的任意相關聯的部分進行清理、隔離、或移除??梢詫⑴c應用104相關聯的數據(諸如其過程或文件的簽名、或者企圖的改變的簽名)發(fā)送到反惡意軟件服務器用于進一步的分析。
      [0077]應用104可能沒有接收到已經對文件“Y” 410而不是對文件“X” 406執(zhí)行了企圖寫入的指示。應用104可以接收來自運行時代碼操縱器106的指示:已經根據指令執(zhí)行了所請求的操作。
      [0078]雖然示出了特定的企圖寫入執(zhí)行,但系統100可以被配置為:對諸如讀、寫、刪除或創(chuàng)建的文件操作進行攔截、修改或偽造。例如,可以基于文件的標識或要寫入文件的內容,分析是否攔截給定的命令或者企圖的執(zhí)行是否是惡意。
      [0079]圖5是用于對針對電子設備102上的注冊表的指令或代碼進行重寫的反惡意軟件模塊110的配置和操作的更詳細的圖示。電子設備102可以包括操作系統注冊表503,其內容可以是電子設備102上的惡意軟件攻擊的對象。操作系統注冊表503可以被配置為:對諸如操作系統或單個應用的電子設備102的元件的操作的設置進行存儲。
      [0080]例如,應用104可以企圖訪問注冊表503,來使用具有“創(chuàng)建注冊表子項Y”的指令的代碼片段502在應用的類別之下創(chuàng)建新的子項“Y”504a。運行時代碼操縱器106可以攔截代碼片段502。運行時代碼操縱器106可以訪問反惡意軟件模塊110,以便確定代碼片段502是否是要訪問敏感系統資源的企圖。注冊表503可以是由反惡意軟件模塊110所使用的規(guī)則定義的這樣的敏感系統資源,并且因此反惡意軟件模塊110可以確定代碼片段502應該被重寫。反惡意軟件模塊110可以確定在其上可以安全地執(zhí)行指令并且可以觀察到指令的效果的沙盒資源。
      [0081]例如,反惡意軟件模塊110可以確定代碼片段502應該被修改,以便針對假的注冊表508。假的注冊表508可以被構造為電子設備102的正常注冊表,但可能位于電子設備102的安全部分內(諸如沙盒存儲器408之內)。假的注冊表508可以被配置為:看起來是注冊表503以及作為注冊表503進行響應,以便確定注冊表503的企圖訪問是否是惡意的。該修改可以導致代碼片段,506,其可以包含“創(chuàng)建假的注冊表子項Y”的指令。經修改的指令可以存儲在沙盒記錄412中。可以在假的注冊表508中創(chuàng)建與子項“Y”504a完全相同的子項“Y”504b。可以在沙盒存儲器408內觀察經修改的寫入的效果,以便確定注冊表改變是否產生了對電子設備102的惡意企圖攻擊。反惡意軟件模塊110或其它適當的實體可以被配置為對結果進行分析。例如,如果創(chuàng)建的子項“Y”504會導致對系統服務或應用的修改,從而導致惡意軟件的執(zhí)行,那么可以確定這樣的企圖執(zhí)行是惡意的。
      [0082]應用104可能沒有接收到已經對假的注冊表508而不是對注冊表503執(zhí)行了注冊表的企圖訪問的指示。應用104可以接收來自運行時代碼操縱器106的指示:已經根據指令執(zhí)行了所請求的操作。
      [0083]雖然示出了特定的企圖的注冊表訪問,但系統100可以被配置為:對諸如讀、寫、刪除、修改或創(chuàng)建的注冊表操作進行攔截、修改或偽造。例如,該操作可以由子項或子項內的數據造成。例如,可以基于進行該企圖的注冊表層級的標識或內容、注冊表子項、或注冊表子項的內容,來分析是否對給定的命令進行攔截或者企圖的執(zhí)行是否是惡意的。
      [0084]圖6是用于在電子設備102上企圖修改存儲器的指令或代碼進行重寫的反惡意軟件模塊110的配置和操作的更詳細的圖示。電子設備102可以包括分配給特定過程的存儲器,諸如過程I存儲器604。與過程I存儲器604相關聯的過程可以是電子設備102上的惡意軟件攻擊的對象。過程I存儲器604可以被配置為:對用于執(zhí)行特定過程的數據或代碼進行存儲。該過程可以包括:敏感的反惡意軟件系統或關鍵過程,其可能因為該過程的必要操作而成為惡意軟件的目標。該過程可以包括:因為過程中的已知的可利用的弱點而成為目標的過程。
      [0085]例如,應用104可以企圖使用代碼608a在特定的地址606處對過程I存儲器604進行修改。代碼608a可以包括惡意代碼。企圖可以包括:使用具有“使用代碼Y來修改地址”的指令的代碼片段602。運行時代碼操縱器106可以攔截代碼片段602。運行時代碼操縱器106可以訪問反惡意軟件模塊110,以便確定代碼片段602是否是要訪問敏感系統資源的企圖。取決于企圖的源,過程I存儲器604可以是由反惡意軟件模塊110所使用的規(guī)則定義的這樣的敏感系統資源,并且因此反惡意軟件模塊110可以確定代碼片段602應該被重寫。反惡意軟件模塊110可以確定在其上可以安全地執(zhí)行指令并且可以觀察到指令的效果的沙盒資源。
      [0086]例如,反惡意軟件模塊110可以確定代碼片段602應該被修改,以便針對沙盒存儲器408中的假的地址612。假的地址612可以被配置為:看起來是地址606并且作為地址606進行響應,以便確定地址606的企圖訪問是否是惡意的。該修改可以導致代碼片段’610,其可以包含“使用代碼Y來修改假的地址”的指令。經修改的指令可以存儲在沙盒記錄412中。可以在沙盒存儲器408中的假的地址612處而不是在過程I存儲器604中的地址606處創(chuàng)建與代碼608a完全相同的代碼608b??梢栽谏澈写鎯ζ?08內觀察經修改的寫入的效果,以便確定注冊表改變是否產生了對電子設備102的惡意企圖攻擊。反惡意軟件模塊110或其它適當的實體可以被配置為對結果進行分析。例如,如果代碼608b的執(zhí)行會包括對電子設備102的操作系統的攻擊,那么可以確定這樣的企圖執(zhí)行是惡意的。
      [0087]應用104可能沒有接收到已經對沙盒存儲器408中的假的地址612而不是對過程I存儲器604中的地址606執(zhí)行了注冊表的企圖訪問的指示。應用104可以接收來自運行時代碼操縱器106的指示:已經根據指令執(zhí)行了所請求的操作。
      [0088]雖然示出了特定的企圖的存儲器修改,但系統100可以被配置為:對諸如讀、寫、復制或刪除的存儲器操作進行攔截、修改或偽造。這些操作可以是對與給定過程相關聯的存儲器的特定部分做出的。例如,可以基于存儲器所有者的標識、存儲器模式、存儲器內訪問的地址、或者企圖修改的內容,來分析是否對給定的命令進行攔截或者企圖的執(zhí)行是否是惡意的。
      [0089]圖7是用于對企圖在電子設備102上調用操作系統函數的指令或代碼進行重寫的反惡意軟件模塊I1的配置和操作的更詳細的圖示。電子設備102可以包括位于操作系統存儲器704內并且包括一個或多個操作系統函數706的操作系統。這些函數可以是電子設備102的操作系統的特權、保留或控制關鍵函數。操作系統函數706可以是電子設備102上的惡意軟件攻擊的對象。操作系統存儲器704可以被配置為:對用于執(zhí)行操作系統函數或過程的數據或代碼進行存儲。操作系統函數706因為改變電子設備102的操作的能力,所以操作系統函數706可能是惡意軟件的目標。
      [0090]例如,應用104可以企圖執(zhí)行操作系統函數706。操作系統函數706可以是能夠影響電子設備102的關鍵操作的敏感或保留函數。由未被授權的實體執(zhí)行操作系統函數706可能導致惡意結果。企圖可以包括:使用具有“調用操作系統函數”的指令的代碼片段702。運行時代碼操縱器106可以攔截代碼片段702。運行時代碼操縱器106可以訪問反惡意軟件模塊110,以便確定代碼片段602是否是要訪問敏感系統資源的企圖。取決于企圖的源、企圖中使用的參數、或者由企圖導致的動作,操作系統函數706的執(zhí)行可以是如同由反惡意軟件模塊110使用的規(guī)則所定義的要訪問敏感系統資源的企圖。因此,反惡意軟件模塊110可以確定代碼片段702應該被重寫。反惡意軟件模塊110可以確定在其上可以安全地執(zhí)行指令并且可以觀察到指令的效果的沙盒資源。
      [0091]例如,反惡意軟件模塊110可以確定應該修改代碼片段702,以便企圖執(zhí)行諸如假的操作系統函數710的偽造的操作系統函數。假的操作系統函數710可以被配置為:看起來是操作系統函數706并且作為操作系統函數706進行響應,以便確定企圖的訪問是否是惡意的。該修改可以導致代碼片段’708,其可以包含“調用假的操作系統函數”的指令。經修改的指令可以存儲在沙盒記錄412中??梢栽谏澈写鎯ζ?08內執(zhí)行假的操作系統函數710??梢栽谏澈写鎯ζ?08內觀察執(zhí)行該函數的效果,以便確定該執(zhí)行是否產生了對電子設備102的惡意企圖攻擊。反惡意軟件模塊110或其它適當的實體可以被配置為對結果進行分析。例如,如果執(zhí)行假的操作系統函數710導致禁用反惡意軟件,那么可以確定企圖的執(zhí)行是惡意的。
      [0092]應用104可能沒有接收到操作系統函數的企圖執(zhí)行已經作為假的操作系統函數710而不是操作系統函數706執(zhí)行的指示。應用104可以接收來自運行時代碼操縱器106的指示:已經根據指令執(zhí)行了所請求的操作。
      [0093]雖然示出了對操作系統函數的特定的企圖訪問,但系統100可以被配置為:對任何適當的系統調用進行攔截、修改或偽造。例如,可以基于函數的標識、函數的模式、用于調用函數的參數、或者函數的目標實體,來分析是否對給定的函數執(zhí)行進行攔截或者企圖的執(zhí)行是否是惡意的。
      [0094]圖8是用于對企圖在電子設備102上加載內核模式驅動器的指令或代碼進行重寫的反惡意軟件模塊110的配置和操作的更詳細的圖示。電子設備102可以包括:用于重要的操作系統動作的保留存儲器,例如內核存儲器804。內核存儲器804中的內核模式驅動器806可以是電子設備102上的惡意軟件攻擊的對象。內核模式驅動器806a可以被配置為:使用特權優(yōu)先級在電子設備102中進行操作。內核模式驅動器806a可以用作基于后門的惡意軟件攻擊的一部分。例如,內核模式驅動器806a的企圖加載可以包括:以惡意方式利用已知驅動器的企圖,或者加載不安全或未知驅動器的企圖。
      [0095]例如,應用104可以企圖將內核模式驅動器806a加載到內核存儲器804中。在一個實施例中,內核模式驅動器806a可以具有未知的或不受信任的惡意軟件身份。內核模式驅動器806a可以包括:在加載之后將在電子設備102中以特權優(yōu)先級運行的惡意代碼。企圖可以包括:使用具有“加載內核模式驅動器”的指令的代碼片段802。運行時代碼操縱器106可以攔截代碼片段802。運行時代碼操縱器106可以訪問反惡意軟件模塊110,以便確定代碼片段602是否是要訪問敏感系統資源的企圖。將未知內核模式驅動器加載到內核存儲器804中,或者通過未知實體將驅動器加載到內核存儲器804中,可以是如同由反惡意軟件模塊110使用的規(guī)則定義的這樣的企圖。因此,反惡意軟件模塊110可以確定代碼片段802應該被重寫。反惡意軟件模塊110可以確定在其上可以安全地執(zhí)行指令并且可以觀察到指令的效果的沙盒資源。
      [0096]例如,反惡意軟件模塊110可以確定代碼片段802應該被修改以便在沙盒存儲器408中加載內核模式驅動器806b。內核模式驅動器806b在沙盒存儲器408中的加載可以被配置為:看起來像內核存儲器804中的內核模式驅動器806b的加載并且作為內核存儲器804中的內核模式驅動器806b的加載進行響應,從而可以確定對地址606的企圖訪問是否是惡意的。該修改可以導致代碼片段’808,其可以包含“在沙盒存儲器中加載內核模式驅動器”的指令??梢栽谏澈写鎯ζ?08內觀察內核模式驅動器810b的加載的效果,以便確定加載的內核模式驅動器810b是否產生了對電子設備102的惡意企圖攻擊。反惡意軟件模塊110或其它適當的實體可以被配置為對結果進行分析。例如,如果內核模式驅動器810的加載之后會有對電子設備102的操作系統的攻擊,那么可以確定這樣的企圖執(zhí)行是惡意的。
      [0097]應用104可能沒有接收到已經在沙盒存儲器408內而不是在內核存儲器804內執(zhí)行了內核模式驅動器810b的企圖加載的指示。應用104可以接收來自運行時代碼操縱器106的指示:已經根據指令執(zhí)行了所請求的操作。
      [0098]雖然示出了特定的驅動器操作,但系統100可以被配置為:對諸如加載、卸載或執(zhí)行的驅動器操作進行攔截、修改或偽造。該操作可以是對諸如用戶模式存儲器或內核模式存儲器的存儲器的特定部分做出的。例如,可以基于驅動器的加載器的標識、驅動器要加載到的區(qū)域、驅動器的標識、或者驅動器的隨后執(zhí)行,來分析是否對給定的驅動器操作進行攔截或者企圖的操作是否是惡意的。
      [0099]圖9是用于提供使用動態(tài)優(yōu)化框架的應用沙盒化的方法900的示例實施例的圖
      /Jn ο
      [0100]在步驟905中,可以從未知的或惡意的網絡目的地進行數據下載。數據可以包括應用(諸如未知的或惡意的應用),或者要由應用使用的數據(諸如文字處理文件或者用于網絡瀏覽器的腳本)。在步驟910中,可以啟動應用以使用數據。例如,如果數據包括應用,那么可以啟動該應用。在另一個應用中,可以識別和啟動與下載的數據一起使用的應用。應用可以由動態(tài)優(yōu)化框架來啟動以便控制應用的執(zhí)行??梢允褂脛討B(tài)優(yōu)化框架在沙盒內執(zhí)行應用。
      [0101]在步驟915中,可以對由應用發(fā)布用來執(zhí)行的指令或代碼進行攔截。指令或代碼可以包括連續(xù)指令的代碼片段。指令或代碼可以被分支點劃分成片段或軌跡。
      [0102]在步驟920中,可以確定指令或代碼是否已經在方法900的一個或多個步驟的之前執(zhí)行期間在先前被處理了。如果指令已經在先前被處理,則可以取回先前處理的指令,并且方法900可以前進到步驟935。如果指令沒有在先前被處理,那么在步驟925中可以確定指令是否正在企圖訪問敏感系統資源。例如,這樣的系統資源的訪問可以包括:讀或寫敏感系統文件、修改其它過程的存儲器、加載內核模式驅動器、調用敏感系統函數、或者訪問注冊表子項。
      [0103]在步驟930中,可以重寫指令以便將對敏感系統資源的企圖訪問重定向到沙盒化的資源。例如,可以將對文件或注冊表項的企圖寫入重定向到偽造的文件或注冊表項??梢詫ξ粗膬群四J津寗悠鞯钠髨D加載加載到沙盒存儲器。可以將對系統函數的企圖執(zhí)行重定向到偽造的系統函數。可以將對存儲器的企圖修改重定向以便在沙盒化的存儲器上進行。
      [0104]在步驟935中,重寫的指令可以由在其上執(zhí)行應用的電子設備執(zhí)行。在步驟940中,可以向應用傳遞從系統資源返回的返回值或控制轉移。返回值可以由沙盒資源或者由動態(tài)優(yōu)化框架偽造??刂妻D移可以首先由動態(tài)優(yōu)化框架攔截以便保持對執(zhí)行應用的控制。
      [0105]在步驟945中,可以觀察執(zhí)行重寫指令的結果,以便確定結果是否指示其執(zhí)行中所使用的應用或數據與惡意軟件相關聯。例如,如果惡意代碼被寫入文件或過程的存儲器、加載了惡意的內核模式驅動器、執(zhí)行了用于禁用反惡意軟件軟件的系統函數、或者寫入注冊表設置以將應用重定向到惡意網站,那么可以確定其執(zhí)行中所使用的應用或數據是與惡意軟件相關聯的。
      [0106]如果執(zhí)行重寫指令的結果并不指示惡意軟件,那么方法900可以前進到步驟960。如果執(zhí)行重寫指令的結果指示惡意軟件,那么在步驟950中,可以確定應用或應用所使用的數據是惡意的并且與惡意軟件相關聯。在步驟955中,由應用或應用使用的數據可以從執(zhí)行它們的電子設備清除。例如,應用或數據可以從未來的下載移除、隔離或阻擋。
      [0107]如果執(zhí)行重寫指令的結果不指示惡意軟件,那么在步驟960中,可以允許迄今分析了的指令的執(zhí)行。在步驟965中,可以確定應用的執(zhí)行是否完成。如果完成,那么在步驟970中,可以確定應用或應用所使用的數據是安全,并且可以允許在沒有重寫指令情況下以原始方式執(zhí)行應用。如果沒有完成,那么方法900可以返回步驟915,以便攔截來自應用的下一組代碼或指令。
      [0108]可以使用圖1-8的系統或者可操作以實現方法900的其它系統來實現方法900。因此,方法900的優(yōu)選的初始化點和組成方法900的步驟的順序可以取決于所選擇的實現。在一些實施例中,可以可選地省略、重復或組合一些步驟。在某些實施例中,方法900可以部分或完全在軟件中體現為計算機可讀介質。
      [0109]為了該公開內容的目的,計算機可讀介質可以包括可以將數據和/或指令保留一段時間的任何工具或工具的聚合。計算機可讀介質可以包括但不限于:諸如直接存取存儲設備(例如,硬盤驅動器或軟盤)、順序存取存儲設備(例如,磁帶驅動器)、壓縮盤、CD-ROM、DVD、隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、和/或閃存器的存儲介質;以及諸如線纜、光纖以及其它電磁和/或光載波的通信介質;和/或上述各種介質的任意組合。
      [0110]雖然詳細描述了本公開內容,但應該理解的是:可以在不脫離由所附權利要求書定義的本公開內容的精神和范圍的前提下對本
      【發(fā)明內容】
      做出各種變化、替代和改變。
      【權利要求】
      1.一種用于防止惡意軟件攻擊的方法,包括: 在電子設備上啟動應用; 攔截來自所述應用的一個或多個指令,所述應用企圖執(zhí)行所述一個或多個指令; 確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖; 重寫所述一個或多個指令以訪問所述電子設備的安全系統資源; 在所述電子設備上執(zhí)行重寫的指令;以及 觀察重寫的指令的結果。
      2.根據權利要求1所述的方法,還包括: 確定所述重寫的指令的結果是否指示企圖的惡意動作; 基于所述結果的確定,來確定所述應用與惡意軟件相關聯。
      3.根據權利要求1所述的方法,其中: 攔截所述一個或多個指令包括:攔截指令的第一片段和指令的第二片段;以及確定所述一個或多個指令是否包括要訪問敏感系統資源的企圖,以及重寫所述一個或多個指令包括: 確定所述第一片段是否包括要訪問第一敏感系統資源的企圖; 基于這樣的確定,重寫所述第一片段以訪問第一安全系統資源; 確定所述第二片段是否包括要訪問第二敏感系統資源的企圖;以及基于這樣的確定,重寫所述第二片段以訪問第二系統資源;配置所述應用來使用所述數據。
      4.根據權利要求1所述的方法,其中,確定所述指令是否包括要訪問敏感系統資源的企圖包括:確定所述企圖是否與在所述電子設備上的惡意軟件攻擊的已知方法相對應。
      5.根據權利要求1所述的方法,其中,重寫所述指令包括: 重寫訪問所述敏感系統資源的可疑指令;以及 保持不訪問所述敏感系統資源的非可疑指令。
      6.根據權利要求1所述的方法,還包括: 確定所述一個或多個指令是否包括要訪問所述電子設備的敏感資源的企圖的重復;以及 基于這樣的確定,在不重復對所述一個或多個指令的重寫的情況下來執(zhí)行所述重寫的指令。
      7.根據權利要求1所述的方法,其中: 所述敏感系統資源包括注冊表;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的注冊表。
      8.根據權利要求1所述的方法,其中: 所述敏感系統資源包括文件;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的文件。
      9.根據權利要求1所述的方法,其中: 所述敏感系統資源包括存儲器中的地址;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的存儲器中的地址。
      10.根據權利要求1所述的方法,其中,所述敏感系統資源包括操作系統函數;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的操作系統函數。
      11.根據權利要求1所述的方法,其中: 所述敏感系統資源包括驅動器;并且 重寫所述一個或多個指令包括:重寫所述指令以加載偽造的驅動器。
      12.—件制造的物品,包括: 計算機可讀介質;以及 在所述計算機可讀介質上攜帶的計算機可執(zhí)行指令,所述指令能夠由處理器讀取,當被讀取和執(zhí)行時,所述指令使所述處理器用于: 在電子設備上啟動應用 攔截來自所述應用的一個或多個指令,所述應用企圖執(zhí)行所述一個或多個指令; 確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖; 重寫所述一個或多個指令以訪問所述電子設備的安全系統資源; 在所述電子設備上執(zhí)行重寫的指令;以及 觀察重寫的指令的結果。
      13.根據權利要求12所述的物品,其中,還使所述處理器用于: 確定所述重寫的指令的結果是否指示企圖的惡意動作; 基于所述結果的確定,確定所述應用與惡意軟件相關聯。
      14.根據權利要求12所述的物品,其中: 攔截所述一個或多個指令包括:攔截指令的第一片段和指令的第二片段;以及確定所述一個或多個指令是否包括要訪問敏感系統資源的企圖,以及重寫所述一個或多個指令包括: 確定所述第一片段是否包括要訪問第一敏感系統資源的企圖; 基于這樣的確定,重寫所述第一片段以訪問第一安全系統資源; 確定所述第二片段是否包括要訪問第二敏感系統資源的企圖;以及基于這樣的確定,重寫所述第二片段以訪問第二系統資源;配置所述應用來使用所述數據。
      15.根據權利要求12所述的物品,其中,確定所述指令是否包括要訪問敏感系統資源的企圖包括:確定所述企圖是否與在所述電子設備上的惡意軟件攻擊的已知方法相對應。
      16.根據權利要求12所述的物品,其中,使所述處理器重寫所述指令包括使所述處理器用于: 重寫訪問所述敏感系統資源的可疑指令;以及 保持不訪問所述敏感系統資源的非可疑指令。
      17.根據權利要求12所述的物品,其中: 所述敏感系統資源包括注冊表;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的注冊表。
      18.根據權利要求12所述的物品,其中: 所述敏感系統資源包括文件;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的文件。
      19.根據權利要求12所述的物品,其中: 所述敏感系統資源包括存儲器中的地址;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的存儲器中的地址。
      20.根據權利要求12所述的物品,其中: 所述敏感系統資源包括操作系統函數;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的操作系統函數。
      21.根據權利要求12所述的物品,其中: 所述敏感系統資源包括驅動器;并且 重寫所述一個或多個指令包括:重寫所述指令以加載偽造的驅動器。
      22.一種用于防止惡意軟件攻擊的系統,包括: 處理器,其耦接到存儲器;以及 由所述處理器 執(zhí)行的、位于所述存儲器之內的動態(tài)優(yōu)化框架,所述框架被配置用于: 在電子設備上啟動應用; 攔截來自所述應用的一個或多個指令,所述應用企圖執(zhí)行所述一個或多個指令; 確定所述一個或多個指令是否包括要訪問所述電子設備的敏感系統資源的企圖; 重寫所述一個或多個指令以訪問所述電子設備的安全系統資源; 在所述電子設備上執(zhí)行重寫的指令;以及 觀察重寫的指令的結果。
      23.根據權利要求22所述的系統,其中,所述框架還被配置用于: 確定所述重寫的指令的結果是否指示企圖的惡意動作; 基于所述結果的確定,確定所述應用與惡意軟件相關聯。
      24.根據權利要求22所述的系統,其中:攔截所述一個或多個指令包括:攔截指令的第一片段和指令的第二片段;以及 確定所述一個或多個指令是否包括要訪問敏感系統資源的企圖,并且重寫所述一個或多個指令包括: 確定所述第一片段是否包括要訪問第一敏感系統資源的企圖; 基于這樣的確定,重寫所述第一片段以訪問第一安全系統資源; 確定所述第二片段是否包括要訪問第二敏感系統資源的企圖;以及基于這樣的確定,重寫所述第二片段以訪問第二系統資源;配置所述應用來使用所述數據。
      25.根據權利要求22所述的系統,其中,確定所述指令是否包括要訪問敏感系統資源的企圖包括:確定所述企圖是否與在所述電子設備上的惡意軟件攻擊的已知方法相對應。
      26.根據權利要求22所述的系統,其中,配置所述框架用于重寫所述指令包括配置所述框架用于: 重寫訪問所述敏感系統資源的可疑指令;以及 保持不訪問所述敏感系統資源的非可疑指令。
      27.根據權利要求22所述的系統,其中: 所述敏感系統資源包括注冊表;并且 重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的注冊表。
      28.根據權利要求22所述的系統,其中:所述敏感系統資源包括文件;并且重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的文件。
      29.根據權利要求22所述的系統,其中:所述敏感系統資源包括存儲器中的地址;并且重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的存儲器中的地址。
      30.根據權利要求22所述的系統,其中:所述敏感系統資源包括操作系統函數;并且重寫所述一個或多個指令包括:重寫所述指令以訪問偽造的操作系統函數。
      31.根據權利要求22所述的系統,其中:所述敏感系統資源包括驅動器;并且重寫所述一個或多個指 令包括:重寫所述指令以加載偽造的驅動器。
      【文檔編號】G06F21/00GK104081404SQ201280058398
      【公開日】2014年10月1日 申請日期:2012年11月27日 優(yōu)先權日:2011年11月28日
      【發(fā)明者】M·D·布林克利, R·R·佩爾默赫 申請人:邁克菲公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1