一种Web应用系统的安全检测方法及安全检测装置制造方法

文档序号:7811461阅读:281来源:国知局
一种Web应用系统的安全检测方法及安全检测装置制造方法
【专利摘要】本发明公开了一种Web应用系统的安全检测方法和安全检测装置,其目的在于提供一种通过本地检测和云端检测的双重检测且安全性能高的Web应用系统的安全检测方法和安全检测装置,属于网络安全【技术领域】。该检测方法包括本地安全检测、云端安全检测和渗透测试三个步骤对Web应用系统进行安全检测。本发明用于Web应用系统的安全检测。
【专利说明】—种Web应用系统的安全检测方法及安全检测装置

【技术领域】
[0001]本发明涉及一种Web应用系统的安全检测方法及检测装置,用于Web应用系统的安全检测,属于网络安全【技术领域】。

【背景技术】
[0002]在Internet大众化及Web技术飞速发展的今天,Web已经对商业、教育、政府和娱乐及我们的工作和生活产生了深远影响,相应地,基于Web的应用程序已经有了很大的市场。伴随着信息化建设的不断深入,Web应用系统已日益成熟,Web应用系统平台已经在电子政务、电子商务等领域得到广泛的应用,以协同工作环境、社会性网络服务以及托管应用程序为代表的Web技术,在很大程度上改变了人们沟通、交流和工作的方式。但由于目前程序员的安全性普遍比较差,编程入门门槛低,程序员的疏忽等问题,造成了编写的代码存在大量的安全漏洞,因而这些新技术在给商业活动的发展带来便利的同时,也带来了前所未有的巨大安全风险。伴随着在线信息和服务的可用性的提升,以及对Web应用系统的攻击和破坏频率的增长,安全风险达到了前所未有的高度。
[0003]由于Web应用系统的重要性及其所面临的安全威胁的严峻形势,为了提高Web应用系统的安全性,采用技术手段对Web应用系统进行安全检测是必须的。安全检测可以发现Web应用系统中的安全问题和潜在的安全威胁,提高Web应用系统的安全性,为国家、企业、个人等Web应用系统的使用者提供安全保障。基于Web应用系统的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web应用系统的系统测试不但需要检查和验证该应用是否按照设计的要求运行,而且还要评价系统在不同用户的终端(浏览器)的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性的测试。
[0004]目前Web应用系统常用的安全检测有白盒测试和黑盒测试。白盒检测技术经过多年的发展,众多基于该技术的检测工具被应用于Web应用系统的白盒检测工作中,如fortify、CodeSecure、Ounce Security、Analyst等;黑盒检测技术直接对接口进行功能性测试,其测试结果具有较高的准确度,可以在很大程度上辅助研究人员对Web应用系统的安全问题进行分析和确定,从而提高Web应用系统的安全性。目前,很多基于黑盒检测技术的工具、系统被应用于Web应用系统的安全检测中,包括IBM的AppScan、HP的ffeblnspect, OffASP的开源项目WebScrab等。如申请号为201310028848.0的发明专利申请就公开了一种白黑盒结合的Web应用系统安全检测方法,该申请的步骤为:对Web应用系统进行白盒测试;对胃必应用系统进行黑盒测试;通过K进行文件关联;通过S进行文件查找;整体结合测试。通过一定的测试流程,并引入文件关联匹配技术K,实现Web应用系统白黑盒测试结合。该发明专利申请虽解决了对Web应用系统进行白盒测试的高误报率和黑盒测试的无法定位漏洞源代码位置的问题,但经安全检测后的Web应用系统的安全性仍较低。


【发明内容】

[0005]为解决上述技术问题,本发明的目的在于提供一种Web应用系统的安全检测方法和检测装置,通过本地检测和云端检测的双重检测,提高Web应用系统的安全性能。
[0006]为实现上述目的,本发明的技术方案为:
[0007]一种Web应用系统的安全检测方法,其步骤包括:
[0008]步骤1、本地安全检测,先对Web应用系统代码进行代码分析,其次利用爬虫技术对Web应用系统进行模拟使用,检测Web应用系统是否存在代码漏洞并对检测出的代码漏洞进行警告标记;
[0009]步骤2、云端安全检测,将Web应用系统代码的样本上传至云端服务器,Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比检测,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记;
[0010]步骤3、渗透测试,采用渗透测试工具对Web应用系统进行模拟攻击,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记,给出安全评估?艮告。
[0011]进一步地,步骤I中所述代码分析的过程包括先对Web应用系统代码进行危险函数检测,再对Web应用系统代码进行参数过滤检查和身份验证检查。
[0012]进一步地,步骤I中所述代码分析采用源代码分析技术,所述源代码分析技术主要包括如下三步骤:
[0013]步骤3-1、先对Web应用系统代码进行词法分析和语法分析;
[0014]步骤3-2、然后采用数据流分析、状态机系统、边界检测、数据类型验证和控制流分析对Web应用系统代码进行模型分析;
[0015]步骤3-3、最后在各个接收点之间建立相应的依赖关系图,并根据该依赖关系图判断Web应用系统代码是否具有代码漏洞。
[0016]进一步地,云端安全检测中Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行hash对比,检测云端服务器是否存在与Web应用系统代码的样本的基本块相同的漏洞代码。
[0017]进一步地,步骤3 中渗透测试工具为 sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark中的一种或几种的组合。
[0018]进一步地,利用sqlmap工具对Web应用系统中存在的检测点进行sql注入检测并根据检测结果发现Web应用系统是否存在注入漏洞;利用xss-proxy工具或X-scan工具对Web应用系统中易出现xss漏洞的模块进行xss漏洞检测并根据检测结果发现Web应用系统是否存在xss漏洞。
[0019]一种Web应用系统的安全检测装置,其特征在于:包括
[0020]本地安全检测模块,用于对Web应用系统代码进行代码分析,利用爬虫技术对Web应用系统进行模拟使用,检测Web应用系统是否存在代码漏洞并对检测出的代码漏洞进行警告标记;
[0021]云端安全检测模块,用于将Web应用系统代码的样本上传至云端服务器,Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比检测,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记;
[0022]渗透测试模块,用于采用渗透测试工具对Web应用系统进行模拟攻击,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记,给出安全评估报告。
[0023]进一步地,渗透测试工具为sqlmap、xss-proxy、Nessus、 X-scan、Nmapλ Wireshark中的一种或几种的组合。
[0024]进一步地,还设有更新模块,所述更新模块用于更新预存在云端服务器上的缺陷基本块、安全模块和渗透测试工具。
[0025]与现有技术相比,本发明的有益效果在于:
[0026]1、本发明的安全检测方法及安全检测装置通过本地安全检测、云端安全检测和渗透测试对Web应用系统进行多重检测,通过云端安全检测将Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比,查找出Web应用系统代码的样本中与缺陷基本块相同的漏洞代码,并进行标记,从而提高Web应用系统代码的漏洞,加强系统的安全性,减少系统被黑客成功攻击的可能性,且易于对web漏洞进行汇总和分析,并增强程序员的代码安全意识,引导程序员编写出更加安全的Web应用代码。
[0027]2、本发明的安全检测方法及安全检测装置采用源代码分析技术对Web应用系统代码进行代码分析,可有效提高对Web应用系统代码的检测效率和检测效果,降低Web应用系统代码的漏洞缺陷。
[0028]3、利用渗透测试工具模拟黑客对web应用进行攻击,在渗透测试过程中,WEB应用程序可能会泄露一些不应该被最终用户看到的信息,并测试出相关的漏洞,从而提高Web应用系统代码的漏洞,加强系统的安全性,减少系统被黑客成功攻击的可能性,且有助于提高程序员的代码安全意识。

【专利附图】

【附图说明】
[0029]图1为本发明的检测流程图;
[0030]图2为本发明中渗透测试流程图。

