等保2.0數據庫測評之SQL server數據庫測評

一、SQL server數據庫介紹

SQL server美國Microsoft公司推出的一種關系型數據庫系統。SQL Server是一個可擴展的、高性能的、為分布式客戶機/服務器計算所設計的數據庫管理系統。

本次安裝環境為Windows10專業版操作系統,數據庫版本為Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) ,單機部署過程比較簡單就不在此進行講解。本文針對SQLserver等保測評進行實際操作,不妥之處還懇請留言指正,共同學習。

二、等保測評

身份鑒別

a) 應對登錄的用戶進行身份標識和鑒別,身份標識具有唯一性,身份鑒別信息具有復雜度要求并定期更換;

1)SQL server數據庫本身沒有密碼復雜度策略設置,它是使用Windows操作系統的校驗函數來校驗賬戶密碼的,所以查看SQL server數據庫密碼復雜度需要結合操作系統本地安全策略的密碼策略來看。SQL server密碼策略要同時滿足開啟Windows密碼策略并且勾選SQL server賬戶的強制實施密碼策略才算是符合,但即使這樣的話一樣可以設置6位長度的口令,所以還要設置服務器的密碼最小長度值。

2)在Microsoft SQL Server Management Studio中登錄服務器,右鍵點擊服務器,選擇“屬性”,選擇“安全性”項,查看服務器身份驗證。在Microsoft SQL Server Management Studio中選擇服務器組并展開,選擇“安全性->登錄名”項,右鍵點擊管理員用戶的“屬性”,在“常規”中 查看“強制實施密碼策略”和“強制密碼過期”

SQL server數據庫的身份驗證方式有多種,經常使用的有:windows身份驗證和SQL server 身份驗證。如果SQLServer數據庫中的登錄名
添加了該操作系統賬戶,且沒有被禁用,則無需口令即可登錄。

檢查是否開啟強制密碼策略。

3)用戶唯一標識SQLServer自動實現,這點默認符合。

4)嘗試建立弱口令賬戶,檢查是否建立成功。

b) 應具有登錄失敗處理功能,應配置并啟用結束會話、限制非法登錄次數和當登錄連接超時自動退出等相關措施;
1)SQL server的賬戶鎖定策略原理也是一樣的,都是參照Windows操作系統的校驗函數來校驗的,所以需要勾選賬戶的強制密碼過期,并且開啟操作系統的賬戶鎖定策略。勾選數據庫強制密碼過期,設置操作系統密碼鎖定策略。

2)SQL Server 數據庫連接超時包含三類:遠程登錄超時、客戶端連接數據庫超時、sql語句執行超時(主要關注遠程登錄超時),其中:

遠程登錄超時:

在Microsoft SQL Server Management Studio中登錄服務器并展開,右鍵點擊服務器,選擇“屬性”,選擇“高級”項,查看登錄超時設定。也可在Microsoft SQL Server Management Studio的查詢中輸入命令:“sp_configure”查看數據庫啟動的配置參數;其中remote login timeout為遠程登錄超時設定。

客戶端連接數據庫超時:

sql語句執行超時:

c) 當進行遠程管理時,應采取必要措施防止鑒別信息在網絡傳輸過程中被竊聽;

核查是否采用加密等安全方式對系統進行遠程管理,防止鑒別信息在網絡傳輸過程中被竊聽。檢查遠程管理時管理員所使用的管理協議,查看傳輸過程中的鑒別信息是否是經過加密處理的、抗重放的,并可使用抓包工具,判斷管理員遠程管理時傳輸過程中的鑒別信息被竊聽的可能性。

根據了解,SQL Server的加密分成兩個部分,一個是對數據的加密,一個是對連接的加密。對于數據的加密,主要是通過一系列的函數如EncryptbyKey,或者TDE來完成的。另外一部分是連接加密,自己分的話還能分成兩個階段。一個是建立連接時候的加密。另外一個階段是連接建立起來之后,客戶端和SQL Server在其上傳輸數據時候的加密。可以通過抓包判定SQL Server已經使用了SSL來加密。

