Oracle漏洞扫描安全系统加固_第1页
Oracle漏洞扫描安全系统加固_第2页
Oracle漏洞扫描安全系统加固_第3页
Oracle漏洞扫描安全系统加固_第4页
Oracle漏洞扫描安全系统加固_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、实用文档关于操作系统和数据库合规检查漏洞的解决方案Oracle数据库分册适用软件版 本Oracle10g、11g适用硬件版 本主题关于操作系统和数据库合规检查漏洞的解决方案Oracle数据库分册1、问题描述与原因:Oracle数据库在合规检查时被扫描出漏洞,要求对这些漏洞进行解决2、应对措施:对存在漏洞进行定制的安全加固操作。3、执行条件/注意事项:?加固前确保服务器、数据库、网管运行均正常。最好重启下服务器、数据库和网管查看重启后网管是否能运行正常。如果加固前服务器本身有问题,加固后服务器运行异常会加大 排查难度。?本解决方案执行完成后,需要重启Oracle数据库来生效某些操作。?本解决方案

2、不必完全执行,请根据系统扫描出的漏洞选择对应的漏洞条目进行操作。?如无特殊说明,本文中的执行用户均为oracle4、操作步骤:漏洞清单(单击可跳转):(注:漏洞名称与配置项信息中的配置项名称对应。)漏洞1.检查是否对用户的属性进行控制(5)漏洞2.检查是否配置 Oracle软件账户的安全策略(2)漏洞3.检查是否启用数据字典保护漏洞4.检查是否在数据库对象上设置了VPD和OLS (6)漏洞5.检查是否存在 dvsys用户dbms macadm 对象(14)漏洞6.检查是否数据库应配置日志功能(11)漏洞7.检查是否记录操作日志(13)漏洞8.检查是否记录安全事件日志(7)漏洞9.检杳是否根据业

3、务要求制定数据库审计策略漏洞10.检杳是否为监听设置密码漏洞11.检杳是否限制可以访问数据库的地址(1)漏洞12.枪杳是否使用加密传输(4)漏洞13.枪杳是否设置超时时间(15)漏洞14.检查是否设置 DBA组用户数量限制(3)漏洞15.检查是否删除或者锁定无关帐号漏洞16.检查是否限制具备数据库超级管理员( SYSDBA )权限的用户远程登录(10)漏洞17.检查口令强度设置 (17)漏洞18.检查帐户口令生存周期(12)漏洞19.检查是否设置记住历史密码次数(8)漏洞20.检查是否配置最大认证失败次数漏洞21.检查是否在配置用户所需的最小权限(9)漏洞22.检查是否使用数据库角色( ROL

4、E )来管理对象的权限(16)漏洞23.检查是否更改数据库默认帐号的密码执行Oracle安全加固操作前备份文件:ibash-3.2$ cp $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME7network/admin亓ibash-3.2$ cp $ORACLE_HOME/network/admin/sqlnet.ora $ORACLE_HOME/network/admin/sqlnet.or i:I a u士 sad aa di a a w- baa -aasad ad -aaad 44 s msad

5、.-aa A& aaad 44 s a *4 sad -aa = B a a w,4 had 41- s asad -aa 4& a a wj hadaad -a-&baa &=> bads a u- > a-斗4 a S jj. had aa s aa - &-aa 44 a abs-Oracle数据库漏洞的解决方案全部执行完成后,需要重启Oracle实例来生效某些操作。漏洞1.检查是否对用户的属性进行控制类型:Oracle数据库类问题:10F !- UF !0F F一* n r , W H h* H UF 一 H! /!-!:F0F !一

6、 n H 一 H iSQL> select count(t.username) from dba_users t where profile not in ('DEFAULT','MONITOR!ING_PROFILE');:I !匕OUNT(T.USERNAME):0I KF VB STB F » n « H -F B- F bl! k F h h 9-B n H 1: ITB «TI 解决方案:暂时不处理。漏洞2.检查是否配置 Oracle软件账户的安全策略类型:Oracle数据库类问题:略解决方案:暂时不处理漏洞3.检查

7、是否启用数据字典保护类型:Oracle数据库类问题:SQL> select value from v$parameter where name like '%O7_DICTIONARY_ACCeSSIBILITY%'iselect value from v$parameter where name like '%O7_DICTIONARY_ACCESSIBILITY%' i :* I:ERROR at line 1:IORA-01034: ORACLE not availableIprocess ID: 0ISession ID: 0 Serial num

8、ber: 0I vrw m ni: m m MW iB-r!« im vrw 9-n 口 h 9-h im !B-n vm n . we vv * im h-kw a-i解决方案:在数据库启动的情况下,通过下面的命令检查o7_dictionary_accessibility 的参数值:1 n , h .n nra .an qra n n vara wrn h n m n » m n nh n nn n n 一 na :a-a n an arn nra rw * - an ;bash-3.2$ sqlplus system/oracle<SID>衿QL*Plus:

9、 Release .0 - Production on Thu Jan 9 11:33:56 2014Copyright (c) 1982, 2007, Oracle. All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release .0 - Production!With the Partitioning, OLAP, Data Mining and Real Application Testing options:SQL> show parameter o7

10、_dictionary_accessibility;Rametype valueO7_DICTIONARY_ACCESSIBILITY boolean FALSEj检查出默认的结果是 false后,使用下面的命令退出sql*plus:SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release .0 - 64bit Pro jduction:With the Partitioning, OLAP, Data Mining and Real Application Testing opt

11、ionsI m tb h n0 -n n = h h 一 h nin r w-ara f= h -n - sis 一* byb h n :*漏洞4.检查是否在数据库对象上设置了VPD和OLS类型:Oracle数据库类问题:|SQL> select count(*) from v$vpd policy;«i COUNT(*) : :0解决方案: 暂时不处理。漏洞5.检查是否存在 dvsys用户dbms_macadm 对象类型:Oracle数据库类 问题:论QL> select count(*) from dba_users where username='DVsYS

12、' i一;COUNT(*) -;0解决方案:暂时不处理。漏洞6.检查是否数据库应配置日志功能类型:Oracle数据库类问题:SQL> select count(*) from dba_triggers t where trim(t.triggering_event) = trim('LOGON:');I:COUNT(*)I解决方案:暂时不处理。漏洞7.检查是否记录操作日志类型:Oracle数据库类问题:;SQL> select value from v$parameter t where = 'audit_trail' isel

13、ect value from v$parameter t where = 'audit_trail';*TERROR at line 1:IORA-01034: ORACLE not availableIProcess ID: 0ISession ID: 0 Serial number: 0解决方案:暂时不处理。漏洞8.检查是否记录安全事件日志类型:Oracle数据库类问题:iSQL> 'select EOUntCrfrom- dba_triggers T where - trim(t/tfiggering_eventy = trim(1LOGON

14、I');i:COUNT(*) ;0解决方案:暂时不处理。漏洞9.检查是否根据业务要求制定数据库审计策略类型:Oracle数据库类问题:;SQL> select value from v$parameter t where = 'audit_trail' 一iselect value from v$parameter t where = 'audit_trail'I I :* ITERROR at line 1: ORA-01034: ORACLE not availableIProcess ID: 0I I iSessi

15、on ID: 0 Serial number: 0解决方案:暂时不处理。漏洞10.检查是否为监听设置密码类型:Oracle数据库类问题:|$ cat 'find $ORACLE_HOME -name sqlnet.ora' | grep -v "#"|grep -v "A$"find: 0652-081 cannot change directory to </oracle/app/oracle/dbhome_1/sysman/config/pr ;ef>:!:The file access permissions do no