【具体实施方式】
[0031]下面结合附图,对本发明做进一步说明:
[0032]实施例一
[0033]一种Web应用系统的安全检测方法,其步骤包括:
[0034]步骤1、本地安全检测
[0035]本地安全检测主要对Web应用系统代码进行代码分析,利用爬虫技术对Web应用系统进行模拟使用,对检测出的Web应用系统代码漏洞进行警告标记;
[0036]所述代码分析的过程为先对Web应用系统代码进行危险函数检测,再对Web应用系统代码进行参数过滤检查和身份验证检查。
[0037]所述代码分析中采用了源代码分析技术,所述源代码分析技术主要包括如下三步骤:
[0038]步骤3-1、先对Web应用系统代码进行词法分析和语法分析(例如,对Web应用系统代码的逻辑结构进行数学建模);
[0039]步骤3-2、然后采用数据流分析、状态机系统、边界检测、数据类型验证和控制流分析对Web应用系统代码进行模型分析,从而发现软件系统屮的安全问题和安全缺陷;
[0040]步骤3-3、最后在各个接收点之间建立相应的依赖关系图,并根据该依赖关系图判断Web应用系统代码是否具有代码漏洞。依据源码之间的联系,一段源代码能够拆分成各个不同的基本块,各个基本块是源代码有序运行的语句。数据流分析是搜集源代码里的变量,判断其在源代码中的传送和修改的运用状况,还有它在基本块中的使用过程。
[0041]检测运行Web应用系统代码时,数据是在条件语句的转移下进行转移。所以,构建控制流图才能更好的应用数据流分析。控制流图定义为:一有向图G = (N, E, into, out).其中,N是节点的集合,程序中的每段代码都匹配图中的某一节点;边集E= {〈p,q>|p,q属于N并在P运行之后,将会马上运行q} ;into与out是代码的进入点与结束点。
[0042]本发明中控制流图的生成规则为:如若在一个有序代码中,基本块J2跟随在Jl后面运行,那么产生了一个由Jl指向J2有向边。即如果:
[0043]1.存在跳转点,能够存在条件或是不存在条件,这个点从Jl的结束点跳转至J2的开始点;
[0044]2.在有序代码里,J2跟随在Jl之后,而且Jl的结束点不是不存在条件的跳转语句在以上两种情况下,Jl为J2的前驱,J2是Jl的后继。
[0045]经源代码分析技术检测后,利用爬虫技术对Web应用系统进行模拟使用,并在模拟使用中检测出的Web应用系统代码漏洞进行警告标记,其步骤为:
[0046]1.爬取易产生sql注入的页面
[0047]爬虫携带敏感参数(1rl = 1,I’or ‘ I’=‘I等)对本地易产生sql注入的页面(如登录页面、信息查询页面)进行页面爬取,并根据爬取结果是否含有敏感信息判断该页面是否存在sql注入漏洞。
[0048]2.爬取易产生xss漏洞页面
[0049]爬虫在url中或者post数据中携带(alert⑴,’ ;onclick = ’ alert⑴等)对本地易产生XSS漏洞的页面(如搜索模块、留言模块)进行页面执行,并根据页面执行结果判断该页面是否存在XSS漏洞。
[0050]步骤2、云端安全检测
[0051]将Web应用系统代码的样本上传至云端服务器,Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比,对经对比产生的Web应用系统代码漏洞进行警告标记。所述缺陷基本块是指预存在云端服务器上的存在缺陷的代码模块。
[0052]Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行hash对比,检测云端服务器是否存在与Web应用系统代码的样本的基本块相同的漏洞代码,若有,则Web应用系统代码的样本中存在代码漏洞;若没有,则Web应用系统代码的样本中可能不存在代码漏洞。此外,还对Web应用系统代码的样本进行危险函数扫描、错误逻辑扫描。
[0053]步骤3、渗透测试
[0054]接收来自Web应用系统的请求,采用渗透测试工具模拟黑客对Web应用系统进行攻击,对检测出的Web应用系统代码漏洞进行警告标记,并给出安全评估报告。
[0055]所述渗透测试是对Web应用系统进行自动初级渗透测试,渗透测试时采用的渗透测试工具为 sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark 中的一种或几种的组合。利用渗透测试工具模拟黑客对web应用进行攻击的过程中,Web应用系统可能会泄露一些不应该被最终用户看到的信息。测试人员根据诸如错误代码之类的信息可以推测出应用所使用的技术和产品。在不当的异常处理设计与编码的情况下,错误代码可以通过专门技能或工具就可以很容易地去调用它。显然,只注重于WEB应用不可能达到详尽的测试,它达不到通过更广泛地基础分析收集到的信息后对被测应用的理解程度。利用上述渗透测试工具实现对Web应用系统的初步探索并给出简易的安全评估报告,让编程人员对自身系统的安全级别有大概的认识。
[0056]上述诸多工具中,利用sqlmap工具对Web应用系统中存在的检测点进行sql注入检测并根据检测结果发现Web应用系统是否存在注入漏洞;利用xss-proxy工具或X-scan工具对Web应用系统中易出现xss漏洞的模块进行xss漏洞检测并根据检测结果发现Web应用系统是否存在xss漏洞;利用Nessus工具对Web应用系统进行系统漏洞扫描和软件分析;利用Nmap工具对Web应用系统的端口进行端口扫描;利用Wireshark工具撷取Web应用系统的网络数据包,并尽可能显示出最为详细的网络数据包资料。
[0057]实施例二
[0058]一种Web应用系统的安全检测装置,包括本地安全检测模块、云端安全检测模块和渗透测试模块。
[0059]所述本地安全检测模块用于采用源代码分析技术对Web应用系统代码进行代码分析,利用爬虫技术对Web应用系统进行模拟使用,对检测出的Web应用系统代码漏洞进行警告标记。该本地安全检测模块采用了上述实施例一中的本地安全检测方法。
[0060]所述云端安全检测模块用于将Web应用系统代码的样本上传至云端服务器,Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比,对经对比产生的Web应用系统代码漏洞进行警告标记。该云端安全检测模块采用了上述实施例一中的云端安全检测方法。
[0061]所述渗透测试模块用于接收来自Web应用系统的请求,采用渗透测试工具模拟黑客对Web应用系统进行攻击,对检测出的Web应用系统代码漏洞进行警告标记,并给出安全评估报告。该渗透测试模块采用了上述实施例一中的渗透测试方法。
[0062]所述渗透测试工具为sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark 中的一种或几种的组合。
[0063]实施例三
[0064]在实施例二的基础上,还设有更新模块。所述更新模块用于更新预存在云端服务器上的缺陷基本块、安全模块和渗透测试工具。
【权利要求】
1.一种Web应用系统的安全检测方法,其步骤包括: 步骤1、本地安全检测,先对Web应用系统代码进行代码分析,再利用爬虫技术对Web应用系统进行模拟使用,检测Web应用系统是否存在代码漏洞并对检测出的代码漏洞进行警告标记; 步骤2、云端安全检测,将Web应用系统代码的样本上传至云端服务器,Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比检测,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记; 步骤3、渗透测试,采用渗透测试工具对Web应用系统进行模拟攻击,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记,给出安全评估报生口 ο
2.如权利要求1所述的一种Web应用系统的安全检测方法,其特征在于:步骤I中所述代码分析的过程包括先对Web应用系统代码进行危险函数检测,再对Web应用系统代码进行参数过滤检查和身份验证检查。
3.如权利要求1所述的一种Web应用系统的安全检测方法,其特征在于:步骤I中所述代码分析采用源代码分析技术,所述源代码分析技术包括如下三步骤: 步骤3-1、先对Web应用系统代码进行词法分析和语法分析; 步骤3-2、然后采用数据流分析、状态机系统、边界检测、数据类型验证和控制流分析对Web应用系统代码进行模型分析; 步骤3-3、最后在各个接收点之间建立相应的依赖关系图,并根据该依赖关系图判断Web应用系统代码是否具有代码漏洞。
4.如权利要求1所述的一种Web应用系统的安全检测方法,其特征在于:云端安全检测中Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行hash对比,检测云端服务器是否存在与Web应用系统代码的样本的基本块相同的漏洞代码。
5.如权利要求1所述的一种Web应用系统的安全检测方法,其特征在于:步骤3中渗透测试工具为 sqlmap、xss-proxy、Nessus、X-scan、Nmap、Wireshark 中的一种或几种的组口 O
6.如权利要求5所述的一种Web应用系统的安全检测方法,其特征在于:利用sqlmap工具对Web应用系统中存在的检测点进行sql注入检测并根据检测结果发现Web应用系统是否存在注入漏洞;利用xss-proxy工具或X-scan工具对Web应用系统中易出现xss漏洞的模块进行xss漏洞检测并根据检测结果发现Web应用系统是否存在xss漏洞。
7.一种Web应用系统的安全检测装置,其特征在于:包括 本地安全检测模块,用于对Web应用系统代码进行代码分析,利用爬虫技术对Web应用系统进行模拟使用,检测Web应用系统是否存在代码漏洞并对检测出的代码漏洞进行警告标记; 云端安全检测模块,用于将Web应用系统代码的样本上传至云端服务器,Web应用系统代码的样本的每个基本块与预存在云端服务器上的缺陷基本块进行对比检测,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记; 渗透测试模块,用于采用渗透测试工具对Web应用系统进行模拟攻击,检测Web应用系统是否存在代码漏洞并对检测出的Web应用系统代码漏洞进行警告标记,给出安全评估报生口 ο
8.如权利要求7所述的一种Web应用系统的安全检测装置,其特征在于:渗透测试工具为 sqlmap、xss-proxy、Nessus、X-scan、Nmap> Wireshark 中的一种或几种的组合。
9.如权利要求7所述的一种Web应用系统的安全检测装置,其特征在于:还设有更新模块,所述更新模块用于更新预存在云端服务器上的缺陷基本块、安全模块和渗透测试工具。
【文档编号】H04L29/08GK104184728SQ201410398508
【公开日】2014年12月3日 申请日期:2014年8月14日 优先权日:2014年8月14日
【发明者】张小松, 陈瑞东, 吴安彬, 牛伟纳, 王东, 徐浩然, 孙恩博, 柯明敏, 杨高明, 张艺峰 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1