论文部分内容阅读
现实web环境中的应用程序存在着许多的安全威胁。在众多的安全威胁中,SQL注入攻击是危险性最高的攻击之一,严重威胁着如金融,娱乐,电子商务等行业的系统安全。与此同时,由于云计算技术的发展,越来越多的应用程序被部署到云中。这些应用程序获得了快速弹性化分配计算资源的能力以及低廉的运营成本等优势。然而,部署在云上的应用程序同样也会遭受SQL注入攻击。SQL注入攻击是一种代码注入攻击方式,它通过利用代码中存在的SQL注入漏洞来攻击后台的数据库系统。该攻击可以导致很多严重的后果,如攻击者可以利用它来绕过身份认证、访问存储在数据库中的用户隐私信息、修改数据库的结构甚至破坏整个数据库。过去的几年里,攻击者设计出了多种攻击手段,如联合查询攻击、恒真式、多查询语句和绕过探测等技术。并且,可以融合多种攻击手段来达到破坏后台数据库系统的目的。SQL注入攻击成功实行的主要原因是用户提交的数据并没有经过充分的安全验证,而被直接拼接成SQL查询语句。因此,开发人员可以通过增加非法输入验证机制来阻止SQL注入攻击。然而这种依靠程序员编程行为的方式并没有取得良好的防御效果。开发人员的任何疏忽大意将会给应用程序带来SQL注入的安全隐患。在过去10年间,国内外学者提出了多种经典的SQL注入攻击检测方法,如静态分析、动态分析、静态与动态相结合等方法来保护后台数据库的安全。然而,这些方法自身仍然存在着一些不足之处,例如,需要访问程序源代码、重写代码、或者需要使用复杂的辅助设施等。因此,如何设计出能够克服之前经典方法缺陷的检测机制,是一个值得深入研究的问题。本论文的目标就是设计出能够弥补经典方法不足之处的SQL注入攻击检测机制。为此,我们提出了基于解析树的检测思想。该思想是利用比对安全的语句解析树和待检测的语句解析树,来检测SQL注入攻击。当两个树的结构相同时,则待检测SQL语句为合法语句。否则,该语句将会被判断为SQL注入攻击语句。在本论文中,我们的检测思想将应用到两个环境中:(1)Web环境,(2)云辅助无线体域网(Cloud-assisted Wireless Body Area Networks)。针对这两种环境,我们分别设计出两种不同的检测机制DSD(Dynamic SQLIAs Detection)和CCSD(Cloud Computing SQLIAs Detection)。与此同时,我们的CCSD也可以应用到其他云环境上,为这些环境上的应用程序提供SQL注入攻击检测。这两种机制的优点均为不需要访问、重写应用程序的源代码并且不需要复杂的辅助设施。因此,它们可以弥补经典检测方法的不足之处。最后,我们设计了相应的实验来验证DSD和CCSD的准确率和响应时间。实验结果说明了DSD和CCSD具有很高的检测率、较低的误报率和漏报率、以及较低的响应时间。因此,他们能有效的为各自的环境提供SQL注入攻击检测。