16、t allow the specified action.!$ cat 'find $ORACLE_HOME -name listener.ora' | grep -v "#"|grep -v "a$" i一find: 0652-081 cannot change directory to </oracle/app/oracle/dbhome_1/sysman/config/pr ;ef>:The file access permissions do not allow the specified action. SID_LI

17、ST_LISTENER =| (SID LIST =(SID_DESC =(SID_NAME = PLSExtProc)I(ORACLE_HOME = /oracle/app/oracle/dbhome_1)I(PROGRAM = extproc)i1)I! (SID_DESC =(GLOBAL_DBNAME = minos)I(ORACLE_HOME = /oracle/app/oracle/dbhome_1)(SID_NAME = minos)I:)I;)Listener = I (DESCRIPTION_LIST =i一:(DESCRIPTION =I(ADDRESS = (PROTOC

18、OL = TCP)(HOST = 41)(PORT = 1521)1)!)IADR_BASE_LISTENER = /oracle/app/oracleI "n mH * kb : ar w ! an ar ar ra 解决方案:bash-3.2$ lsnrctl :ILSNRCTL for IBM/AIX RISC System/6000: Version .0 - Production on 08-JAN-2014 18:11:21i : iCopyright (c) 1991,2011, Oracle. All rights reserv

19、ed. !Welcome to LSNRCTL, type "help" for information.i |LSNRCTL>change_passwordOld password: < 如果之前没有密码则这里不填,直接按 Enter键>:New password:Reenter new password:Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=2)(PORT=1521)IPassword changed for LISTENERI:The command co

20、mpleted successfully!LSNRCTL>save_configConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=2)(PORT=1521):Saved LISTENER configuration parameters.Listener Parameter File /oracle/app/oracle//dbhome_1/network/admin/listener.o力Old Parameter File /oracle/app/oracle//dbh

21、ome_1/network/admin/listener.bak 汗he command completed successfully1sNRCTL>exit 他ash-3.2$ ;设置完成后通过下面的命令检查: Ibash-3.2$ cat $ORACLE_HOME/network/admin/listener.ora | grep "PASSWORDS"漏洞11.检查是否限制可以访问数据库的地址类型:Oracle数据库类问题:$ cat 'find $OraCle_HOME -name sqlnet.ora' | grep -v "#”|

22、grep -v "A$" find: 0652-081 cannot change directory to </oracle/app/oracle/dbhome_1/sysman/config/pr i-;ef>:I:The file access permissions do not allow the specified action. I|$ cat 'find $ORACLE_HOME -name listener.ora' | grep -v "#"|grep -v "a$"find: 0652

