使用 Windows 10 安全性功能降低威脅

適用於:

  • Windows 10

本主題概述目前安全性概況所面臨的部分軟體和韌體威脅,以及 Windows 10 為因應這些威脅而提供的緩解措施。 如需 Microsoft 所提供相關防護類型的詳細資訊,請參閱相關主題

區段 內容
安全性威脅形勢 說明目前的安全性威脅形勢性質,並概述 Windows 10 的設計如何減少軟體弱點和類似的威脅。
您可以設定的 Windows 10 安全防護功能 此表格內含可設定的威脅防護功能,以及其他詳細資訊的連結。 產品包含例如表 1 中出現的 Device Guard,以及表 2 中出現的記憶體保護選項,例如資料執行防止。
Windows 10 內建的防護功能 提供不需要設定的 Windows 10 防護功能說明,這些防護功能是內建在操作系統中。 例如,堆積保護和核心集區保護已內建於 Windows 10。
了解 Windows 10 與 Enhanced Mitigation Experience Toolkit 的關係 說明 Enhanced Mitigation Experience Toolkit (EMET) 中的防護功能如何對應到 Windows 10 中的內建功能,以及如何將 EMET 設定轉換為 Windows 10 的安全防護原則。

本主題將焦點放在目的是保護裝置和抵抗威脅的入侵前防護功能。 這些保護措施可與 Windows 10 中的其他安全性防護功能搭配運作,如下所示︰

Windows 10 中的防禦類型

圖 1。  裝置防護和威脅防護作為 Windows 10 安全性防禦的一部分

安全性威脅形勢

現今的安全性威脅環境是積極且積極的威脅之一。 以往,惡意攻擊者主要將重點放在透過攻擊獲得社群認可,或者暫時使系統離線的快感。 從此之後,攻擊者的動機已轉移到獲利,包括將裝置和數據保持在外,直到擁有者支付要求的勒索款項為止。 現代化攻擊越來越針對大規模竊取智慧財產權,以及會導致財務損失的目標系統效能降低,更遑論威脅全球個人、企業和國家/地區利益的網路恐怖主義。 這些攻擊者通常是訓練有素的個人和安全專家,其中有些人甚至受雇於擁有大量預算,以及似乎有無限制人力資源的民族國家/地區。 此類威脅,需要能夠應付這種挑戰的方法。

因應這種威脅情勢,Windows 10 Creators Update (Windows 10 版本 1703) 包含多種安全性功能,使得挖掘系統的許多軟體弱點難以成功以及成本高昂。 這些功能的設計目的為︰

  • 消除各種漏洞

  • 中斷入侵技術

  • 控制損害程度,避免持續

  • 限縮入侵機會窗口

下列章節提供 Windows 10 (版本 1703) 安全防護功能的更多詳細資訊。

您可以設定的 Windows 10 安全防護功能

下列兩個表格列出您可以設定的 Windows 10 安全防護功能。 第一個表格涵蓋整個企業中各種裝置和使用者的保護功能,第二個表格則向下切入特定的記憶體保護功能,例如資料執行防止。 記憶體保護選項針對嘗試操作記憶體以取得系統控制權的惡意程式碼,提供專屬的防護功能。

表 1 Windows 10 您可以設定的風險降低措施

防護功能與相對應的威脅 說明與連結
Windows Defender SmartScreen
有助於防止
下載
惡意應用程式
Windows Defender SmartScreen 會使用 Microsoft 維護的服務,檢查已下載應用程式的評價。 使用者第一次執行來自網際網路的應用程式時,即使使用者是從另一台電腦複製它,SmartScreen 仍會檢查應用程式是否缺乏評價或已知為惡意應用程式,並相應地作出回應。

其他資訊:本主題稍後的 Windows Defender SmartScreen
Credential Guard
有助於防止攻擊者
透過
Pass-the-Hash 或
Pass-the-Ticket 攻擊取得存取權
Credential Guard 使用虛擬化型安全性來隔離機密資料 (例如 NTLM 密碼雜湊和 Kerberos 票證授權票證),如此一來,只有具有特殊權限的系統軟體可以存取它們。
Windows 10 企業版和 Windows Server 2016 中包含 Credential Guard。

其他資訊使用 Credential Guard 保護衍生的網域認證
企業憑證關聯
有助於防止
運用 PKI 的
使用 PKI 的
企業憑證關聯可保護您的內部網域名稱,以免被關聯至垃圾憑證或是詐騙發行的憑證。 透過企業憑證釘選,您可以「釘選」 (將 X.509 憑證及其公鑰) 關聯至其證書頒發機構單位,無論是根或分葉。

其他資訊企業憑證關聯
Device Guard
有助於防止裝置
執行惡意程式碼或
其他不受信任的應用程式
Device Guard 包含您建立的程式代碼完整性原則;受信任應用程式的允許清單—唯一允許在組織中執行的應用程式。 Device Guard 也包含強大的系統防護功能,稱為受 Hypervisor 保護的程式代碼完整性 (HVCI) ,其使用虛擬化型安全性 (VBS) 來保護 Windows 的核心模式程式代碼完整性驗證程式。 HVCI 有特定的硬體需求,並搭配程式碼完整性原則,就算攻擊者取得核心存取權,也能協助阻止攻擊。
Windows 10 企業版和 Windows Server 2016 中包含 Device Guard。

