登錄機碼上的其他 Windows 資源保護
平台
用戶端 - Windows 7
伺服器 - Windows Server 2008 R2
功能影響
嚴重性 - 中
頻率 - 低
描述
其他系統資源已在 Windows 7 中新增 Windows 資源保護 (WRP) 設定,使其成為唯讀設定。 接收新增保護的絕大多數資源都是系統 COM 伺服器密鑰,不過有些功能已新增目標資源保護。 Microsoft變更這些資源,以保護系統和其他應用程式彼此中斷,並提供一致的穩定平臺,讓應用程式能夠可靠地執行。 過去,應用程式可以提供自定義檔案,並使用未受保護的 COM 註冊來變更系統。 在較舊的應用程式中,這可能會降級系統運行時間,或變更其他應用程式正常運作所需的介面。 在最壞的情況下,這類安裝可能會導致系統故障或隨時間降低。 為了提供更好的體驗和更穩定的應用程式平臺,我們鎖定了這些註冊,因此只有Microsoft更新才能變更系統元件。
由於大部分變更的資源都是系統所使用的 COM 金鑰,因此這項變更不會影響大部分的應用程式。 雖然由於這些變更,我們預期大部分的應用程式在 Windows 7 上會有較佳的體驗,但一小部分的應用程式可能會受到負面影響。 系統的應用程式相容性層級會自動解決安裝問題,方法是一律告訴應用程式,即使因為設定是受保護的資源而失敗也一樣。 這可防止應用程式設定中斷,但如果需要變更設定,應用程式才能正常運作,可能會造成問題。
表現
應用程式可能已在 Windows 7 之前修改這些設定。 在 Windows 7 上安裝時,應用程式可能會發現某些功能無法再運作,因為設定並未反映應用程式預期的內容。
有兩種情況,應用程式可能會遇到與此新增保護相關的問題:
- 可能已使用目前受保護的設定作為數據存放區或罕見或非預期的擴充點的應用程式
- 在罕見的情況下,用來識別應用程式設定的偵測機制可能無法辨識特定設定,因此可能不會套用應用程式相容性風險降低層
風險降低
風險降低的主要方式是系統的應用程式相容性層,會在偵測到時自動套用至應用程式設定。 您也可以使用應用程式屬性中的相容性索引標籤,手動將其套用至任何應用程式。
此層會藉由攔截登錄作業來解決問題。 在應用程式嘗試修改只讀 (WRP) 設定的情況下,即使設定並未真正變更,圖層仍會傳回成功。 對大部分的應用程式而言,這不會造成任何問題。 不過,應用程式可能需要變更設定才能正常運作,這是上述第一個案例。
解決方案
針對上述兩個案例:
- 如果應用程式需要可寫入密鑰才能運作或使用資料存放區,則除了變更應用程式之外,沒有其他解決方案,使其不再寫入該位置。
- 如果相容性層未套用至安裝程式,應該偵測到安裝失敗,並提供要套用並重新執行。 應用程式也可以以相容性模式執行,在此情況下,一律會套用緩和層。
相容性測試
如何偵測應用程式是否已套用 WRP 風險降低:
- Windows Installer 知道 WRP;它會自動且以無訊息方式忽略寫入或修改受保護資源的嘗試。 如果應用程式已安裝 Windows Installer 並啟用記錄功能,則會針對因為其為 WRP 保護的資源而忽略的每個登錄機碼寫入作業記錄警告。
- Windows 資源保護 API 會納入 SfCIsKeyProtected,其可在目前系統上查詢登錄機碼是否受到 WRP 保護。