如何開啟伺服器審計功能
① linux伺服器主機操作系統是否開啟日誌審計策略:
內核編譯時,一般打開NET選項就打開AUDIT選項了。 在系統中查看audit是否打開,root 用戶執行: service auditd status
② 如何查看windows server是否開啟審計功能
show parameter audit_trail
查看audit_trail的值,如果值是"none"表示沒有開審計,否則就開了。
不同的值代表不同的意思(下面是10g的):
none:
Disables database auditing.
os:
Enables database auditing and directs all audit records to the operating system's audit trail.
db:
Enables database auditing and directs all audit records to the database audit trail (the SYS.AUD$ table).
db,extended:
Enables database auditing and directs all audit records to the database audit trail (the SYS.AUD$ table). In addition, populates the sqlBIND and SQLTEXT CLOB columns of the SYS.AUD$ table.
xml:
Enables database auditing and writes all audit records to XML format OS files.
xml,extended:
Enables database auditing and prints all columns of the audit trail, including SqlText and SqlBind values.
③ 查詢SQL審計功能是否開啟
mysql伺服器自身沒有提供審計功能,但是我們可以使用init-connect+binlog的方法進行mysql的操作審計。由於mysqlbinlog記錄了所有對資料庫長生實際修改的sql語句,及其執行時間,和connection_id但是卻沒有記錄connection_id對應的詳細用戶信息。在後期審計進行行為追蹤時,根據binlog記錄的行為及對應的connection-id結合之前連接日誌記錄進行分析,得出最後的結論。1.設置init-connect1.1創建用於存放連接日誌的資料庫和表createdatabaseaccesslog;CREATETABLEaccesslog.accesslog(`id`int(11)primarykeyauto_increment,`time`timestamp,`localname`varchar(30),`matchname`varchar(30))1.2創建用戶許可權可用現成的root用戶用於信息的讀取grantselectonaccesslog.*toroot;如果存在具有to*.*許可權的用戶需要進行限制。這里還需要注意用戶必須對accesslog表具有insert許可權grantselectonaccesslog.*touser@』%』;1.3設置init-connect在[mysqld]下添加以下設置:init-connect=』insertintoaccesslog.accesslog(id,time,localname,matchname)values(connection_id(),now(),user(),current_user());』------注意user()和current_user()的區別log-bin=xxx這里必須開啟binlog1.4重啟資料庫生效shell>/etc/init.d/mysqlrestart2.記錄追蹤2.1thread_id確認可以用以下語句定位語句執行人Tencent:~#mysqlbinlog--start-datetime='2011-01-2616:00:00'--stop-datetime='2011-01-2617:00:00'/var/lib/mysql/mysql-bin.000010|grep-B5'wsj'COMMIT/*!*/;#at767#11012616:16:43serverid1end_log_pos872Querythread_id=19exec_time=0error_code=0usetest/*!*/;SETTIMESTAMP=1296029803/*!*/;createtablewsj(idintunsignednotnull)--BEGIN/*!*/;#at940#11012616:16:57serverid1end_log_pos1033Querythread_id=19exec_time=0error_code=0SETTIMESTAMP=1296029817/*!*/;insertintowsj(id)values(1)--BEGIN/*!*/;#at1128#11012616:16:58serverid1end_log_pos1221Querythread_id=19exec_time=0error_code=0SETTIMESTAMP=1296029818/*!*/;insertintowsj(id)values(2)2.2用戶確認thread_id確認以後,找到元兇就只是一條sql語句的問題了。mysql>select*fromaccesslogwhereid=19;+----+---------------------+---------------------+-----------+|id|time|localname|matchname|+----+---------------------+---------------------+-----------+|19|2011-01-2616:15:54|[email protected]|test@%|+----+---------------------+---------------------+-----------+1rowinset(0.00sec)
④ 如何開啟和關閉oracle資料庫中的審計功能
二、審計可以分為3類。
或者說,可以從3種角度去啟用審計。
1、語句審計(Statement Auditing)。
對預先指定的某些SQL語句進行審計。這里從SQL語句的角度出發,進行指定。審計只關心執行的語句。
例如,audit CREATE TABLE;命令,就表明對"create table"語句的執行進行記錄。 不管這語句是否是針對某個對象的操作
2、許可權審計(Privilege Auditing)
對涉及某些許可權的操作進行審計。這里強調「涉及許可權」
例如,audit CREATE TABLE;命令,又可以表明對涉及「CREATE TABLE」許可權的操作進行審計。
所以說,在這種命令的情況下,既產生一個語句審計,又產生了一個許可權審計。
有時候「語句審計」和「敞氦搬教植寄邦犀鮑簍許可權審計」的相互重復的。這一點可以後面證明。
3、對象審計(Object Auditing)。 記錄作用在指定對象上的操作。
⑤ exchange 2010 郵件伺服器怎麼實現審計功能
你想怎麼審計?只是單純的看日誌還是要實現外發的郵件必須經過審批才能出去。看日誌的話exchange 2010工具里有,但速度很慢,一般都是通過反垃圾郵件系統來看。外發審計的話需要專業的審計系統。
⑥ linux操作系統怎麼開啟日誌審計功能
對於Linux操作審計,當前主要有兩種形式。
一種是,通過收取linux操作系統上的日誌,來進行審計。優點是全面,內容是零散,缺乏直觀性,一般需要專業的軟體來收集和呈現,同時由於容易被刪除,可能導致關鍵審計信息缺失問題,以及由於共享賬號問題,導致無法定位到人。
另一種是,通過碉堡堡壘機軟體來實現審計。優點是全面直觀,可以關聯到人,確定是只能對遠程運維操作進行審計,無法對直接登錄操作進行審計。
⑦ windows 2008 怎麼開啟安全審計
微軟系統中任何關於如何限制或控制管理員許可權的討論通常都會得到這樣的結果:你怎樣才能不把管理許可權送給那些你不信任的人?這有一定道理,但是在沒有證據表明管理員做錯了事情的情況下,如何才能正確判斷一個管理員是否值得信任呢?再者,你如何證明你的判斷呢?
你不能剝奪一個域管理員太多許可權,尤其是在每個域都要管理的多網域環境下,所以說有時候限制管理員的權利和授權活動這項工作很難實現。輔助人員和供給人員通常也需要具有管理權利,而且有時政治需求還會需要更多的管理人員。所以,真正的問題是,你如何去審計一個管理員?
雖然答案是只要啟用審計就行了,但是只是簡單地啟用審計功能並不能解決所有的問題。舉例來說,我最近與許多管理員一起進行了一項大型的活動目錄部署活動。他們有一個應用程序,使用特定的用戶對象屬性提供對該應用程序的連接。站在安全相關立場,他們發現管理員可以禁用審計功能,修改一些關鍵的屬性,並且可以對該應用程序做壞事。然後該管理員可以重新啟用審計功能而不會被覺察---甚至WindowsServer2008R2的屬性審計功能也是如此。啟用審計功能的時候,系統可以記錄足夠的事件,從中可以看出誰改變了對象,以及誰改變了屬性。但是由於審計功能被禁用,所有這方面的證據都消失了。
⑧ 怎麼查看db2資料庫是否開啟審計功能
Linux 系統下
su db2inst1
db2audit describe
這個表示是否開啟審計
⑨ linux伺服器安全審計怎麼弄
材料:
Linux審計系統auditd 套件
步驟:
安裝 auditd
REL/centos默認已經安裝了此套件,如果你使用ubuntu server,則要手工安裝它:
sudo apt-get install auditd
它包括以下內容:
auditctl :即時控制審計守護進程的行為的工具,比如如添加規則等等。
/etc/audit/audit.rules :記錄審計規則的文件。
aureport :查看和生成審計報告的工具。
ausearch :查找審計事件的工具
auditspd :轉發事件通知給其他應用程序,而不是寫入到審計日誌文件中。
autrace :一個用於跟蹤進程的命令。
/etc/audit/auditd.conf :auditd工具的配置文件。
Audit 文件和目錄訪問審計
首次安裝auditd後, 審計規則是空的。可以用sudo auditctl -l 查看規則。文件審計用於保護敏感的文件,如保存系統用戶名密碼的passwd文件,文件訪問審計方法:
sudo auditctl -w /etc/passwd -p rwxa
-w path :指定要監控的路徑,上面的命令指定了監控的文件路徑 /etc/passwd
-p :指定觸發審計的文件/目錄的訪問許可權
rwxa :指定的觸發條件,r 讀取許可權,w 寫入許可權,x 執行許可權,a 屬性(attr)
目錄進行審計和文件審計相似,方法如下:
$ sudo auditctl -w /proction/
以上命令對/proction目錄進行保護。
3.查看審計日誌
添加規則後,我們可以查看 auditd 的日誌。使用ausearch工具可以查看auditd日誌。
sudo ausearch -f /etc/passwd
-f設定ausearch 調出 /etc/passwd文件的審計內容
4. 查看審計報告
以上命令返回log如下:
time->Mon Dec 22 09:39:16 2016
type=PATH msg=audit(1419215956.471:194): item=0name="/etc/passwd"
inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1419215956.471:194):cwd="/home/somebody"
type=SYSCALL msg=audit(1419215956.471:194): arch=40000003syscall=5
success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231auid=4294967295 uid=1000 gid=1000euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295
comm="sudo" exe="/usr/bin/sudo"key=(null)
time :審計時間。
name :審計對象
cwd :當前路徑
syscall :相關的系統調用
auid :審計用戶ID
uid 和 gid :訪問文件的用戶ID和用戶組ID
comm :用戶訪問文件的命令
exe :上面命令的可執行文件路徑
以上審計日誌顯示文件未被改動。
⑩ 如何開啟sqlserver2008資料庫審計功能
SQLSERVER2008新增的審核功能
在sqlserver2008新增了審核功能,可以對伺服器級別和資料庫級別的操作進行審核/審計,事實上,事件通知、更改跟蹤、變更數據捕獲(CDC)
都不是用來做審計的,只是某些人亂用這些功能,也正因為亂用這些功能導致踩坑
事件通知:性能跟蹤
更改跟蹤:用Sync Services來構建偶爾連接的系統
變更數據捕獲(CDC):數據倉庫的ETL 中的數據抽取(背後使用logreader)
而審核是SQLSERVER專門針對資料庫安全的進行的審核,記住,他是專門的!
我們看一下審核的使用方法
審核對象
步驟一:創建審核對象,審核對象是跟保存路徑關聯的,所以如果你需要把審核操作日誌保存到不同的路徑就需要創建不同的審核對象
我們把審核操作日誌保存在文件系統里,在創建之前我們還要在相關路徑先創建好保存的文件夾,我們在D盤先創建sqlaudits文件夾,然後執行下面語句
--創建審核對象之前需要切換到master資料庫
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(FILEPATH='D:\sqlaudits') --這里指定文件夾不能指定文件,生成文件都會保存在這個文件夾
GO
實際上,我們在創建審核對象的同時可以指定審核選項,下面是相關腳本
把日誌放在磁碟的好處是可以使用新增的TVF:sys.[fn_get_audit_file] 來過濾和排序審核數據,如果把審核數據保存在Windows 事件日誌里查詢起來非常麻煩
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(
FILEPATH='D:\sqlaudits',
MAXSIZE=4GB,
MAX_ROLLOVER_FILES=6)
WITH (
ON_FAILURE=CONTINUE,
QUEUE_DELAY=1000);
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
MAXSIZE:指明每個審核日誌文件的最大大小是4GB
MAX_ROLLOVER_FILES:指明滾動文件數目,類似於SQL ERRORLOG,達到多少個文件之後刪除前面的歷史文件,這里是6個文件
ON_FAILURE:指明當審核數據發生錯誤時的操作,這里是繼續進行審核,如果指定shutdown,那麼將會shutdown整個實例
queue_delay:指明審核數據寫入的延遲時間,這里是1秒,最小值也是1秒,如果指定0表示是實時寫入,當然性能也有一些影響
STATE:指明啟動審核功能,STATE這個選項不能跟其他選項共用,所以只能單獨一句
在修改審核選項的時候,需要先禁用審核,再開啟審核
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
ALTER SERVER AUDIT MyFileAudit WITH(QUEUE_DELAY =1000)
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
審核規范
在SQLSERVER審核裡面有審核規范的概念,一個審核對象只能綁定一個審核規范,而一個審核規范可以綁定到多個審核對象
我們來看一下腳本
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT MyAppAudit TO APPLICATION_LOG
GO
ALTER SERVER AUDIT MyAppAudit WITH(STATE =ON)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyAppAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
我們創建一個伺服器級別的審核規范CaptureLoginsToFile,然後再創建多一個審核對象MyAppAudit ,這個審核對象會把審核日誌保存到Windows事件日誌的應用程序日誌里
我們禁用審核規范CaptureLoginsToFile,修改審核規范CaptureLoginsToFile屬於審核對象MyAppAudit ,修改成功
而如果要把多個審核規范綁定到同一個審核對象則會報錯
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileA
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileB
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
--消息 33230,級別 16,狀態 1,第 86 行
--審核 'MyFileAudit' 的審核規范已經存在。
這里要說一下 :審核對象和審核規范的修改 ,無論是審核對象還是審核規范,在修改他們的相關參數之前,他必須要先禁用,後修改,再啟用
--禁用審核對象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
--禁用伺服器級審核規范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
--禁用資料庫級審核規范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=OFF)
GO
--相關修改選項操作
--啟用審核對象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
--啟用伺服器級審核規范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=ON)
GO
--啟用資料庫級審核規范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=ON)
GO
審核伺服器級別事件
審核服務級別事件,我們一般用得最多的就是審核登錄失敗的事件,下面的腳本就是審核登錄成功事件和登錄失敗事件
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
修改審核規范
--跟審核對象一樣,更改審核規范時必須將其禁用
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =OFF)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
ADD (login_change_password_gourp),
DROP (successful_login_group)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =ON)
GO
審核操作組
每個審核操作組對應一種操作,在SQLSERVER2008里一共有35個操作組,包括備份和還原操作,資料庫所有權的更改,從伺服器和資料庫角色中添加或刪除登錄用戶
添加審核操作組的只需在審核規范里使用ADD,下面語句添加了登錄用戶修改密碼操作的操作組
ADD (login_change_password_gourp)
這里說一下伺服器審核的內部實際上使用的是SQL2008新增的擴展事件裡面的其中一個package:SecAudit package,當然他內部也是使用擴展事件來收集伺服器信息
審核資料庫級別事件
資料庫審核規范存在於他們的資料庫中,不能審核tempdb中的資料庫操作
CREATE DATABASE AUDIT SPECIFICATION和ALTER DATABASE AUDIT SPECIFICATION
工作方式跟伺服器審核規范一樣
在SQLSERVER2008里一共有15個資料庫級別的操作組
7個資料庫級別的審核操作是:select ,insert,update,delete,execute,receive,references
相關腳本如下:
--創建審核對象
USE [master]
GO
CREATE SERVER AUDIT MyDBFileAudit TO FILE(FILEPATH='D:\sqldbaudits')
GO
ALTER SERVER AUDIT MyDBFileAudit WITH (STATE=ON)
GO
--創建資料庫級別審核規范
USE [sss]
GO
CREATE DATABASE AUDIT SPECIFICATION CaptureDBActionToEventLog
FOR SERVER AUDIT MyDBFileAudit
ADD (database_object_change_group),
ADD (SELECT ,INSERT,UPDATE,DELETE ON schema::dbo BY PUBLIC)
WITH (STATE =ON)
我們先在D盤創建sqldbaudits文件夾
第一個操作組對資料庫中所有對象的DDL語句create,alter,drop等進行記錄
第二個語句監視由任何public用戶(也就是所有用戶)對dbo架構的任何對象所做的DML操作
創建完畢之後可以在SSMS里看到相關的審核