其他資訊Device Guard 簡介
Microsoft Defender 防病毒軟體,
可協助讓裝置
免於感染病毒和其他
惡意程式碼
Windows 10 包含 Microsoft Defender 防病毒軟體,這是強固的收件匣反惡意代碼解決方案。 Microsoft Defender 防病毒軟體在 Windows 8 中引進后已大幅改善。

詳細資訊Microsoft Defender 防病毒軟體,本主題稍後
封鎖未受信任的字型
有助於防止

權限提高攻擊中使用的字型
「封鎖未受信任的字型」設定可讓您防止使用者載入您網路中「不受信任的」字型,以便減輕與剖析字型檔案相關聯的權限提高攻擊。 不過,在 Windows 10 (版本 1703) 中,此項防護功能變得較不重要,因為字型剖析是在 AppContainer 沙箱 中隔離進行 (如需說明此功能和其他核心集區保護功能的清單,請參閱本主題稍後的核心集區保護功能)。

其他資訊封鎖企業中未受信任的字型
記憶體保護功能
有助於防止惡意程式碼
使用記憶體操作
技術,例如緩衝區
溢位
表 2 中列出的這些防護功能,有助於防禦記憶體型攻擊,這種攻擊會使用惡意程式碼或其他程式碼來操作記憶體以便取得系統控制權 (例如,嘗試使用緩衝區溢位來將惡意可執行程式碼插入至記憶體的惡意程式碼惡意程式碼)。 注意:
如果其中一些緩和措施設定為限制最嚴格的設定,則應用程式子集將無法執行。 進行測試可協助您發揮最大的保護作用,同時允許這些應用程式執行。

其他資訊:本主題稍後的表 2
UEFI 安全開機
有助於保護
平台免於
開機套件和 rootkits
整合可延伸韌體介面 (UEFI) 安全開機是從 Windows 8 開始,製造商內建的電腦韌體安全標準。 它可以協助保護開機程序以及韌體以免遭到竄改,例如實際存在的攻擊者,或在開機程序初期執行或在啟動後於核心中執行的惡意程式碼。

詳細資訊UEFI 和安全開機
開機初期啟動的反惡意程式碼 (ELAM)
有助於保護
平台免於
Rootkit 偽裝成驅動程式
早期啟動反惡意代碼 (ELAM) 是設計來讓反惡意代碼解決方案在所有非 Microsoft 驅動程式和應用程式之前啟動。 如果惡意程式碼修改開機相關的驅動程式,ELAM 會偵測到變更,Windows 會讓驅動程式無法啟動,藉此封鎖驅動程式型的 rootkit。

其他資訊開機初期啟動的反惡意程式碼
裝置健康情況證明
有助於防止
遭盜用的裝置
存取組織的
資產
裝置健康情況證明 (DHA) 可協助確認嘗試連接到組織網路的裝置處於良好的健康情況,而非遭到惡意程式碼入侵。 設定 DHA 時,可以針對預期的「狀況良好」開機數據檢查裝置的實際開機數據測量。 若檢查指出裝置狀況不良,該裝置將無法存取網路。

其他資訊控制 Windows 10 型裝置的健康情況裝置健康情況證明

專門設計來協助防範記憶體操作的可設定 Windows 10 防護功能,需要深入了解這些威脅、防護功能以及知道作業系統和應用程式如何處理記憶體。 充分發揮這些防護功能類型的標準程序,是在實驗室探中探索特定的設定是否會干擾您使用的任何應用程式,讓您可以部署能發揮最大的保護作用,同時允許應用程式正確執行的設定。

身為 IT 專業人員,您可以要求應用程式開發人員和軟體廠商提供包含額外保護的應用程式,稱為控制流程防護 (CFG) 。 作業系統中不需要進行設定—保護功能已編譯至應用程式中。 如需詳細資訊,請參閱控制流程防護

表 2 可設定的 Windows 10 防護功能,旨在協助防範記憶體入侵

防護功能與相對應的威脅 說明
資料執行防止 (DEP)
有助於防止
緩衝區溢位遭到他人利用
資料執行防止 (DEP) 是 Windows 作業系統在系統層級記憶體提供的防護功能。 DEP 可讓您將一或多個記憶體頁面標示為不可執行,以防止程式碼從該記憶體區執行,有助於避免緩衝區溢位遭到利用。
DEP 有助於防止程式碼從資料頁面 (例如預設堆積、堆疊與記憶體集區) 執行。 雖然有些應用程式有 DEP 的相容性問題,但大部分的應用程式不會。
其他資訊︰本主題稍後的資料執行防止

群組原則 設定:64 位應用程式預設會開啟 DEP,但您可以使用覆寫程式風險降低選項中所述的 群組原則 設定來設定更多 DEP 保護,以協助強制執行應用程式相關的安全策略
SEHOP
有助於防止
覆寫
結構化例外處理常式
結構化的例外處理覆寫保護 (SEHOP) 設計用來協助封鎖運用結構化例外處理常式 (SEH) 覆寫技術的入侵行為。 由於此保護機制是在運行時間提供,因此不論應用程式是否已使用最新改善進行編譯,都能協助保護應用程式。 有些應用程式和 SEHOP 有相容性問題,所以請務必先針對您的環境進行測試。
其他資訊:本主題稍後的結構化的例外處理覆寫保護

群組原則 設定:64 位應用程式預設會開啟 SEHOP,但您可以使用覆寫程式風險降低選項中所述的 群組原則 設定來設定更多 SEHOP 保護,以協助強制執行應用程式相關的安全策略
ASLR
有助於減少
根據預期的記憶體位置
而進行的惡意程式碼攻擊
位址空間配置隨機載入 (ASLR) 會在開機時將 DLL 載入隨機的記憶體位址。 此載入 - 特定 DLL - 有助於減輕設計來攻擊特定記憶體位置的惡意代碼。
其他資訊︰本主題稍後的位址空間配置隨機載入

群組原則 設定:64 位應用程式的 ASLR 預設為開啟,但您可以使用覆寫程式風險降低選項中所述的 群組原則 設定來設定更多 ASLR 保護,以協助強制執行應用程式相關的安全策略

Windows Defender SmartScreen

如果使用者按到回報的網路釣魚和惡意程式碼網站,Windows Defender SmartScreen 會通知使用者,協助他們抵禦不安全的下載項目,或對下載項目做出明智決定。

針對 Windows 10,Microsoft 改善了 SmartScreen (現在稱為 Windows Defender SmartScreen) 保護功能,方法是將其應用程式信譽能力整合到操作系統本身,以允許 Windows DefenderSmartScreen 可檢查從因特網下載的檔案信譽,並在用戶即將執行高風險下載的檔案時發出警告。 使用者第一次執行源自因特網的應用程式時,Windows Defender SmartScreen 會針對 Microsoft 維護的服務使用數位簽名和其他因素來檢查應用程式的信譽。 如果應用程式沒有信譽或已知為惡意,Windows Defender SmartScreen 會根據系統管理員設定 Microsoft Intune 或 群組原則 設定的方式,警告使用者或完全封鎖執行。

如需詳細資訊,請參閱 Microsoft Defender SmartScreen 概觀

Microsoft Defender 防毒軟體

Microsoft Defender 中的防病毒軟體 Windows 10 使用多管控方法來改善反惡意代碼:

  • 雲端傳遞的保護有助於在數秒內偵測及封鎖新的惡意程式碼,即使該惡意程式碼從未出現過。 Windows 10 (版本 1703) 提供此項服務,使用分散式資源和機器學習,可用比傳統特徵碼更新更快的速度提供保護給端點。

  • 豐富的本機內容可改進辨識惡意程式碼的方式。 Windows 10 不僅會通知 Microsoft Defender 防病毒軟體有關檔案和程序等內容,也會通知內容的來源、儲存位置等等。 來源和歷程記錄的相關信息可讓 Microsoft Defender 防病毒軟體將不同層級的監視套用至不同的內容。

  • 廣泛的全域感測器可協助 Microsoft Defender 防病毒軟體保持最新狀態,甚至是最新的惡意代碼。 此最新狀態的完成方式有兩種:從端點收集豐富的本機內容數據,以及集中分析該數據。

  • 竄改校訂可協助 Microsoft Defender 防病毒軟體本身防範惡意代碼攻擊。 例如,Microsoft Defender 防毒軟體使用受保護的處理程序,來阻止不受信任的處理程序嘗試竄改 Microsoft Defender 防毒軟體元件、其登錄機碼等等。 (本主題後續將說明受保護的處理程序。)

  • 企業層級功能提供 IT 專業人員所需的工具和設定選項,讓 Microsoft Defender 防病毒軟體成為企業級的反惡意代碼解決方案。

如需詳細資訊,請參閱 Windows 10 中的 Windows DefenderWindows Server 的 Windows Defender 概觀

如需 適用於端點的 Microsoft Defender 的相關信息,這項服務可協助企業偵測、調查及回應其網路上的進階和目標式攻擊,請參閱 適用於端點的 Microsoft Defender (資源 ) 和適用於端點的 Microsoft Defender (檔) 。

資料執行防止

惡意程式碼攻擊模式是將惡意承載插入記憶體中,並期待它稍後被執行。 如果您可以防止惡意代碼寫入僅配置給儲存信息的區域,這會不是很好嗎?

資料執行防止 (DEP) 的作用正是如此,它可大幅減少惡意程式碼為達目的所能使用的記憶體範圍。 DEP 使用新式 CPU 上的 No eXecute 位,將記憶體區塊標示為只讀,讓這些區塊無法用來執行可能透過弱點惡意探索插入的惡意代碼。

若要使用工作管理員查看使用 DEP 的應用程式

  1. 開啟工作管理員︰按下 Ctrl+Alt+Del 並選取 \[工作管理員\],或搜尋 [開始] 畫面。

  2. 按一下 \[更多詳細資料\] (如有必要),然後按一下 \[詳細資料\] 索引標籤。

  3. 以滑鼠右鍵按一下任一欄標題,然後按一下 \[選取欄位\]

  4. \[選取欄位\] 對話方塊中,選取最後一個 \[資料執行防止\] 核取方塊。

  5. 按一下 \[確定\]

您現在可以看到哪些處理程序已啟用 DEP。

已在 Windows 10 中啟用 DEP 的進程。

圖 2.  已在 Windows 10 中啟用 DEP 的進程

您可以使用 [控制台] 來檢視或變更 DEP 設定。