SQL Server自動生成的證書是一種自簽名的證書,而通過自簽名證書實現的SSL并不能提供很強的安全性。他對中間人攻擊(man-in-the-middle attack)不具有抵抗能力。因此建議在生產環境中,應該手動給SQL Server配置證書,而不是讓它使用自動生成的證書。

默認情況下SQL Server是不加密收發的數據包信息,需要通過SQL Server的configuration Manager配置SQL Server使得它加密和客戶端之間收發的數據包信息。

其中包含客戶端的加密配置和服務器端的加密配置:

客戶端的加密配置:

服務器端的加密配置:

默認狀態下客戶端和服務器端這個選項是設置為No的,SQL Server對數據包的收發不進行加密,反之,當選項設置為yes時,SQL Server對數據包的收發進行加密。

d) 應采用口令、密碼技術、生物技術等兩種或兩種以上組合的鑒別技術對用戶進行身份鑒別,且其中一種鑒別技術至少應使用密碼技術來實現。

訪談管理員并進行驗證,是否采用雙因子身份鑒別技術,鑒別技術是什么 。實際實現雙因素認證比較困難,一般情況判定為不符合。

訪問控制

a) 應對登錄的用戶分配賬戶和權限;

1)查看用戶,并結合結合訪談管理員是否存在網絡管理員,安全管理員,系統管理員、審計管理員等多個賬戶,為各個管理用戶分配對應的權限;輸入命令:“select * from syslogins”,根據所列出的賬戶,查看是否存在默認賬戶,默認賬戶是否已禁用。

b) 應重命名或刪除默認賬戶,修改默認賬戶的默認口令

執行命令:“select * from syslogins”,檢查如sa賬戶是否重命名(實際檢查發現很多sa賬戶是不能重命名或禁用的,可能會影響系統正常運行,檢查過程中也需要權衡業務需求),數據庫一般情況不存在默認口令,輸入命令:查看是否存在默認賬戶。(SQLServer中默認賬戶其實很多,主要檢查權限過大的賬戶)

c) 應及時刪除或停用多余的、過期的賬戶,避免共享賬戶的存在

1)詢問管理員數據庫中的賬戶使用情況,是否存在無人使用的賬戶,如果存在建議刪除。

2)檢查網絡管理員,安全管理員、系統管理員不同用戶是否采用不同賬戶登錄數據庫。輸入命令:“select * from syslogins”,根據所列出的賬戶,詢問數據庫管理員各個賬戶的作用,是否存在多余的、過期的和共享賬戶。

d) 應授予管理用戶所需的最小權限,實現管理用戶的權限分離
1)詢問數據庫管理員管理賬戶是否按照最小權限進行劃分。在Microsoft SQL Server Management Studio中的查詢中輸入命令:“sp_helplogins”查看所有數據庫登錄用戶的信息及其權限。在Microsoft SQL Server Management Studio的查詢中輸入命令:“select * from sys.sql_logins”,查看SQL Server身份認證模式的能夠登錄賬戶,其中is_disabled值為1,則登錄賬戶被鎖定;輸入命令:“select * from sys.syslogins”,查看所有登錄賬戶,其中 “denylogin”的值為1時,拒絕賬戶連接到數據庫引擎,“sysadmin”的值為1時,具有系統管理員權限。Sa之類的系統管理員賬戶不負責操作業務數據庫;業務數據庫管理員不應具備系統管理權限(如刪除數據庫、表和存儲過程等)。

e) 應由授權主體配置訪問控制策略,訪問控制策略規定主體對客體的訪問規則

1)訪談和查看管理員是否制定了訪問控制策略

2)查看管理員權限;(此測評點如果數據庫已經啟用身份鑒別,且具備權限分離可判定為符合)

f) 訪問控制的粒度應達到主體為用戶級或進程級,客體為文件、數據庫表級

結合a)、b)、c)、d)、e)項,并訪談管理員并核查訪問控制粒度主體是否為用戶級,客體是否為數據庫表級。詢問數據庫管理員是否具有安全策略,數據庫是否具有重要的表。在企業管理器中右鍵點擊重要的表,查看其權限。

(此測評點多數測評機構默認判定為符合)

