威脅與弱點矩陣 (Database Engine)
雖然 SQL Server 包含各種安全性機制,但是每一個系統都有一些功能可能會遭到惡意使用者的利用。公開資料或其他資訊的每一項功能如果未正確實作的話,都可視為風險。
雖然每一項功能都可能代表風險,但是並非所有的風險都相同。某些需要實際上的變更,某些則需要設定上的變更,還有一些需要程式碼的變更。下表說明風險,以及您可採取來降低風險的主動式步驟。
程序威脅和弱點
威脅或弱點 |
定義 |
降低 |
---|---|---|
安全性原則 |
安全性原則是處理和程序的記錄,組織將會遵循它們來避免、追蹤及回應安全性威脅。其中包含的原則牽涉到系統、修補和防火牆的適當存取以及防毒機制。 |
建立、檢閱、散發及維護有效的安全性原則。如需有關如何建立安全性原則的詳細資訊,請參閱<保護 SQL Server 的安全>。 |
最少權限的主體 |
「最少權限」主體陳述系統應該只允許安全性實體物件的必要存取等級。此外,應該只對有直接需要的人啟用存取,而且只啟用指定的時間。應用程式可加以編碼來提供多於所需的存取權,而且帳戶可能會有過多的存取權。 |
請根據最少權限的主體來檢閱及實作安全性。如需有關如何開發使用最少權限概念之應用程式的詳細資訊,請參閱 MSDN 上的<最少權限環境中的最佳作法>(英文)。 |
安全佈告欄 |
Microsoft 一旦在各種平台上驗證及測試之後,就會發佈安全性資訊。未監視這些佈告欄的組織會因為未實作適當的安全性指引而讓他們的系統暴露在風險中。 |
請檢閱及追蹤 SQL Server 安全佈告欄。如需詳細資訊,請參閱 TechNet 上的<Microsoft 安全佈告欄搜尋>(英文)。 |
平台威脅和弱點
威脅或弱點 |
定義 |
降低 |
---|---|---|
系統未更新 (未套用軟體更新) |
Microsoft 會發佈軟體更新,讓 SQL Server 更安全。如果未追蹤或套用這些軟體更新,將會讓系統更容易受到攻擊。 |
請在任何 Service Pack 和 Hotfix 可用時,立刻加以檢閱及套用。如需詳細資訊,請參閱 SQL Server TechCenter 上的<下載>頁面。 |
網路通訊埠利用 |
網路是針對 SQL Server 進行攻擊的主要存取來源。將標準通訊埠開放給網際網路,可能會造成惡意使用者的攻擊。 |
如果伺服器要公開給網際網路,請在伺服器上使用防火牆,並使用「SQL Server 組態管理員」工具來設定網路組態。此外,也請考慮使用安全通訊端層 (SSL) 來增強安全性。如需有關防火牆和 SQL Server 的詳細資訊,請參閱<如何:設定用於 Database Engine 存取的 Windows 防火牆>。如需有關如何設定網路設定的詳細資訊,請參閱<SQL Server 組態管理員>。如需有關如何在 SQL Server 中使用安全通訊端層 (SSL) 的詳細資訊,請參閱<加密 SQL Server 的連接>。 |
不適當的服務帳戶設定 |
SQL Server 的服務帳戶經常會被授與比所需更多的平台或網路存取權。 |
SQL Server 的服務帳戶應該在最少權限的主體之下操作,而且應該具有增強式密碼。如需有關服務帳戶的詳細資訊,請參閱<設定 Windows 服務帳戶>。如需有關密碼的詳細資訊,請參閱<增強式密碼>。 |
介面區太大 |
SQL Server 的功能可以在不必要時公開。 |
使用 SQL Server 組態管理員和以原則為基礎的管理來控制功能和其他元件。如需詳細資訊,請參閱<了解介面區組態>。 |
啟用不必要的預存程序 |
某些擴充預存程序允許存取作業系統或登錄。 |
除非絕對必要,否則請勿啟用允許存取作業系統或登錄的預存程序。如需詳細資訊,請參閱<了解介面區組態>。 |
驗證威脅和弱點
威脅或弱點 |
定義 |
降低 |
---|---|---|
弱式密碼 |
簡單的密碼可能會暴露在暴力攻擊或字典攻擊的風險下。 |
請務必使用增強式複雜密碼。如需詳細資訊,請參閱<增強式密碼>。另請參閱 CREATE LOGIN (Transact-SQL) 和 ALTER LOGIN (Transact-SQL) 陳述式上的 CHECK_POLICY 和 CHECK_EXPIRATION 選項。 |
未稽核使用者帳戶 |
使用者 (主體) 經常會變更位置或離開組織。如果使用者帳戶的存取權並未變更,則仍然可以使用之前的權限等級來存取系統。 |
應該要經常稽核使用者帳戶,以確保可對資料庫伺服器和物件啟用適當的存取權。如需有關如何稽核 SQL Server 存取權的詳細資訊,請參閱<監視錯誤記錄>。 |
程式設計威脅和弱點
資料存取威脅和弱點
威脅或弱點 |
定義 |
降低 |
---|---|---|
不適當地套用加密 |
加密會讓 SQL Server 中的資料或連接資訊模糊化。在需要時未加密或是在不需要時加密,都會造成不必要的風險和複雜性。 |
請瞭解及正確實作 SQL Server 加密。如需詳細資訊,請參閱<SQL Server 加密>。 |
不適當地套用憑證 |
憑證是確認驗證的一項機制。SQL Server 可以針對各種用途 (從連接到資料) 使用憑證。不適當地使用自我憑證及擴充驗證期間,都會降低整體安全性的強度。 |
請瞭解及正確實作 SQL Server 憑證。如需詳細資訊,請參閱<SQL Server 憑證和非對稱金鑰>。 |
未備份 SQL Server 金鑰 |
它所包含的 SQL Server 執行個體和資料庫可以具有針對各種安全性用途所使用的金鑰。其中包括加密。 |
伺服器金鑰 (也稱為服務主要金鑰) 和資料庫金鑰應該備份起來,並儲存在安全的位置。您也應該定期變更這些金鑰。如需詳細資訊,請參閱<SQL Server 和資料庫加密金鑰 (Database Engine)>。 |