使用程式代碼簽署搭配 Windows Defender 應用程控來新增控件和保護

注意

Windows Defender 應用程式控制的某些功能僅在特定 Windows 版本上可用。 如需詳細資訊,請參閱 Windows Defender 應用程控功能可用性

什麼是程式代碼簽署,為什麼這很重要?

程式代碼簽署為應用程式安全性功能提供一些重要優點,例如 Windows Defender 應用程控 (WDAC) 。 首先,它可讓系統以密碼編譯方式確認檔案自簽署之後,以及允許執行任何程序代碼之前,都未遭到竄改。 其次,它會將檔案與真實世界的身分識別產生關聯,例如公司或個別開發人員。 此身分識別可讓您更輕鬆地做出原則信任決策,並允許在濫用或惡意使用程式代碼簽署時產生真實世界的後果。 雖然 Windows 不需要軟體開發人員以數位方式簽署其程式代碼,但大部分獨立軟體廠商 (ISV) 會針對大部分的程式碼使用程式碼簽署。 以及開發人員在檔案資源標頭中包含的元數據 (。RSRC) ,例如 OriginalFileName 或 ProductName,可以與檔案的簽署憑證結合,以限制信任決策的範圍。 例如,您可以選擇只允許由 Microsoft 簽署的檔案,其中 ProductName 是 “Microsoft Teams”,而不是允許所有由 Microsoft 簽署的檔案。 然後使用其他規則來授權任何其他需要執行的檔案。

您應該盡可能要求所有應用程式二進制檔和腳本都以程式代碼簽署,作為應用程式接受準則的一部分。 此外,您應該確保內部企業營運 (LOB) 應用程式開發人員能夠存取貴組織所控制的程式碼簽署憑證。

類別目錄簽署

應用程式二進位檔和腳本通常是內嵌簽署或目錄簽署。 內嵌簽章會成為檔案本身的一部分,並隨附於檔案複製或移動的任何地方。 另一方面,目錄簽章會與個別檔案 (的) 中斷連結。 相反地,會建立個別的「目錄檔案」,其中包含要簽署之一或多個檔案的哈希值。 然後,此類別目錄檔案會經過數字簽署,並套用至您想要簽章存在的任何計算機。 任何哈希值包含在已簽署目錄中的檔案,都會從類別目錄檔案繼承簽章。 檔案可能會有多個簽章,包括混合內嵌和目錄簽章。

您可以使用類別目錄檔案輕鬆地將簽章新增至現有的應用程式,而不需要存取原始程序檔,也不需要任何昂貴的重新封裝。 當您不想直接信任 ISV 簽署的所有專案時,您甚至可以使用類別目錄檔案將自己的簽章新增至 ISV 應用程式。 然後,您只需將已簽署的目錄連同應用程式一起部署到所有受控端點。

注意

由於目錄會識別它們以哈希簽署的檔案,因此對檔案的任何變更都可能會使其簽章失效。 每當應用程式更新時,您都必須部署更新的類別目錄簽章。 將程式代碼簽署與應用程式開發或應用程式部署程式整合通常是最佳方法。 請注意自行更新應用程式,因為其應用程式二進位檔可能會在您不知情的情況下變更。

若要瞭解如何建立和管理現有應用程式的類別目錄檔案,請參閱部署類別目錄檔案以支援 Windows Defender 應用程控

已簽署的 WDAC 原則

當 WDAC 原則以 XML 檔開頭時,它會在部署之前轉換成二進位編碼的檔案。 您原則的這個二進位版本可以像任何其他應用程式二進位檔一樣簽署程式代碼,為已簽署的程式代碼提供許多相同的優點。 此外,WDAC 會特別處理已簽署的原則,並協助防止甚至由系統管理員使用者竄改或移除原則。

如需使用已簽署原則的詳細資訊,請參閱使用已簽署的原則來保護 Windows Defender 應用程控防止竄改

取得程式代碼簽署憑證以供您自己使用

取得程式代碼簽署憑證以供您自己使用的方法包括: