您好,登錄后才能下訂單哦!
MySql中怎么配置日志審計(jì),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
使用數(shù)據(jù)庫(kù)審計(jì)插件開(kāi)啟數(shù)據(jù)庫(kù)審計(jì)會(huì)犧牲部分?jǐn)?shù)據(jù)庫(kù)性能,建議根據(jù)實(shí)際業(yè)務(wù)情況選擇審計(jì)插件或旁路部署審計(jì)設(shè)備。
常見(jiàn)的mysql免費(fèi)審計(jì)插件:mariadb audit plugin, macfee mysql-audit
我們以mariadb audit plugin為例來(lái)完成配置安裝與分析。
環(huán)境:windows server 2008 R2,phpstudy8.1,mysql 5.5.29,sqli-labs
官網(wǎng)下載mariadb-5.5.68 版本,使用命令行執(zhí)行以下命令,解壓到目標(biāo)目錄
msiexec /a "d:\mariadb-5.5.68-winx64.msi" /qb TARGETDIR="D:\abc"
在MariaDB 5.5\lib\plugin目錄中提取需要的插件server_audit.dll,打開(kāi)mysql命令行,查詢plugin目錄
復(fù)制server_audit.dll到插件目錄,mysql命令行安裝插件,查詢插件狀態(tài)
查詢server_audit插件狀態(tài)配置,默認(rèn)為關(guān)閉狀態(tài),開(kāi)啟日志審計(jì)
這些參數(shù)的具體定義:
server_audit_events
指定記錄到日志的event類(lèi)型,可以用逗號(hào)分隔的多個(gè)值(connect,query,table,query_ddl等),如果開(kāi)啟了查詢緩存(query cache),查詢直接從查詢緩存返回?cái)?shù)據(jù),將沒(méi)有table記錄
server_audit_excl_users
該列表的用戶行為將不記錄,connect將不受該設(shè)置影響
server_audit_file_path
審計(jì)日志路徑,如果server_audit_output_type為FILE,審計(jì)日志默認(rèn)存于數(shù)據(jù)目錄下。即參數(shù)datadir對(duì)應(yīng)的數(shù)據(jù)目錄下面。如果修改server_audit_file_path,之前舊的審計(jì)日志文件不會(huì)被刪除。需要手工去清理、刪除。另外MySQL會(huì)開(kāi)始新的審計(jì)日志輪轉(zhuǎn)。
server_audit_file_rotate_now
強(qiáng)制輪轉(zhuǎn)一次,執(zhí)行腳本SET GLOBAL server_audit_file_rotate_now = ON;后,審計(jì)日志就會(huì)強(qiáng)制輪轉(zhuǎn)一次。
server_audit_file_rotate_size
限制單個(gè)輪轉(zhuǎn)審計(jì)日志大小,超出該限值后自動(dòng)輪轉(zhuǎn)。默認(rèn)值為1000000,單位為byte,建議設(shè)置稍微大一點(diǎn),例如,64M大小,67108864。具體根據(jù)實(shí)際需求和參數(shù)server_audit_file_rotations一起設(shè)定。
server_audit_file_rotations
輪轉(zhuǎn)日志總數(shù),當(dāng)設(shè)為0表示審計(jì)日志不輪轉(zhuǎn)。默認(rèn)值為9。 一般需要根據(jù)實(shí)際需求進(jìn)行修改。
server_audit_incl_users
指定哪些用戶的活動(dòng)將記錄到審計(jì)日志,connect將不受此變量影響,該變量比server_audit_excl_users 優(yōu)先級(jí)高
server_audit_loc_info
這個(gè)是插件內(nèi)部使用的參數(shù),對(duì)用戶沒(méi)有什么意義。在早期版本中,用戶將其視為只讀變量,在更高版本中,它對(duì)用戶不可見(jiàn)。
server_audit_logging
審計(jì)功能的開(kāi)關(guān), ON表示開(kāi)啟審計(jì)功能,OFF表示關(guān)閉審計(jì)功能。
server_audit_mode
標(biāo)識(shí)版本,用于開(kāi)發(fā)測(cè)試。對(duì)于用戶而言,此變量沒(méi)有任何特殊含義。 它的值主要反映了啟動(dòng)插件所使用的服務(wù)器版本,供開(kāi)發(fā)人員用于測(cè)試
server_audit_output_type
指定審計(jì)日志的類(lèi)型,有SYSLOG 或FILE兩種選擇,默認(rèn)為FILE
server_audit_query_log_limit
記錄中查詢字符串的長(zhǎng)度限制。默認(rèn)為1024
server_audit_syslog_facility
當(dāng)審計(jì)日志類(lèi)型為syslog模式時(shí),它定義了將發(fā)送到系統(tǒng)日志的記錄的“功能”。 以后可以使用此參數(shù)過(guò)濾日志。
server_audit_syslog_ident
設(shè)置ident,作為每個(gè)syslog記錄的一部分
server_audit_syslog_info
指定的info字符串將添加到syslog記錄
server_audit_syslog_priority
定義記錄日志的syslogd priority
查詢err日志的路徑。至此日志配置與所需的文件已備齊,以審計(jì)日志server_audit.log和data.err為基礎(chǔ)進(jìn)行入侵分析。
通過(guò)搭建sqli-labs測(cè)試環(huán)境,根據(jù)mysql日志,分析mysql暴力破解,手工注入,sqlmap os-shell三種攻擊模式的日志記錄,盡可能的還原攻擊場(chǎng)景,追溯攻擊源信息。
1、mysql暴力破解
mysql對(duì)外開(kāi)放端口,使用mysql暴力破解時(shí)的日志信息
data.err 中記錄了攻擊的ip地址和第一次連接的時(shí)間
200909 10:15:41 [Warning] IP address '192.168.106.180' could not be resolved: 不知道這樣的主機(jī)。
server_audit.log 從下圖可以看出,攻擊者多線程破解,破解的賬號(hào)root,攻擊者ip 192.168.106.180,返回代碼1045,登陸成功后的執(zhí)行了4個(gè)查詢操作。
日志格式為:
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],QUERY,[database],[object], [retcode]
可以根據(jù) 賬號(hào),ip地址,返回代碼進(jìn)行日志篩選分析,登陸后查詢操作特征,可以推測(cè)使用的破解工具。
2、sql注入攻擊
使用sqli-labs模擬存在漏洞的應(yīng)用,github下載sqli-labs代碼復(fù)制到phpstudy www目錄,運(yùn)行項(xiàng)目,通過(guò)手動(dòng)輸入獲取webshell。
模擬場(chǎng)景:已知服務(wù)器被執(zhí)行phpinfo,疑似被入侵,需要通過(guò)日志分析入侵點(diǎn)與獲得權(quán)限的方法。
此次data.err無(wú)變化,我們分析nginx的access.log 和審計(jì)插件的server_audit.log
發(fā)現(xiàn)access.log和server_audit.log均記錄了攻擊是sql注入,并通過(guò)mysql outfile寫(xiě)入后門(mén)到web目錄,執(zhí)行了phpinfo,觸發(fā)報(bào)警。由于access.log不記錄post請(qǐng)求的請(qǐng)求體,故server_audit.log可以看到更詳細(xì)的攻擊細(xì)節(jié)。
3、sqlmap os-shell攻擊
通過(guò)sqlmap獲取mysql os-shell,分析os-shell過(guò)程,日志有哪些特征
模擬場(chǎng)景:假設(shè)在場(chǎng)景2中,sql注入攻擊時(shí),應(yīng)用方修復(fù)了sql漏洞,并對(duì)web目錄進(jìn)行了權(quán)限限制,監(jiān)控又發(fā)現(xiàn)了命令執(zhí)行的報(bào)警,嘗試分析入侵點(diǎn)。
sqlmap -d "mysql://root:root@192.168.x.x:3306/mysql" --os-shell,成功后執(zhí)行whoami
查看server_audit.log日志,可以看到sqlmap os-shell執(zhí)行的完整過(guò)程,包括探測(cè)mysql版本,字符集,操作系統(tǒng)類(lèi)型,如何用實(shí)現(xiàn)udf實(shí)現(xiàn)命令執(zhí)行等。
日志里包含了很多sqlmap的特征,udf達(dá)到命令執(zhí)行的特征,可結(jié)合其他日志初步判斷為mysql密碼泄露導(dǎo)致的udf命令執(zhí)行。
命令執(zhí)行時(shí)的錯(cuò)誤會(huì)被錯(cuò)誤日志data.err記錄,引用一個(gè)mysql勒索病毒的日志截圖,暴漏了攻擊者控制的服務(wù)器地址信息。
看完上述內(nèi)容,你們掌握MySql中怎么配置日志審計(jì)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。