23、-081 cannot change directory to </oracle/app/oracle/dbhome_1/sysman/config/pr I-;ef>: i I:The file access permissions do not allow the specified action. blD_LIST_LISTENER = !:(SID_LIST = Ii (SID_DESC = i(SID_NAME = PLSExtProc) I-(ORACLE_HOME = /oracle/app/oracle/dbhome_1) i! (PROGRAM = extproc

24、) !) I (SID_DESC = (GLOBAL_DBNAME = minos) I(ORACLE_HOME = /oracle/app/oracle/dbhome_1)(SID_NAME = minos)i一! ;) ?) I Listener =| (DESCRIPTION_LIST = ;(DESCRIPTION =;(ADDRESS = (PROTOCOL = TCP)(HOST = 41)(PORT = 1521);)D!ADR_BASE_LISTENER = /oracle/app/oracle解决方案:| 检查 $ORACLE_HOME/network

25、/admin/sqlnet.ora 文件中是否有以下行: Tcp.validnode_checking = YES I!TCP.INVITED_NODES = (<host_1>, <host_2>,) :其中<host x>是允许访问本数据库的IP地址。;如果没有,则根据需要在文件中添加,随后重启数据库。重启完成后,则数据库只允许TCP.INVITED_NODESJ出的IP来访问。仪口果不存在sqlnet.ora 文件,请使用以下命令创建此文件后再实施上面的操作:!bash-3.2$ touch $ORACLE_HOME/network/admin/sql

26、net.ora漏洞12.检查是否使用加密传输类型:Oracle数据库类问题:$ cat 'find $OraCle_HOME -name sqlnet.ora' | grep -v "#"|grep -v "A$" i一Ifind: 0652-081 cannot change directory to </oracle/app/oracle/dbhome_1/sysman/config/pr i-:ef>:I:The file access permissions do not allow the specified act

27、ion. Ii$ cat 'find $ORACLE_HOME -name listener.ora' | grep -v "#"|grep -v "a$"Ifind: 0652-081 cannot change directory to </oracle/app/oracle/dbhome_1/sysman/config/prI-哈:i:The file access permissions do not allow the specified action. i|SID_LIST_LISTENER =Ii (SID_LIST

28、=i (SID_DESC =i(SID_NAME = PLSExtProc) j一(ORACLE_HOME = /oracle/app/oracle/dbhome_1) i! (PROGRAM = extproc) !) I (SID_DESC =(GLOBAL_DBNAME = minos)(ORACLE_HOME = /oracle/app/oracle/dbhome_1)(SID_NAME = minos)I-1)I!)IListener =Ii (DESCRIPTION_LIST =;(DESCRIPTION =;(ADDRESS = (PROTOCOL = TCP)(HOST = 1

29、041)(PORT = 1521) !)i ):ADR_BASE_LISTENER = /oracle/app/oracle解决方案:暂时不处理。漏洞13.检查是否设置超时时间类型:Oracle数据库类问题:!$ cat 'f-i'nd -$O'RACLE_HOME- -name -sql-net.Ora'' ' grep ' -v ' "#"grep '-v'"A$"-"find: 0652-081 cannot change director

30、y to </oracle/app/oracle/dbhome_1/sysman/config/pr 沿f>:The file access permissions do not allow the specified action.|$ cat 'find $ORACLE_HOME -name listener.ora' | grep -v "#"|grep -v "a$"find: 0652-081 cannot change directory to </oracle/app/oracle/dbhome_1/sys

31、man/config/pr: 一:ef>:The file access permissions do not allow the specified action.|sid_list_listener =i (SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /oracle/app/oracle/dbhome_1)(PROGRAM = extproc);)I (SID_DESC =(GLOBAL_DBNAME = minos)i(ORACLE_HOME = /oracle/app/oracle/dbhome_1)(SI

32、D_NAME = minos)ij )DListener =ii (DESCRIPTION_LIST =i (description =ij (ADDRESS = (PROTOCOL = TCP)(HOST = 41)(PORT = 1521)j );)|ADR_BASE_LISTENER = /oracle/app/oracle I a-EM h-m ija-a -u aui b-m um w u-a s-km u* u-a a-sa b-m bju u 解决方案:I hf : n-B bnn »»h : rr s-b : btb - n !i通过

33、下面的命令检查是否 设置了 SQLNET.EXPIRE_TIM的参数值为10:bash-3.2$ grep -i "SQLNET.EXPIRE_TIME" $ORACLE_HOME/network/admin/sqlnet.ora 视果没有设置,在 $ORACLE_HOME/network/admin/sqlnet.ora 文件中添加一行: |SQLNET.EXPIRE_TIME=10;随后重新启动监听和数据库。i故口果不存在sqlnet.ora 文件,请使用以下命令创建此文件后再实施上面的操作:ibash-3.2$ touch $ORACLE HOME/network/a

34、dmin/sqlnet.ora漏洞14.检查是否设置DBA组用户数量限制标准类型:Oracle数据库类问题:略解决方案:手动将其他非oracle的用户从dba组中删除,将oracle用户从root或system组中删 除。查询用户所属组的命令是groups <username> 。改变用户所属组的命令是usermod -G <groupname1> , <groupname2> <username> 。漏洞15.检查是否删除或者锁定无关帐号类型:Oracle数据库类问题:| SB KB Ba BJB BUB 1 KB ! KB ! U MLB a

35、JB SQL> select t.username from dba_users t where t.account_status = 'OPEN'i'select t.username from dba_users t where t.account_status = 'OPEN'i一一产ITerror at line 1:ORA-01034: ORACLE not availableIIProcess ID: 0Session ID: 0 Serial number: 0解决方案:暂时不处理。漏洞16.检查是否限制具备数据库超级管理员( SYS

36、DBA )权限的用户远程登录类型:Oracle数据库类问题:$QL> select t.VALUE from v$parameter t where upper(t.NAME) like '%REMOTE_LOGIN_PASSWOR bFILE%;IVALUE;IEXCLUSIVEI a 占z 上 a a ma bBabaa aa1 9 上# aa b a a- aad Afaaa asad A>aa a* a a 且4 bad 4d amu4M且4 上=上 Ah « aadAKaa&faBia bada a uh e a tasa baaa a aa a

37、解决方案:IUF * n ! hUF n ! FF , H F bF 加 bF H !:!T n - hF b0 hF h 一F j在数据库启动时,通过下面的命令检查remote_login_passwordfile的参数值:;bash-3.2$ sqlplus sys/oracle<SID> as sysdba a:SQL*Plus: Release .0 - Production on Thu Jan 9 11:33:56 2014Copyright (c) 1982, 2007, Oracle. All Rights Reserved.iConnected t

38、o:Oracle Database 10g Enterprise Edition Release .0 - Production1 :With the Partitioning, OLAP, Data Mining and Real Application Testing options ! !SQL> show parameters remote_login_passwordfile; ! I1 1NAMETYPE VALUE 1remote_login_passwordfilestring EXCLUSIVE如果参数值为 NONE则默认满足安全要求。否则,通过下面的S

39、QL语句修改参数值为 NONESQL> alter system set remote_login_passwordfile=NONE scope=spfile;i System altered.1修改后重启数据库:iSQL> shutdown immediateDatabase closed.!Database dismounted. ORACLE instance shut down.ibash-3.2$ export ORACLE_SID=<SID>1bash-3.2$ sqlplus /nologi1 sSQL*Plus: Release .0

40、- Production on Tue May 20 11:01:55 2014 g1Copyright (c) 1982, 2010, Oracle. All Rights Reserved.iSQL> conn / as sysdbaIConnected to an idle instance.SQL> startupORACLE instance started.11 si £ Total System Global Area 8589934592 bytesFixed Size2065744 bytesVariable Size3238009520 bytesDa

41、tabase Buffers5301600256 bytesRedo Buffers48259072 bytesDatabase mounted.ilDatabase opened.SQL>检查参数值是否修改成功:1SQL> show parameters remote_login_passwordfile;INAMETYPE VALUE j Iremote_login_passwordfilestring NONE;修改成功后退出SQL*PLUS I:SQL> exitDisconnected from Oracle Database 10g Enterprise Edit

42、ion Release .0 - Productio:nI iWith the Partitioning, OLAP, Data Mining and Real Application Testing options漏洞17.检查口令强度设置类型:Oracle数据库类问题: 1 1 1 : n : btb h ! ar r 1 n 1 ra > ar ra :SQL> select count(*) from dba_profiles where resource_name = 'PASSWORD_VERIFY_FUNCTION':and limit

43、 = 'NULL'Ij COUNT(*)I i :i 11解决方案:暂时不处理。漏洞18.检查帐户口令生存周期类型:Oracle数据库类问题:SQL> select limit from dba_profiles t where resource_name = 'PASSWORD_LIFE_TiME'I一一 一!limiti:!UnlimitedIjDEFAULTDefaultIMF !"WV 干IF ,一,加,加一千,!(F ,!"!,"! MF , MF :,一,!: !F,H 解决方案:暂时不处理。漏洞19.检查是否设置

44、记住历史密码次数类型:Oracle数据库类问题: 工) n 一 ar aia m ma ar kb na n : ar h ar :SQL> select limit from dba_profiles t where resource_name = 'PASSWORD_REUSE_MAX'1IMIT l:UNLIMITEDIDEFAULTDefaultI *4 !上*匹*0 )! *4 * *4HH4RiB.K,上H-iI4.>;ii*Ia4R*.li, - H-a41国 *4 a A B A K a B 11 AEHB *4士 !,*,! 4, !1 *4 解决

45、方案:暂时不处理。漏洞20.检查是否配置最大认证失败次数类型:Oracle数据库类 问题:iSQL>-SeieCTlimitfrOm dba_profiles-f where resource_name-= 1FAlLE'D_LOGiN_ATTEM-PTS7''1iselect limit from dba_profiles t where resource_name = 'FAILED_LOGIN_ATTEMPTS' iIIi* IIIerror at line 1:Ora-01034: ORACLE not availableI!i Proce

46、ss ID: 0 iiiSession ID: 0 Serial number: 0解决方案:容数据库启动的情猊卞通迂下面的命令检查一一FAiLED_LOGiN_ATTEMPTS值:” 1ibash-3.2$ sqlplus system/oracle<SID> I|sQL*Plus: Release .0 - Production on Thu Jan 9 11:33:56 2014 IiICopyright (c) 1982, 2007, Oracle. All Rights Reserved. IIIIII|iConnected to:Oracle Datab

47、ase 10g Enterprise Edition Release .0 - Production IWith the Partitioning, OLAP, Data Mining and Real Application Testing options j I;|SQL> SELECT RESOURCE_NAME, LIMIT FROM DBA_PROFILES WHERE RESOURCE_NAME='FAILED_LOGIN_AT!TEMPTS' AND PROFILE='DEFAULT' iIi|resource_namelim

