基于IAST的Node.js数据流跟踪方法及系统技术方案

技术编号:28673991 阅读:31 留言:0更新日期:2021-06-02 02:50
本发明专利技术公开一种基于IAST的Node.js数据流跟踪方法,包括:(1)在输入阶段,获取http请求参数,将参数的类型转换成引用类型,添加自定义stack属性,并将stack初始化为空数组;(2)在传播阶段,判断参数的类型是否为引用类型且具有自定义stack属性,若是,则在空数组追加当前传播阶段的堆栈信息,若否,则舍弃当前传播阶段的堆栈信息;(3)在安全编码阶段,将参数由引用类型转换成基本类型;(4)在输出阶段,判断参数是否为引用类型且具有自定义stack属性,若是,判定被测应用程序为存在威胁,并取出所有数组中的堆栈信息。本发明专利技术实现了在IAST过程中对Node.js数据流的跟踪。另,本发明专利技术还公开一种基于IAST的Node.js数据流跟踪系统、装置及计算机可读存储介质。

【技术实现步骤摘要】
基于IAST的Node.js数据流跟踪方法及系统
本专利技术涉及软件安全测试
,尤其涉及一种基于IAST的Node.js数据流跟踪方法、系统、装置及计算机可读存储介质。
技术介绍
随着网络技术的发展,web应用的接口数量越来越多。Node是一个基于ChromeJavaScript运行时建立的平台,用以实现响应速度快、易于扩展的网络应用的搭建。Node使用事件驱动,非阻塞I/O模型,由于其适用于高并发、I/O接口密集的场景,成为了Web前端开发必不可少的基础设施。为保证应用程序的正常运行,在上线前需要对其进行测试以避免带来安全威胁。IAST(InteractiveApplicationSecurityTesting,交互式应用程序安全测试)融合了SAST和DAST技术的优点,无需源码,支持对字节码的检测,在安全测试领域得到了广泛的应用。但目前,暂时没有一种方法来实现IAST中对于Node.js数据流的跟踪。
技术实现思路
本专利技术的目的在于提供一种基于IAST的Node.js数据流跟踪方法及系统,以实现在IAST过程中对Node.js数据流的跟踪。为实现上述目的,本专利技术提供了一种基于IAST的Node.js数据流跟踪方法,Node.js数据在IAST中依次经历输入阶段、传播阶段、安全编码阶段及输出阶段。所述Node.js数据流跟踪方法包括以下步骤:(1)在输入阶段,获取http请求参数,将所述参数的类型转换成引用类型,添加自定义stack属性,并将stack初始化为空数组;(2)在传播阶段,判断所述参数的类型是否为引用类型且具有自定义stack属性,若是,则在所述空数组追加当前传播阶段的堆栈信息,若否,则舍弃当前传播阶段的堆栈信息;(3)在安全编码阶段,将所述参数由引用类型转换成基本类型;(4)在输出阶段,判断所述参数是否为引用类型且具有自定义stack属性,若是,判定被测应用程序为存在威胁,并取出所有数组中的堆栈信息。具体地,步骤(4)中,判断所述参数是否为引用类型且具有自定义stack属性时,若判断结果为否,则判定被测应用程序为不存在威胁,不执行任何操作。为实现上述目的,本专利技术还提供了一种基于IAST的Node.js数据流跟踪系统。Node.js数据在IAST中依次经历输入阶段、传播阶段、安全编码阶段及输出阶段。所述Node.js数据流跟踪系统包括第一处理模块、第二处理模块、第三处理模块以及第四处理模块。其中,所述第一处理模块用于在输入阶段获取http请求参数,并将所述参数的类型转换成引用类型,以及添加自定义stack属性,并将stack初始化为空数组。所述第二处理模块用于在传播阶段判断所述参数的类型是否为引用类型且具有自定义stack属性,若是,则在所述空数组追加当前传播阶段的堆栈信息,若否,则舍弃当前传播阶段的堆栈信息。所述第三处理模块用于在安全编码阶段将所述参数由引用类型转换成基本类型。所述第四处理模块用于在输出阶段判断所述参数是否为引用类型且具有自定义stack属性,若是,判定被测应用程序为存在威胁,并取出所有数组中的堆栈信息。具体地,所述第四处理模块判断所述参数是否为引用类型且具有自定义stack属性时,若判断结果为否,则判定被测应用程序为不存在威胁,不执行任何操作。为实现上述目的,本专利技术还提供了一种基于IAST的Node.js数据流跟踪装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,执行如上所述的基于IAST的Node.js数据流跟踪方法。为实现上述目的,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行以完成如上所述的基于IAST的Node.js数据流跟踪方法。与现有技术相比,本专利技术是通过在输入阶段将http请求参数的类型转换成引用类型,然后添加自定义stack属性并将stack初始化为空数组,再在传播阶段判断参数类型为引用类型且具有自定义stack属性的情况下将当前传播阶段的堆栈信息添加至数组中,最后在输出阶段取出存在威胁的应用程序所对应的所有数组中的堆栈信息。本专利技术实现了在IAST过程中对Node.js数据流的跟踪,进而可以获得被测应用程序的安全性。附图说明图1为本专利技术基于IAST的Node.js数据流跟踪方法一实施例的流程图。图2为本专利技术实施例基于IAST的Node.js数据流跟踪系统的组成框图。图3为本专利技术基于IAST的Node.js数据流跟踪装置一实施例的结构框图。具体实施方式为了详细说明本专利技术的
技术实现思路
、构造特征,以下结合具体实施方式并配合附图作进一步说明。本专利技术一实施例提供了一种基于IAST的Node.js数据流跟踪方法。在通过IAST测试平台(InteractiveApplicationSecurityTesting,交互式应用程序安全测试)对应用程序进行安全测试的过程中,Node.js数据(即http请求)依次经历输入阶段、传播阶段、安全编码阶段及输出阶段。在输入阶段,通过调用一些函数从http请求中获取用户的输入;在传播阶段,若Node.js数据中存在有污点数据,该污点数据经过一些函数后,又会形成了新的污点数据;在安全编码阶段,通过调用编解码函数实现对Node.js数据的编解码操作;在输出阶段,通过调用一些函数输出Node.js数据,例如将Node.js数据输出到数据库或者页面。通过在前述各个阶段获取Node.js数据并对Node.js数据进行跟踪和处理,从而判断被测应用程序的安全性。如图1所示,本实施例的Node.js数据流跟踪方法包括以下步骤:(1)在输入阶段,获取http请求参数,并将参数的类型转换成引用类型(具体如何实现参数类型的转换为现有技术);然后添加自定义stack属性,并将stack(栈)初始化为空数组(空栈)。对于Node,http请求包括有get请求、post请求等,http请求参数基本都是字符串形式的基本类型,由于基本类型无法添加自定义属性,通过先将基本类型转换成引用类型,然后进行自定义stack属性的添加。(2)在传播阶段,判断参数的类型是否为引用类型且具有自定义stack属性,若是,则在空数组追加当前传播阶段的堆栈信息,以此实现经输入阶段处理(即将参数的类型转换成引用类型,添加自定义stack属性)后的参数(Node.js数据)的跟踪;若否,则舍弃当前传播阶段的堆栈信息,即是,舍弃没有经输入阶段处理过的Node.js数据,以确保Node.js数据的连续性。(3)在安全编码阶段,将参数由引用类型转换成基本类型;此时,终止了堆栈信息的添加,结束了传播流程。(4)在输出阶段,判断参数是否为引用类型且具有自定义stack属性,若是,则说明传播流程没有正常结束,判定被测应用程序为存在威胁,并取出所有数组中的堆栈信息,以此形成整个Node.js数据流,以便于后本文档来自技高网
...