若要使用 [控制台] 來檢視或變更個人電腦上的 DEP 設定

  1. 開啟控制台、系統︰按一下 [開始],輸入「控制台系統」,然後按 ENTER。

  2. 依序按一下 \[進階系統設定\]\[進階\] 索引標籤。

  3. \[效能\] 方塊中,按一下 \[設定\]

  4. \[效能選項\] 中,按一下 \[資料執行防止\] 索引標籤。

  5. 選取選項:

    • 只為基本的 Windows 程式和服務開啟 DEP

    • 為所有的 Windows 程式和服務開啟 DEP,除了我選擇的這些。 如果您選擇此選項,請使用 [ 新增 ] 和 [ 移除 ] 按鈕來建立不會開啟 DEP 的例外狀況清單。

若要使用群組原則來控制 DEP 設定

您可以使用稱為 \[處理程序安全防護選項\] 的群組原則設定來控制 DEP 設定。 有些應用程式和 DEP 有相容性問題,所以請務必先針對您的環境進行測試。 若要使用群組原則設定,請參閱覆寫處理程序安全防護選項以協助執行應用程式相關的安全性原則

結構化的例外處理覆寫保護

結構化例外狀況處理覆寫保護 (SEHOP) 可協助防止攻擊者使用惡意代碼來惡意探索 結構化例外狀況處理 (SEH) ,這是系統不可或缺的一部分,可讓 (非惡意) 應用程式適當地處理例外狀況。 由於此保護機制是在運行時間提供,因此不論應用程式是否已使用最新改善進行編譯,都能協助保護應用程式。

您可以使用稱為 \[處理程序安全防護選項\] 的群組原則設定來控制 SEHOP 設定。 有些應用程式和 SEHOP 有相容性問題,所以請務必先針對您的環境進行測試。 若要使用群組原則設定,請參閱覆寫處理程序安全防護選項以協助執行應用程式相關的安全性原則

位址空間配置隨機載入

用來取得系統存取權最常見的一項技術,是在已執行的具有特殊權限的處理程序中找出弱點、猜測或尋找放置重要的系統程式碼與資料的記憶體位置,接著使用惡意承載覆寫資訊。 任何可以直接寫入系統記憶體的惡意代碼,都可以在已知且可預測的位置覆寫它。

位址空間配置隨機載入 (ASLR) 讓該類型的攻擊較難成功,因為它會隨機分配重要資料在記憶體中儲存的方式和位置。 使用 ASLR 時,惡意代碼更難以找到它需要攻擊的特定位置。 圖 3 說明 ASLR 的運作方式,其中顯示不同的重要 Windows 元件每次重新啟動後如何在記憶體中變更位置。

ASLR 工作。

圖 3.  作用中的 ASLR

Windows 10 在整個系統全盤套用 ASLR,並且相較於舊版 Windows,將 Entropy 層級提高好幾倍,以對抗堆積填充等複雜攻擊。 64 位元系統和應用程式處理程序可運用大幅增加的記憶體空間,因此使得惡意程式碼更難以預測 Windows 10 將重要資料儲存在哪裡。 搭配具有 TPM 的系統使用時,ASLR 記憶體隨機載入會跨裝置增加獨特性,因此就算某個系統被成功入侵,但要入侵另一個系統會更加困難。

您可以使用稱為 「程序風險降低選項」的 群組原則 設定,來控制 ASLR 設定 (「強制 ASLR」和「自下而上 ASLR」) ,如覆寫進程風險降低選項中所述,以協助強制執行應用程式相關的安全策略

Windows 10 內建的防護功能

Windows 10 提供許多已內建至作業系統的威脅防護功能來阻擋入侵,您不需要在作業系統中進行任何設定。 下表說明其中一些緩和措施。

控制流程防護 (CFG) 是不需要在操作系統內設定的防護功能,但需要應用程式開發人員在編譯應用程式時,將風險降低設定到應用程式中。 CFG 內建於 Microsoft Edge、IE11 和 Windows 10 中的其他區域,而且可以在編譯後內建於許多其他應用程式中。

表 3 Windows 10 防護功能來防範記憶體入侵 – 不需要設定

防護功能與相對應的威脅 說明
針對 SYSVOL 和 NETLOGON 共用的 SMB 強化功能
有助於減少
攔截式攻擊
用戶端現在必須經過 SMB 簽署和相互驗證 (例如 Kerberos),才能連線到網域控制站上的「Active Directory 網域服務」預設 SYSVOL 和 NETLOGON 共用。

其他資訊:本主題稍後的針對 SYSVOL 和 NETLOGON 共用的 SMB 強化功能改進
受保護的處理程序
協助防止一個處理程序
竄改另一個
處理程序
使用受保護的進程功能,Windows 10 防止未受信任的進程與特別簽署的進程互動或竄改。

其他資訊︰本主題稍後的受保護的處理程序
通用 Windows 應用程式 保護功能
會篩選可下載的
應用程式並在
AppContainer 沙箱中執行這些應用程式
通用 Windows 應用程式 在提供使用之前已經過仔細篩選,並在只有有限權限與功能的 AppContainer 沙箱中執行。

其他資訊:本主題稍後的通用 Windows 應用程式 保護功能
堆積保護功能
可協助防止
他人利用堆積
Windows 10 包含堆積的保護,例如使用內部數據結構來協助防止堆積所使用的記憶體損毀。

其他資訊:本主題稍後的 Windows 堆積保護功能
核心集區保護功能
可協助防止
他人利用核心所用的
集區記憶體
Windows 10 包含核心所用記憶體集區的保護功能。 例如,安全解除連結可防止集區溢位結合取消連結作業,因而被用來建立攻擊。

其他資訊:本主題稍後的核心集區保護功能
控制流程防護
有助於減少
基於
程式碼位置之間流程
的入侵行為
控制流程防護 (CFG) 是不需要在操作系統內進行設定的防護功能,而是在軟體編譯時內建。 其內建於 Microsoft Edge、IE11 和 Windows 10 中的其他區域。 您可以將 CFG 內建至以 C 或 C++ 撰寫的應用程式,或使用 Visual Studio 2015 編譯的應用程式。
針對這類應用程式,CFG 可以偵測到攻擊者嘗試變更預期的程式代碼流程。 如果發生此嘗試,CFG 會終止應用程式。 您可以要求軟體廠商提供編譯為支援 CFG 的 Windows 應用程式。

其他資訊:本主題稍後的控制流程防護
內建到 Microsoft Edge 的保護功能 (瀏覽器)
有助於減少多重
威脅
Windows 10 包含一個全新瀏覽器 Microsoft Edge,其設計採用了多重安全性改進功能。

其他資訊:本主題稍後的 Microsoft Edge 和 Internet Explorer 11

針對 SYSVOL 和 NETLOGON 共用的 SMB 強化功能改進

在 Windows 10 和 Windows Server 2016 中,用戶端必須經過「伺服器訊息區」(SMB) 簽署和相互驗證 (例如 Kerberos),才能連線到網域控制站上的「Active Directory 網域服務」預設 SYSVOL 和 NETLOGON 共用。 這項需求可降低攔截式攻擊的可能性。 如果無法使用 SMB 簽署和相互驗證,執行 Windows 10 或 Windows Server 2016 的電腦將不會處理網域型 群組原則 和腳本。

注意

這些設定的登錄值預設將不會顯示,但仍會套用強化原則,直到由群組原則或其他登錄值覆寫為止。 如需這些安全性改善的詳細資訊, (也稱為 UNC 強化) ,請參閱 microsoft 知識庫文章 3000483MS15-011 & MS15-014:強化 群組原則

受保護的處理程序

大部分的安全性控制都是為了預防初始感染點而設計。 不過,儘管有最佳的預防性控制,惡意程式碼最終可能仍能夠找到感染系統的方式。 因此,我們內建了某些保護功能,用於限制進入裝置的惡意程式碼。 受保護的處理程序會建立這種類型的限制。

使用受保護的進程,Windows 10 防止不受信任的進程與特別簽署的進程互動或竄改。 受保護的處理程序會定義處理程序的信任等級。 較不受信任的處理程序將無法與信任的處理程序互動,因此可以避免更多受信任的處理程序受到攻擊。 Windows 10 會在整個操作系統中更廣泛地使用受保護的進程,如同 Windows 8.1 一樣,以第三方反惡意代碼廠商可以使用的方式來實作它們,如保護反惡意代碼服務中所述。 這種易用性有助於讓系統和反惡意代碼解決方案較不容易受到管理來取得系統的惡意代碼竄改。

通用 Windows 應用程式 保護功能

當使用者從 Microsoft Store 下載通用 Windows 應用程式時,不太可能會遇到惡意代碼,因為所有應用程式在市集中提供之前,都會經過仔細的檢測程式。 組織透過側載處理程序建立和發佈的應用程式需在內部檢查,以確定它們符合組織的安全性需求。

不論使用者如何取得通用 Windows 應用程式,都可以更安心地使用它們。 通用 Windows 應用程式 是在限制權限與功能的 AppContainer 沙箱中執行。 例如,通用 Windows 應用程式沒有系統層級的存取權、與其他應用程式的互動有嚴密的控制,而且除非使用者明確授與應用程式權限,否則就無法存取資料。

此外,所有通用 Windows 應用程式都遵循最低權限的安全性原則。 應用程式只收到執行其合法的工作所需的最低權限,因此即使攻擊者入侵應用程式,所造成的損害亦非常有限,而且應該包含在沙箱內。 Microsoft Store 會顯示應用程式所需的確切功能 (例如,相機) 的存取權,以及應用程式的年齡分級和發行者。

Windows 堆積保護功能

「堆積」是 Windows 用來儲存動態應用程式資料的記憶體位置。 Windows 10 藉由將可用來做為攻擊的一部分的堆積入侵風險進一步降低,持續改善舊版 Windows 上的堆積設計。

Windows 10 有數個重要的堆積安全性改良功能:

  • 堆積中繼資料強化適用於堆積使用的內部資料結構,用以加強抵禦記憶體毀損。

  • 堆積配置隨機化,也就是使用隨機位置和大小進行堆積記憶體配置,讓攻擊者更難以預測要覆寫的重要記憶體位置。 尤其是,Windows 10 會為新配置的堆積位址加上隨機位移,讓配置較難預測。

  • 記憶體區塊前後的堆積防護頁面,可作為車程線。 如果攻擊者嘗試寫入過去的記憶體區塊 (稱為緩衝區溢位的常見技術),攻擊者就必須覆寫保護分頁。 嘗試修改保護分頁會被視為記憶體損毀, Windows 10 的回應是立即終止應用程式。

