欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

常見數(shù)據(jù)庫安全加固及測評(MySQL|MongoDB|Oracle)

 更新時間:2024年07月13日 09:51:17   作者:穹淵安全  
數(shù)據(jù)庫安全加固是確保數(shù)據(jù)庫安全性的關(guān)鍵步驟,它遵循一系列原則和實施方法,以防止未授權(quán)訪問、數(shù)據(jù)泄露和其他安全威脅,這篇文章主要介紹了常見數(shù)據(jù)庫安全加固及測評(MySQL|MongoDB|Oracle),需要的朋友可以參考下

MySQL

Windows主機測評Mysql基礎(chǔ)命令

create  USER 'new_user'@'localhost' IDENTIFIED BY 'password';				//創(chuàng)建用戶
alter user 'root'@'%' identified with mysql_native_password by '********'; 		//修改密碼
rename user 'root'@'%' to 'root'@'192.168.1.1';									//重命名
flush privileges;																//刷新權(quán)限
grant all privileges on *.* to 'root'@'192.168.1.%'; 							//賦予權(quán)限
revoke all privileges on *.* to 'root'@'%';										//收回權(quán)限
select current_user();												//查看當(dāng)前登錄的用戶
select current_role(); 												//查看當(dāng)前登錄的角
mysqldump -uroot -p mysql>mysql.sql 									//導(dǎo)出mysql數(shù)據(jù)庫
create database xiaozhou_db;									//創(chuàng)建xiaozhou數(shù)據(jù)庫
show databases;															//展示所有數(shù)據(jù)庫
drop database xiaohzou_db;													//刪除數(shù)據(jù)庫
alter user 'root'@'localhost' identified with mysql_native_password by 'xlpszqdbb';	//修改密碼
show variables like 'port';														//查看端口
ALTER USER 'existing_user'@'localhost' IDENTIFIED BY 'new_password';
show variables like 'validate%';
show variables like '%connection_control%';
show variables like '%timeout%'

一 身份鑒別

MySQL數(shù)據(jù)庫對于用戶的標(biāo)識和其它數(shù)據(jù)庫有些不一樣,不僅僅是用戶名,而是username + host。MySQL從5.7以上開始,密碼字段不是password,而是authentication_string。

要滿足密碼復(fù)雜度必須在my.ini配置文件中安裝plugin-load-add=validate_password.dll(Windows/Linux為plugin-load-add=validate_password.so)插件。

select * from mysql.`plugin`;//查看插件

全網(wǎng)最全數(shù)據(jù)庫安全加固及測評

install plugin validate_password soname 'validate_password.so';

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

1.提示輸入口令鑒別用戶身份

1)嘗試登錄數(shù)據(jù)庫,**執(zhí)行mysql -u root -p(linux下)查看是否提示輸入口令鑒別用戶身份。**此處直接使用navicat 進行管理。

mysql -h localhost -u root -p123

2.查是否存在同名用戶

select user, host FROM mysql.user

結(jié)果輸出用戶列表,查者是否存在相同用戶名。結(jié)果默認(rèn)不存在同名用戶。

-查詢是否在空口令用戶:

select * from mysql.user where length(password)= 0 or password is null

或者

select user,authentication_string from user;

mysql 5.7以上識別第二條命令)通過查看不存在空口令用戶。

4)執(zhí)行如下語句查看用戶口今復(fù)雜度相關(guān)配置:

show variables like 'validate%';

默認(rèn)情況下未配置,為空。

要滿足密碼復(fù)雜度必須在my.ini配置文件中安裝plugin-load-add=validate_password.dll(Windows/Linux為plugin-load-add=validate_password.so)插件。

b) 應(yīng)具有登錄失敗處理功能,應(yīng)配置并啟用結(jié)束會話、限制非法登錄次數(shù)和當(dāng)?shù)卿涍B接超時自動退出等相關(guān)措施;