【技术保护点】
1.一种基于IAST的Node.js数据流跟踪方法,Node.js数据在IAST中依次经历输入阶段、传播阶段、安全编码阶段及输出阶段,其特征在于,所述Node.js数据流跟踪方法包括以下步骤:/n(1)在输入阶段,获取http请求参数,将所述参数的类型转换成引用类型,添加自定义stack属性,并将stack初始化为空数组;/n(2)在传播阶段,判断所述参数的类型是否为引用类型且具有自定义stack属性,若是,则在所述空数组追加当前传播阶段的堆栈信息,若否,则舍弃当前传播阶段的堆栈信息;/n(3)在安全编码阶段,将所述参数由引用类型转换成基本类型;/n(4)在输出阶段,判断所述参数是否为引用类型且具有自定义stack属性,若是,判定被测应用程序为存在威胁,并取出所有数组中的堆栈信息。/n

【技术特征摘要】
1.一种基于IAST的Node.js数据流跟踪方法,Node.js数据在IAST中依次经历输入阶段、传播阶段、安全编码阶段及输出阶段,其特征在于,所述Node.js数据流跟踪方法包括以下步骤:
(1)在输入阶段,获取http请求参数,将所述参数的类型转换成引用类型,添加自定义stack属性,并将stack初始化为空数组;
(2)在传播阶段,判断所述参数的类型是否为引用类型且具有自定义stack属性,若是,则在所述空数组追加当前传播阶段的堆栈信息,若否,则舍弃当前传播阶段的堆栈信息;
(3)在安全编码阶段,将所述参数由引用类型转换成基本类型;
(4)在输出阶段,判断所述参数是否为引用类型且具有自定义stack属性,若是,判定被测应用程序为存在威胁,并取出所有数组中的堆栈信息。


2.如权利要求1所述的基于IAST的Node.js数据流跟踪方法,其特征在于,步骤(4)中,判断所述参数是否为引用类型且具有自定义stack属性时,若判断结果为否,则判定被测应用程序为不存在威胁,不执行任何操作。


3.一种基于IAST的Node.js数据流跟踪系统,Node.js数据在IAST中依次经历输入阶段、传播阶段、安全编码阶段及输出阶段,其特征在于,所述Node.js数据流跟踪系统包括:
第一处理模块,用于在输入阶段获取http请求参数,并将所述参数的类...

【专利技术属性】
技术研发人员:徐年生万振华王颉董燕李华
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1