g)應對重要主體和客體設置安全標記,并控制主體對有安全標記信息資源的訪問

通過訪談管理員是否對重要主體和客體設置安全標記。SQL Server數據庫自身應該很難實現這個功能,可能需要依賴操作系統或者第三方來實現。該項一般默認都不符合。

安全審計

a) 應啟用安全審計功能,審計覆蓋到每個用戶,對重要的用戶行為和重要安全事件進行審計

1)查看SQLserver日志是否有日志審計記錄,檢查安全性中是否創建了審核目標。在Microsoft SQL Server Management Studio中登錄服務器并展開,右鍵點擊服務器,選擇“屬性”,選擇“安全性”項,查看登錄審核和是否啟用C2 審計跟蹤。也可在Microsoft SQL Server Management Studio的查詢中輸入命令:“sp_configure”查看“c2 audit mode”項的值,“0”是未開啟C2審計,“1”是開啟C2審計。SQL Server數據庫的審計內容包括SQL Server日志和應用程序日志。SQL Server的SQL Server日志可通過Microsoft SQL Server Management Studio進行查看,展開服務器點擊“管理-〉SQL Server 日志";SQL Server的應用程序日志可通過操作系統的日志進行查看。

2)訪談管理員是否通過第三方工具(數據庫審計系統)收集審計數據進行分析。

b) 審計記錄應包括事件的日期和時間、用戶、事件類型、事件是否成功及其他與審計相關的信息

1)檢查SQL server日志記錄的各類信息(告警日志、運行日志、錯誤日志、登錄日志等)

2)核查是否部署第三方工具(數據庫審計系統)增強SQLserver日志功能。記錄第三方審計工具的審計內容,查看是否包括事件的日期和時間、用戶、事件類型、事件是否成功及其他與審計相關的信息。

c) 應對審計記錄進行保護,定期備份,避免受到未預期的刪除、修改或覆蓋等

應保證各個管理員盡可以訪問與自身相關的日志文件,如關鍵日志僅允許特權賬戶訪問

1)訪談管理員對審計記錄如何保護,對審計記錄是否定期備份,備份策略。

是否采取了備份、轉存等手段對審計記錄進行保護,避免未預期的刪除、修 改或覆蓋,數據庫本地日志保存時間超過6個月。采用第三方數據庫審計產品,審計記錄保存時間超過6個月。

2)是否嚴格限制用戶訪問審計記錄的權限,可以通過普通用戶登錄然后是否能夠訪問修改刪除日志。

d) 應對審計進程進行保護,防止未經授權的中斷

MariDB可以根據權限建立各類型的賬戶,可以防止審計進程未經授權的中斷,如果數據庫已建立審計賬戶且各個數據庫管理員權限已分離,可判定為符合。

入侵防范

a) 應遵循最小安裝的原則,僅安裝需要的組件和應用程序

數據庫系統此測評項可判定為不適用。

b) 應關閉不需要的系統服務、默認共享和高危端口

數據庫系統此測評項不適用。

c) 應通過設定終端接入方式或網絡地址范圍對通過網絡進行管理的管理終端進行限制

SQL server數據庫沒有登錄地址限制的相關配置,多數情況下是限制數據庫服務器的登錄地址,從而實現對數據庫的登錄地址限制。

d) 應提供數據有效性檢驗功能,保證通過人機接口輸入或通過通信接口輸入的內容符合系統設定要求

數據庫系統此測評項不適用。

e) 應能發現可能存在的已知漏洞,并在經過充分測試評估后,及時修補漏洞

1) 訪談管理員是否定期或不定期進行漏洞掃描或滲透測試,周期按照天/月/季度/半年/年等方式(建議漏洞掃描周期最長半年一次)。
2)通過本次漏洞掃描是否發現與數據庫相關的高危漏洞,若存在,是否及時進行漏洞修補,執行命令:“select @@version”檢查數據庫版本。

f) 應能夠檢測到對重要節點進行入侵的行為,并在發生嚴重入侵事件時提供報警

數據庫系統此測評項不適用。

惡意代碼防范

應采用免受惡意代碼攻擊的技術措施或主動免疫可信驗證機制及時識別入侵和病毒行為,并將其有效阻斷

數據庫系統此測評項不適用。

可信驗證

可基于可信根對計算設備的系統引導程序、 系統程序、重要配置參數和應用程序等進行可信驗證,并在應用程序的關鍵執行環節進行動態可信驗證,在檢測到其可信性受到破壞后進行報警,并將驗證結果形成審計記錄送至安全管理中心

通過訪談管理員,是否采取了可信技術,可信技術主要是基于可信芯片、可信根,目前實現此技術的可能性不大,一般判定為不符合。

數據完整性

a)應采用密碼技術保證重要數據在傳輸過程中的完整性,包括但不限于鑒別數據、重要業務數據、重要審計數據、重要配置數據、重要視頻數據和重要個人信息等;

傳輸過程中的完整性一般是通過通信協議來實現的,常見的包括TLS、SSL、SSH等協議,對數據庫而言,查看是否啟用了安全協議進行數據通信,同時詢問管理員,確認是否還有其他保證數據傳輸過程中的完整性措施。根據上文描述,可知SQL Server已經使用SSL來加密。(本地管理可判定為不適用,遠程管理根據實際情況判定)

b)應采用密碼技術保證重要數據在存儲過程中的完整性,包括但不限于鑒別數據、重要業務數據和重要個人信息等。

對數據庫配置文件進行一個完整性檢測,需要配置文件初始可信狀態時的哈希值,然后再根據目前的文件生成一個哈希值,對比前后的一致性,確認數據是否被篡改過,根據了解一般數據庫自身不帶這種機制,詢問管理人員是否使用了第三方軟件對數據庫重要數據進行了完整性校驗。

實際操作中可核查數據庫表中的業務數據、審計數據有無存在哈希字段,據了解數據在前端一般通過json或xml格式進行傳輸,相關數據庫表字段中具有完整性校驗字段。目前一般做不到,判定為不符合。

數據保密性

a)應采用密碼技術保證重要數據在傳輸過程中的保密性,包括但不限于鑒別數據、重要業務數據、重要審計數據、重要配置數據、重要視頻數據和重要個人信息等;

若password是以明文密碼傳送給數據庫,建議不在生產環境中使用。若數據庫未開啟SSL時,我通過Wireshare對數據庫認證過程的數據包進行抓取,可能發現傳輸的密碼字段信息。根據上文描述,可知SQL Server已經使用SSL來加密。

總結,最直接驗證的辦法就是抓包驗證重要的加密數據(鑒別數據、需要加密的業務數據、個人信息等)是否明文傳輸。

b)應采用密碼技術保證重要數據在存儲過程中的保密性,包括但不限于鑒別數據、重要業務數據和重要個人信息等。

檢查數據庫表中的重要數據是否明文存儲,根據經驗除鑒別數據外,業務數據、審計數據實際很少加密存儲,所以一般不符合或者部分符合。如果使用數據庫加密功能,就可以符合符合,數據庫加密主要分庫內加密和庫外加密,庫內加密主要是調用的數據庫本身的加密功能,庫外加密主要通過第三方廠家的數據庫加密功能。

據了解,SQL Server幾乎支持所有的主流對稱加密算法。一般推薦使用AES-128或AES-256作為對稱加密的數據加密算法。

數據備份恢復

a)應提供重要數據的本地數據備份與恢復功能;

1)訪問管理員配置數據、審計數據、業務數據的備份策略,檢查備份策略的備份情況與管理員所說是否一致,是否具有恢復測試記錄。

2)可以通過數據庫管理工具進行備份。

b)應提供異地實時備份功能,利用通信網絡將重要數據實時備份至備份場地;

部署異地備份機房,并符合備份策略通過網絡定期進行異地備份。

c)應提供重要數據處理系統的熱冗余,保證系統的高可用性;

集群部署、雙機熱備均可判定為符合。

剩余信息保護

a)應保證鑒別信息所在的存儲空間被釋放或重新分配前得到完全清除;

一般情況下數據庫系統內核層默認無法實現剩余信息保護功能,需要第三方工具才能實現。

