APP下载

计算机数据库的入侵检测技术探讨

2019-07-16梁樱花

电脑知识与技术 2019年14期
关键词:入侵检测数据库

梁樱花

摘要:在当前社会背景下,计算机数据库是非常关键的,自斯诺登事件发生后,对数据库的安全防护成了一项非常重要的工作,现在是,未来同样也是。在数据库的安全防护中,入侵检测技术是非常关键的一环,但现在的入侵检测技术存在一定的短板,在反入侵上存在不足,有很多入侵手段可以绕过入侵检测并且利用数据库的漏洞来实现非法目标。因此该文针对性地从攻击的角度探讨了数据的入侵检测技术,以供参考。

关键词:数据库;入侵检测;反入侵

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2019)14-0221-03

    数据库安全问题是非常关键的一个问题,在数据库安全建设当中,核心的数据一定会被放在层层保护之下,并且在外部加载防火墙、堡垒机、入侵检测等等,但是要说防护能力方面,依然是防不胜防。所谓魔高一尺道高一丈,再好的防护技术,也是存在一些疏漏的,在安全防护与攻击的对垒当中,事前的防是必要的,但防不一定能够完全防住,所以入侵检测就非常关键了,虽然不一定能快速定位入侵,但是在安全防护中提供了反入侵的可能与时间。因此探讨数据库的入侵检测技术具有非常显著的現实意义。

1 入侵检测技术

入侵检测(IDS)是一种主动保护自己免受入侵的一种安全防护技术,是对防火墙的重要补充。[2]

入侵检测的主要原理是扫描当前的网络活动,监视以及记录网络的流量,然后根据定义好的规则来过滤主机网卡与网络之间的流量并提供实时的报警。具体来说入侵检测包含两个方面的主要内容,即感知和数据分析,其中感知方面具备网络数据采集,主机信息采集以及应用服务记录。数据分析方面则是提供数据格式化、入侵检测规则以及全局数据挖掘。它是配置在网络防火墙之后的,与防火墙和路由器配合工作。[1]

一般而言,入侵检测可以分为HIDS和NIDS两种。HIDS的检测数据来源主要是系统日志、应用程序日志等等,当然也可以通过如监督系统调用等手段来收集主机的信息数据来分析。NIDS的检测数据主要来自网络上的数据分组,具体而言主机的网卡一般会设置为Promisc Mode,然后监听网段上的所有数据分组,并且进行按照预先设定的规则来进行数据分析判断。

在IDS的配置上,一般可认为NIDS是前置的入侵检测,因为入侵都是通过网络来进行的,当数据库所在网段遭遇入侵,数据分析规则判断入侵的数据分组来提供报警信号,同时在防火墙的配合下来延长入侵数据与数据库连接的时间,进而提供一个能够反入侵的可能。而HIDS一般就是后置的入侵检测,按上文的分析HIDS检测是数据库主机的系统日志、应用程序日志等,在正常的情况下系统日志、应用程序日志一般是没有异常的,而当遭遇了入侵,可能会出现用户密码修改、应用程序异常运行等等记录,在这种情况下HIDS实际就是一种后追踪技术。

看似IDS非常的美好,但实际上依然防不胜防,主要在于IDS本身存在一些比较大的局限性,来自网络的入侵只要找到了数据库的漏洞就可以针对IDS的局限来绕过IDS的检测,现在的网络都比较复杂,如果Hacker精心的将发包伪装起来,在一定程度上可以绕过NIDS的检测,比方说通过SSH服务来进行数据包加密,现在有一个方法是Fabric使用流行的Paramiko Python库来管理SSH连接,通过Python脚本建立对外端SSH加密隧道连接,并在服务器上形成如图所示连接。

当然建立了连接,在系统当中必定会留下痕迹,因为Hacker入侵成功第一时间会保持连接,而这个就会留下一定的痕迹并且被检测出来,比如上文提供的入侵案例中,就利用态势感知产品的C&C外联检测模块发现了对外可疑连接,如图。

