練習 - 監視您的資料庫
假設您收到來自公司安全性系統管理員的警示。 在您的網路上偵測到潛在的安全性缺口。 未經授權的個人可能已透過惡意活動存取您的資料庫。 您應該如何追蹤此情況?
您知道您必須主動監視資料庫是否有可疑活動。 您可以怎麼做,以便除了能了解資料庫中發生的情況,還能防止惡意活動發生?
Azure SQL Database 具有內建功能,可協助您追蹤資料庫中發生的情況。 它可以監視並警示您是否識別出惡意活動。
Azure SQL Database 稽核
啟用稽核,即會儲存資料庫上發生的作業,以用於後續檢查,或讓自動化工具分析它們。 稽核也會用在合規性管理上,或用來了解您資料庫的運作方式。 如果您想要在 Azure SQL 資料庫上使用 Azure 威脅偵測,也需要稽核。
您可以使用 SQL 資料庫稽核完成下列工作:
- 保留 所選事件的稽核記錄。 您可以定義要稽核的資料庫動作類別。
- 報告資料庫活動。 您可以使用預先設定的報告和儀表板,以便快速開始使用活動和事件報告。
- 分析報告。 您可以尋找可疑事件、異常活動及趨勢。
系統會將稽核記錄寫入到您指定之 Azure Blob 儲存體帳戶中的附加 Blob。 稽核原則可套用在伺服器層級或資料庫層級。 啟用之後,您可以使用 Azure 入口網站來檢視記錄,或將記錄傳送至 Log Analytics 或事件中樞,以便進一步處理和分析。
稽核˙實務
作為最佳做法,避免同時啟用伺服器 Blob 稽核與資料庫 Blob 稽核,除非:
- 您希望針對特定資料庫使用不同的儲存體帳戶或保留期間。
- 您想要針對伺服器上不同於其餘資料庫的特定資料庫來稽核事件類型或類別。 例如,您可能有必須稽核但僅針對特定資料庫的資料表插入。
否則,建議您只啟用伺服器層級 Blob 稽核,並讓所有資料庫的資料庫層級稽核維持在停用狀態。
請遵循下列步驟,在您的系統上設定稽核。
使用啟用沙箱時所用的相同帳戶來登入 Azure 入口網站。
在入口網站頂端的搜尋列中,搜尋伺服器,然後在入口網站中選取該伺服器。 以伺服器名稱中的數字取代 NNNN。
在左功能表窗格的 [安全性] 底下,選取 [稽核]。
稽核功能預設為關閉。 若要在資料庫伺服器上啟用它,將 [啟用 Azure AQL 稽核] 切換為 [開啟]。
選取 [開啟] 按鈕之後,選取 [儲存體] 核取方塊。
選取您的訂用帳戶。
您可以選取現有的儲存體帳戶,或建立新的儲存體帳戶來儲存稽核。 您必須將儲存體帳戶設定為使用與您伺服器相同的區域。
在此案例中,定義新的儲存體帳戶。 在 [儲存體帳戶] 下,選取 [建立新的]。 [建立儲存體帳戶] 窗格隨即顯示。 將儲存體帳戶 <server-name> 命名為稽核,並將 <server-name> 取代為邏輯伺服器名稱。
將其餘選項保留為預設值,然後選取 [確定]。 回到 [儲存體設定] 窗格,保留預設值並選取 [確定]。
選取 [儲存] 以儲存變更,然後啟用資料庫伺服器上的稽核。
現在,產生一些稽核記錄,並查看您可預期的內容。
使用 ApplicationUser 使用者重新登入資料庫。
sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
執行下列查詢。
SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer; GO
回到 SQL 伺服器上的 Azure 入口網站中,選取左側功能表窗格中的 [SQL 資料庫],然後選取 marketplace 資料庫。
在 marketplace 資料庫上的左側功能表窗格中,選取 [安全性] 下的 [稽核]。
因為您已在伺服器層級啟用稽核,所以您應該會在此處看到其已啟用。 在頂端功能表列中,選取 [檢視稽核記錄] 以檢視記錄。
您應該會看到一或多個主體名稱為 ApplicationUser 且事件類型為批次已完成的稽核記錄。 它們其中之一應會包含您剛執行之查詢的詳細資料。 您也可能會看到如驗證失敗和成功的其他事件。 選取任一筆記錄來查看該事件的完整詳細資料。
這些動作會在資料庫伺服器層級上設定稽核。 稽核會套用至伺服器上的所有資料庫。 您也可以在資料庫層級上設定稽核。
讓我們看看另一個可使用這些記錄來提高資料庫安全性的功能。
Azure SQL Database 的進階資料安全性
進階資料安全性 (ADS) 提供一組進階的 SQL 安全性功能,包括資料探索與分類、弱點評估及進階威脅防護。
- [資料探索與分類] (目前為預覽版) 提供內建於 Azure SQL Database 的功能,可用來探索、分類、標記及保護資料庫中的敏感性資料。 可用來讓您檢視資料庫分類狀態、追蹤對資料庫內敏感性資料的存取,並具有其他多方面的用途。
- 弱點評定服務可讓您輕鬆設定,以探索、追蹤並協助您補救潛在資料庫弱點。 可讓您檢視安全性狀態,且包含解決安全性問題和增強資料庫防護性的可行步驟。
- 進階威脅防護偵測到異常活動,即表示有不尋常及可能有害的活動,試圖存取或惡意探索您的資料庫。 進階威脅防護會持續監視您的資料庫是否有可疑活動,並在發現潛在弱點、SQL 插入式攻擊和異常資料庫存取模式時提供即時安全性警示。 進階威脅防護警示會提供可疑活動的詳細資料,以及如何調查與降低威脅的建議。
安裝及設定
在您的資料庫上啟用 ADS。 ADS 是伺服器層級的設定,因此會從該處開始。
回到 Azure 入口網站,前往您的 SQL 伺服器。 在頁面頂端的搜尋列中,搜尋 <server-name>,然後選取該伺服器。
在左側功能表窗格中,選取 [安全性] 下的 [適用於雲端的 Microsoft Defender]。
選取 [啟用適用於 SQL 的 Microsoft Defender]。
選取 [在訂用帳戶層級啟用] 訊息旁的 [設定]。 [伺服器設定] 窗格隨即顯示。
[週期性掃描] 預設為開啟。 觸發每週掃描時,系統會將掃描結果摘要傳送到您提供的電子郵件地址。 在此情況下,請關閉此功能。 [也傳送電子郵件通知給系統管理員和訂用帳戶擁有者] 預設為啟用,可將威脅傳送給服務管理員。 選取頂端的 [儲存] 以儲存您的設定。
在 [進階威脅防護設定] 底下,選取 [新增您的連絡人詳細資料],以開啟適用於雲端的 Defender 的 [電子郵件通知] 窗格。 在這裡,您可以選擇性地針對弱點評量與進階威脅防護,以分號分隔的電子郵件地址清單形式來定義要傳遞通知電子郵件的目的地。 [也傳送電子郵件通知給系統管理員和訂用帳戶擁有者] 預設為啟用,可將威脅傳送給服務管理員。
您也可以選取 [啟用稽核],以開啟 [Azure SQL 稽核]。
選取儲存以套用變更。
偵測到弱點時,您會收到電子郵件通知。 電子郵件會概述所發生的情況和應採取的動作。
資料探索與分類
前往您的 marketplace 資料庫。 在 Azure 入口網站頂端的搜尋列中搜尋 marketplace,然後選取該資料庫。
在左側功能表窗格的 [安全性] 下,選取 [資料探索與分類]。
[分類] 索引標籤會顯示資料表中需要保護的資料行。 某些資料行可能包含敏感性資訊,或者可能在不同的國家或地區中被視為機密。
有個訊息會在有任何資料行需要設定保護時出現。 此訊息的格式類似於「有 15 個含分類建議的資料行」。 您可以選取文字以檢視建議。
若要選取要分類的資料行,請選取該資料行旁邊的核取記號,或選取結構描述標頭左側的核取方塊。 選取 [接受選取的建議] 按鈕,以套用分類建議。
接下來,請編輯資料行,然後定義資料庫的資訊類型和敏感度標籤。 選取儲存以儲存變更。
當您成功管理建議後,不應列出任何使用中的建議。
安全性弱點
在左側功能表窗格中,選取 [安全性] 下的 [適用於雲端的 Microsoft Defender]。
[建議] 區段會列出資料庫上的設定問題和相關聯的風險。
選取建議。 在建議窗格上,您會看到詳細資料,例如,風險層級、其適用的資料庫、弱點描述,以及可修正問題的建議補救。 套用補救來修正一或多個問題。 務必解決所有弱點。
安全性事件與警示
此節會顯示偵測到的威脅清單。
依照建議解決任何問題。 針對 SQL 插入警告之類的問題,您可以查看查詢,並回溯該查詢在程式碼中執行的位置。 找到之後,您應該重寫程式碼,使其不再產生該問題。