48、it I !1 |failed_login_attempts unlimited IIE妆口果LIMIT的值为6,则符合安全要求。否则,通过下面的SQL语句修改参数值:II|sql> alter profile DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 6; IProfile altered. jri;)I检查参数值是否修改成功:|sql> select resource_name, limit from DBA_PROFILES WHERE RESOURCE_NAME='FAILED_LOGIN_AT 卜EMPTS' AND PROF

49、ILE='DEFAULT' i:iRESOURCE_NAMELIMIT干AILED LOGIN ATTEMPTS6;修改成功后退出SQL*PLUSI过QL> exitDisconnected from Oracle Database 10g Enterprise Edition Release .0 - ProductioII汕IIWith the Partitioning, OLAP, Data Mining and Real Application Testing options漏洞21.检查是否在配置用户所需的最小权限类型:Oracle数据库类问题:

50、 » h > n nr h »» : h - : in «u » ara - - n : h h h nt:SQL> select count(a.username) from dba_users a left join dba_role_privs b on a.usernam i一一 一ie = b.grantee where granted_role = 'DBA' and a.username not in ('SYS','SYSMAN','SYSTEM i-i:

51、9;,'WKSYS','CTXSYS,);iCOUNT(A.USERNAME)!iI :19I ! M ! 士 ! >! KB * ! ! KB ! KB KB 工1解决方案:暂时不处理。漏洞22.检查是否使用数据库角色(ROLE )来管理对象的权限类型:Oracle数据库类问题:I a0a » a 44*_! & 4 4 - a!4 0a 4 ks 通 K - a 4L 上 0a4a- a 4L - a0a « &ais*上工- a 4L ! & &a 工4上一上- a第4 a 工 a0m -上石 a- a u-aa 1* &*>4 m -上上工 a- a ui ma « & 工上上事工=iSQL> select count(a.username) from dba_users a left join dba_role_privs b on a.usernamie = b.grantee where granted_role = 'DBA' and

温馨提示

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

评论

0/150

提交评论