b)應保證存有敏感數據的存儲空間被釋放或重新分配前得到完全清除。

一般情況下數據庫系統內核層默認無法實現剩余信息保護功能,需要第三方工具才能實現。

個人信息保護

a)應僅采集和保存業務必需的用戶個人信息;

檢查數據庫中是否存儲個人信息,若有,檢查個人信息保護機制和個人信息保護管理制度

b)應禁止未授權訪問和非法使用用戶個人信息。

檢查個人信息保護機制和個人信息保護管理制度,驗證非授權人員是否可以訪問個人信息存儲的相關組件內容。

總結

SQL server數據庫運行在windows操作系統中,部分安全策略主要依賴于操作系統的安全配置,大部分安全配置幾乎可以實現,但是在實際測評過程中很多單位不愿意配置等保中要求的策略,一方面是管理員認為不方便自己運維管理,另一方面可能是數據庫在實時生產環境中,管理員擔心更改相關安全配置后影響系統的正常運行,所以我們在測評中要做好安全和生產、安全和管理的平衡。

等保2.0數據庫測評之優炫數據庫測評正在更新中…

參考資料:

GB∕T 28448-2019 《信息安全技術 網絡安全等級保護測評要求》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62721.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

無人機之報警器的工作原理!

一、電量監測技術 電量監測是無人機電量指示和報警功能的基礎。通過實時監測無人機的電池電量,系統能夠準確判斷電池的剩余使用時間,并在電量不足時發出報警。電量監測技術通常包括以下幾個方面: 電壓檢測:無人機電池內部通常配…

【pyspark學習從入門到精通23】機器學習庫_6

目錄 分割連續變量 標準化連續變量 分類 分割連續變量 我們經常處理高度非線性的連續特征,而且只用一個系數很難擬合到我們的模型中。 在這種情況下,可能很難只通過一個系數來解釋這樣一個特征與目標之間的關系。有時,將值劃分到離散的桶中…

解密時序數據庫的未來:TDengine Open Day技術沙龍精彩回顧

在數字化時代,開源已成為推動技術創新和知識共享的核心力量,尤其在數據領域,開源技術的涌現不僅促進了行業的快速發展,也讓更多的開發者和技術愛好者得以參與其中。隨著物聯網、工業互聯網等技術的廣泛應用,時序數據庫…

QT 使用共享內存 實現進程間通訊

QSharedMemory:如果兩個進程運行在同一臺機器上,且對性能要求非常高(如實時數據共享、圖像渲染等),建議使用共享內存。 優點: 高性能: 共享內存是進程間通信的最快方式之一,因為數…

在Scala中對隱式轉換格式與作用

