Oracle数据库审计_第1页
Oracle数据库审计_第2页
Oracle数据库审计_第3页
Oracle数据库审计_第4页
Oracle数据库审计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2010年9月Oracle数据库专题数据库安全性数据库审计XMOUGMEMBER编写人:EmpoliLiu背景:数据库审计,顾名思义,就是捕捉和存储发生在数据库内部的事件信息。本文档重点关注,1:标准的数据库审计(Standarddatabaseauditing)通过初始化参数AUDIT_TRAIL控制实例级别的审计。2:基于值的审计(Value-basedauditing)它拓展了标准数据库审计,不仅捕捉审计事件,还捕捉那些被insert,update和delete的值。基于值的审计通过触发器来实现。3:细粒度审计(Fine-grainedauditing)它拓展了标准数据库审计,捕捉准确的

2、SQL语句。接下来具体分析,每种审计都有相对应的介绍与实验。操作系统版本:RedhatEnterpriseLinux5.1数据库版本:Oracle10g数据库审计介绍与实验一(标准的数据库审计)Audit_trail相当于是一个开关,默认不打开。SQLSQLashwparameterauditNAMETYPEVALUEAuditfile,rieitstrihg/uOl/app/oracle/adntln/orcl/aCiiimPaudit&y5icp&ratlonFALSEauditsyslcglevelstringAitdlttrailstringNONE那么,如何打开呢?由于audit_t

3、rail参数值有多种,这里只列举两种。如下是第一种,audit_trail=dbSQtalteraudittrall=dbscope=spfile;SysteaaltereduSQLshutdownlMiediateDatabaseclosed.Databdedinouriited.ORACLEinstanceshutS0lstartupORACLEinstancestartedaTotalSysteaGlobalArea536S7G912bytesFixedSize1220408bytesVarioleSize163578056bytesDatabaseBuffers364964448byt

