2018/04/10

初探Oracle的审计功能

早上有Tiptop的User反馈,凭证抛转还原时,提示表被锁,于是打开p_zta准备解锁,但输了几次Oracle的system和sys密码,都提示不正确。还以为是上月发生信息安全事件后,新改的管理员密码被我记错了,再跟Keepass核对,发现密码没问题。

于是用相同的密码从sqlplus尝试,提示:“ORA-28000: the account is locked”,居然是system帐户被锁定了。查资料发现:
可能是由于错误的密码输入次数超出了profile中failed_login_attempts 次数的限制而被锁定。
 通过如下SQL语句可以查看用户状态和被锁定时间:
SELECT username,account_status,lock_date FROM dba_users;
那就先解锁再说吧,语句如下:
alter user system account unlock; 
 处理完User的问题继续来追查system帐号被锁的原因。首先以sys的身份看Oracle是否已开启审计功能,过程及结果如下:

show parameter audit;

上图中,audit trial的值为DB,说明审计功能已开启,audit_file_dest的value是审计文件存储的位置。遂以OS的oracle用户身份查看审计文件,可令人失望的是,这里只记录了sys用户登录的审计结果,但我的问题是system用户因连续10次输入密码错误被锁定了。值得提一下的是,在这个审计文件中,STATUS的值为0表示正常登录,1017为登录失败。

又查了资料,原来普通的帐户登录,没有相应的os审计文件,但是被添加到了表SYS.AUD$,这下终于揪出原因了(是某个没有数据库管理员权限的同事在反复试system的密码)。我用的相关SQL语句如下:
SELECT userid, userhost, terminal, clientid,ntimestamp#,comment$text
FROM aud$
WHERE returncode=1017 AND userid='SYSTEM'
ORDER BY 5;
参考资料: 乐沙弥的世界

没有评论: