撰寫安全安裝的指導方針
撰寫 Windows Installer 套件時,遵循下列指導方針有助於維護安裝期間的安全環境:
- 系統管理員應該將受控應用程式安裝到非系統管理員用戶沒有變更或修改許可權的目標安裝資料夾中。
- 將用戶設定的任何屬性設為公用屬性。 與使用者介面互動的使用者無法變更私用屬性。 如需詳細資訊,請參閱 關於屬性。
- 請勿將屬性用於密碼或其他必須保持安全的資訊。 安裝程式可能會將已定義屬性的值寫入 Property 表格,或者將運行時建立的屬性寫入記錄檔或系統登錄中。 如需詳細資訊,請參閱 防止機密資訊寫入記錄檔。
- 當安裝要求安裝程式使用 提高 許可權時,請使用 限制公用屬性 來限制使用者可以變更的公用屬性。 當安裝需要安裝程式使用 提升的 許可權時,通常需要一些限制來維持安全的環境。
- 避免安裝模擬特定使用者許可權的服務,因為這可能會將安全性數據寫入記錄檔或系統登錄中。 這會在重新啟動系統時,造成安全性問題、密碼衝突或組態數據遺失的可能性。 如需詳細資訊,請參閱 ServiceInstall 資料表。
- 使用 LockPermissions 數據表 和 MsiLockPermissionsEx 數據表 來保護鎖定環境中的服務、檔案、登錄機碼和已建立的資料夾。
- 將數位簽名新增至安裝,以確保檔案的完整性。 如需詳細資訊,請參閱 數位簽名和 Windows Installer 和 撰寫完整驗證簽署安裝。
- 撰寫您的 Windows Installer 套件,以便在使用者被拒絕存取資源時,安裝程式會以維持安全環境的方式失敗。 檢查使用者的存取許可權,並判斷安裝開始之前是否有足夠的磁碟空間。 通常,安裝程式應該只會顯示瀏覽對話方塊,除非目前使用者是系統管理員或安裝不需要 提升權限。 如需詳細資訊,請參閱 來源復原。
- 使用 安全轉換,將轉換儲存在用戶電腦上的本機安全檔案系統中。 這可防止使用者具有變換的寫入存取權。
- 如需如何保護受控應用程式的媒體來源的詳細資訊,請參閱 來源復原。
- 使用 安全性摘要 屬性來指出套件是否應開啟為唯讀。 此屬性應設為安裝資料庫的建議唯讀,且針對轉換或修補程式則應強制設為只讀。
- 安裝程式預設會以使用者許可權執行自定義動作,以限制對系統的自定義動作存取。 如果安裝受控應用程式,或系統原則已指定為提高許可權,安裝程式可能會執行自定義動作,並以 提高的 許可權運行。 如需詳細資訊,請參閱 自訂動作安全性。
- 使用 DisablePatch 原則,在必須限制修補的環境中提供安全性。
- 使用 AppId 數據表 來註冊 DCOM 物件的一般安全性和組態設定。
- 如需相關信息,請參閱 保護自定義動作的指導方針。
- 如需相關信息,請參閱 鎖定電腦上保護套件的指導方針。
- 從 Windows Installer 3.0 開始,用戶帳戶控制 (UAC) 修補功能 可讓非系統管理員使用者修補安裝在每部機器的上下文中的應用程式。 藉由在 MsiPatchCertificate 數據表中提供簽署者憑證,並使用相同的憑證對修補程式進行簽署,即可啟用 UAC 修補功能。
- Windows Installer 5.0 在服務、檔案、建立的資料夾和登錄項目上設定訪問許可權的功能,有助於讓安裝應用程式更安全。 如需詳細資訊,請參閱 保護資源。