登錄失敗功能也需要mysql安裝connection_control.dll或者connection_control.so插件才能實現(xiàn)

1)詢問管理員是否采取其他手段配置數(shù)據(jù)庫登錄失敗處理功能。

2)執(zhí)行show variables like '%connection_control%';或核查my.cnf或者my.ini文件,應(yīng)設(shè)置如下參數(shù):

max_connect_errors=100

validate_password_policy:密碼安全策略,默認(rèn)MEDIUM策略
validate_password_dictionary_file:密碼策略文件,策略為STRONG才需要
validate_password_length:密碼最少長度
validate_password_mixed_case_count:大小寫字符長度,至少1個
validate_password_number_count :數(shù)字至少1個  validate_password_special_char_count:特殊字符至少1個

show variables like ”%timeout%“,查看返回值。默認(rèn)Wait_ timeout: 一個連接connection空閑超過8個小時(默認(rèn)值28800秒),MySQL 就會自動斷開這個連接。默認(rèn)不符合,時間太長。

當(dāng)進行遠程管理時,應(yīng)采取必要措施防止鑒別信息在網(wǎng)絡(luò)傳輸過程中被竊聽;

1)是否采用加密等安全方式對系統(tǒng)進行遠程管理

是否用戶都是localhost,全為localhost則為本地管理。不適用。

2)若存在遠程管理,執(zhí)行

show variables like "%have_ssl%"

或者者show variables like "%have_openssl%"

查看是否支持ssl的連接特性,若為disabled說明此功能沒有激活,或執(zhí)行\(zhòng)s查看是否啟用SSL。

二、訪問控制

應(yīng)對登錄的用戶分配賬戶

1.執(zhí)行語句select user,host FROM mysql.user

輸出結(jié)果結(jié)合訪談管理員是否存在網(wǎng)絡(luò)管理員,安全管理員,系統(tǒng)管理員等多個賬戶,且分配了相應(yīng)權(quán)限。

show grants for 'XXXX'@' localhost':

查看其他管理員用戶賬號的權(quán)限,是否只存在特定用戶如root 用戶存在權(quán)限分配的權(quán)限。其他普通用戶如test用戶應(yīng)無Grant option 權(quán)限。

2.是否存在多余的、過期的賬戶,避免共享賬戶

select user,accounted _lock from user;

3.應(yīng)授予管理用戶所需的最小權(quán)限,實現(xiàn)管理用戶的權(quán)限分離

select * from mysql.user

如除root外,任何用戶不應(yīng)該有mysql庫user表的存取權(quán)限,禁止將fil、process、 super權(quán)限授予管理員以外的賬戶

查看用戶權(quán)限表,并驗證用戶是否具有自身角色外的其他用戶的權(quán)限。輸入select \* from mysql.user where user="用戶名"。

4.訪問控制策略規(guī)定主體對客體的訪問規(guī)則

select * from mysql.user -檢查用戶權(quán)限列

select * from mysql.db --檢查數(shù)據(jù)庫權(quán)限

select * from mysql.tables_priv 一檢查用戶表權(quán)限列

select * from mysql.columns_priv-檢查列權(quán)限列管理員

三 安全審計

1.開啟安全審計功能

show global variables like '%general%'。默認(rèn)為OFF,不符合。應(yīng)設(shè)置為ON為開啟審計。

是否已開啟審計general_log為ON。輸入:select * from general_log;得知具體內(nèi)容

2訪談是否存在第三方插件。

對于生產(chǎn)環(huán)境中任務(wù)繁重的MySOL數(shù)據(jù)庫,啟用審計會引起服務(wù)器的高昂成本,因此建議采用第三方數(shù)據(jù)庫審計產(chǎn)品收集審計記錄。

3.應(yīng)對審計記錄進行保護,定期備份