核心集區保護功能

Windows 中的作業系統核心會保留兩個記憶體集區,一個保留在物理記憶體 (「非分頁集區」) ,另一個則可以分頁至「分頁集區」 (「分頁集區」) 的物理記憶體。 經過一段時間,已新增許多風險降低措施,例如進程配額指標編碼;lookaside, delay free, and pool page cookies;和 PoolIndex 界限檢查。 Windows 10 新增多個「集區強化」保護,例如完整性檢查,可協助保護核心集區免於遭受更進階的攻擊。

除了集區強化,Windows 10 還包含其他核心強化功能︰

  • 核心 DEP核心 ASLR︰遵循本主題先前所述資料執行防止位址空間配置隨機載入的相同原則。

  • AppContainer 中的字型剖析︰將字型剖析在 AppContainer 沙箱中隔離進行。

  • 停用 NT Virtual DOS Machine (NTVDM)︰預設停用舊型 NTVDM 核心模組 (用於執行 16 位元應用程式),用以消弭相關的安全性漏洞。 (啟用 NTVDM 會降低對 Null 取值和其他入侵的防護功能。)

  • 監督員模式執行防護 (SMEP) :協助防止「監督員」 () 的核心在用戶頁面中執行程式碼,這是攻擊者用來提高本機核心許可權 (EOP) 的常見技術。 此設定需要 Intel Ivy Bridge 或更新版本處理器中的處理器支援,或是支援 PXN 的 ARM。

  • 安全解除連結︰有助於防止集區溢位結合取消連結作業,因而被用來建立攻擊。 Windows 10 包含全域安全取消連結,可將堆積和核心集區安全取消連結延伸至所有使用LIST_ENTRY,並包含 “FastFail” 機制來啟用快速且安全的進程終止。

  • 記憶體保留值:系統會保留最低 64 KB 的處理程序記憶體。 不允許應用程式配置記憶體的該部分。 此系統配置可讓惡意代碼更難以使用「NULL 取值」之類的技術來覆寫記憶體中的重要系統數據結構。

控制流程防護

當應用程式載入記憶體時,會根據程式代碼大小、要求的記憶體和其他因素來配置空間。 當應用程式開始執行程式代碼時,它會呼叫位於其他記憶體位址中的其他程式碼。 程序代碼位置之間的關聯性是已知的,它們是以程式代碼本身撰寫,但在 Windows 10 之前,不會強制執行這些位置之間的流程,讓攻擊者有機會變更流程以符合其需求。

Windows 10 透過控制流程防護 (CFG) 功能防禦這種威脅。 當某個信任的應用程式編譯為使用 CFG 叫程式碼時,CFG 會驗證呼叫的程式碼位置是受信任而可以執行的。 如果位置不受信任,應用程式會立即終止,以作為潛在的安全性風險。

系統管理員無法設定 CFG;相反地,應用程式開發人員可以在編譯應用程式時設定 CFG 來利用 CFG。 請考慮要求應用程式開發人員與軟體廠商提供編譯為支援 CFG 的可信任 Windows 應用程式。 例如,可以在以 C 或 C++ 撰寫的應用程式或使用 Visual Studio 2015 編譯的應用程式中啟用 CFG。 如需為 Visual Studio 2015 專案啟用 CFG 的詳細資訊,請參閱控制流程防護 (英文)。

瀏覽器是攻擊的重要進入點,因此 Microsoft Edge、IE 和其他 Windows 功能會充分利用 CFG。

Microsoft Edge 和 Internet Explorer 11

瀏覽器安全性是任何安全性策略的重要元件,且基於良好理由:瀏覽器是使用者的因特網介面、具有許多惡意網站和等候攻擊內容的環境。 大部分的使用者都無法在沒有瀏覽器的情況下至少執行其部分作業,而且許多使用者都依賴其中一個。 這個事實讓瀏覽器成為心存不軌的駭客發動攻擊的常用途徑。

所有瀏覽器都具有某些程度的擴充性,可以執行瀏覽器原始範圍以外的項目。 兩個常見的範例是 Flash 和 Java 擴充功能,可讓其各自的應用程式在瀏覽器內執行。 基於網頁瀏覽和應用程式的目的,Windows 10的安全性是一個優先順序,特別是這兩種內容類型。

