一种信息高度集成的web应用程序复杂网络表示方法
技术领域
1.本发明涉及信息安全技术领域,尤其是一种信息高度集成的web应用程序复杂网络表示方法。
背景技术:2.随着互联网进入web 3.0时代,web应用程序成为了网络信息资源的交互中心和直接载体,acunetix web应用程序漏洞报告指出,当今互联网中约有63%的web站点存在漏洞,容易被黑客攻击利用。web应用程序作为一个复杂的、动态的、交互式的系统,传统源代码表示技术难以完全表征其复杂的多层级结构信息,这使得web应用程序的漏洞检测存在碎片化和独立化、漏洞检测类型单一等问题,难以进行多类型漏洞检测。
3.现有的各类型web应用程序分析技术分为静态分析和动态分析两大类。静态分析包括源代码分析和可执行文件分析,可以检测到动态分析中不能或几乎检测不到的漏洞,具有高覆盖性,但存在费时、漏报等问题。动态分析包括模糊测试、动态污点分析和符号执行等技术,可以检测到静态代码分析中漏报的运行时环境中出现的漏洞,但无法保证源代码的完整测试覆盖率。
4.但基于web应用程序的表示方法存在的3个主要问题如下:
5.1、将web应用程序源代码表示为文本序列或抽象语法树形式,无法同时捕捉源代码语法结构信息以及控制流和数据依赖关系。单一的分析技术,或无逻辑引入的分析技术组合不足以表征web应用程序的多层级结构信息。
6.2、在web应用程序的动态执行中,不同角色会产生不同的网络模型,不同页面间也有着不同的参数信息传递,与请求跳转相关的程序漏洞分析需要获取请求参数信息作为漏洞分析依据。
7.3、在web应用程序的静态分析中,程序源代码中变量、处理函数以及操作符都具有多样性,以大量样本为代价得到的静态代码特征向量表示,在对不同时期web应用程序检测上表现较差。
技术实现要素:8.本发明需要解决的技术问题是提供一种信息高度集成的web应用程序复杂网络表示方法,在web应用程序漏洞检测定技术上,引入了动静态结合分析方法,利用复杂网络技术,建立信息高度集成复杂网络表达方法,全面揭示了web系统前端输入、后端业务逻辑处理、数据库操作的多层级信息交互机理,提高了web应用程序表征技术在漏洞测试中的高重用性。
9.为解决上述技术问题,本发明所采用的技术方案是:一种信息高度集成的web应用程序复杂网络表示方法,包括以下步骤:
10.步骤s1、收集若干份web应用程序代码样本,组成初始web应用程序代码样本库,其中每个web应用程序包含a个漏洞,每个web应用程序包含的漏洞类型分别为业务逻辑类漏
洞、会话管理类漏洞和输入验证类漏洞;
11.步骤s2、根据web应用程序代码进行动态分析,对web应用程序的每个页面进行动态访问,构建动态基础网络表示方法;
12.步骤s3、根据web应用程序代码进行静态分析,对动态基础网络表示方法进行添枝操作,根据页面请求转移构建基础网络表示方法,作为信息高度集成的web应用程序复杂网络表示方法的基础;
13.步骤s4、根据节点列表进行深度优先访问,动态获取节点跳转时产生的跳转信息,其中跳转信息包括角色类型信息、请求响应参数信息以及会话参数信息;
14.步骤s5、解析并整理跳转信息,作为信息高度集成的web应用程序复杂网络表示方法的边标签注释;
15.步骤s6、在步骤s2中的动态基础网络表示方法上,将边标签注释合并至对应有向边,形成带边标签注释的基础网络表示方法,作为业务逻辑类漏洞、会话管理类漏洞的研究基础;
16.步骤s7、在web应用程序代码样本库中,提取web应用程序输入漏洞分析高频词,其中排名前c的有效单词,作为节点标签注释使用的代码元素,c为不小于20的正整数;
17.步骤s8、在web应用程序代码样本库上,根据代码元素样例的静态属性,设计代码元素对应静态属性规则样例表,作为代码元素属性分类的依据;
18.步骤s9、在页面级的静态代码上,使用数据流分析技术,跟踪变量数据流传播过程,其中传播过程到危险函数为止;
19.步骤s10、根据代码元素对应静态属性规则样例表,对变量数据流传播过程进行路径表示,作为信息高度集成的web应用程序复杂网络表示方法的节点标签注释;
20.步骤s11、在动态基础网络表示方法上,将节点标签注释合并至对应页面节点,作为输入验证类漏洞的研究基础,组成信息高度集成的web应用程序复杂网络表示方法;
21.步骤s12、通过在国内外开源平台中获取开源web应用程序代码,或利用爬虫技术获取安全网站的源代码内容,获取方法迁移web应用程序代码样本;
22.步骤s13、以公布时间距收集日期的时间间隔为周期,重复执行步骤s7-s8,更新web应用程序复杂网络表示方法,作为web应用程序漏洞检测的研究基础。
23.本发明技术方案的进一步改进在于:所述步骤s1中a为不小于3的正整数,业务逻辑类漏洞包括访问控制漏洞、参数篡改漏洞、工作流绕过漏洞、工作流冲突漏洞中,会话管理类漏洞包括csrf漏洞、会话劫持漏洞、会话固定漏洞、会话嗅探漏洞中,输入验证类漏洞包括sql注入漏洞、xss漏洞、xml注入漏洞、ldap注入漏洞、os命令行注入漏洞、远程代码执行漏洞、本地或远程文件包含漏洞中。
24.本发明技术方案的进一步改进在于:所述步骤s2中动态分析的具体步骤为:
25.步骤s21、对web应用程序的客户端页面进行动态渲染,获取各页面中包含的所有链接跳转节点及节点间的跳转关系,形成初始节点列表;
26.步骤s22、对初始节点进行整理,去除初始节点中的共同前缀,选择整理后的初始节点,形成节点列表;
27.步骤s23、选择节点列表中的页面节点,作为动态基础网络表示方法中的网络节点;选择节点列表中节点间的跳转关系,作为动态基础网络表示方法中的有向边。
28.本发明技术方案的进一步改进在于:所述步骤s3的具体步骤为:
29.步骤s31、静态分析web应用程序源代码,结合源代码页面,通过km算法添加动态分析难以覆盖的页面节点;
30.步骤s32、对动态基础网络表示方法进行添枝操作,动态基础网络表示方法表示为:
31.g0={n,e},
32.其中,n表示页面节点集合,e表示页面请求关系边集合;
33.步骤s33、记录页面节点间的跳转关系,与动态基础网络中节点间的跳转关系形成映射,生成页面节点全覆盖的基础网络表示方法。
34.本发明技术方案的进一步改进在于:所述步骤s5中边标签注释表示为:
35.ea={r,u,http,url};
36.其中,ea为边标签注释;r为用户角色集合;http为通过请求传递的一组http请求响应参数,包含请求响应和会话等参数类型;url为源路径。
37.本发明技术方案的进一步改进在于:所述步骤s8中代码元素对应静态属性规则样例表包括代码元素样例信息、静态属性信息和描述信息。
38.本发明技术方案的进一步改进在于:所述步骤s10中节点标签注释表示为:
39.na={path1,path2,
…
,pathi,
…
},
40.其中,pathi表示路径,定义为《ni,vi,li》,其中ni为路径上存在的静态属性列表,vi为对应的变量名,li为变量vi传入的危险函数所在代码行。
41.本发明技术方案的进一步改进在于:所述步骤s13中web应用程序代码公布时间距收集日期不大于d月,web应用程序数量为e个,其中d为不小于1的正整数,e为不小于10的正整数。
42.由于采用了上述技术方案,本发明取得的技术进步是:
43.1、本发明通过融合动态分析技术和静态分析技术,将动态分析技术能够准确反映程序实际执行的优势,和静态分析技术对web应用程序源代码具有高覆盖率的优势结合在一起;
44.2、本发明通过对角色类型、请求响应参数以及会话参数类型等信息进行解析提取,引入边标签注释特征组,作为基础网络模型的边标签注释,以支持业务逻辑、会话管理等漏洞的研究分析;
45.3、本发明利用web应用程序源代码及其漏洞分析报告,提取与静态属性相关的高频代码元素,制定基于中间表示的静态安全属性表征规则样例,减少了基于机器学习的输入验证漏洞检测中的特征冗余;
46.4、本发明利用数据流分析技术,跟踪变量数据流传播过程,从用户输入点开始,到危险函数为止,根据静态安全属性表征规则样例表,引入数据流路径特征组,作为基础网络模型的节点标签注释,以支持输入验证等漏洞的研究分析;
47.5、本发明通过在信息安全技术领域,特别的在web应用程序漏洞检测定技术上,引入了动静态结合分析方法,利用复杂网络技术,建立信息高度集成复杂网络表达方法,全面揭示了web系统前端输入、后端业务逻辑处理、数据库操作的多层级信息交互机理,提高了web应用程序表征技术在漏洞测试中的高重用性。
附图说明
48.图1是本发明的复杂网络表示方法构建流程图;
49.图2是本发明的基础网络表示方法样例图;
50.图3是本发明的带边标签注释的基础网络表示方法样例图;
51.图4是本发明的web应用程序复杂网络表示方法样例图。
具体实施方式
52.下面结合实施例对本发明做进一步详细说明:
53.如图1所示,一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:包括以下步骤:
54.步骤s1、收集若干份web应用程序代码样本,组成初始web应用程序代码样本库,其中每个web应用程序包含a个漏洞,a为不小于3的正整数。每个web应用程序包含漏洞类型分别为业务逻辑类漏洞、会话管理类漏洞和输入验证类漏洞
55.其中,每个web应用程序包含的a个漏洞应包含在业务逻辑类漏洞中的访问控制漏洞、参数篡改漏洞、工作流绕过漏洞、工作流冲突漏洞中,以及会话管理类漏洞中的csrf漏洞、会话劫持漏洞、会话固定漏洞、会话嗅探漏洞中,和输入验证类漏洞中的sql注入漏洞、xss漏洞、xml注入漏洞、ldap注入漏洞、os命令行注入漏洞、远程代码执行漏洞、本地或远程文件包含漏洞中。
56.本实施例是从sourceforge开源软件开发平台中抽样web应用程序代码样本组成web应用程序代码样本库,web应用程序代码的编程语言为php、java等,本实施例中a为3,每个web应用程序中包含的漏洞包括sql注入、csrf、访问控制这三种漏洞进行的网络设计。
57.步骤s2、根据web应用程序代码进行动态分析,对web应用程序的每个页面进行动态访问,构建动态基础网络表示方法;
58.动态分析的具体步骤为:
59.步骤s21、对web应用程序的客户端页面进行动态渲染,获取各页面中包含的所有链接跳转节点及节点间的跳转关系,形成初始节点列表。
60.本实施例是使用动态分析,在web应用程序的客户端页面上,以深度优先的方式进行动态渲染,获取页面中包含的所有链接跳转节点,如src、href、action等属性,window.location、window.open、location.assign等事件,直至将所有可跳转节点全部访问完毕,并记录其节点间的跳转关系,形成初始节点列表表示页面节点及其跳转关系。
61.步骤s22、对初始节点进行整理,去除初始节点中的共同前缀,选择整理后的初始节点,形成节点列表。
62.本实施例是对初始节点列表中的节点进行整理,去除掉节点间的公共部分。例如,将https://xxx/xxx/a.php整理成xxx/a.php,将https://xxx/a.php整理成a.php,去除了两个节点的公共部分https://xxx/,以解决节点间路径重复的问题。
63.步骤s23、选择节点列表中的页面节点,作为动态基础网络表示方法中的网络节点;选择节点列表中节点间的跳转关系,作为动态基础网络表示方法中的有向边。
64.步骤s3、根据web应用程序代码进行静态分析,对动态基础网络表示方法进行添枝操作,根据页面请求转移构建基础网络表示方法,作为信息高度集成的web应用程序复杂网
络表示方法的基础。
65.步骤s3的具体步骤为:
66.步骤s31、静态分析web应用程序源代码,结合源代码页面,通过km算法添加动态分析难以覆盖的页面节点;
67.步骤s32、对动态基础网络表示方法进行添枝操作,动态基础网络表示方法表示为:
68.g0={n,e},
69.其中,n表示页面节点集合,e表示页面请求关系边集合;
70.步骤s33、记录页面节点间的跳转关系,与动态基础网络中节点间的跳转关系形成映射,生成页面节点全覆盖的基础网络表示方法。
71.本实施例在动态分析生成的基础网络表示方法的基础上,使用静态代码分析方法,将动态分析中无法动态渲染到的页面节点添加到动态基础网络中,并记录页面节点与动态基础网络中节点的跳转关系,生成页面节点全覆盖的基础网络表示方法。图2为以login.php、index.php、forgotpwd.php等页面及跳转关系为例构建的基础网络表示方法样例图。
72.步骤s4、根据节点列表进行深度优先访问,动态获取节点跳转时产生的跳转信息,其中跳转信息包括角色类型信息、请求响应参数信息以及会话参数信息。
73.本实施例中,根据节点列表对web应用程序样本进行深度优先访问时,不同的角色将会产生不容的网络模型,不同页面间也有着不同的参数信息传递。角色类型信息依据访问web应用程序的角色等级划分为管理员级别(administrator)、普通用户级别(user)、匿名用户级别(anonymous);请求响应参数类型信息根据请求方式划分为get请求和post请求,在对请求的解析中,需根据不同的请求方式,对请求进行解析,如get请求中的参数基于标准的查询字符串格式进行解析,而post请求中的参数则使用解析器从请求体中提取所需内容类型,如multipart/form-data、application/json以及content-type报头值等;会话参数类型信息作为用户唯一的身份标识参数,应获取数据库系统中存在的可唯一标识用户身份的信息,即不可重复的参数,如session[“userid”]、session[“username”]等,而会话中的cookie,因为其为http请求赋予了状态性,其属性值也将直接影响http请求的安全性,如其secure、expires以及httponly等属性。
[0074]
步骤s5、解析并整理跳转信息,作为信息高度集成的web应用程序复杂网络表示方法的边标签注释,边标签注释表示为:
[0075]
ea={r,u,http,url};
[0076]
其中,ea为边标签注释;r为用户角色集合;http为通过请求传递的一组http请求响应参数,包含请求响应和会话等参数类型;url为源路径。
[0077]
本实施例中r作为用户角色集合,包含r0(匿名用户角色)、r1(普通用户角色)、r2(管理员用户角色),以r0、r1、r2角色为例,对web应用程序样本构建区分不同角色的注释,可得到如下的边标签注释特征组:
[0078]
ea1={[admin,user],userid,[ispost,ishttponly],url};
[0079]
ea2={[admin,user],[userid,cookies],[isget,referer],url};
[0080]
ea3={[admin],[userid,cookies],[ispost,issecure],url};
[0081]
其中ea1表示该请求允许管理员角色和普通用户角色进行访问,传递参数包含的用户参数信息为userid,请求方式为post,且document.cookie无法访问该请求的cookie;
[0082]
ea2表示该请求允许管理员角色和普通用户角色进行访问,传递参数包含携带客户端配置的cookie参数,以及用户的固有参数userid,请求方式为get,且携带referer,可记录该链接的链接来源;
[0083]
ea3表示该路径为只允许管理员用户角色进行访问,传递参数包含携带客户端配置的cookie参数,以及用户的固有参数userid,请求方式为post,且浏览器只会在https和ssl等安全协议中传输cookie。
[0084]
步骤s6、在步骤s2中的动态基础网络表示方法上,将边标签注释合并至对应有向边,形成带边标签注释的基础网络表示方法,作为业务逻辑业务逻辑类漏洞、会话管理类漏洞的研究基础;
[0085]
本实施例中,在步骤s2中的动态基础网络表示方法上,将边标签注释ea与基础网络中的有向边一一对应并标记,形成带边标签注释的基础网络表示方法。图3为以login.php、index.php、forgotpwd.php等页面为节点的带边标签注释的基础网络表示方法样例图。
[0086]
步骤s7、在web应用程序代码样本库中,提取web应用程序输入漏洞分析高频词,其中排名前c的有效单词,作为节点标签注释使用的代码元素,c为不小于20的正整数。
[0087]
本实施例使用词频统计算法,提取web应用程序输入漏洞分析高频词,本实施例中c为20,作为节点标签注释使用的代码元素样例的有效单词为为web应用程序中与输入验证漏洞相关的关键字,从去除了冠词、代词、数量词等无意义单词的输入验证漏洞分析报告库中提取,得到的代码元素包括但不限于:$_get、$_post、$_query、$_server、mysql_escape_string、pg_escape_bytec、mysql_real_escape_string、mysqli_stmt_bind_param、,db2_escape_string、dbx_escape_string、mysql_query、mysql_unbuffered_query、mysql_db_query、mysqli_query、mysqli_real_query、mysqli_master_query、mysqli_execute、mysqli::query、mysqli::multi_query、mysqli::real_query。其中,去除单词包括但不限于:the、is、to、a、and、in、of、also、from。
[0088]
表1代码元素对应静态属性规则样例
[0089][0090][0091]
步骤s8、在web应用程序代码样本库上,根据代码元素样例的静态属性,设计代码元素对应静态属性规则样例表,作为代码元素属性分类的依据;代码元素对应静态属性规则样例表包括代码元素样例信息、静态属性信息、描述信息。
[0092]
本实施例中,通过分析代码元素(函数和操作符)与输入验证及输入过滤的关系,得到其安全属性,根据安全属性,将常用的代码元素进行分类。例如,在php代码中,函数mysql_escape_string()用来对字符串进行转义,从而安全执行数据库查询操作,可以将该属性分类为sanitization,表示该函数的安全属性为输入过滤。表1为代码元素对应静态属性规则样例表,其将所有排名前c的有效单词按其安全属性分类,得到代码元素对应静态属性规则样例。
[0093]
步骤s9、在页面级的静态代码上,使用数据流分析技术,跟踪变量数据流传播过程,其中传播过程到危险函数为止。
[0094]
本实施例中,在web应用程序样本库的页面级静态代码中,不同的变量将对应多条数据流路径。例如,在路径“$pwd=$_post['pwd']
→
$pwd=mysqli_real_escape_string($pwd)
→
$name=mysqli_query("select name from user where id=$id and pwd='$pwd'")”中,“$_post['pwd']”为变量pwd的输入点,“mysqli_real_escape_string($pwd)”为变量pwd的sql注入攻击过滤,“mysqli_query(
″
select name from user where id=$id and pwd=’$pwd
’″
)”为涉及变量pwd的危险函数,该路径表示了pwd从输入点到危险函数的传播过程,其中输入点为$post,危险函数为mysql_query(),该函数会导致sql注入攻击。
[0095]
步骤s10、根据代码元素对应静态属性规则样例表,对变量数据流传播过程进行路径表示pathi,作为信息高度集成的web应用程序复杂网络表示方法的节点标签注释;
[0096]
节点标签注释表示为:
[0097]
na={path1,path2,...,pathi,...},
[0098]
其中,pathi定义为《mi,vi,li》,其中mi为路径上存在的静态属性列表,vi为对应的变量名,li为变量vi传入的危险函数所在代码行。
[0099]
本实施例中,在不同变量对应的多条数据流路径中,代码元素可与静态属性规则表进行对应,匹配相应分类,同时记录每条路经所在的文件名和行数,通过规则表将路径映射为路径表示pathi。以步骤9中的路径为例,其对应路径表示为:
[0100]
pathi={[user input,sqli_sanitization,sqli_sink],pwd,2}。
[0101]
一个页面节点中所有路径表示的集合na即为该页面节点的节点标签注释,且每个页面节点的标签注释均有不同。
[0102]
步骤s11、在动态基础网络表示方法上,将节点标签注释合并至对应页面节点,作为输入验证类漏洞的研究基础,组成信息高度集成的web应用程序复杂网络表示方法。
[0103]
本实施例中,在带边标签注释的基础网络表示方法上,将节点标签注释na与基础网络中的页面节点一一对应并标记,形成信息高度集成的web应用程序复杂网络表示方法。图4为以login.php、index.php、forgotpwd.php等页面为节点的信息高度集成的web应用程序复杂网络表示方法样例图。
[0104]
步骤s12、通过在国内外开源平台中获取开源web应用程序代码,或利用爬虫技术获取安全网站的源代码内容,获取方法迁移web应用程序代码样本,组成方法迁移web应用程序代码样本库。
[0105]
其中,利用的爬虫技术是指按照一定的规则,通过数据采集、处理、储存,自动抓取万维网信息的程序或者脚本的技术。
[0106]
本实施例中,爬虫技术的具体实施流程如下:
[0107]
1.首先选取网站的index.php以及login.php作为种子url;
[0108]
2.将以上url放入待抓取url队列;
[0109]
3.从上述队列中取出url,对其进行dns解析,得到主机ip,并下载该url对应页面,存储到页面库中,同时将该url放进已抓取url队列;
[0110]
4.分析已抓取url队列中的url对应页面,解析出当前页面中包含的所有url,并且将其放入待抓取url队列。
[0111]
5.循环执行3-4,直至待抓取url队列为空,循环结束。
[0112]
步骤s13、以公布时间距收集日期的时间间隔为周期,重复执行步骤s7-s8,更新web应用程序复杂网络表示方法,作为web应用程序漏洞检测的研究基础。
[0113]
其中,web应用程序代码公布时间距收集日期不大于d月,web应用程序数量为e个,其中d为不小于1的正整数,e为不小于10的正整数。
[0114]
本实施例中d为12,爬取网站为github、sourceforge,测试年份为2020年、2021年,其中2020年web应用程序代码样本库含有13个样本,2021年web应用程序代码样本库样本数为18个。2019年代码元素对应静态属性规则样例表中包含代码元素28个,2020年执行步骤7-步骤8后代码元素个数升至39个,2021年执行步骤7-步骤8后代码元素个数升至46个。
[0115]
综上所述,本发明通过静态分析和动态分析等技术构建基础网络表示,基于边标签注释和节点标签注释改进传统的软件测试表征方法,融合多类型web漏洞特征,构建复杂网络表示方法,有效的表征了web应用程序的静态结构和动态行为信息,为各类型漏洞检测、定位、防御研究提供了可行的基础。
技术特征:1.一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:包括以下步骤:步骤s1、收集若干份web应用程序代码样本,组成初始web应用程序代码样本库,其中每个web应用程序包含a个漏洞,每个web应用程序包含的漏洞类型分别为业务逻辑类漏洞、会话管理类漏洞和输入验证类漏洞;步骤s2、根据web应用程序代码进行动态分析,对web应用程序的每个页面进行动态访问,构建动态基础网络表示方法;步骤s3、根据web应用程序代码进行静态分析,对动态基础网络表示方法进行添枝操作,根据页面请求转移构建基础网络表示方法,作为信息高度集成的web应用程序复杂网络表示方法的基础;步骤s4、根据节点列表进行深度优先访问,动态获取节点跳转时产生的跳转信息,其中跳转信息包括角色类型信息、请求响应参数信息以及会话参数信息;步骤s5、解析并整理跳转信息,作为信息高度集成的web应用程序复杂网络表示方法的边标签注释;步骤s6、在步骤s2中的动态基础网络表示方法上,将边标签注释合并至对应有向边,形成带边标签注释的基础网络表示方法,作为业务逻辑类漏洞、会话管理类漏洞的研究基础;步骤s7、在web应用程序代码样本库中,提取web应用程序输入漏洞分析高频词,其中排名前c的有效单词,作为节点标签注释使用的代码元素,c为不小于20的正整数;步骤s8、在web应用程序代码样本库上,根据代码元素样例的静态属性,设计代码元素对应静态属性规则样例表,作为代码元素属性分类的依据;步骤s9、在页面级的静态代码上,使用数据流分析技术,跟踪变量数据流传播过程,其中传播过程到危险函数为止;步骤s10、根据代码元素对应静态属性规则样例表,对变量数据流传播过程进行路径表示,作为信息高度集成的web应用程序复杂网络表示方法的节点标签注释;步骤s11、在动态基础网络表示方法上,将节点标签注释合并至对应页面节点,作为输入验证类漏洞的研究基础,组成信息高度集成的web应用程序复杂网络表示方法;步骤s12、通过在国内外开源平台中获取开源web应用程序代码,或利用爬虫技术获取安全网站的源代码内容,获取方法迁移web应用程序代码样本;步骤s13、以公布时间距收集日期的时间间隔为周期,重复执行步骤s7-s8,更新web应用程序复杂网络表示方法,作为web应用程序漏洞检测的研究基础。2.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s1中a为不小于3的正整数,业务逻辑类漏洞包括访问控制漏洞、参数篡改漏洞、工作流绕过漏洞、工作流冲突漏洞中,会话管理类漏洞包括csrf漏洞、会话劫持漏洞、会话固定漏洞、会话嗅探漏洞中,输入验证类漏洞包括sql注入漏洞、xss漏洞、xml注入漏洞、ldap注入漏洞、os命令行注入漏洞、远程代码执行漏洞、本地或远程文件包含漏洞中。3.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s2中动态分析的具体步骤为:步骤s21、对web应用程序的客户端页面进行动态渲染,获取各页面中包含的所有链接跳转节点及节点间的跳转关系,形成初始节点列表;步骤s22、对初始节点进行整理,去除初始节点中的共同前缀,选择整理后的初始节点,
形成节点列表;步骤s23、选择节点列表中的页面节点,作为动态基础网络表示方法中的网络节点;选择节点列表中节点间的跳转关系,作为动态基础网络表示方法中的有向边。4.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s3的具体步骤为:步骤s31、静态分析web应用程序源代码,结合源代码页面,通过km算法添加动态分析难以覆盖的页面节点;步骤s32、对动态基础网络表示方法进行添枝操作,动态基础网络表示方法表示为:g0={n,e},其中,n表示页面节点集合,e表示页面请求关系边集合;步骤s33、记录页面节点间的跳转关系,与动态基础网络中节点间的跳转关系形成映射,生成页面节点全覆盖的基础网络表示方法。5.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s5中边标签注释表示为:ea={r,u,http,url};其中,ea为边标签注释;r为用户角色集合;http为通过请求传递的一组http请求响应参数,包含请求响应和会话等参数类型;url为源路径。6.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s8中代码元素对应静态属性规则样例表包括代码元素样例信息、静态属性信息和描述信息。7.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s10中节点标签注释表示为:na={path1,path2,
…
,path
i
,
…
},其中,path
i
表示路径,定义为<m
i
,v
i
,l
i
>,其中m
i
为路径上存在的静态属性列表,v
i
为对应的变量名,l
i
为变量v
i
传入的危险函数所在代码行。8.根据权利要求1所述的一种信息高度集成的web应用程序复杂网络表示方法,其特征在于:所述步骤s13中web应用程序代码公布时间距收集日期不大于d月,web应用程序数量为e个,其中d为不小于1的正整数,e为不小于10的正整数。
技术总结本发明公开了一种信息高度集成的Web应用程序复杂网络表示方法,属于信息安全技术领域,包括通过静态分析和动态分析技术构建基础网络表示,基于边标签注释和节点标签注释改进传统的软件测试表征方法,并融合多类型Web漏洞特征构建复杂网络表示方法。本发明为Web系统多层级结构信息的完全表征提供了新的概念和方法,有利于解决当前Web安全分析工具方法功能碎片化和独立化、漏洞检测类型单一等问题,有效的表征了Web应用程序的静态结构和动态行为信息,为各类型漏洞检测、定位、防御研究提供了可行的基础。提供了可行的基础。提供了可行的基础。
技术研发人员:张炳 高原 刘佳 孙尚晴 任家东
受保护的技术使用者:燕山大学
技术研发日:2022.07.11
技术公布日:2022/11/1