【连载】从安全攻击实例看数据库安全(二)安全攻击方法分析

回顾:

在上一章中主人公卡尔采用多种攻击方法对好运公司的网络信息系统进行攻击,通过MAC地址欺骗取得了与公司内部网络的连接,通过口令破解,以远程方式登录公司内部服务器,通过缓冲区溢出漏洞闯进了操作系统并拥有最高权限,最关键的是卡尔以好运公司信用卡信息为目标,通过三种途径,包括web应用的文件上传漏洞、SQL注入攻击和绕过合法应用的方法,批量导出数据库中大量的敏感信息。

攻击的方法多种多样,这些方法有的在上面攻击的实例中用过,有的随攻击对象的情形而变化,但也是有规律可循的。总的来说,攻击是一步一步进行的,可以把攻击的过程划分为若干个环节:侦察——扫描——获取访问——持续访问——维持访问——掩盖踪迹,下面就这几个环节中用到的攻击技术和特点进行介绍。

1、侦察

很多安全攻击都始于对攻击目标的侦察,这个阶段广泛采用的手段通常技术含量不高,在上一攻击案例中,卡尔开始所做的事情就属于这一类。

社会工程学往往是一种利用人性脆弱点、贪婪等等的心理表现进行攻击,是防不胜防的,它的特点就是通过普通电话谈话来诱导受害者透露口令等敏感信息。

淘垃圾也是一种值得关注的侦察手段,它指从一个单位遗弃的办公用品中搜寻敏感信息的过程,因此很多重要单位都有专门遗弃的办公用品销毁处理机制。

攻击者可以通过单位的web网站找到应用技术信息、员工联系信息等,同时类似谷歌的搜索引擎也会自动收录这些信息,通过搜索引擎就可以方便的侦察到一些敏感信息。

同时Whois、DNS服务器和互联网上的一些侦察工具可以下载使用,同时通过网站就能看出采用何种开发技术完成的,这些技术已公布的漏洞也能在互联网查到。

2、扫描

在实施攻击之前,仅靠侦察到的信息往往是不够的,通过扫描可以进一步掌握有关攻击目标的更多信息,因此,扫描可是有一定的技术含量的。

无线接入扫描主要是获取目标网络的无线接入点并确定SSID(无线接入点名称),NetStumbler是主动扫描工具,它主动探测无线网络,大部分无线接入点都会响应它发出的请求。Wellenreiter是一个被动无线接入扫描工具,她通过嗅探无线通信频率去检测无线局域网(WLAN)。

端口扫描是确定目标网络中哪些端口正在监听服务请求的过程。端口扫描程序通过与目标系统中各种端口进行对话,可以确定系统中所有正在运行的服务的清单。

以数据库服务器端口发现技术为例,实现数据库服务器的自动发现技术的瓶颈在于端口自动识别技术,对于常见的数据库服务端口,如1433是SQL Server,1521是Oracle,3306是MySQL,这类端口可以根据知识库快速识别,但对于修改了默认端口的服务识别难度就比较大。

通过“主动方式”获取指定数据库所运行的端口信息,即轮询某一范围的端口,向它发送符合特定数据库协议的连接请求,若得到符合格式的回应信息,则说明该端口为指定数据库服务所监听的端口。

以Oracle的TNS协议(服务器端与客户端的通信协议)为例,向某一端口发送连接请求,若该端口为Oracle服务器的监听端口,则其必然返回拒绝报文与重定向报文。只要收到以上两个报文之一,则说明该端口为Oracle服务的监听端口。

还有其他的软件如Nmap软件发现TCP端口80开放的是web服务器,UDP 53端口开放的是DNS服务器,同时发现包过滤防火墙,用Nessus软件对系统漏洞进行扫描与分析,想找到存在的安全漏洞或没有打安全补丁的服务可以利用。

3、获取访问

利用侦察和扫描阶段收集到的信息,攻击者可以对操作系统、应用程序、数据库或网络进行攻击,从而获得对系统的访问权。

Metasploit是一种开源的安全漏洞检测工具,可以识别安全问题,验证漏洞,提供真正的安全风险情报,也是攻击者常用的一个集成化的缓冲区溢出攻击工具。这里所说的缓冲区溢出是指源缓冲区的数据向小于自身位数的缓冲区复制数据时,超越目标缓冲区的位数边界,并且数据库未对存入数据进行边界判断,最终导致目标缓冲区爆满。目标缓冲区内存改变程序控制流、夺取操作系统、禁止访问等多种结果。

口令攻击也是攻击者为闯入系统而发动的常见攻击之一,常见的口令攻击方法包括字典攻击、暴力攻击或混合攻击。数据库也有可能被口令攻击,比如:撞库指黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,批量尝试登陆其他网站,很多用户在不同网站使用相同用户和密码,因此黑客可通过获取用户A网站的账户从而尝试登陆B网站。

现在B/S架构应用系统的广泛流行和普及成为攻击者的重要目标,常见的攻击方法如SQL注入等,通过把SQL命令插入到web表单、页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,获得对应用程序后端数据库的非法访问。

嗅探、IP地址欺骗和会话劫持等是网络攻击的常见手段。就是攻击者伪造他所发送的信息的源IP地址,冒充其他信息发送方,欺骗信息的接收方。会话劫持就是综合运用嗅探和IP地址欺骗手段,把合法用户已经建立的合法会话据为己有,从而获取对系统的访问。

对于Oracle数据库来说,随着数据库入侵手段的发展,对数据库的攻击已经不仅仅是针对数据库本身,而是扩展到数据库的各种组件,TNS会话劫持就是其中的一种,简单说如果TNS有可利用漏洞则可能直接对Oracle造成入侵。

拒绝服务(DoS)攻击与获取访问阶段的工作有一定的关联,这类攻击不是直接获取对系统的访问,二是破坏系统为合法用户提供的正常访问,从而间接地达到目的。DoS攻击的基本方法是使系统服务停止工作或把系统资源消耗殆尽,既可能是本地也可能是远程。

4、维持访问

攻入一个系统终归不是一件轻而易举的事情,一旦攻入成功,攻击者总要采取各种可能的措施,以便为下一次攻击打开方便之门,这就是维持访问所要实现的目标,木马和后门是实现该目标的主要武器。

木马是这样一类程序,它表面上看起来非常有用,直至非常吸引人,暗地里却藏有恶意功能。后门能够让攻击者躲开正常的安全控制,从而获得访问系统的机会。

软件有应用软件与操作系统之分,操作系统有用户态和内核态之分,据此,软件可分成应用层、系统层、内核层三个层次,和各个层次相对应,木马后门又可划分为应用层、用户态、内核态三种类型。

应用层木马后门是可以运行在目标机器上的独立应用程序,它能让攻击者访问并控制目标机器。攻击者可用这类程序在目标机器上访问任意文件、观察用户行为、记录键盘输入及实施其他操作。

用户态是植入到操作系统的用户态程序中的木马后门。

内核态则是植入到操作系统内核中的木马后门。为防止内核态的攻击,应及时给操作系统打补丁,启用基于主机的IPS,在第一时间防止攻击者获取对系统访问的机会,同时检测用户态和内核态引起的系统异常。

5、掩盖踪迹

为了既能成功实施安全攻击,达到攻击目标,又可以逍遥法外,攻击者常常设法隐藏他们 
的攻击行为。 特别是在安装了木马后门之后,攻击者总要销毁或修改与自身行为相关的系统日志记录信息。例如:攻击者通常修改反映他的攻击行为的日志记录、失败的登录尝试、特殊账户的使用、安全敏感命令的执行等。

在windows系统中,可以使用WinZapper工具删除记录特定安全事件的信息。在Unix系统中有很多工具可用于修改日志记录信息。

不同数据库虽然自身有审计日志,但是很多用户,包括数据库厂商自身也建议由于对性能有影响,不开启审计记录,同时,即使开启了审计日志,也有可能被数据库管理员删掉。因此,独立的数据库审计设备记录所有数据库的操作变得非常必要,也可以对审计日志文件进行加密,防止被恶意篡改。

6、本章小结

在这一章节中我们介绍了信安攻击的过程:侦察、扫描、获取访问、维持访问和掩盖踪迹这五个步骤所用到的技术,通过简单易懂的介绍,让大家从网络、主机、操作系统、数据库的攻击技术有个全面和初步的认识,对其中数据库相关的攻击技术也简单介绍了一下。由于安华金和在数据库安全领域有一定的研究和积累,从下一章开始充分发挥我们的优势,着重就数据库攻击的原理进入深入分析。

时间: 2024-11-07 09:30:31

【连载】从安全攻击实例看数据库安全(二)安全攻击方法分析的相关文章

从安全攻击实例看数据库安全(三)数据库攻击原理分析

摘要:本文将通过对SQL注入攻击技术和数据库加密技术原理以及防护效果进行深入的分析,来辨析数据库安全技术误区"数据库加密能解决SQL注入",同时本文也给出了SQL注入的防护方法. 1. 数据库安全误区 针对2015年4月互联网大规模报道的全国30省市社保等行业用户信息泄露事件,安华金和对乌云历史报道的社保行业相关漏洞进行集中分析,得出的结论为:大量的信息泄露主要是由于软件中存在的SQL注入漏洞被黑客利用引起的,我们可以把SQL注入比作黑客攻击数据库"锋利的矛".  

从安全攻击实例看数据库安全

兵法曰:知彼知己,百战不殆.功与防的对抗是信息安全的主题,了解安全攻击才能更好地进行安全防御.本文对网络信息安全攻击的实例考察,通过了解黑客攻击的路径及技术手段,让读者初步建立信息安全攻击威胁的感性认识,让安全从业者更多站在攻击者的视角思考安全防护. 以上这个故事发生在一个发达国家,时间也并不久远,主人公卡尔是一个曾做过软件开发工程师,深谙信息安全攻击之术,他实施信息安全攻击的意图非常明显,就是要获取经济利益,而不只是通过恶作剧来达到炫耀自己的目的. 卡尔从报纸上看到好运公司发展迅猛,近一年时间

缓冲区溢出攻击(待看)

缓冲区溢出攻击 本词条缺少信息栏.名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击行动.缓冲区溢出是一种非常普遍.非常危险的漏洞,在各种操作系统.应用软件中广泛存在.利用缓冲区溢出攻击,可以导致程序运行失败.系统关机.重新启动等后果. 1简介编辑 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上.理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符.但是绝大多数程序都会

Hadoop实例练习(二)

实例描述: 现有两个文件,dedu1.txt和dedu2.txt,数据文件中的每一行都是一个数据,现要对这两个文件进行去重,两个文件内容分别为(同颜色的表示重复的数据): dedu1.txt:                                            dedu2.txt: 2012-3-1 a                                                2012-3-1 b 2012-3-2 b                    

【C#|.NET】实例看lock(?)

这里不考虑分布式或者多台负载均衡的情况只考虑单台机器,多台服务器可以使用分布式锁.出于线程安全的原因,很多种场景大家可能看代码中看到lock的出现,尤其是在资金类的处理环节. 理论常识不多说,回到业务场景,举个例子我们的需求一般就是在某个订单进入某个安全优先级比较高的流程时要针对这笔订单做到线程互斥.至于原因,这里再插一个概念,大部分orm在做更新操作时,实际上做的是全参数更新,所谓全参数更新,假如一个订单表上有10个字段,我们只需要更新其中的一个金额字段,但是在传统orm框架中实际上在订单的实

科大讯飞2014发布会看点二:智能语音装进车载车机!

一直以来,汽车行业的科技创新不胜枚举.早前福特引入SYNC车载多媒体通讯娱乐系统,使得车载声控成为现实:全新一代雪佛兰科鲁兹全面升级MyLink智能车载互联系统,具备语音识别能力:丰田汽车在新款车型中陆续加入语音对话型系统"Agent". 纵观汽车行业的未来发展,车企厂商越来越重视人机交互体验,动口不动手的驾车生活离我们已不再遥远.8月20日下午,科大讯飞将在北京国家会议中心举行以"语音点亮生活"的主题发布会,用语音技术升级车载车机的智能化体验,让语音交互在汽车应用

[OO]ABAP OO 语法--实例看 "="与"?=" 的区别[转]

ABAP OO 面向对象语法   实例看  "=" 与 "?=" 的区别 1. "="  同类型赋值*&---------------------------------------------------------------------**& Report  Z_WYS_TYPEREF01*&作者:永上*&----------------------------------------------------

SSRF攻击实例解析

ssrf攻击概述 很多web应用都提供了从其他的服务器上获取数据的功能.使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等.这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器.这种形式的攻击称为服务端请求伪造攻击(Server-side Request Forgery). 比如下图显示的就是提供这种功能的典型应用: 如果应用程序对用户提供的URL和远端服务器返回的信息没有进行合适的验证和过滤,就可能存在这种服务端请求伪造的缺陷.Google,F

《PNG文件格式》(二)PNG文件格式分析

欢迎查看系列博客: <PNG文件格式>(一)PNG文件概述     <PNG文件格式>(二)PNG文件格式分析(本篇) <PNG文件格式>(三)PNG文件实例剖析 摘自: 中文PNG格式说明:dev.gameres.com PNG文件格式白皮书:www.w3.org LZ77算法的JAVA实现:jazzlib.sourceforge.net LZ77算法的JAVA实现,包括J2ME版本:www.jcraft.com ===========================