MySQL資料庫等級保護測評列表
評測項 |
評測要求 |
評測方法 |
評測記錄 |
身份鑑別 |
a)應用登入的使用者進行身份標識和鑑別,身份標識具有唯一性,身份鑑別資訊具有複雜度要求並定期更換 |
1)嘗試登入資料庫,執行mysql –u root –p 檢視是否提示輸入口令鑑別使用者身份 2)使用如下命令查詢賬號 select user, host FROM mysql.user 結果輸出使用者列表,查者是否存在相同使用者名稱 3)執行如下語句查詢是否存在空口令用: select * from mysql.user where length(password)= 0 or password is null 輸出結果是否為空 4)執行如下語句檢視使用者口令複雜度相關配置: show variables like ‘validate%’;或 show VARIABLES like “%password” 樣例: 1)使用者登入資料庫時,採用使用者名稱、口令的方式進行身份鑑別 2)查詢user表,不存在相同的使用者名稱 3)不存在空口令使用者; 4)配置資訊: Validate_password_length 8 Validate_password_mixed_case_count l Validate_password_number_count l Validate_password policy MEDIUM Validate_password_special_char_count l |
|
b)應具有登入失敗處理功能,應配置並啟用結束會話、限制非法登入次數和當登入連線超時自動退出等相關措施 |
1)詢問管理員是否採取其他手段配置資料庫登入失敗處理功能。 2)執行 show variables like %max_connect_errors%”;或核查my.cnf檔案,應設定如下引數: max_connect_errors=100 3) show variables like “%timeout%”,檢視返回值 樣例: 1)MySQL 資料庫採用第三方管理軟體,且第三方管理軟體設定登入失敗鎖定次數 |
1/5
2)3)資料庫管理系統本地配置了引數max_connect_errors=100,Wait_timeout=28800,如果 mysql伺服器連續接收到了來自於同一個主機的請求,且這些連續的請求全部都沒有成功的建立連續就被斷開了,當這些連續的請求的累計值大於 max_connect_errors的設定值,mysql伺服器就會阻止這臺主機後續的所有請求。Wait_timeout: 一個連線connection空閒超過8個小時(預設值28800秒),MySQL就會自動斷開這個連線 |
|||
c)當進行遠端管理時,應採取必要措施、防止鑑別資訊在網路傳輸過程中被竊聽 |
1)是否採用加密等安全方式對系統進行遠端管理 2)執行 Mysql>show variables like %have_ssl%” 檢視是否支援ssl得連線特性,若為disabled說明此功能沒有啟用,或執行\s檢視是否啟用SSL: 3)如果採用本地管理方式,該項為不適用 |
||
訪問控制 |
a)應對登入得使用者分配賬戶和許可權 |
1)執行語句 select uesr,host FROM mysql.user 輸出結果是否為網路管理員,安全管理員,系統管理員建立了不同賬戶: 2)執行 show grants for’ XXX’@’ localhost’ : 檢視網路管理員,安全管理員、系統管理員使用者賬戶的許可權,許可權間是否分離並相互制約 |
|
b)應重新命名或刪除預設賬戶, 修改預設賬戶的預設口令 |
1) 執行 select user,host FROM mysql.user 輸出結果檢視root使用者是否被重新命名或被刪除 2)若root賬戶未被刪除,是否更改其預設口令,避免空口令或弱口令。 |
||
c)應及時刪除或停用多餘的、過期的賬戶,避免共享賬戶的存在 |
1)在sqlplus中執行命令:select username,account_status from dba_users 2)執行下列語句: select * from mysql.user where user=”” select user, host FROM mysql.user 依次核查列出的賬戶,是否存在無關的賬戶。 3)訪談網路管理員,安全管理員、系統管理員不同使用者是否採用不同賬戶登入系統 |
||
d)應授權管理使用者所需的最小許可權,實現管理使用者的許可權分離 |
1)是否對使用者進行角色劃分且只授予賬號必須的許可權 如除root外,任何使用者不應該有mysql庫user表的存取許可權,禁止將fil、.process、super 許可權授予管理員以為的賬戶 2)檢視許可權表,並驗證使用者是否具有自身角色外的其他使用者的許可權 |
||
安全審計 |
a)應啟用安全審計功能,審計覆蓋到每個使用者,對重要的使用者行為和重要安全事件進行審 |
1)執行下列語句: mysql > show variables like ‘log_%’ 檢視輸出的日誌內容是否覆蓋到所有使用者,記錄審計記錄覆蓋內容 |
2/5
計 |
2)檢查是否採取第三方工具增強MySQL 日誌功能。若有,記錄第三方審計工具的審計內容,檢視是否包括事件的日期和時間、使用者、事件型別、事件是否成功及其他與審計相關的資訊 |
||
b)審計記錄應用包括事件的日期和時間,使用者、事件型別,事件是否成功及其他與審計相關的資訊 |
1)執行下列語句: mysql>show variables like ‘log_%’ 檢視輸出的日誌內容是否覆蓋所有使用者,記錄審計記錄覆蓋內容 2)檢查是否採取第三方工具增強MySQL日誌功能。若有,記錄第三方審計工具的審計內容,檢視是否包括事件的日期和時間、使用者、事件型別、事件是否成功及其他與審計相關的資訊 |
||
c)應對審計記錄進行保護,定期備份,避免受到未預期的刪除、修改或覆蓋等 |
1)訪談管理員對審計話錄如何保護,對審計記錄是否定期備份,備份策略 2)是否嚴格限制使用者訪問審計記錄的許可權 |
||
入侵防範 |
a)應通過設定終端接入方法或網路地址範圍對通過網路進行管理的管理終端進行限制 |
檢視使用者登入的IP地址:是否給所有使用者加上IP限制,拒絕所有未知主機進行連線 注:當uesr表中的Host值不為本地主機時,應制定特定IP地址,不應為%;或將user表中的Host值為空,而在host表中指定使用者賬戶允許登入訪問的若干主機;在非信任的客戶端以資料庫賬戶登入應被提示拒絕,使用者從其他子網登入,應被拒絕 |
|
b)應能發現可能存在的已知漏洞,並在經過充分測試評估後,及時修補漏洞 |
訪談MySQL補丁升級機制,檢視補丁安裝情況: 1) 執行如下命令檢視當前補丁版本: show variables where variable name like “version” 2)訪談資料庫是否為企業版,是否定期進行漏洞掃描,針對高風險漏洞是否評估補丁並經測試後再進行安裝 |
||
可信驗證 |
可基於可信根對計算裝置的系統載入程式、系統程式、重要配置引數和應用程式等進行可信驗證,並在檢測到其可信性受到破壞後進行報警,並將驗證結果形成審計記錄送至安全管理中心 |
1)檢查資料庫的啟動,是否實現可信驗證的檢測過程,檢視對那些系統載入程式、系統程式或重要配置引數進行可信驗證 2)修改其中的重要系統程式之一和應用程式之一,檢查是否能夠檢測到並進行報警 3)是否將驗證結果形成審計記錄送至安全管理中心 |
|
資料完整性 |
應採用校驗技術或密碼技術保證重要資料在傳輸過程中的完整性,包括但不限於鑑別資料、重要業務資料、重要審計資料、 |
1)詢問系統管理員,該系統的鑑別資料、重要業務資料、重要審計資料,重要配置資料,重要視訊資料和重要個人資訊等在傳輸過程中是否採用了校驗技術或密碼技術保證完整性 2)使用工具對通訊報文中的鑑別資料、重要業務資料、重要審計資料,重要配置資料、重要視訊資料和重要個人資訊等進行篡改,檢視是否能夠檢測到未知資料在傳輸過程中的完整性受到破壞能夠及時恢復 |
3/5
重要配置資料、重要視訊資料和重要個人資訊等 |
|||
資料備份恢復 |
a)應提重要資料處理系統的熱冗餘,保證系統的高可用性 |
詢問系統管理員資料庫的備份和恢復策略是什麼 |
|
b)應提供異地實時備份功能,利用通訊網路將重要資料實時備份至備份場地 |
1)詢問系統管理員是否提供異地資料備份功能,是否定時批量傳送至備用場地 2)如果條件允許,則檢視其實現技術措施的配置情況 |
||
剩餘資訊保護 |
應保證鑑別資訊所在的儲存空間被釋放或重新分配前得到完全清除 |
詢問系統管理員,作業系統是否採取措施保證對儲存介質(如硬碟或記憶體)防止其他使用者非授權獲取該使用者的鑑別資訊 |
4/5