卢方建 卢方玉 关益香 彭观平 阳江市妇幼保健院
HIS、LIS、PACS、EMR 等服务器都采用Oracle 数据库,在检查Oracle 监听器发现,都没设置口令,虽然这样在使用起来方便,但是在执行监听器命令前不需要输入密码,增加了数据库访问的风险。
在检查四大主要系统的Oracle 时,发现数据库的密码强度不足,有些甚至使用默认密码,这样的密码会成为数据库安全的一个短板,带来被入侵的风险。
数据库登录用户应该按实际需要设置,但在检查中发现,有多个不必要的用户,把这些用户锁定,提高安全系数。
针对服务器的密码,默认情况下并没有相关策略,这个需要根据实际情况进行创建,还可以设置密码复杂度检查函数。
数据库中的一些系统权限和对象权限分配不合理,需要细致化地进行按需分配,对于不必要的应去除。
具体操作:打开%ORACLE_HOME% etworkadminlistener.ora,检查是否有以下类似的行PASSWORDS_LISTENER= F4BAA4 A006C26134,如果没有,就表明没设置口令,如果有,但是口令较弱,有必要设置新的复杂度足够的口令。方法如下:
操作系统命令提示符下输入:
SHELL>%ORACLE_HOME%/bin/lsnrctl
LSNRCTL>change_password
Oldpassword:<原来的口令><--如果原来没有设置口令就直接回车,否则输入原来的口令
Newpassword:<新口令>
Reenternewpassword:<新口令>
Connectingto(ADDRESS=(PROTOCOL=ipc) (KEY=XXX))
PasswordchangedforLISTENER
Thecommandcompletedsuccessfully
LSNRCTL>setpassword
Password:<输入新口令>
LSNRCTL>save_config(保存当前设置)
以后执行监听器命令前需要输入密码
LSNRCTL>setpassword
Password:<输入新口令>
LSNRCTL>status(如果上一步未验证密码,则提示TNS-01169:监听器尚未识别口令)
如果password 字段为null,查询sys.user$基表
SQL>selectname,passwordfromsys.user$wherenamein(selectusernamefromdba_userswhereaccount_status='OPEN');将 密 码hash 导入cain 软件破解。
如果需要修改密码,可用命令SQL>alteruser 用户名identifiedby 新密码。
先查看数据库用:SQL>selectusername fromdba_ userswhereaccount_ status='OPEN';
如果用户不使用,建议锁定:SQL>alterusername 用户名accountlock;
如果需要解锁, 可用命令:SQL>alterusername 用户名accountunlock;
先查看是否设置了密码策略,使用以下命令:
SQL>selectusername,profilefromdba_userswhereaccount_status='OPEN';
SQL>select*fromdba_profiles;
如果没有,则要创建适当的密码策略:
SQL>createprofileprofile1limit
failed_login_attempts6 最大错误登陆次数
password_lock_time1 账号锁定时间
password_grace_time7 口令宽限天数
password_life_time90 口令有效时间
password_reuse_max5 口令历史记录保留次数
将策略应用到用户:
SQL>alteruseraaaprofileprofile1;
应用策略后,修改密码
SQL>alteruser 用 户 名identifiedby 新 密码replace 旧密码;
这个操作存在一定风险:设置口令策略可能影响应用正常运行,包括无法登录和账号意外被锁,所以要先把密码设置为满足此要求的密码后,再设置此策略。
查看系统权限SQL>select*fromdba_sys_privs;
查看对象权限SQL>select*fromdba_tab_privs;
如没必要,建议去除不必要的权限,例如:revokedbafromuser1;
数据库整改方案操作需要一定专业知识,每一步都要衡量是否会对正在运行的业务程序产生影响;尽量做到按此方案整改,能明显提升数据库的安全水平,这对于医院业务工作可持续进行起到重要的作用。