主頁 >  其他 > Oracle 11g與12c的審計詳解

Oracle 11g與12c的審計詳解

2020-12-09 07:56:35 其他

最近遇到一些腳本誘發的審計相關BUG,感覺有必要重新梳理一下11g與12c的審計模式,于是根據官網修正了一下以前的一篇筆記這里發出來,

一、審計功能的開啟:

SQL> show parameter audit
--主要有以下四個引數:
AUDIT_TRAIL(default:DB)
AUDIT_FILE_DEST(default:ORACLE_BASE/admin/ORACLE_SID/adump or ORACLE_HOME/rdbms/audit)
AUDIT_SYS_OPERATIONS(default:FALSE)
AUDIT_SYSLOG_LEVEL(no default)

audit_trail引數的值可以設定為以下幾種(11G,12C適用):

https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams017.htm#REFRN10006

1. none --不開啟
2. os --啟用資料庫審計,并將資料庫審計記錄定向到作業系統檔案,存盤目錄為AUDIT_FILE_DEST
3. db --開啟審計功能 啟用資料庫審計,并將資料庫所有審計記錄定向到資料庫的SYS.AUD$表
5. db, extended --extened之前的空格必須有,啟用資料庫審計,并將資料庫所有審計記錄定向到資料庫的SYS.AUD$表,另外填充SYS.AUD$表的SQLBIND列和SQLTEXT列
6. xml  --類似os,但是是將審計記錄存放于XML格式的檔案中
7. xml, extended --將審計記錄存放于作業系統的xml檔案中并填充sql_text和sql_bind資訊
#此引數無法動態修改,因此需要重啟資料庫才能生效,示例:
alter system set AUDIT_TRAIL=db scope=spfile;
#對于db和db, extended兩種審計模式,如果資料庫是read-only模式的,那么資料庫默認使用os審計模式,無視已有設定(因為不能向資料庫表寫入資料),

AUDIT_SYS_OPERATIONS設定為true那么sys用戶的操作也會被審計,但此值默認為false,此引數控制以sysdba和sysoper權限登陸的用戶以及sys用戶本身的登陸,審計記錄一定會寫在作業系統檔案中(無論AUDIT_TRAIL引數如何設定),

AUDIT_SYSLOG_LEVEL則表示當涉及到向作業系統檔案寫入審計記錄時,直接寫入到系統日志中而不是AUDIT_FILE_DEST(僅適用于類unix系統),

二、審計記錄的存盤
審計的兩大分類:
  • 標準審計:主要記錄一些涉及資料庫安全性的SQL操作和權限變更等,官網列出的默認標準審計項包含如下操作(通過DBA_STMT_AUDIT_OPTS查看):
    --Oracle Database audits the following privileges by default:
    ALTER ANY PROCEDURE 	CREATE ANY LIBRARY 				DROP ANY TABLE
    ALTER ANY TABLE 		CREATE ANY PROCEDURE 			DROP PROFILE
    ALTER DATABASE 			CREATE ANY TABLE 				DROP USER
    ALTER PROFILE 			CREATE EXTERNAL JOB 			EXEMPT ACCESS POLICY
    ALTER SYSTEM 			CREATE PUBLIC DATABASE LINK 	GRANT ANY OBJECT PRIVILEGE
    ALTER USER 				CREATE SESSION 					GRANT ANY PRIVILEGE
    AUDIT SYSTEM 			CREATE USER 					GRANT ANY ROLE
    CREATE ANY JOB 			DROP ANY PROCEDURE 	 
    --Oracle Database audits the following SQL statement shortcuts by default:
    ROLE 					SYSTEM AUDIT 					PUBLIC SYNONYM
    DATABASE LINK 			PROFILE 						SYSTEM GRANT
    --此外通過audit命令指定的審計也是標準審計,
    
  • 精細審計:提供非常細粒度的審計,例如可以使你審計針對某個表的某些欄位在某一段時間內的某種DML操作,還可以限定客戶端的IP等,