隱式對象 格式:implicit object 作用:給函數的默認參數提供隱式值 object Scala12______10 { // case class DataBase(driver: String, url: String) // // implicit object mySql extends DataBase("mysql", "localhost:300") //…

go build command

文章目錄 1.簡介2.格式3.選項4.示例5.小結參考文獻 1.簡介 go build 是 Go 語言工具鏈中的一個命令,它用于編譯 Go 源代碼并生成可執行文件。 2.格式 go build [-o output] [build flags] [packages]可選的 -o 選項強制 build 將生成的可執行文件或對象寫入指定的…

OpenCV實驗:圖片加水印

第二篇:圖片添加水印(加 logo) 1. 實驗原理 水印原理: 圖片添加水印是圖像疊加的一種應用,分為透明水印和不透明水印。水印的實現通常依賴于像素值操作,將水印圖片融合到目標圖片中,常用的方法…

WinDbg 中使用 !process 命令

PROCESS 81a979d0 SessionId: 0 Cid: 0210 Peb: 7ffda000 ParentCid: 063cDirBase: 145b9000 ObjectTable: e12fed70 HandleCount: 53.Image: Dbgview.exe 1. PROCESS 81a979d0 意義:PROCESS 是該進程對象的內核地址。用途:可以使用這個地址獲…

深入解析下oracle的number底層存儲格式

oracle數據庫中,number數據類型用來存儲數值數據,它既可以存儲負數數值,也可以存儲正數數值。相對于其他類型數據,number格式的數據底層存儲格式要復雜得多。今天我們就詳細探究下oracle的number底層存儲格式。 一、環境搭建 1.…

SparkSQL與Hive的整合

文章目錄 SparkSQL與Hive的整合1.1. Spark On Hive1.1.1. Hive的準備工作1.1.2. Spark的準備工作1.1.3. Spark代碼開發1.1.4. Spark On Hive案例 1.2. Hive On Spark1.3. SparkSQL命令行1.4. SparkSQL分布式查詢引擎1.4.1. 開啟ThriftServer服務1.4.2. beeline連接ThriftServer…

(持續更新)linux網絡編程中需要注意的內核參數與網絡機制

目錄 零、基本說明 一、內核參數 二、相關機制 1、GRO (1)適用場景 (2)優缺點 (3)相關操作 2、Nagle 算法 (1)基本規則 (2)優缺點 (3&…

DevExpress WPF中文教程:Grid - 如何移動和調整列大小?(一)

DevExpress WPF擁有120個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…

Matlab筆記---clear、clc、clear all應用

在MATLAB中,clear、clc 和 clear all 是三個常用的命令,它們各自有不同的作用: clc: clc 命令用于清除MATLAB命令窗口中的所有輸出。它不會刪除任何變量、函數或文件,只是清除屏幕上的顯示內容,讓你可以更…

銘記一次項目重大事故

在程序的世界里,bug 就像隱藏在暗處的小怪獸,時不時跳出來搗亂。而職業生涯中,總有那么一個或幾個 bug 讓我們刻骨銘心。它或許讓項目差點夭折,或許讓你熬了無數個通宵,或許有著離奇的出現方式和曲折的解決過程。無論是…

Qt 一個簡單的QChart 繪圖

Qt 一個簡單的QChart 繪圖 先上程序運行結果圖&#xff1a; “sample9_1QChart.h” 文件代碼如下&#xff1a; #pragma once#include <QtWidgets/QMainWindow> #include "ui_sample9_1QChart.h"#include <QtCharts> //必須這么設置 QT_CHARTS_USE_NAME…

分布式事物XA、BASE、TCC、SAGA、AT

分布式事務——Seata 一、Seata的架構&#xff1a; 1、什么是Seata&#xff1a; 它是一款分布式事務解決方案。官網查看&#xff1a;Seata 2.執行過程 在分布式事務中&#xff0c;會有一個入口方法去調用各個微服務&#xff0c;每一個微服務都有一個分支事務&#xff0c;因…

MySQL為什么使用B+樹來作索引

我來詳細解釋一下B樹的結構和特點。 graph TDA[根節點 40|70] --> B[20|30]A --> C[50|60]A --> D[80|90]B --> E[10|15]B --> F[25|28]B --> G[35|38]C --> H[45|48]C --> I[55|58]C --> J[65|68]D --> K[75|78]D --> L[85|88]D --> M[9…

python 下載 b站視頻 和音頻

video_bvid&#xff1a; import os import requests import json import re from bs4 import BeautifulSoup import subprocess # from detail_video import video_bvid# video_bvid 是一個從外部得到的單個視頻ID video_bvid BV1cx421Q7veclass BilibiliVideoAudio:def __in…

2024年06月中國電子學會青少年軟件編程(Python)等級考試試卷(五級)答案 + 解析

青少年軟件編程(python)等級考試試卷(五級) 一、單選題(共25題,共50分) range()函數的基本用法是什么?( ) A. 生成一個等差數列 B. 生成一個隨機數列 C. 生成一個遞增數列 D. 生成一個遞減數列 正確答案:A 答案解析:range() 函數用于生成一個等差數列,其中起始值、…

以太網鏈路詳情

文章目錄 1、交換機1、常見的概念1、沖突域2、廣播域3、以太網卡1、以太網卡幀 4、mac地址1、mac地址表示2、mac地址分類3、mac地址轉換為二進制 2、交換機的工作原理1、mac地址表2、交換機三種數據幀處理行為3、為什么會泛洪4、轉發5、丟棄 3、mac表怎么獲得4、同網段數據通信…