加入收藏 | 设为首页 | 会员中心 | 我要投稿 武陵站长网 (https://www.50888.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

【交易技术前沿】数据库安全防护实战分享

发布时间:2022-10-30 13:32:46 所属栏目:安全 来源:网络
导读: 关于数据库系统安全防护,主要围绕操作系统安全、网络安全和数据库安全三个方面来准备。

图 1数据库安全防护关注点
1.准备阶段自查整改项目1)对职责范围内所运维的所有数据库中的所有用户

关于数据库系统安全防护,主要围绕操作系统安全、网络安全和数据库安全三个方面来准备。

安全数据摆渡系统_疾病库数据_数据库系统安全

图 1数据库安全防护关注点

1.准备阶段自查整改项目1)对职责范围内所运维的所有数据库中的所有用户弱密码情况进行排查整改,确保所有数据库用户均使用了满足公司制度要求复杂度的密码,杜绝数据库用户存在弱口令问题,不再使用的数据库用户及时锁定,错误密码登录次数超限后锁定用户。2)禁止重要信息系统数据库操作系统验证登录功能,实现操作系统登录认证成功后也需要知悉数据库密码才能登录进数据库。

编辑Oracle_HOME/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES=(NONE)

3)梳理并开启重要信息系统数据库白名单访问控制,实现数据库防火墙功能,禁止非白名单设备接入数据库。仅允许最少的必要的IP地址可连接TNS监听器。在目录$ORACLE_HOME/network/admin/下修改sqlnet.ora文件,实现TNS登录IP限制,设置下列配置信息:tcp.validnode_checking=yes#允许访问的IPtcp.invited_nodes=(localhost, 本机ip, 应用服务器ip,管理机ip等)#不允许访问的IPtcp.excluded_nodes=(ip1,ip2,......)修改sqlnet.ora后,需要重启listener服务才能生效。4)排查整改数据库操作系统层面是否有配置文件中存有明文密码的问题。2.操作系统层面风险发现与安全防护1)通过脚本实现记录所有连接数据库服务器的行为信息,包括源IP、登录用户、登出时间以及登录过程中所执行的所有操作命令,结合人工巡检或自动化运维系统,可对产生的行为信息文件进行分析检查,及时识别出未经授权的连接操作,判断是否为入侵安全事件并提供溯源信息。实现该功能的脚本关键命令如下:historyRQ=`date "+%Y%m%d"`USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiif [ ! -d /tmp/record ]thenmkdir /tmp/recordmkdir /tmp/record/achievefiexport HISTSIZE=8192SJ=`date "+%H:%M:%S"`export HISTFILE="/tmp/record/${USER_IP}@${LOGNAME}.$SJ"chmod 600 /tmp/record/${LOGNAME}/*record* 2>/dev/null功能添加完成后记录留档如下,可综合IP、用户、时间,结合日常正常运维行为,巡检出可能存在的异常连接,并追踪溯源。

数据库系统安全_疾病库数据_安全数据摆渡系统

安全数据摆渡系统_疾病库数据_数据库系统安全

图2操作系统留痕结果展示

每个文件均可打开,查看该连接行为的所有已执行的命令和操作。结合自动化运维系统或人工巡检,对执行语句进行分析,入侵行为在主机内所执行的所有操作均一览无余。

数据库系统安全_安全数据摆渡系统_疾病库数据

图3文件内容明细

此文件产生的时点为连接断开后生成,如果需要将该监控方法升级为连接建立后的实时监控,可使用操作系统命令“w”,该命令可对操作系统当前所有连接的用户、终端号、源IP、登录时间、时长、所执行的程序等信息进行全面展示,后续可分析挖掘有用数据。3.数据库层面风险发现与安全防护

1)编写触发器实现对所有连接数据库session明细信息进行记录,信息包括源IP、登录用户、登录服务器的主机名、服务器用户名和登录时间。使用自动化运维系统或人工巡检的方式,对记录的信息进行挖掘分析,可对侵入数据库的行为进行发现,并提供溯源信息。触发器部分代码分享如下:

create or replace trigger logon_ip_controlafter logon on databasedeclareip STRING(30);user STRING(30);hostname STRING(60);OS_USER STRING(30);t_time date;beginselect SYS_CONTEXT('USERENV','SESSION_USER') into user from dual;select SYS_CONTEXT('USERENV','IP_ADDRESS') into ip from dual;select REPLACE(SUBSTR(sys_context('USERENV','HOST'),1,30),'\',':') intohostname from dual;select sys_context('USERENV','OS_USER') into OS_USER from dual;select sysdate into t_time from dual;insert into login_ip_record values(ip,user,hostname,OS_USER,t_time);commit;end;记录结果展示如下:

安全数据摆渡系统_疾病库数据_数据库系统安全

图 4结果信息展示

2)实时监控数据库失败登录行为。通过编写触发器实现将所有错误密码连库的行为信息输出到oracle自身的alert告警日志中,信息包括时间、源IP、操作系统用户名和所使用的程序,结合自动化运维系统或人工巡检的方式,可对日志中失败登录告警信息加强监控,及时发现可能存在的用户口令爆破行为。效果如图所示:

图5日志明细展示

三、总结

参加网络安全攻防演习是一次检验自己,提升技术的宝贵机会,关于数据库安全防护,以上从数据库自身及数据库所使用的操作系统及防火墙方面做了一系列的安全的措施。随着数据库业务系统的发展,需要实现的功能越多、开放的端口越多,数据库业务系统所面临的安全问题就越复杂、安全度越低。除了这些方面的安全隐患,还有开发方面也存在着重大的安全隐患。一个好的开发除了要求在开发上的严谨还应该要求理解并掌握业务的体系结构。如果开发上的不严谨,很容易带来安全上的隐患。比如sql注入攻击,黑客往往利用的就是开发人员自己留下为了带来方便的程序“后门”,然后进行密码解密及一系列的手段获得超户密码,这样整个业务系统对于黑客而言就没有什么安全可言了。随着网络的发展,公司网络的安全面临着越来越大的挑战,以前黑客要入侵业务系统数据库系统安全,可能只能通过业务系统去下手,现在黑客要入侵,不仅可以利用公司的内部员工电脑作为跳板,还可以利用员工的手机、平板电脑。构建安全的公司局域网不仅仅需要靠系统安全工程师,也需要公司所有员工的共同努力。因此,除了规章制度去制约公司内部员工,还更应该从思想上去引领,加强员工对公司的依赖和凝聚力,加强员工的自豪感,使其员工自觉的去维护公司的信息安全。

(编辑:武陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!