回顾:
在上一章中主人公卡尔采用多种攻击方法对好运公司的网络信息系统进行攻击,通过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、本章小结
在这一章节中我们介绍了信安攻击的过程:侦察、扫描、获取访问、维持访问和掩盖踪迹这五个步骤所用到的技术,通过简单易懂的介绍,让大家从网络、主机、操作系统、数据库的攻击技术有个全面和初步的认识,对其中数据库相关的攻击技术也简单介绍了一下。由于安华金和在数据库安全领域有一定的研究和积累,从下一章开始充分发挥我们的优势,着重就数据库攻击的原理进入深入分析。