4、esRecbuffersbytesDatabasesaumtedDatopenedSQL-SthGwpAraflieterauditNAMETYPEVALUEaudit_filp_(Je5tstrlngi/uOlZpp/oracIe/#dnln/orcl/aduPaudltsjrsrationsboola-nFALSEaudit务yioglevelstringsudlltrailstringD&2010年9月标准数据库审计的数据放于基表aud$,而aud$位于system表空间上,众所周知,system表空间是存放数据字典表的地方,为避免因审计而较大的影响数据库的性能,应将此表移到其它表空间上

5、。生产环境建议建一个单独的表空间存放审计表,本文将审计表移动到users表空间上,如下图WorkspaceEnterSQL,PUSQLandSQLPlusstatemiants.*rromdbajablestwherttab!&_nam&=AllD$;.EkstuIe).LoadScripijSavScriptji.CanceT)底层表是AUD$,那么如何知道上层该查询哪些表呢?SYSALIOSUSERSVALID10Select*fromdietdwhered.table_namelikeAUD%;ALL_KF_AuD(T_OP7AudlingoptionsFornaw甲crcglodobf

6、oclsU託R_0&J_AyDir_QPT5AudHng甲1彌rgrfiwnSX1诂阿R*rh刖1腿引owoption附D6ADG加JDITjyTBAudliiFO汕1出品Mdviewtwilh副闊釵閒申iWMiDSA_STMT_AUDr_0PTSDK;ribGurrcrnEyElFiaudtrgqXkrra-kdseIhssywnandbyutctDfiA_PRIV_AUOIT.OPTSDwcritcscurrHTlsyslemphiiogbeingacrossIhn-syslomandbyuserDfiA_AUOIT_TRAJLZUIoiidltnijrtriKU$JeR_WDlTTRA|

7、LAudi1InallTlne剛啟aiiI1忖thmwD6AAUOIT_5E55IONWlaxfdliXBlreeoacereftrti闻CONNECTmLH5CCNNEC7USER_AUDIT_5E55IONAllaudlEraiFBDDidsconcerningCONNECTandDISCONNECTDBA_AUDI1STATEME.NTAudL1rnilreconi;cirEmngi沪nt,rirvDfcn,andl,noaudiLandahcfmyskmUSER_MJDIT_STATEMENTAudi1rnilraconccrcaTiirgrant,wdqaiidl,rmaucil:n

8、ndal:nrsystomD6A_AUDI7QBJECTAijdlinulHKDfdsforwtHREfnlsccruvhng哲尘I龟囤吟Dly:t出斜qLLwLgt.Smvincx?庇巳(pubtejdniRhFi朋h*|pjUsynenym,口代曲1他M谕er.rdlbeekaegin-enLrde,u砖USEH_MJDn_G&flEGlAudLIrailrecwd5flwtrtenienhccrceningcbjecljs,spccfizall:L-afal?,ciatcr,viewindten,flcpience,pubiGdsHabasBlink,|puUicsynonym,prKo

9、dLJfia,br)ga,Drdlbacksfigm#ihlabtaspaca,rd,uwDeA_AUOlT_EXlSTS讥怜创enlrifipriCy_COUjMNSAllfin訐ga:r-4daujlingpdicycoLmnsinlhcUQtM驻UER_AUDlTJaaJClESMltin。grair4daudilingpdtu$fgr曲oc坊InuforvchiniHUMR_AUDn_PaJG_COLUWSUaara鋼即削圖plk民闻刚cyelumnaInlhe阳百l阳DA_FGA_ftUDI匚THAILAlllintaudL靳曲1曲言DSACOMMONAUDITmAJlCwnbine

10、dStandsandRneGrainedaudlGrailmflriH2010年9月参数audit_trail=db后,就可以开始审计了,如下图凡是有谁查询hr用户的employees表,就将它记录进aud$表。SQLselectccuntJfromC0UNT(*JSQLauditselectonhrBemployeesAudit5UCeled.SQlconnhr/hrConnectedi.SQL*selectcount(Jfromhr.eniployees;COUNT(-167SQL*selectccuiit(*)fromdud$selectcountf*)fro*aySERRORatlin

11、e1!0942;tableorviewHe遅弓noteMlttSQL*conn/asS/&dbaConnected.1QIlselectcount()fromaud$C0UNT()而此时,我再以hr用户登录,然后再次查询,发现底层aud$表又记了一条记录,SQL*connhr/brConnected,SQLtountf)fromhr.Employees,;COUUT(*ie?50Lconn/mssysdbconnected,SQLtel&ctcount(r)from吕蛀d$;COUNTf*|而后,我又想,如果是同一个session查多次会怎么样?同一个hr我让它查两次发现,同一个session

12、查多次只会记录一次。SQLselect匚ount(*)fromaudS;COQNT*)SQLselectcount(*)fromaud$匚0UNTf百3总结:默认情况下,同一session查多次只会记录一次,不同session不论用户是否相同,查几次就会记录几次。2010年9月继续往下思考如果我要让它哪怕是同一个session,查一次就要它记录一次怎么做?OK,如下(默认是bysession,所依此处改成byaccess)SQLauditselectonhr.employeesbyaccess;Auditsucceeded.再看,同一session差了两次SQLselectcount(*)fr

13、omhr.employees;COUNT(*)1375QLselectcount(*)fromhr.employees;COUNT(*)107数据也就跟着记录了两次SQLselectcount(*)fromaud$;C0UNT(*)Sselectcount(*)fromaud$C0UNT(*)5缺点:对数据库的影响极大,会造成最多50%性能的下降。2010年9月接下来,将audit_trail改为另一个值db_extended审计都是大动作,所以都要经历一次数据库的重启。USER11SYS*5QLaltersystemsetaudittraildbextendedSystemaltered.2

14、010年9月2010年9月SQLshutdownImmediateHBDatabdseclosed.Databssdlsmounte-d.ORACLEInstanceshutdown,SQLstartup5P2-O042:unknowncommandSQLstartupORACLEInstancestarted.startuprestoflimeIgnored.2010年9月5368709121226400167772366366710144716S000bytesbytesbytesbytesbytesTotalSystemGlobalAreaFijcedSizeVarlsbliBSizeD

15、atabaseBuffersRedoBuffersDatabaserunted.Databaseopeneda5QLshowparameterauditNAMETYPEVALUEauditfiledeststring/uOl/app/Diracle/admin/orcl/aduPauditsysoperationsbooleariFALSEaudiwlog-_3elStringaudittrailstringDBEXTENDEDDb_extended的审计程度可以细化到用户执行了哪条SQL语句。这个是audit_trail=db所做不到的。如下2010年9月2010年9月2010年9月数据库审

16、计介绍与实验二(基于值的审计)创建一个表sysog,此表用来记录sys以sysdba角色登录数据库的情况。oracleserveradnninjssqlplus/nologSQL*Pl.us:Release102+G,1.6-ProductiononThuSep221;53:332019Copyright(c)1982,2065rOracle*AllrightsreservedSQLconn/assysdbaConnected.S0LshowuserUSERisSYSSQLcreatetablesyslog(avarchar2(266)tablespaceusers;Tablecreatedd

17、escsysLog;NameNull?TypeAVARCHAR2(299)创建一个触发器,在sys登录数据库时就往sys_log表中插入此sys在何时,何地,以何种操作系统用户的方式登录数据库中。HieEditViewlerminaTabsHelpSQL*Plus:Release10,2,6.1.0-ProductiononThuSep221:55:342G10Copyright(C)1932p2985,Oracle.Allrightsreserved.SQLconn/assysdbaConnected.SQLselect*fromsyslog;norowsselectedSQLcreatea

18、rreplacetriggertrgsyslogafterlogonondatabasewhenuser=SYS*)begininsertintosys_Iogvalues(Logon411user11atJ|to_char(sysdate,yyyy-mm-ddhh24:ml:ssF)|syscontext(serenvFipaddress*)|syscontext(userenv*f1os_user*);commit;end;Conn/assysdba与connsys/oracle由于都是以本地方式登录,所以IP不会记录。通过tnsname网络方式登录就会记录IP。2010年9月数据库审计介

19、绍与实验三(细粒度审计)首先,创建一张表。SQLconn/a&Connected.SQLcreatetabletlBjMavarcar220O)tablespaceusers;createtabletIBh(avarcjar2(2G0)tablespaceusersERRORatline1:ORAGiD9右7:missingrightparenthesisSQLcreatetabletlh(avarchar2(2Q9)tablespaceusersTable匚eatedS0Ldesctl9hNameNull?TypeAVARCHAR22Se)sqlselectfromtie_hnorowsse

20、lected其次,创建一个存储过程。细粒度审计需要fireaprocedure意译为触发一个存储过程。SQL*createorreplaceprocedureplOa(objectschemaobjectnmevarchiarSp41pollc_naiievarcharl)asbegininsertIntatiehvalues(s-yscontext(*userenw1fkasuser*Jj;commit;gend;/ProcedureCreated.SQLdearp!0a;PROCEDUREpieaArgumeriitNameTypeIn/OutDefauilt7OBJECTSCHEMAVARCHAR2INobject,naheVAHCMAR2INPOLICYIWIEVARC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论