这个连接存在可疑情况,但不能确定就是异常的连接,要证明这个连接异常需要登录服务器查看简历的连接,此时要注意主机在感染之前是否有配置安全系统,如果没有,检测手段可能会失去效用,此时就需要基于网络层面进行检测。C&C外联时要产生连接一般只需要上传数据即可,所以直接登录服务器查看具体的对外连接,看这个IP地址的具体情报,结果发现该IP地址位于法国大东部大区斯特拉斯堡,带僵尸网络、垃圾邮件标签。

所以基于上述的简单分析,入侵检测本身具有一定的检测局限,其作为防火墙的延伸必须要围绕防火墙,构建一个动态的、纵深的、多样化的入侵检测体系,以此来尽可能地识别入侵。[3]

2 数据库入侵检测技术思考

2.1 入侵检测技术应用需要注意的问题

一般情况下,建设了IDS后,当出现非法入侵时,系统会提示有人扫描主机,这个阶段入侵者正在收集信息,此时如果系统管理员迅速地采取措施可以有效地将入侵扼杀在摇篮之中,但是现在的安全防范还算是健全的,但依然会被攻击。这个就是需要注意的关键问题。可能的原因包括如下几个方面。

其一,管理员能力有限。

其二,IDS虽然能够进行自动化作业,发现了入侵也能够做出响应,但是IDS仅仅提供告警,要拦住攻击要靠防火墙,而如果攻击强,能不能将其防住就需要管理员经常去查看IDS告警信息,并且采取必要的入侵分析手段来发现攻击行为并采取措施来防范,同时形成经验来优化IDS的部署。

其三,IDS因为本身存在缺陷,可能有漏报或者误报,是很难查到哪里存在入侵者的,当网络结构发生变化时,是最容易出现入侵问题的,此时用户应该适时的更新知识库当中的规则。同时有些用户对IDS的期望过高,IDS本身只承担检测入侵任务并对入侵做出响应的任务,如果用户想要通过IDS来阻挡Hacker入侵那是不现实的,也不是IDS的功能,实际上IDS只是一项安全管理工具,系统要安全,关键还是得看人。

所以要认识到未知攻,焉知防,入侵与反入侵关键就是知己知彼,要在攻防的博弈中不断提高,入侵检测技术的应用也是在攻防当中不断进步的。

2.2 入侵与反入侵分析

现在市场上份额最大的是Oracle数据库如图。

这类数据库遭遇入侵的主要形式在于SQL注入,而SQL注入一般有两种操作方式,即越權操作和提权操作,其中提权操作是越权操作当中的一个子类。[4]

在Oracle数据当中SQL注入漏洞是广泛存在于PL/SQL编写的函数、存储过程、数据包、触发器当中的,其根本原因是PL/SQL定义了劝和及调用者权限。前者为低权限用户在特定情况下拥有高权限的可能,这样就可疑在入侵当中实施提权操作。而后者则给入侵者提供了创建SQL并被高权限执行的可能。

在具体的入侵手段当中可以采用GRANT DNA TO USER命令,这个命令就是为USER创建一个DBA权限,用来提权。而越权操作当中典型的命令是select password from sys.user$where name=SYS,这个命令的主要目的是查询DBA权限的密码哈希散列,当获取了哈希散列后就可以利用软件离线破解对应的密码。

利用SQL注入入侵数据库,大体上可以获得如下数据库账号,包括较高数据权限账号、账号具备创建函数或存储过程的权限以及只有连接权限。

在这种情况下入侵者提权可以分为三个步骤,第一个阶段是入侵者要对数据库中的DBA进行筛选,因为数据库中并不是只有一个DBA,然后确定哪些视图或者表能够获得Insert.update或者是delete。第二个阶段就是入侵者围绕确定的视图或者表来构造一个调用者权限并且实现提权语句的存储过程。然后在第三个阶段针对DBA用户创建触发器,触发第二阶段中实现的存储过程,并执行。这三过程是入侵者的基本流程,当其拥有一个create any view权限的账号时,也能够很容易提升到DBA,具体就是入侵者用数据库管理员的模式创建一个视图,然后一个具有高权限的用户访问这个视图就能够达到提权的目的。

当然要实现对Oracle数据库的入侵,一般就确定了数据库的漏洞被入侵者发现了,而通常数据库中最容易被发现的漏洞包括存在//连接符号的连接函数、函数当中存在OUT参数、函数中含有复杂的数据类型等,在入侵防护当中针对这样的问题函数进行调整是非常关键的。同时要求DBA限制住账号权限,因为越简单的权限越容易被入侵,反过来说就是当入侵者拿到一个低的权限去提升DBA难度会成倍增加,也就是说可以利用这种特性来限制攻击,具体可参考下表。

进一步要求删除数据库不必要的服务,比如JAVA服务,在数据库张有DBMS_JVM_EXP_PERMS、DBMS_JAVA以及DBMS_JAVA_TEST等直接授权给了Public,这种情况下,任意用户都能够执行JAVA程序,但必须要用到JAVA时,SSH则是一个比较关键的东西,但是SSH服务可以绕过IDS来实现入侵,则就只能靠人工入侵分析来应对了。

2.3 数据库入侵检测技术反思

在Oracle数据库中对入侵的检测主要靠数据库审计和防火墙,即AVDF,可以通过高精度的基于SQL语言来实现监视未被授权的SQL流量。其入侵检测的关键在于数据库审计,而审计的核心就是分析脚本以及大数据自动化处理技术。在入侵和反入侵当中入侵检测与系统的响应关键就在于与分析脚本或者大数据挖掘分析。从这个角度来讲,数据路的入侵检测重点要进行入侵分析,在入侵检测技术当中分析也是最为核心的部分。当发生入侵时,数据库审计可以提供一个关键的告警,而如果不予理会那么入侵就成为现实了。正如上文所言要注意的是必须要在系统告警时快速去分析入侵的情况,这其中分析脚本或者大数据是现在主流的模式,当然也有人工分析的,而这个对管理员的经验要求非常高。所有的入侵检测结论要存储在ES的索引当中,用来做SOC工具分析处理,也可以作为学习数据保存下来。

入侵检测是必要的,但是关键还是要有完善的预警、检测以及必要的防御措施,要有明确科学的安全应急响应机制。因为入侵检测的目的是要阻止入侵的行为,对已经造成实质的入侵进行相应的恢复,进而形成整体的安全策略调整。入侵检测在一定程度上具有阻断入侵的功能,但是在强大的攻击面前几乎可以忽略不计,最关键的阻断入侵的功能是由防火墙提供的,这要求入侵检测系统和防火墙要形成动态的防御体系,当入侵检测系统发现异常数据的上传下载,那么向防火墙发送动态的安全策略,防火墙根据这个策略来产生一个对应的访问控制规则,由此来阻断入侵,防止出现连续的入侵。

3 结束语

综上所述,数据库本身具有很多安全漏洞,这些安全漏洞的存在让数据库很容易被入侵,而实际防护当中数据库自身的安全防护能力取决于数据库审计和防火墙的能力。其中还有非常重要的技术就是入侵检测,但实际现在的入侵检测也存在非常大的局限性,有很多入侵手段很难识别出来,事前防护控制还需要进一步强化,随着大数据乃至人工智能在入侵检测上的应用,在一定程度上可以保证快速的识别定位入侵。本文对此展开了分析,借此与业内人士共同探讨,提高反入侵的能力水平。

参考文献:

[1] 王鑫.计算机数据库安全防范技术探讨[J].网络空间安全,2016,7(06):73-74+77.

[2] 郑义.多层分布式大型差异数据库优化入侵检测仿真[J].计算机仿真,2013,30(11):400-403.

[3] 杨益平,闵啸.计算机网络数据库安全技术的优化[J].电子技术与软件工程,2018(13):199-200.

[4] 万海航.计算机数据库的构建与管理维护对策[J].信息化建设,2016(01):94.

【通联编辑:朱宝贵】

猜你喜欢

入侵检测数据库
多Agent的创新网络入侵检测方法仿真研究