標準審計記錄存盤在SYS.AUD$表中,精細審計的記錄存放于SYS.FGA_LOG$表中,分別可以通過DBA_AUDIT_TRAIL和DBA_FGA_AUDIT_TRAIL查看標準和精細審計的審計記錄,

兩種審計模式還有一個共同的視圖可以看:DBA_COMMON_AUDIT_TRAIL,包含了標準+精細審計的記錄,

truncate table aud$; --可以截斷相關表,清理審計資料,

查看dba_common_audit_trail(包含標準和精細審計的記錄)可以看到記錄的主要欄位包含:

SESSION_ID:會話ID,并非實際資料庫會話的id,應該只是一個自增的ID
EXTENDED_TIMESTAMP:記錄生成時間
DB_USER、OS_USER、USERHOST:一些用戶相關的資訊
OS_PROCESS:服務端對應的server process的系統行程ID,如果帶冒號:,冒號后邊的是執行緒ID
RETURNCODE:服務端的回傳錯誤碼,比如密碼驗證失敗就會顯示1017的錯誤碼,即ORA-1017:"invalid username/password; logon denied"
COMMENT_TEXT:如果是遠程登錄還會包含客戶端連接使用的TNS資訊,包括使用的埠號
LOGOFF_TIME:會話登出時間
LOGOFF_LREAD、LOGOFF_PREAD、LOGOFF_LWRITE、LOGOFF_DLOCK:會話期間的邏輯讀、物理讀、物理寫、死鎖次數
ACTION:審計記錄對應的操作號
STATEMENT_TYPE:審計記錄對應的操作號表示的具體操作,也可以用過查詢audit_actions視圖來獲取action與STATEMENT_TYPE的對應關系

提示:

12c中的unified審計記錄不在AUD$表中,而是存盤在AUDSYS schema下,可以通過AUDSYS.UNIFIED_AUDIT_TRAIL表查詢,開啟unified審計后傳統的AUD$和dba_common_audit_trail等不再包含任何審計記錄,

三、關于精細審計(fine-grained auditing):

https://docs.oracle.com/cd/E11882_01/network.112/e36292/auditing.htm#DBSEG525

如果想要細粒度的審計某個schema下針對某個表的某些資料的操作記錄,可以開啟精細審計,這允許你設計很細粒度的策略,例如創造一個fga策略如下:

--查看相關包的用法:
desc DBMS_FGA;
BEGIN
 DBMS_FGA.ADD_POLICY(
 OBJECT_SCHEMA=>'HR',                   
 OBJECT_NAME =>'EMPLOYEES',                    
 POLICY_NAME =>'SAL_AUD',                    
 AUDIT_CONDITION =>'SALARY>3000',               
 AUDIT_COLUMN =>'SALARY',                                    
 ENABLE=>TRUE,                          
 STATEMENT_TYPES=>'SELECT,UPDATE');
END;
--在sqlplus 中直接/執行,或者作為存盤程序在plsql中exec dbms_fga.add_policy(...........);

 查看精細審計策略:

DESC dba_audit_policies;
--查看已創建的精細審計策略
SELECT OBJECT_NAME,POLICY_NAME,ENABLED FROM DBA_AUDIT_POLICIES;

洗掉精細策略:

begin
dbms_fga.drop_policy (
object_schema=>'HR',
object_name=>'TEST',
policy_name=>'SAL_AUD');
end;
/

四、查看審計記錄:

DBA_COMMON_AUDIT_TRAIL:https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_3077.htm#REFRN23393

desc dba_common_audit_trail;
--示例:12c之前查看因為密碼驗證失敗的審計記錄:
select 
	EXTENDED_TIMESTAMP,DB_USER, OS_USER, USERHOST, COMMENT_TEXT
from dba_common_audit_trail
where 
	DB_USER = 'EASYITS'
   and RETURNCODE = 1017
   and EXTENDED_TIMESTAMP between
       to_timestamp('2019-04-18 21:30:00', 'YYYY-MM-DD HH24:MI:SS') and
       to_timestamp('2019-04-18 22:30:00', 'YYYY-MM-DD HH24:MI:SS');

 五、12c審計:

官網參考:

12c的傳統審計(即11g里的標準審計和精細審計):

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/AUDIT-Traditional-Auditing.html#GUID-ADF45B07-547A-4096-8144-50241FA2D8DD

12c的unified審計:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/AUDIT-Unified-Auditing.html#GUID-B24D6874-4053-4E66-8238-6CD0C87E9DCA

12c中新引入的審計機制名為unified audit,你可以將其理解為一種更加輕便的精細審計,

我們知道在12c之前想要使用精細審計就要用dbms_fga包去創建審計策略,想要使用標準審計就要用audit陳述句去審計特定的權限和SQL,相關的視圖也非常多,這導致審計策略的管理非常混亂,audit的語法也非常的反人類,而12c的unified audit則對設定審計策略的方式做了統一和簡化,只需要使用以下三種陳述句來設定審計策略就可以了:

  • create audit policy (unified auditing)
  • alter audit policy (unified auditing)
  • drop audit policy (unified auditing)

而開啟和關閉審計策略也極簡,只需要使用簡單的audit和noaudit陳述句:

audit policy <policy_name>;
noaudit policy <policy_name>;

可以看到我們只要熟悉創建/修改審計策略的語法就可以了,

至于原有的標準審計和精細審計的創建模式,12c中依然保留,在混合審計模式下你依然可以使用dbms包創建精細審計,audit命令也保留著創建標準審計的語法,

Unified審計模式的開啟:

12c的Unified Auditing引數默認為false:

select parameter,value from v$option where parameter='Unified Auditing';

這種默認設定表示既支持12c之前的那種標準+精細的傳統審計模式,也可以使用unified審計模式,這種默認的模式也被稱作混合審計模式(mixed),

而如果開啟unified audting,那么傳統審計模式就會被禁用,audit_trail引數被忽略,AUD$和FGA_LOG$等相關表不再新增任何審計記錄,只能在AUDSYS.UNIFIED_AUDIT_TRAIL中看到unified審計的記錄,

如何開啟unified審計?

SQL> shutdown immediate;
ORACLE instance shut down.
SQL> host lsnrctl stop
--如果有EM啟用,那么暫時關閉:emctl stop oms
SQL> host ( cd $ORACLE_HOME/rdbms/lib ; make -f ins_rdbms.mk uniaud_on ioracle )
--同樣的關閉方式就是:make -f ins_rdbms.mk uniaud_off ioracle
SQL> startup
SQL> select * from v$option where PARAMETER = 'Unified Auditing';

 

12c混合審計模式下的審計表現:

我們知道11g中,只要audit_trail不為none,那么資料庫會默認審計一些操作,例如logon,logout和涉及資料庫安全的操作等,而在12c中系統也預設了一些unified審計策略,可以通過AUDIT_UNIFIED_ENABLED_POLICIES視圖查看已生效的審計策略,通過AUDIT_UNIFIED_POLICIES可以查看所有預設審計策略,

12c的混合模式下,對于11g中那些標準審計默認審計的審計項們也依然進行審計,只不過方式變了,變為了通過默認開啟一些unified審計策略來進行這些默認審計(DBA_STMT_AUDIT_OPTS也不再包含記錄),我們可以看一下這些默認開啟的審記策略:

select * from AUDIT_UNIFIED_ENABLED_POLICIES;
 

以上為12c中默認開啟的審計策略,其中ORA_LOGON_FAILURES在12.1.0.2以后被從ORA_SECURECONFIG獨立出來,并且只審計失敗的登錄.

而從AUDIT_UNIFIED_POLICIES視圖可以看出ORA_SECURECONFIG其實就包含了以前的那些默認標準審計項,

混合模式下無論是傳統審計記錄,還是通過預設的unified auditing policy進行的默認審計,其審計記錄在dba_common_audit_trail中都可以查看,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231818.html

標籤:其他

上一篇:flink 流式處理中如何集成mybatis框架

下一篇:MySQL基礎

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more