Windows 10 包含全新的瀏覽器:Microsoft Edge。 Microsoft Edge 在許多方面更加安全,尤其是:

  • 降低攻擊面;不支援非 Microsoft 二進位檔案延伸。 Microsoft Edge 中已移除多個具有易受攻擊面的瀏覽器元件。 已移除的元件包含舊版文件模式和指令碼引擎、瀏覽器協助程式物件 (BHOs)、ActiveX 控制項和 Java。 不過,Microsoft Edge 預設仍透過內建的延伸支援 Flash 內容與 PDF 檢視。

  • 執行 64 位元處理程序。 執行舊版 Windows 的 64 位元電腦通常以 32 位元的相容性模式執行,以支援較舊和較不安全的延伸。 當 Microsoft Edge 在 64 位元電腦上執行時,它只會執行 64 位元處理程序,這樣對於抵禦入侵更加安全。

  • 包含記憶體回收 (MemGC)。 這項功能可協助防範UAF) 問題 (使用後免費使用。

  • 設計為通用 Windows 應用程式。 Microsoft Edge 原本就進行劃分並在從系統、資料和其他應用程式對瀏覽器進行沙箱處理的 AppContainer 中執行。 Windows 10 上的 IE11 也可以透過「增強型保護模式」利用相同的 AppContainer 技術。 不過,由於 IE11 可以執行 ActiveX 和 BHO,因此與 Microsoft Edge 相比,瀏覽器和沙箱易於受到更廣泛的攻擊。

  • 簡化安全性設定工作。 由於 Microsoft Edge 使用簡化的應用程式結構和單一沙箱設定,因此所需的安全性設定較少。 此外,Microsoft Edge 預設設定會與安全性最佳做法一致,使其預設為更安全。

除了 Microsoft Edge 之外,Microsoft 在 Windows 10 中也包含 IE11,主要是為了與網站及不適用於 Microsoft Edge 的二進位延伸模組回溯相容性。 您無法將它設定為主要瀏覽器,而無法設定為選擇性或自動切換。 我們建議使用 Microsoft Edge 做為主要的 Web 瀏覽器,因為它提供與現代網頁的相容性和可能的最佳安全性。

對於需要 IE11 相容性的網站,包括需要二進位延伸模組和外掛程式的網站,請啟用企業模式,並使用企業模式網站清單來定義哪些網站具有相依性。 透過這個設定,當使用者使用 Microsoft Edge 而且它識別出需要 IE11 的網站時,它們會自動切換到 IE11。

軟體廠商可用來將防護功能內建至應用程式的函式

Windows 10 中提供的部分保護功能,可透過從應用程式或其他軟體呼叫的函式來提供。 這種軟體較不可能出現弱點。 如果您正在與軟體廠商合作,您可以要求其在應用程式中包含這些安全性導向函式。 下表列出部分防護功能類型,以及可用在應用程式中的相對應安全導向函式。

注意

控制流程防護 (CFG) 也是開發人員可以在編譯時納入軟體的重要防護功能。 如需詳細資訊,請參閱本主題稍早的控制流程防護

表 4 可供開發人員在應用程式中建置防護功能的函式

緩和措施 函式
MemProt 動態程式碼限制 UpdateProcThreadAttribute 函式
[PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_ALWAYS_ON]
LoadLib 映像載入限制 UpdateProcThreadAttribute 函式
[PROCESS_CREATION_MITIGATION_POLICY_IMAGE_LOAD_NO_REMOTE_ALWAYS_ON]
子處理程序限制,可限制建立子處理程序的能力 UpdateProcThreadAttribute 函式
[PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY]
程式碼完整性限制,可限制影像載入 SetProcessMitigationPolicy 函式
[ProcessSignaturePolicy]
Win32k 系統呼叫停用限制,可限制使用 NTUser 和 GDI 的能力 SetProcessMitigationPolicy 函式
[ProcessSystemCallDisablePolicy]
記憶體配置中最多 1 TB 變異數的高 Entropy ASLR UpdateProcThreadAttribute 函式
[PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_ON]
嚴格控點檢查,可對不正確的控點參考引發立即例外狀況 UpdateProcThreadAttribute 函式
[PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_ON]
擴充點停用,可封鎖使用特定第三方擴充點 UpdateProcThreadAttribute 函式
[PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_ON]
毀損時堆積終止可保護系統免於損壞堆積 UpdateProcThreadAttribute 函式
[PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_ON]

了解 Windows 10 與 Enhanced Mitigation Experience Toolkit 的關係

您可能已經熟悉 增強式風險降低體驗工具組 (EMET) ,其自 2009 年起提供各種惡意探索防護功能,以及用來設定這些防護功能的介面。 您可以使用本節來瞭解 EMET 風險降低與 Windows 10 中這些防護功能的關聯性。 許多EMET的防護功能都已內建在 Windows 10 中,有些則具有額外的改進功能。 不過,某些EMET風險降低會產生高效能成本,或對新式威脅而言似乎相對無效,因此尚未納入 Windows 10。

由於許多EMET的風險降低和安全性機制已存在於 Windows 10 中,並已改善,特別是評估在降低已知旁路方面具有高效率的機制,因此5.5x版已宣佈為EMET (的最後主要版本版本,請參閱增強式風險降低體驗工具組) 。

下表列出對應於 Windows 10 功能的 EMET 功能。

表格 5 與 Windows 10 功能相關的 EMET 功能

特定 EMET 功能 這些 EMET 功能如何對應至 Windows 10 功能
  • DEP
  • SEHOP
  • ASLR (Force ASLR、Bottom-up ASLR)
  • DEP、SEHOP 和 ASLR 都包含在可設定的功能 Windows 10 中。 請參閱本主題稍早的表格 2。您可以安裝 ProcessMitigations PowerShell 模組,將這些功能的 EMET 設定轉換成可套用至 Windows 10 的原則。
  • 載入媒體櫃檢查 (LoadLib)
  • 記憶體保護檢查 (MemProt)
  • Windows 10 支援 LoadLib 和 MemProt,所有應用程式都撰寫為使用這些功能。 請參閱本主題稍早的表 4
    空值頁面 此威脅的風險降低是內建在 Windows 10 中,如本主題稍早核心集區保護中的「記憶體保留」專案中所述。
  • 堆積填充
  • EAF
  • EAF+
  • Windows 10 不包含特別對應至這些EMET功能的防護功能,因為它們在目前的威脅環境中影響較低,而且不會大幅增加惡意探索弱點的難度。 Microsoft 會努力不懈地監控安全性環境,一有新的攻擊出現,便會採取行動來強化作業系統的抵禦能力。
  • 呼叫者檢查
  • 模擬執行流程
  • 堆疊中樞
  • 深層勾 (ROP「進階風險降低」)
  • 反繞道 (ROP「進階風險降低」)
  • 禁用函式 (ROP「進階風險降低」)
  • Windows 10 中使用控制流程防護編譯應用程式而提供防護,如本主題稍早的控制流程防護所述。

    將 EMET XML 設定檔案轉換為 Windows 10 安全防護原則

    EMET 的優點之一是,它可讓您匯入和導出EMET風險降低的組態設定,做為XML配置檔,以便直接部署。 若要從 EMET XML 設定檔案產生適用於 Windows 10 的安全防護原則,您可以安裝 ProcessMitigations PowerShell 模組。 在提升權限的 PowerShell 工作階段中執行此 Cmdlet︰

    Install-Module -Name ProcessMitigations
    

    Get-ProcessMitigation cmdlet 會從登錄或是執行中的處理程序取得目前的防護功能設定,也可以將所有設定儲存為 XML 檔案。

    若要取得所有執行中 notepad.exe 執行個體上的目前設定︰

    Get-ProcessMitigation -Name notepad.exe -RunningProcess
    

    若要在 notepad.exe 的登錄中取得目前設定︰

    Get-ProcessMitigation -Name notepad.exe
    

    若要使用 pid 1304 取得執行中處理程序的目前設定︰

    Get-ProcessMitigation -Id 1304
    

    若要從登錄取得所有處理程序防護功能設定並將其儲存為 xml 檔案 settings.xml:

    Get-ProcessMitigation -RegistryConfigFilePath settings.xml
    

    Set-ProcessMitigation cmdlet 可以啟用和停用處理程序防護功能,或從 XML 檔案進行大量設定。

    若要取得「notepad.exe」的目前處理程序防護功能,接著啟用 MicrosoftSignedOnly 並停用 MandatoryASLR︰

    Set-ProcessMitigation -Name Notepad.exe -Enable MicrosoftSignedOnly -Disable MandatoryASLR
    

    若要從 XML 檔案 (這可從 get-ProcessMitigation -RegistryConfigFilePath settings.xml 產生) 設定處理程序防護功能︰

    Set-ProcessMitigation -PolicyFilePath settings.xml
    

    若要將系統預設值設定為 MicrosoftSignedOnly︰

    Set-ProcessMitigation -System -Enable MicrosoftSignedOnly
    

    ConvertTo-ProcessMitigationPolicy cmdlet 會轉換防護功能原則檔案格式。 語法為:

    ConvertTo-ProcessMitigationPolicy -EMETFilePath <String> -OutputFilePath <String> [<CommonParameters>]
    

    範例:

    • 將 EMET 設定轉換為 Windows 10 設定︰您可以執行 ConvertTo-ProcessMitigationPolicy 並在輸入時提供 EMET XML 設定檔案,藉以產生 Windows 10 防護功能設定的結果檔案。 例如:

      ConvertTo-ProcessMitigationPolicy -EMETFilePath policy.xml -OutputFilePath result.xml
      
    • 稽核並修改輸出檔案 (轉換的設定) :更多 Cmdlet 可讓您在輸出檔中套用、列舉、啟用、停用和儲存設定。 例如,這個 cmdlet 可啟用 SEHOP 並停用「記事本」的 MandatoryASLR 和 DEPATL 登錄設定︰

      Set-ProcessMitigation -Name notepad.exe -Enable SEHOP -Disable MandatoryASLR,DEPATL
      
    • 將受攻擊面縮小 (ASR) 設定轉換為程式代碼完整性原則檔案:如果輸入檔包含 EMET 的攻擊面縮小 (ASR) 防護功能的任何設定,轉換器也會建立程式代碼完整性原則檔案。 在此情況下,您可以完成程式碼完整性原則的合併、稽核和部署程式。 如需詳細資訊,請參閱部署 Windows Defender 應用程控 (WDAC) 原則。 此完成會在相當於 EMET ASR 保護的 Windows 10 上啟用保護。

    • 將憑證信任設定轉換為企業憑證釘選規則:如果您有EMET「憑證信任」XML 檔案 (釘選規則檔案) ,您也可以使用 ConvertTo-ProcessMitigationPolicy 將釘選規則檔案轉換成企業憑證釘選規則檔案。 接著您就能如企業憑證關聯中所述,完成啟用該檔案。 例如:

      ConvertTo-ProcessMitigationPolicy -EMETfilePath certtrustrules.xml -OutputFilePath enterprisecertpinningrules.xml
      

    Microsoft 諮詢服務 (MCS) 和 Microsoft 支援/Premier Field Engineering (PFE) 提供一系列 EMET 選項、EMET 支援,以及 EMET 相關報告和稽核產品,例如 EMET 企業報告服務 (ERS)。 對於現今使用這類產品或對類似功能感興趣的任何企業客戶,建議您評估 適用於端點的 Microsoft Defender