使用事務性存儲器檢測未授權存儲器修改及訪問的制作方法
【專利說明】使用事務性存儲器檢測未授權存儲器修改及訪問
[000。 背景
[0002] 計算機安全的一方面設及保護計算機系統不受惡意軟件(也被稱為"malware")影 響。惡意軟件W許多形式存在;然而,許多常見種類的惡意軟件對計算機存儲器中的未授權 位置執行寫入或其他訪問。例如,某些惡意軟件修改關鍵的存儲器內系統數據結構W便獲 得對計算機的控制。一個運種攻擊設及蓋寫系統調用表,從而使得替代一個或多個系統調 用執行由惡意軟件提供的代碼。運種攻擊可W由所謂的"隱匿技術"使用W獲得對系統的控 制并且逃避檢測。作為另一個示例,某些惡意軟件導致系統執行來自未授權存儲器段(諸如 系統找或數據段)的代碼。例如,緩沖器溢流濫用、面向返回的編程(ROP)小程序和類似的濫 用導致系統執行來自系統找或堆(或由其驅動)的通常不應當被執行的代碼。惡意軟件可W 執行運種攻擊W便執行所謂的"殼代碼"攻擊;即,在計算機系統上執行任意代碼(通常從遠 程位置引入)。
[0003] 典型的計算機安全系統嘗試通過應用代碼分析對可能的惡意代碼進行分類來檢 測惡意軟件。例如,計算機安全系統可W執行代碼的靜態分析W便捜索公知的惡意軟件簽 名。某些系統還執行代碼執行的動態分析。典型的動態監控(諸如使用監管程序的單步執 行)對系統性能具有較大的負面影響。
[0004] 某些計算機處理器提供對硬件事務性存儲器的支持。事務性存儲器允許編程人員 指定被稱為"事務"的代碼段獨立地并且原子地執行。即,直至事務成功地被提交,在事務內 發生的存儲器操作才對在計算機系統上執行的其他事務或線程可見。在成功提交之后,在 事務期間做出的所有存儲器改變瞬時地可用于系統上的其他線程。可W通過推測性地執行 事務、檢測在事務執行期間發生的任何存儲器沖突并且然后響應于存儲器沖突終止并回滾 事務來實現事務性存儲器。存儲器沖突包括例如嘗試寫入已經由另一個事務讀或寫的存儲 器位置的事務。事務性存儲器可W簡化用于并行計算的編程模型。硬件事務性存儲器支持 的一個可商購的示例是在由英特爾⑥公司制造的某些處理器上可用的事務性同步擴展( 英特爾⑥TSX)。
[0005] 附圖簡要描述
[0006] 通過舉例而非通過限制在附圖中示出在此描述的概念。為了說明簡單和清晰,圖 中所示元素無需按比例繪制。當認為合適時,已經在附圖中重復參照標號W便表明相應的 或類似的元素。
[0007] 圖1是用于檢測未授權存儲器訪問的計算設備的至少一個實施例的簡化框圖;
[0008] 圖2是圖1的計算設備的環境的至少一個實施例的簡化框圖;
[0009] 圖3是可W由圖1和圖2的計算設備執行的用于檢測未授權存儲器訪問的方法的至 少一個實施例的簡化流程圖.
[0010] 圖4是可W由圖1和圖2的計算設備執行的用于檢測并處置事務性終止的方法的至 少一個實施例的簡化流程圖;W及
[0011] 圖5是示出可W導致圖1和圖2的計算設備的事務性終止的潛在數據沖突的示意 圖。
[0012] 附圖詳細描述
[0013] 盡管本公開的概念可受到各種修改和替代形式,已經通過舉例在附圖中示出并且 將在此詳細地描述其特定實施例。然而,應當理解的是不旨在將本公開的概念限制為所公 開的具體形式,而是相反,本發明涵蓋與本公開和所附權利要求書一致的所有修改、等效方 案和替代方案。
[0014] 在說明書中對"一個實施例"、"實施例"、"說明性實施例"等等的引用表明所描述 的實施例可W包括具體的特征、結構或特性,但是每個實施例可無需包括該具體的特征、結 構或特性。而且,運種短語無需指代相同的實施例。而且,當結合實施例描述具體的特征、結 構或特性時,認為其在本領域普通技術人員結合顯式地或未顯式地描述的其他實施例實施 運種特征、結構或特性的知識范圍內。此外,應當認識到列表中包括的"A、B和C中的至少一 個"形式的項目可意味著(A); (B); (C); (A和B); (A和C); (B和C);或者(A、B和C)。類似地,W "A、B、和C中的至少一個"的形式列出的項目可指(A); (B); (C); (A和B); (A和C); (B和C);或 (A、巧口 C)。
[0015] 在某些情況下,可在硬件、固件、軟件、或其任何組合中實現所公開的實施例。所公 開的實施例還可W被實現為由一個或多個瞬態或非瞬態機器可讀(例如計算機可讀)存儲 介質攜帶或存儲在其上的指令,運些指令可W由一個或多個處理器讀取并執行。機器可讀 存儲介質可W被體現為任何用于存儲或傳輸機器(例如,易失性或非易失性存儲器、介質 盤、或其他介質設備)可讀形式的信息的存儲設備、機構、或其他物理結構。
[0016] 在附圖中,可W用特定安排和/或排序示出某些結構或方法特征。然而,應當認識 到可不要求運種特定安排和/或排序。而是,在某些實施例中,可W用與說明性附圖中示出 的不同的方式和/或順序安排運種特征。此外,具體附圖中包括結構或方法特征不意味著暗 示在所有實施例中要求運種特征W及在某些實施例中可不包括運種特征或者運種特征可 與其他特征組合。
[0017] 現在參照圖1,說明性計算設備100可W用于檢測未授權存儲器訪問。計算設備100 可W標識可能包含惡意軟件的可疑代碼段。在執行該可疑代碼之前,計算設備100在事務性 包絡中包繞該可疑代碼。另外,計算設備100可W在該可疑代碼內在具體位置設置斷點。計 算設備100隨后執行該事務性包絡,并且如果該可疑代碼執行未授權存儲器訪問(諸如寫入 具體的存儲器區域或在斷點執行該代碼(該斷點已經例如被放入可疑殼代碼或者被放入在 面向返回的編程小程序序列中或在面向跳的編程小程序串中使用的可疑小程序)),該事務 被終止并且回滾。如果該事務成功完成,則計算設備100確定未授權存儲器訪問未發生而且 執行也沒有到達斷點。可疑代碼的事務性執行允許計算設備100動態地監控可疑代碼的行 為而不顯著地消極地影響性能。通過顯著地改善惡意軟件檢測的性能,可W改善計算機安 全。另外,事務性執行可W由計算設備100的硬件管理并且因此不可W由惡意軟件訪問,由 此保護惡意軟件檢測過程本身不受惡意軟件影響。
[0018] 計算設備100可W被體現為用于執行在此描述的功能的任何類型的設備。例如,計 算設備100可W被體現為但不限于桌上計算機、服務器計算機、工作站、膝上計算機、筆記本 計算機、移動計算設備、智能電話、平板計算機、蜂窩電話、手機、消息收發設備、可穿戴計算 設備、車輛遠程信息處理設備、分布式計算系統、多處理器系統、消費者電子設備、嵌入式控 制器、和/或被配置成用于執行在此描述的功能的任何其他計算設備。如圖1所示,說明性計 算設備100包括處理器120、輸入/輸出子系統126、存儲器128和數據存儲設備134。當然,在 其他實施例中,計算設備100可W包括其他或附加組件,諸如通常在桌上計算機中發現的那 些(例如,各種輸入/輸出設備)。此外,在某些實施例中,說明性組件中的一個或多個可W并 入另一個組件中或者W其他方式形成其一部分。例如,在某些實施例中,存儲器128或其各 部分可W并入處理器120中(例如,在其中處理器高速緩存被用作隨機存取存儲器的實現方 式中)。
[0019] 處理器120可W被體現為能夠執行在此描述的功能的任何類型的處理器。例如,處 理器120可W被體現為單核或多核處理器、數字信號處理器、微控制器、或其他處理器或處 理/控制電路。盡管說明性計算設備100包括單個處理器120,在某些實施例中,計算設備100 可W包括多于一個處理器120。例如,計算設備100可W被體現為具有共享存儲器互連的對 稱多處理系統。說明性處理器120包括硬件事務性存儲器支持122和性能監控單元(PMU) 124。
[0020] 事務性存儲器支持122允許處理器120推測性地執行已知為事務的代碼段。事務是 原子的,意味著在事務未決時事務所執行的存儲器操作對其他事務、邏輯處理器和/或處理 器120的線程不可見。當事務完成時,也被稱為提交,事務的所有存儲器操作馬上變得對計 算設備100的剩余部分可用。當事務內的存儲器訪問與另一個事務或線程沖突時,例如當線 程嘗試讀取已經由未提交事務寫入的存儲器位置時(或者當兩個事務和/或線程寫入相同 的存儲器位置時),處理器120可W終止沖突事務,丟棄任何相關聯的進行中的事務性存儲 器改變。處理器120可W在任何粒度水平檢測沖突存儲器位置,例如每高速緩存行、每字或 每存儲器單元。在終止時,處理器120可W響應于所終止的事務調用終止處理機化andler)、 重新開始事務(一次或多次)、或調用非事務性回落代碼。在某些實施例中,事務性存儲器支 持122可W被體現為在英特爾⑥公司制造的某些處理器120上可用的英特爾?事務性同步 擴展(英特爾蚊防乂)。
[0021] PMU 124可W被體現為能夠記錄并監控指令流過處理器120的多個性能計數器。例 如,PMU 124可W能夠報告導致事務性終止的指令(例如,顯式終止指令或斷點)的確切存儲 器地址或沖突數據位置的存儲器地址。盡管被示出為單個PMU 124,在某些實施例中,處理 器120可W包括若干個PMU 124,例如,每個處理器核一個PMU 124。
[0022] 存儲器128可W被體現為能夠執行在此描述的功能的任何類型的易失性或非易失 性存儲器或數據存儲設備。在操作中,存儲器128可W存儲在計算設備100的操作期間使用 的各種數據和軟件,諸如操作系統、應用、