cp /var/log/audit/audit.log /path/to/backup/audit.log  //手動備份
gzip -c /var/log/audit/audit.log > /path/to/backup/audit.log.gz//壓縮備份
crontab 定時定期自動備份

四 入侵防范

1.管理終端進行限制

user表中的Host值不為本地主機時,應(yīng)指定特定IP地址,不應(yīng)為%;

host表中指定用戶帳戶允許登陸訪問的主機;在非信任的客戶端以數(shù)據(jù)庫賬戶登錄應(yīng)被提示拒絕,從其他子網(wǎng)登錄,應(yīng)被拒絕

GRANT ALL ON *.* TO 'root'@'myip.athome' //指定IP范問

2.版本補丁情況

show variables where variable_name like "version"

3.數(shù)據(jù)庫定期漏掃

MongoDB

一 身份鑒別

MongoDB服務(wù)在安裝后默認(rèn)未開啟權(quán)限驗證,默認(rèn)是空賬戶、空口令

mongod.cfg配置文件中修改auth=true,啟用身份認(rèn)證,執(zhí)行命令mongo顯示權(quán)限不足

自身不具備設(shè)置登錄賬戶的口令復(fù)雜度和定期更換口令的策略,

僅通過管理員自行設(shè)置口令復(fù)雜度,use admin。

是否采用加密安全方式對系統(tǒng)進行遠程管理

二 訪問控制

show users”查看mongoDB中的賬戶的管理權(quán)限,

授予管理用戶所需的最小權(quán)限,

實現(xiàn)管理用戶的權(quán)限分離

mongoDB不存在默認(rèn)賬戶, 應(yīng)及時刪除或停用多余的、過期的賬戶,避免共享賬戶的存在

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

use admin 啟用身份鑒別,且具備權(quán)限分離

訪問控制的粒度應(yīng)達到主體為用戶級或進程級

三安全審計

檢查mongod.cfg配置文件中是否添加quiet: false,啟用日志安全審計功能

四檢查mongod.log的日志文件記錄是否正常:

訪談人員是否通過第三方工具(數(shù)據(jù)庫審計系統(tǒng))收集審計數(shù)據(jù)進行分析,查看是否包括事件的日期和時間、用戶、事件類型、事件是否成功及其他與審計相關(guān)的信息。

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

MongoDB數(shù)據(jù)庫備份:

mongodump -h dbhost -d dbname -o dbdirectory

MongoDB數(shù)據(jù)庫恢復(fù):

mongorestore -h dbhost -d dbname --dir dbdirectory

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

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

五 入侵防范

最小安裝原則

管理的管理終端進行限制

打開mongdb.cfg 看它的bindip。需要修改為指定連接

訪談管理員是否定期或不定期進行掃描或測試,若存在,是否及時進行修補。

a)應(yīng)采用密碼技術(shù)保證重要數(shù)據(jù)在傳輸過程中的完整性

TLS、SSH等協(xié)議

詢問管理人員是否使用了第三方軟件對數(shù)據(jù)庫重要數(shù)據(jù)進行了完整性校驗。

Oracle

一、身份鑒別

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

sysdba是Oracle數(shù)據(jù)庫的最高權(quán)限管理員。通常使用sqlplus或PL/SQL 管理軟件進行管理,PL/SQL 為第三方管理軟件,但SQL查詢語句一樣。

注:sysdba如果是本地管理,亂輸密碼也能登錄成功,需要改sqlnet.ora文件。

  • 管理員登錄數(shù)據(jù)庫時是是否需要輸入用戶名/口令,不存在空口令;
  • 使用 Select username,account_status from dba_users; 顯示所有能登錄數(shù)據(jù)庫的用戶信息:(),那些是open那些是locked,UID是否唯一

\3. 通過命令 *select \ from dba_profiles where resource_type='password';SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_VERIFY_FUNCTION';**如果為NULL則為未設(shè)置密碼復(fù)雜度要求。

