1、XXXOracle数据库平安加固方案2014年11月19日前言为标准Oracle数据库平安加固操作,全面系统地降低Oracle数据库面临的风险,及时堵塞漏洞,提高平安防护能力,特制 订?XXXOracle数据库平安加固方案?。审计操作2.重启数据库.使设置生效linux/unix平台那么 会记录在audit_file_dest 参 数指定文件中;审计 功能对数据库的性能 和磁盘空间要求较 高;需要重启数据库, 应提前通知业务部门20配置日志策略,确保数据库 的归档日志文件、在线日志 文件、网络日志、跟踪文件、 警告日志记录功能是否启 用并且仃效实施1 .配宜归档模式将数据库正常美闭SQLSHU
2、TDOWN IMMEDIATE启动到MOUNT模式SQLSTARTUP MOUNTSQLALTER DATABASE ARCHIVELOGSQLALTER DATABASE OPEN2 .配置归档日志的名称格式ALTER SYSTEM SET 1og_archvie_format=,%S_%T%R. 1og scope=spfile3 .配置归档位置ALTER SYSTEM SET 1og_arch i ve_dest_1= 1ocat i on=orac1eoradataarch i ve1 scope=spfile对磁盘空间要求非常 高;需要重启数据库, 应提前通知业务部门21配置日志管理
3、策略、保证口 志存放的地点的平安可奇1.配置多个归档位置,包括本地归档位置和远程归档位置ALTER SYSTEM SET log_archive dest_2=,location=oracleoradataarchive2 scope=spfileALTER SYSTEM SET log_archive_dest_3=,service=standby scope=spfile配置远程归档位置时,SERVICE选项需要制定远程数据库的网络效劳名(在tnsnames. Ora文 件中配置)对磁盘空间要求非常 高:需要重启数据库, 应提前通知业务部门漏洞加固22安装系统平安补丁,对扫描 或手工检查发
4、现的系统漏 洞进展修补1 .运行防病毒软件(如SEP)保护操作系统2 .下载并安奘相应的平安补丁更新平安补丁可能对 数据库系统、应用系 统造成影响:需要进 展严格测试并做好备 份恢豆措施后实施.退出系统23退出系统1 .断开数据库连接2 .关闭和数据库主机之间的连接5.方案实施操作记录Oracle数据库平安加固操作记录见附录A。附录AOracle数据库平安加固操作记录编号:日期: 年 月日名称:地点:序号工程完成情况1登录系统2帐号权限加固3数据访问控制加固4效劳加固5网络访问控制加固6口令策略加固7审计谋略加固8漏洞加固9退出系统记录请详细记录操作情况:操作说明操作命令备注删除权限REVOK
5、E select any table FROM ;成功本方案适用于Oracle数据库平安加固工作要求。本方案由XXX负责起草设计。本方案主要起草人:XXX。目录1 .适用范围2.方案实施准备32 . 1准备工作33 .2危险点分析及慎控措施3.方案实施流程42 .方案实施程序及标准4.方案实施操作记录11XXXOracle数据库平安加固方案i.适用范围本方案适用于XXX Oracle 8i. 10g数据库平安加固。2 .方案实施准备准备工作序号内容标准1核实Oracle数据库平安加固操作申谙熟悉本次方案实施的内容和操作2填写、核实工作操作内容填写工作操作内容,并经相美责任人书面认可3获知木次操
6、作所需的信息1、获知Oracle数据库主机的地址、用户名和密码2、获知Oracle数据库sys和system用户的密码危险点分析及预控措施序号危险点防范措施1修改帐号权限时,造成权限过大或过小以最小权限原那么为每个帐号分配其必须的角色、系统权限、对象权限 和语句权限2删除或制止有用的效劳、组件等对无用的效劳、组件进展排查,并和应用系统厂商进展确认3增加网络访问控制,对应用系统造成影响操作前和业务部门、应用系统厂商进展确认并做好测试工作.方案实施流程3 .方案实施程序及标准序号工作内容操作方法及标准平安措施及本卷须知登录系统1通过管理主机登录Oracle 数据库主机通过ssh或vnc或RDP登录
7、Oracle数据库主机,输入用户名密码注意用户名、密码的 保密2登录Oracle数据库以sys用户的身份登录Oracle数据库,默认:sqlplus / as sysdba (10g) IjJc sqlplus usornamc/password (8i)帐号权限加固3限制应用用户在数据库中 的权限,尽量保证最小化, 防止授予了 DBA权限1 .杳看权限SQLSELECT * FROM dba_sys_privs WHERE grantce=:一系统权限SQLSELECT * FROM dba_tab_privs WHERE grantee=:对象权限SQLSELECT * FK(W dba_
8、rolc_privs WHERE grantco=:一赋予的角色2 .收回相应权限(例如收回select any table权限)SQLREVOKE select any table FROM :3 .收回应用用户的DBA角色SQLREVOKE dba FROM username);防止分配权限过大或 过小-1撤消public角色的程序包1.杳看public角色的程序包执行权限SQLSELECT table_name PROM dba tab privs WHERE grantee=PUBLIC and执行权限privilege:EXECUTE;2.撤销public角色的程序包执行权限(例如撤
9、销在utl file包上的执行权限)SQLREVOKE execute ON utl file FROM public;Oracle 官方建议撤销 publ ic 角色对le、utl、utl tcp utl_smlp dbns random程序包的执行权限.5修改系统帐户的默认口令 (特别是管理员角色类帐 户)锁定所有不需要的用户1 .修改sys和system 口令SQLALTER USER sys IDENTIFIED BY ;SQLALTER USER system IDENTIFIED BY ;2 .锁定不需要的用户SQLALTER USER username ACCOUNT LOCK;
10、6删除系统中多余的自建帐 号1 .看看用户自建账号SQLSELECT username FROM al 1 users;2 .婀除或者禁用多余自建账号SQLDROP USER CASCADE;7为所有应用用户配置强口 令1,根据设置的口令策略修改弱口令SQLALTER USER username IDENTIFIED BY ;数据访问控制加固8严格限制库文件的访问权 限,保证除属主和root外, 其他用户对库文件没有写 权限1 .用操作系统命令查看库文件访问权限(以RedHat Linux为例)Is -1 $ORACLE_BASE/oradata2 .用操作系统命令删除库文件组和其他用户的写权
11、限chmod 640 $ORACLE_BASE/oradata/*3 . Windows系统同理(方法不同)修改权限可能对局部 应用系统造成影响, 褥要联系业务部门和 应用系统厂商做好相 美的测试工作9fi$ORACLE_HOME/bin 其下所有程序的访问权限或 其他平安控制机制1 .用操作系统命令查看bin目录下所有程序文件的访问权限(以RedHat Linux为例)Is -1 $0RACLE_H0ME/bin2 .用操作系统命令删除组和其他用户的写权限chmod 640 $OKACLE_HOME/bin/*修改权限可能对局部应用系统造成影响.需要联系业务部门和 应用系统厂商做好相JJ关的
12、测试工作效劳加固10在不影响业务系统正常运 行情况下,停顿或禁用与承 放业务无关的效劳或组件1 .用操作系统命令查看有无与业务无关的效劳或组件2 .用操作系统命令停顿或禁用与业务无关的效劳或组件需要和业务部门确认11删除数据库中存在有无用 的、测试的、废弃的表.视 图1 .查看数据库中表或视图等对象SQLSELECT * FROM dba.tables:SQLSELECT * FROM dba_views:2 .删除数据库中存在的无用的、测试的、废弃的表或视图SQLDROP TABLE :SQLDROP VIEW :需要和业务部门确认网络访问控制加固12设置TNS登录的1P眼制, 仅允许最少的
13、必要的1P地 址可连接TNS监听器1 .在目录$ORACLEOYE/network/admin下修改sqlnet. ora文件实现TNS登录IP限制,设置以 下配设信息:tcp.validnALTER SYSTEM SET REiK)TE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE:需要重启效劳,应提 前通知业务部门3,修改参数 REMOTE_OS_AITHENTSQLALTER SYSTEM SET REVK)TE_OS_AUTHENT=FALSE SCOPE=SPFILE;4,重启数据库和监听使修改生效14在不影响应用的前提下,更改默认的1521端口
14、1 .查看当前监听的状态Isnrctl status2 .停顿监听Isnrctl stop3 .修改监听文件的端口号,在目录$ORACLE_HOVE/nctwork/admin下修改listener.ora文件 (例如把端口号改为“251)LISTENER =(DESCRIPTIONJJST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST=1XX?ALHOST)(PORT=11251)1.修改初始化参数local 1 istenerSQLAI.TER SYSTEM SET local listener=(address=(protocol=tcp
15、) (host=localhost) (pnrt=l 1251 J),;SQDquit5 .重启监听器Isnrctl start6 .修改完毕,使用新端口登录测试netstat -tunap I grep 11251Isnrctl status客户端连接测试对所仃应用系统都行 影响,需要跟业务部 门配合做好评估和测 试工作15限制对监听器的远程管理, 并设置监听器管理口令1.进入监听设置状态Isnrctl可能对局部应用系统 造成膨响,需要联系(8i)2 .设置当前监听器set currentistener listenername)3 .设置密码 change_password set pas
16、sword4 .保存设置 save_config5 .检查 1 istener. ora 文件,看是否有一条 PASSWORDS_SELECT * FROM dba_prof i 1 es :2 .创立口令复杂度函数SQLfl$ORACLE_HOME/rdbns/admin/utlpwALTER PROFILE DEFAULT- LIMIT password_verify_funclion verify_function;但是Oracle 口令复杂 度包含的特殊字符不 是任意特殊字符都可 以,一般以下划线、$、 *等符号为主.17设置口令使用期限,要求到期后自动更改1 .检查profile文件
17、设区SQLSELECT * FROM dba_profiles:2 .设置profi le密码策略,建议使用控制台设置SQLALTER PROFILE DEFAULT LIMIT password.)ife.time 30:18设置策略对口令尝试次数 进展限制1 .检查profile文件设置SQLSELECT FROM dba profiles:2 .设置profile密码策略SQLALTER PROFILE DEFAULT LIMIT failed login attempts 5 password lock .time 1;设置口令尝试次数为 5次,登录超过有效次 数锁定时间为1天.缺陷是万一有恶意访 何,在输入屡次错误 密码后此用户就被锁 定导致不可用.审计谋略加固19启用相应的审计功能,配置 审核策略使系统能够审核 数据库管理和平安相关操 作的信息,建议对SYSDBA1 .启用审计功能SQLALTER SYSTEM SET audit_trail=os scopo=spfilc:2 .启用对sysdba的活动审计SQLALTER SYSTEM SET audit sys_operations=true;假设是windows平 台,audit trai 1 会记 录在windows的事件 管理器中,假设是