MS SQL Server/MySQL/Oracle日誌提取和安全分析 一、MS SQL Server日誌分析: 1.MS SQL Server資料庫簡介: Microsoft SQL Server,是微軟推出的關係型資料庫解決方案(Relational Database Management Sy ...
MS SQL Server/MySQL/Oracle日誌提取和安全分析
一、MS SQL Server日誌分析:
1.MS SQL Server資料庫簡介:
Microsoft SQL Server,是微軟推出的關係型資料庫解決方案(Relational Database Management System:RDBMS),使用方便,可伸縮性好,且與相關軟體集成程度高等優點,因而被廣泛使用。
Microsoft SQL Server的特點:圖形化操作、管理,上手容易,維護效率高,是最受歡迎的商業資料庫之一,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平臺使用。
MS SQL Server預設啟用日誌記錄功能,但是僅限失敗的登錄,因此,我們應修改記錄為"失敗和成功的登錄",如圖:
這樣,可對用戶的登錄行為進行審核。
2.MS SQL Server資料庫常見漏洞分析:
Microsoft SQL Server經典的漏洞類型: sp_replwritetovarbin遠程堆溢出漏洞(CVE-2008-5416)、Lyris ListManager MSDE SA弱密碼漏洞(CVE-2005-4145)。
Microsoft SQL Server 影響範圍比較廣的漏洞類型有:緩衝區溢出漏洞、弱密碼、許可權提升、拒絕服務、SQL註入等幾種。
xp_cmdshell,可讓人們以OS命令行解釋器的方式執行指定的命令字元串並以文本行方式返回任何輸出,是一個功能非常強大的擴展存貯過程,但後來此指令可以被用來提權,因此預設為關閉。
3.MS SQL Server的日誌分析:
<1>.可通過SQL Server Profiler,查找和發現 SQL執行的效率和語句問題;
<2>.可結合Web Application Firewall (WAF)日誌,通過查看日誌文件的大小,分析日誌具體內容,綜合判斷DBMS是否遭遇SQL(sqlmap工具)註入漏洞的攻擊;
<3>.可藉助第三方的工具(ApexSQL)來審計和分析MS SQLServer的日誌.
二、MySQL日誌分析:
1.MySQL資料庫簡介:
MySQL,由瑞典MySQL AB 公司開發,屬於 Oracle旗下產品中小型關係型資料庫管理系統,RDBMS,使用標準化SQL查詢語言;
MySQL資料庫的特點:體積小,速度快,總體部署成本低,性能優越,搭配php、perl、apache、tomcat,形成極佳的開發和集成環境,因此,世界著名,是目前世界上使用最為廣泛的資料庫之一;
2.MySQL資料庫常見漏洞分析:
MySQL SQL Injection、UDF/MOF提權,ROOT身份許可權Bypass、Webshell Getshell、LPK劫持、遠程代碼執行RCE等漏洞。
3.MySQL日誌分析:
<1>.查看log配置信息指令:show variables like '%general%',日誌文件一般存儲格式為"主機名.log";
<2>在日誌分析中,特別需要註意一些敏感的操作行為,比如:刪表、備庫,讀寫文件(load_file、into outfile等相關讀寫執行函數)等,例如以下關鍵詞需要註意:drop table、drop function、lock tables、unlock tables、
load_file() 、into outfile、into dumpfile......
例如:WebShell攻擊:利用into outfile()函數寫入一句話木馬,拿webshell:
1' union select 1,"<?php @eval($_POST['cmd']);?>" into outfile 'C:\\phpStudy\\PHPTutorial\\WWW\\dvwa2019\\ana.php'#
<3>.mysql讀、寫文件的配置:SHOW GLOBAL VARIABLES LIKE '%secure%' (當secure_file_priv值沒有具體值時,表示不對mysqld的導入和導出做限制)。
三、Oracle日誌分析:
1.Oracle資料庫簡介:
Oracle DBMS是一款是甲骨文公司的一款關係型資料庫管理系統,市場占有率高,在資料庫領域有極其重要的地位,是世界上流行的關係資料庫管理系統;
Oracle DBMS資料庫是世界上第一個支持SQL語言的關係型資料庫;
Oracle DBMS提供了豐富的包、存儲過程,具有支持Java運行和創建Librarry等開發功能,擁有豐富的系統表,幾乎所有的信息都存儲在系統表;
Oracle廣泛應用於金融、郵電、電力、民航等數據吞吐量大,網路結構複雜的重要企業和機構;
常用版本:9i、10g、11g、12c、18c。
2.Oracle資料庫常見的漏洞分析:
在安全性方面,儘管Oracle制定了完善的安全策略,提供了詳盡的安全機制,但是隨著Oracle RDBMS新版本的不斷發佈,新的問題依然層出不窮,例如:弱密碼問題,SID被猜解,SQL註入,許可權配置不當、拒絕服務攻擊等安
全問題。
3.Oracle資料庫日誌分析:
<1>.Oracle審計(Audit)和日誌記錄,可記錄用戶對資料庫所做的操作,預設情況下,使用管理員許可權連接實例(instance),開啟及關閉資料庫是會強制進行審計的,無論是否打開資料庫的審計功能(其它的基礎的操作則沒有
進行審計。),Oracle會將審計和Trace跟蹤結果(是否開啟審計記錄的功能),存放到OS文件里,預設位置在:$ORACLE_BASE/admin/$ORACLE_SID/adump/ 或存儲在資料庫表裡(存儲在system表空間中的SYS.AUD$表中,可通過
視圖dba_audit_trail查看),可使用"show parameter audit"命令查看相關設置。
<2>."show parameter audit_trail"指令(日誌審計的設置)相關介紹:
audit_trail的設置值:
NONE:不開啟;
DB:開啟審計功能(Oracle11g後預設開啟,All audit records stored in the database audit trial (AUD$));
OS:審計記錄寫入一個操作系統文件(AUDIT_FILE_DEST);
TRUE:與參數DB一樣;
DB_EXTENDED:審計結果放在資料庫表中,並額外記錄SQL_BIND和SQL_TEXT(具體執行語句);
FALSE:不開啟審計功能;
xml:啟用審計功能,審計信息寫入xml格式的操作系統文件中。
<3>.Oracle的其他審計類型:
語句審計(Statement Auditing):對特定的SQL語句進行審計記錄,不指定具體對象;
許可權審計(Privilege Auditing):對特定的系統許可權使用情況進行審計記錄;
對象審計(Object Auditing):對特定的模式對象上執行的特定語句進行審計記錄;
網路審計(Network Auditing):對網路協議錯誤與網路層內部錯誤進行審計記錄。
此外,根據用戶是否成功執行,可以分為:
對執行成功的語句進行審計;
對不成功的語句進行審計;
無論成功與否都進行審計。
根據對同一個語句審計次數不同,可以分為會話審計和存取審計。
會話審計:對某個用戶或所有用戶,同一語句,只審計一次,形成一條審計記錄;
存取審計:對某個用戶或所有用戶,同一語句,每執行一次就審計一次,形成多條審計記錄。
四、第三方資料庫審核記錄:
資料庫審計(DBAudit)可實時記錄網路上資料庫活動,對資料庫操作細粒度審計,合規性管理,對資料庫遭受到的風險行為、漏洞攻擊行為進行告警,對攻擊行為進行阻斷。
通過對用戶訪問資料庫行為,記錄、分析、彙報,事後生成合規報告,事故追蹤,溯源,加強內外部資料庫網路行為記錄,提高數據安全。