若有設(shè)置應(yīng)為 (1)PASSWORD_LOGIN_ATTEMPTS = 登錄嘗試次數(shù); (2)PASSWORD_LIFE_TIME = unlimited 未設(shè)置口令有效期; (3)PASSWORD_ROUSE_MAX = unlimited 未設(shè)置重新啟用一個先前用過的口令前必須對該口令進行重新設(shè)置的次數(shù)(重復(fù)用的次數(shù)); (4)PASSWORD_VERIFY_FUNCITON = NULL,未設(shè)置口令復(fù)雜度校驗函數(shù); (5)PASSWORD_GRACE_TIME=,口令修改的寬限期天數(shù):7;

b) 應(yīng)具有登錄失敗處理功能,應(yīng)配置并啟用結(jié)束會話、限制非法登錄次數(shù)和當(dāng)?shù)卿涍B接超時自動退出等相關(guān)措施;

1. 通過輸入 SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='FAILED_LOGIN_ATTEMOTS';,查詢結(jié)果若為’UNLIMITED’則無登錄重試次數(shù)限制,超過此值用戶被鎖定??梢酝ㄟ^ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 10(重試次數(shù)10次)

二、訪問控制

a) 應(yīng)對登錄的用戶分配賬戶和權(quán)限;

通過輸入Select username,account_status from dba_users;語句,主要查看數(shù)據(jù)庫存在那些可用用戶,至少得有兩個,該測評項就需要Oracle中存在至少兩個賬戶,且這兩個賬戶的權(quán)限不一樣。

1.為用戶分配了賬戶和權(quán)限及相關(guān)設(shè)置情況,主要看可用賬戶(例如采用“用戶權(quán)限列表”);
2.是否已禁用或限制匿名、默認(rèn)賬戶的訪問權(quán)限。如只有MGMT_UIEW,SYSTEM,SYS,DBSNMP為啟用狀態(tài),其他均為啟用狀態(tài),則為符合。

b) 應(yīng)重命名或刪除默認(rèn)賬戶,修改默認(rèn)賬戶的默認(rèn)口令

在Oracle中默認(rèn)用戶最常用的就是SYS和SYSTEM這兩個賬戶。
1.是否已經(jīng)重命名SYS、SYSTEM、DBSNMP等默認(rèn)帳戶名或已修改默認(rèn)口令,sys默認(rèn)口令為CHANGE_ON_INSTALL;SYSTEM:MANAGER;DBSNMP的默認(rèn)口令為:DBSNMP??梢缘卿洔y試。

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

訪談管理員是否存在多余或過期賬戶,管理員用戶與賬戶之間是否一一對應(yīng)通過輸入Select username,account_status from dba_users;查看是否存在默認(rèn)帳戶SCOTT/OUTLN/ORDSY等用戶,不存在acount_status為expired的賬戶。訪談管理員是否存在共享賬戶等。示例不符合。

d) 應(yīng)授予管理用戶所需的最小權(quán)限,實現(xiàn)管理用戶的權(quán)限分離

1. 通過輸入Select username,account_status from dba_users;查看狀態(tài)為open的用戶的用途。是否進行角色劃分,是否有多個用戶進行管理數(shù)據(jù)庫;
2. 通過輸入 select * from dba_tab_privs where grantee='SYS'  ORDER BY GRANTEE;查看SYS最高權(quán)限授予給那些用戶,得知管理用戶的權(quán)限是否已進行分離;

總結(jié)

數(shù)據(jù)庫安全加固是組織信息安全戰(zhàn)略的關(guān)鍵組成部分,不僅有助于防范安全威脅,還能支持業(yè)務(wù)發(fā)展和符合法律法規(guī)的要求。

到此這篇關(guān)于常見數(shù)據(jù)庫安全加固及測評(MySQL|MongoDB|Oracle)的文章就介紹到這了,更多相關(guān)常見數(shù)據(jù)庫安全加固及測評內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論