CN114417352A - 一种安全函数识别方法、装置及计算机可读存储介质 - Google Patents

一种安全函数识别方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN114417352A
CN114417352A CN202111602804.5A CN202111602804A CN114417352A CN 114417352 A CN114417352 A CN 114417352A CN 202111602804 A CN202111602804 A CN 202111602804A CN 114417352 A CN114417352 A CN 114417352A
Authority
CN
China
Prior art keywords
function
data
dangerous
identification
safety
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111602804.5A
Other languages
English (en)
Inventor
刘海涛
万振华
王颉
郑明�
董燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seczone Technology Co Ltd
Original Assignee
Seczone Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seczone Technology Co Ltd filed Critical Seczone Technology Co Ltd
Priority to CN202111602804.5A priority Critical patent/CN114417352A/zh
Publication of CN114417352A publication Critical patent/CN114417352A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Alarm Systems (AREA)

Abstract

根据本申请方案所提供的安全函数识别方法、装置及计算机可读存储介质,获取危险数据识别函数的相关数据信息,并将相关数据信息存储到数据集合中;根据安全函数学习算法识别数据集合中的相关数据信息;根据安全函数学习算法相应的检测模型,对危险数据识别函数对应的入参数据进行检测;根据检测结果确定对应于调用函数名称的调用函数的函数类型。通过本申请方案的实施,在安全函数学习算法识别到数据集合中危险数据识别函数对应的入参数据时,对危险数据识别函数对应的入参数据进行检查,根据检测结果确定调用函数的函数类型,无需人工干预,使识别过程更加简单方便,降低了成本,提高识别安全函数的准确性。

Description

一种安全函数识别方法、装置及计算机可读存储介质
技术领域
本申请涉及网络安全技术领域,尤其涉及一种安全函数识别方法、装置及计算机可读存储介质。
背景技术
数据流漏洞跟踪是指跟踪请求中污点数据的输入阶段,传播阶段,执行阶段,判断污点数据是否经历了完整的三阶段并且没有经过任何安全方法,即会认为该污点数据存在漏洞,通常利用其检测SQL注入,命令行注入等。
随着IAST技术的不断发展,基于污点数据+数据流跟踪的方式检测漏洞存在以下问题:无法识别一些自定义的安全函数,往往需要用户手动设置,配置工作繁琐。
发明内容
本申请实施例提供了一种安全函数识别方法、装置及计算机可读存储介质,至少能够解决相关技术中无法识别一些自定义的安全函数,往往需要用户手动设置,配置工作繁琐的问题。
本申请实施例第一方面提供了一种安全函数识别方法,包括:
获取危险数据识别函数的相关数据信息,并将所述相关数据信息存储到数据集合中;其中,危险数据识别函数包括字符查找函数、字符替换函数;所述相关数据信息包括调用函数名称以及所述危险数据识别函数对应的入参数据;
根据安全函数学习算法识别所述数据集合中的所述相关数据信息;
根据所述安全函数学习算法相应的检测模型,对所述危险数据识别函数对应的入参数据进行检测;
根据检测结果确定对应于所述调用函数名称的调用函数的函数类型;其中,所述函数类型包括安全函数、可疑函数,所述安全函数为识别或处理危险数据的函数。
本申请实施例第二方面提供了一种安全函数识别装置,包括:
存储模块,用于获取危险数据识别函数的相关数据信息,并将所述相关数据信息存储到数据集合中;其中,危险数据识别函数包括字符查找函数、字符替换函数;所述相关数据信息包括调用函数名称以及所述危险数据识别函数对应的入参数据;
识别模块,用于根据安全函数学习算法识别所述数据集合中的所述相关数据信息;
检测模块,用于根据所述安全函数学习算法相应的检测模型,对所述危险数据识别函数对应的入参数据进行检测;
确定模块,用于根据检测结果确定对应于所述调用函数名称的调用函数的函数类型;其中,所述函数类型包括安全函数、可疑函数,所述安全函数为识别或处理危险数据的函数。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及总线,所述总线用于实现所述存储器、处理器之间的连接通讯;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时上述本申请实施例第一方面提供的安全函数识别方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的安全函数识别方法中的各步骤。
由上可见,根据本申请方案所提供的安全函数识别方法、装置及计算机可读存储介质,获取危险数据识别函数的相关数据信息,并将所述相关数据信息存储到数据集合中;根据安全函数学习算法识别所述数据集合中的所述相关数据信息;根据所述安全函数学习算法相应的检测模型,对所述危险数据识别函数对应的入参数据进行检测;根据检测结果确定对应于所述调用函数名称的调用函数的函数类型。通过本申请方案的实施,在安全函数学习算法识别到数据集合中危险数据识别函数对应的入参数据时,对危险数据识别函数对应的入参数据进行检查,根据检测结果确定调用函数的函数类型,无需人工干预,使识别过程更加简单方便,降低了成本,提高识别安全函数的准确性。
附图说明
图1为本申请第一实施例提供的安全函数识别方法的基本流程示意图;
图2为本申请第二实施例提供的安全函数识别方法的细化流程示意图;
图3为本申请第三实施例提供的安全函数识别装置的程序模块示意图;
图4为本申请第四实施例提供的电子装置的结构示意图。
具体实施内容
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中无法识别一些自定义的安全函数,往往需要用户手动设置,配置工作繁琐的问题,本申请第一实施例提供了安全函数识别方法。
如下所示为字符查找函数或者字符替换函数的上下文信息的代码示意:
Figure BDA0003432468410000031
如图1为本实施例提供的安全函数识别方法的基本流程图,该安全函数识别方法包括以下的步骤:
步骤101、获取危险数据识别函数的相关数据信息,并将相关数据信息存储到数据集合中。
具体的,本实施例中危险数据识别函数包括字符查找函数、字符替换函数;相关数据信息表示为字符查找函数或者字符替换函数的上下文信息,包括调用函数名称以及危险数据识别函数对应的入参数据。在本实施例中,利用IAST技术,获取请求中执行字符查找函数或者字符替换函数的上下文信息,通过上下文信息解析调用函数名称、字符查找函数或者字符替换函数的函数名称以及对应的入参数据,如上述的函数为例,字符查找函数或者字符替换函数的函数名称为replaceAll,入参数据为"<","&lt;",调用函数名称为cleanXSS,将解析后的字符查找函数或者字符替换函数的函数名称、字符查找函数或者字符替换函数对应的入参数据以及调用函数名称封装成{“cleanXSS”:[“replaceAll”:”"<","&lt;"”]}并存储到对应的数据集合中。当调用函数里面存在多个字符查找函数或者字符替换函数时,对函数名称、入参数据以及调用函数名称封装的数据如{“cleanXSS”:[{“replaceAll”:”"<","&lt;"”},{“replaceAll”:”">","&gt;"”},{“replaceAll”:”"%3C","&lt;"”},{“replaceAll”:”"%3E","&gt;"”},{“replaceAll”:”"\\(","&#40;”},{“replaceAll”:”"\\)","&#41;"”},{“replaceAll”:”"'","&#39;"”},{“replaceAll”:””},{“replaceAll”:”"eval\\((.*)\\)",""”}]}所示。
应当说明的是,IAST技术是指基于请求、代码数据流/控制流来综合分析应用程序的安全风险,通过该技术可以获取到请求、代码数据流/控制流的上下文信息;字符替换是指java中为了防御XSS,SQL注入等漏洞,会将一些危险字符进行转义并替换的操作;字符查找是指java中为了防御命令行注入,任意文件上传等漏洞,会判断参数中是否存在一些危险字符的操作。
在本实施例一种可选的实施方式中,将相关数据信息存储到数据集合中的步骤,包括:将调用函数名称作为键,危险数据识别函数对应的入参数据作为值,关联存储到数据集合中。
具体的,在本实施例中,在解析调用函数名称、字符查找函数或者字符替换函数的函数名称以及对应的入参数据之后,将调用函数名称作为键,字符查找函数或者字符替换函数对应的入参数据作为值,关联成键值对存储到数据集合中,方便技术人员调取相关数据。
应当理解的是,在获取危险数据识别函数的相关数据信息的步骤之前,还包括:利用插桩技术,将数据流跟踪方法以及识别安全函数的组件插入到应用程序中当检测到调用函数发生字符查找或字符替换时,执行获取危险数据识别函数的相关数据信息的步骤。
具体的,插桩技术是指利用java虚拟机技术将数据流跟踪方法以及识别安全函数的组件插入到应用程序中,根据数据流跟踪方法以及识别安全函数的组件,在检测到调用函数发生字符查找或字符替换时,获取危险数据识别函数的相关数据信息。
步骤102、根据安全函数学习算法识别数据集合中的相关数据信息。
具体的,在本实施例中,在字符查找函数或者字符替换函数的函数名称、字符查找函数或者字符替换函数对应的入参数据以及调用函数名称存储到数据集合之后,安全函数学习算法即安全函数学习模块,将字符查找函数或者字符替换函数的函数名称、字符查找函数或者字符替换函数对应的入参数据以及调用函数名称从数据集合中识别出来,用于后续对字符查找函数或者字符替换函数对应的入参数据进行检测,应当说明的是,安全函数学习模块指的是获取到上述危险数据识别函数的信息后,利用机器学习快速识别是否存在安全函数,安全函数指的是java中为了防御一些诸如XSS,SQL注入,命令行注入,任意文件上传等漏洞编写的一些对危险字符识别或者替换的函数。
步骤103、根据安全函数学习算法相应的检测模型,对危险数据识别函数对应的入参数据进行检测。
具体的,在本实施例中,在识别字符查找函数或者字符替换函数的函数名称、字符查找函数或者字符替换函数对应的入参数据以及调用函数名称之后,根据安全函数学习模块生成的检测模型对字符查找函数或者字符替换函数对应的入参数据进行检测,识别调用函数中字符查找函数或者字符替换函数对应的入参数据是否为漏洞安全函数中字符查找函数或者字符替换函数对应的入参数据。
在本实施例一种可选的实施方式中,根据安全函数学习算法相应的检测模型,对危险数据识别函数对应的入参数据进行检测的步骤,包括:将危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对;当入参数据集合中存在危险数据识别函数对应的入参数据时,确定危险数据识别函数存在于入参数据集合中的入参数据为危险数据;当入参数据集合中不存在危险数据识别函数对应的入参数据时,确定危险数据识别函数不存在于入参数据集合中的入参数据为可疑数据。
具体的,在本实施例中,系统会预设一些常见的漏洞安全函数中涉及的字符查找或者字符替换函数的输入参数作为入参数据集合,比如防御XSS漏洞,常见的会将"<"替换为"&lt;",那么基于系统预设的入参数据对字符查找函数或者字符替换函数对应的入参数据进行基础的数据清理并打上对应的数据特征,当入参数据集合中存在字符查找函数或者字符替换函数对应的入参数据时,确定该存在于入参数据集合中的入参数据为危险数据,当入参数据集合中不存在字符查找函数或者字符替换函数对应的入参数据时,确定该不存在于入参数据集合中的入参数据为可疑数据,有效提高了对入参数据的检测效率。
在本实施例一种可选的实施方式中,将危险数据识别函数对应的入参数据与预设的安全函数的入参数据集合进行比对的步骤之后,还包括:当确定危险数据识别函数存在于入参数据集合中的入参数据为危险数据时,对危险数据标识可信标签以及对应的安全函数特征;当确定危险数据识别函数不存在于入参数据集合中的入参数据为可疑数据时,对可疑数据标识可疑标签。
具体的,在本实施例中,在确定字符查找函数或者字符替换函数存在于入参数据集合中的的入参数据为危险数据之后,对字符查找函数或者字符替换函数对应的入参数据中的危险数据标识可信标签,并根据对应的预设漏洞安全函数中入参数据的安全函数特征对该入参数据标识安全函数特征,例如,其中一个入参数据对应于预设漏洞安全函数的入参数据集合中防御XSS漏洞的入参数据,则对该入参数据标识XSS安全函数,当预设漏洞安全函数的入参数据集合中不存在某一入参数据时,则对该入参数据标识可疑标签,有效提高了安全函数学习算法对入参数据的识别效率。
步骤104、根据检测结果确定对应于调用函数名称的调用函数的函数类型。
具体的,本实施例中函数类型包括安全函数、可疑函数,安全函数为识别或处理危险数据的函数,安全函数学习模块根据可信标签识别危险入参数据,根据可疑标签识别可疑入参数据,并根据调用函数中可疑标签出现的次数确定调用函数的函数类型。
在本实施例一种可选的实施方式中,根据检测结果确定对应于调用函数名称的调用函数的函数类型的步骤,包括:当调用函数中可疑标签的出现次数大于预设阈值时,确定调用函数为可疑函数;当调用函数中可疑标签的出现次数小于预设阈值的时,确定调用函数为安全函数。
具体的,在实际应用中,当大量的入参数据中,可疑标签只存在少数入参数据中时,并不能确定该调用函数为可疑函数,例如,在调用函数中存在10个入参数据,其中可信标签出现的次数为9次,可疑标签只出现了一次,此时并不能确定该调用函数为可疑函数,在本实施例中,只有当安全函数学习模块检测到可疑标签在调用函数中出现的次数大于预设阈值时,才确定该调用函数为可疑函数,当调用函数中可疑标签的出现次数小于预设阈值的时,确定调用函数为安全函数,提高识别安全函数的准确性。
在本实施例一种可选的实施方式中,确定调用函数为安全函数的步骤之后,还包括:根据安全函数特征确定调用函数的函数特征;获取不同类型安全函数特征的出现次数;当目标类型安全函数特征的出现次数大于预设第一次数阈值时,确定调用函数的函数特征为目标类型安全函数特征;或,当目标类型安全函数特征的出现次数小于第一次数阈值且大于预设第二次数阈值,以及其它类型安全函数特征的出现次数小于第二次数阈值时,确定函数特征为目标类型安全函数特征。
具体的,在实际应用中,当调用函数中存在多种安全函数特征时,根据人工的识别操作,不仅工作量大,而且操作复杂,使人工识别操作容易出现错误判断,在本实施例中,在调用函数的危险数据中获取不同类型的安全函数特征的出现次数,根据不同类型的安全函数特征的出现次数确定调用函数的函数特征,例如,在调用函数中出现10次安全入参数据,当XSS安全函数的出现次数为8次时,确定该调用函数为XSS安全函数,或者,当XSS安全函数的出现次数为5次以上、8次以下时,并且其它类型的安全函数特征的出现次数都在5次以下,确定该调用函数为XSS安全函数,采用多种算法逻辑,提高识别安全函数的准确性。
在本实施例一种可选的实施方式中,根据不同类型的安全函数特征的出现次数确定调用函数的函数特征步骤之后,还包括:根据安全函数学习算法分析训练数据,并产生推断功能用于映射出新的实例。
具体的,在本实施例中,当调用函数的函数特征不确定时,确定预设算法逻辑中不存在对应于该调用函数中安全函数特征的出现次数的算法逻辑,并根据预设算法逻辑产生推断功能,根据推断结果映射出新的算法逻辑。
在本实施例一种可选的实施方式中,根据检测结果确定对应于调用函数名称的调用函数的函数类型的步骤之后,还包括:在函数类型为可疑函数时,获取可疑函数的手动验证结果;当手动验证结果指示可疑函数为安全函数时,将可疑标签更新为可信标签;在更新后的安全函数经过安全函数学习算法学习之后,将更新后的安全函数添加至安全函数集合中。
具体的,在本实施例中,根据手动验证模块对标识可疑标签的调用函数进行人工的手动验证,并获取手动验证结果,当结果表示该可疑函数为安全函数时,将该调用函数中的可疑标签更新为可信标签,将更新后的安全函数经过安全函数学习算法几轮迭代学习之后,将更新后的安全函数添加至安全函数集合中,进一步的优化安全函数学习算法中的检测模型,达到一个稳定的测试检测模型,应当说明的是,手动验证模块是指在得到学习模块生成的安全函数后,结合人工的二次确认来验证并优化学习模型,以达到更高的准确性。
基于本申请上述实施例的方案,获取危险数据识别函数的相关数据信息,并将相关数据信息存储到数据集合中;根据安全函数学习算法识别数据集合中的相关数据信息;根据安全函数学习算法相应的检测模型,对危险数据识别函数对应的入参数据进行检测;根据检测结果确定对应于调用函数名称的调用函数的函数类型。通过本申请方案的实施,在安全函数学习算法识别到数据集合中危险数据识别函数对应的入参数据时,对危险数据识别函数对应的入参数据进行检查,根据检测结果确定调用函数的函数类型,无需人工干预,使识别过程更加简单方便,降低了成本,提高识别安全函数的准确性。
图2中的方法为本申请第二实施例提供的一种细化的安全函数识别方法,该安全函数识别方法包括:
步骤201、获取危险数据识别函数的调用函数名称以及危险数据识别函数对应的入参数据,并将调用函数名称以及危险数据识别函数对应的入参数据存储到数据集合中。
步骤202、根据安全函数学习算法识别数据集合中的危险数据识别函数对应的入参数据。
步骤203、将危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对。
步骤204、当入参数据集合中不存在危险数据识别函数对应的入参数据时,确定危险数据识别函数不存在于入参数据集合的入参数据为可疑数据。
步骤205、对可疑数据标识可疑标签。
步骤206、当调用函数名称对应的调用函数中可疑标签的出现次数小于预设阈值的时,确定调用函数为安全函数。
具体的,在本实施例中,将危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对,根据比对结果确定字符查找函数或者字符替换函数中对应不存在的入参数据为可疑数据,对可疑数据标识可疑标签,当调用函数中可疑标签的出现次数小于预设阈值时,确定调用函数为安全函数。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
根据本申请方案所提供的安全函数识别方法,获取危险数据识别函数的调用函数名称以及危险数据识别函数对应的入参数据,并将调用函数名称以及危险数据识别函数对应的入参数据存储到数据集合中;根据安全函数学习算法识别数据集合中的危险数据识别函数对应的入参数据;将危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对;当入参数据集合中不存在危险数据识别函数对应的入参数据时,确定危险数据识别函数不存在于入参数据集合的入参数据为可疑数据;对可疑数据标识可疑标签;当调用函数名称对应的调用函数中可疑标签的出现次数小于预设阈值的时,确定调用函数为安全函数。通过本申请方案的实施,危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对,根据可疑数据的可疑标签的出现次数小于预设阈值,确定调用函数为安全函数,无需人工干预,使识别过程更加简单方便,降低了成本,提高识别安全函数的准确性。
图3为本申请第三实施例提供的一种安全函数识别装置,该安全函数识别装置可用于实现前述实施例中的安全函数识别方法。如图3所示,该安全函数识别装置主要包括:
存储模块301,用于获取危险数据识别函数的相关数据信息,并将相关数据信息存储到数据集合中;其中,危险数据识别函数包括字符查找函数、字符替换函数;相关数据信息包括调用函数名称以及危险数据识别函数对应的入参数据;
识别模块302,用于根据安全函数学习算法识别数据集合中的相关数据信息;
检测模块303,用于根据安全函数学习算法相应的检测模型,对危险数据识别函数对应的入参数据进行检测;
确定模块304,用于根据检测结果确定对应于调用函数名称的调用函数的函数类型;其中,函数类型包括安全函数、可疑函数,安全函数为识别或处理危险数据的函数。
在本实施例一种可选的实施方式中,存储模块具体用于:将调用函数名称作为键,危险数据识别函数对应的入参数据作为值,关联存储到数据集合中。
在本实施例一种可选的实施方式中,检测模块具体用于:将危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对;当入参数据集合中存在危险数据识别函数对应的入参数据时,确定危险数据识别函数存在于入参数据集合中的入参数据为危险数据;当入参数据集合中不存在危险数据识别函数对应的入参数据时,确定危险数据识别函数不存在于入参数据集合中的入参数据为可疑数据。
在本实施例一种可选的实施方式中,该安全函数识别装置还包括:标识模块。标识模块用于:当危险数据识别函数存在于入参数据集合中的入参数据为危险数据时,对危险数据识别函数对应的入参数据标识可信标签以及对应的安全函数特征;当危险数据识别函数不存在于入参数据集合中的入参数据为可疑数据时,对危险数据识别函数对应的入参数据标识可疑标签。
在本实施例一种可选的实施方式中,确定模块具体用于:当调用函数中可疑标签的出现次数大于预设阈值时,确定调用函数为可疑函数;当调用函数中可疑标签的出现次数小于预设阈值的时,确定调用函数为安全函数。
在本实施例一种可选的实施方式中,获取模块还用于:获取不同类型安全函数特征的出现次数。确定模块还用于:根据安全函数特征确定调用函数的函数特征;当目标类型安全函数特征的出现次数大于预设第一次数阈值时,确定调用函数的函数特征为目标类型安全函数特征;或,当目标类型安全函数特征的出现次数小于第一次数阈值且大于预设第二次数阈值,以及其它类型安全函数特征的出现次数小于第二次数阈值时,确定函数特征为目标类型安全函数特征。
在本实施例一种可选的实施方式中,该安全函数识别装置还包括:更新模块、添加模块。获取模块还用于:在函数类型为可疑函数时,获取可疑函数的手动验证结果。更新模块用于:当手动验证结果指示可疑函数为安全函数时,将可疑标签更新为可信标签。添加模块用于:在更新后的安全函数经过安全函数学习算法学习之后,将更新后的安全函数添加至安全函数集合中。
应当说明的是,第一、二实施例中的安全函数识别方法均可基于本实施例提供的安全函数识别装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的安全函数识别装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本申请方案所提供的安全函数识别装置,获取危险数据识别函数的相关数据信息,并将相关数据信息存储到数据集合中;根据安全函数学习算法识别数据集合中的相关数据信息;根据安全函数学习算法相应的检测模型,对危险数据识别函数对应的入参数据进行检测;根据检测结果确定对应于调用函数名称的调用函数的函数类型。通过本申请方案的实施,在安全函数学习算法识别到数据集合中危险数据识别函数对应的入参数据时,对危险数据识别函数对应的入参数据进行检查,根据检测结果确定调用函数的函数类型,无需人工干预,使识别过程更加简单方便,降低了成本,提高识别安全函数的准确性。
图4为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的安全函数识别方法。如图4所示,该电子装置主要包括:
存储器401、处理器402、总线403及存储在存储器401上并可在处理器402上运行的计算机程序,存储器401和处理器402通过总线403连接。处理器402执行该计算机程序时,实现前述实施例中的安全函数识别方法。其中,处理器的数量可以是一个或多个。
存储器401可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器401用于存储可执行程序代码,处理器402与存储器401耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图4所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的安全函数识别方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或模块的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的安全函数识别方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种安全函数识别方法,包括:
获取危险数据识别函数的相关数据信息,并将所述相关数据信息存储到数据集合中;其中,危险数据识别函数包括字符查找函数、字符替换函数;所述相关数据信息包括调用函数名称以及所述危险数据识别函数对应的入参数据;
根据安全函数学习算法识别所述数据集合中的所述相关数据信息;
根据所述安全函数学习算法相应的检测模型,对所述危险数据识别函数对应的入参数据进行检测;
根据检测结果确定对应于所述调用函数名称的调用函数的函数类型;其中,所述函数类型包括安全函数、可疑函数,所述安全函数为识别或处理危险数据的函数。
2.根据权利要求1所述的安全函数识别方法,其特征在于,所述将所述相关数据信息存储到数据集合中的步骤,包括:
将所述调用函数名称作为键,所述危险数据识别函数对应的入参数据作为值,关联存储到所述数据集合中。
3.根据权利要求1所述的安全函数识别方法,其特征在于,所述根据所述安全函数学习算法相应的检测模型,对所述危险数据识别函数对应的入参数据进行检测的步骤,包括:
将所述危险数据识别函数对应的入参数据与预设安全函数集合相应的入参数据集合进行比对;
当所述入参数据集合中存在所述危险数据识别函数对应的入参数据时,确定所述危险数据识别函数存在于所述入参数据集合中的入参数据为危险数据;
当所述入参数据集合中不存在所述危险数据识别函数对应的入参数据时,确定所述危险数据识别函数不存在于所述入参数据集合中的入参数据为可疑数据。
4.根据权利要求3所述的安全函数识别方法,其特征在于,所述将所述危险数据识别函数对应的入参数据与预设的安全函数的入参数据集合进行比对的步骤之后,还包括:
当确定所述危险数据识别函数存在于所述入参数据集合中的入参数据为危险数据时,对所述危险数据标识可信标签以及对应的安全函数特征;
当确定所述危险数据识别函数不存在于所述入参数据集合中的入参数据为可疑数据时,对所述可疑数据标识可疑标签。
5.根据权利要求4所述的安全函数识别方法,其特征在于,所述根据检测结果确定对应于所述调用函数名称的调用函数的函数类型的步骤,包括:
当所述调用函数中所述可疑标签的出现次数大于预设阈值时,确定所述调用函数为可疑函数;
当所述调用函数中所述可疑标签的出现次数小于预设阈值的时,确定所述调用函数为安全函数。
6.根据权利要求5所述的安全函数识别方法,其特征在于,所述确定所述调用函数为安全函数的步骤之后,还包括:
获取不同类型所述安全函数特征的出现次数;
根据所述安全函数特征确定所述调用函数的函数特征;
当目标类型所述安全函数特征的出现次数大于预设第一次数阈值时,确定所述调用函数的函数特征为目标类型所述安全函数特征;
或,当目标类型所述安全函数特征的出现次数小于所述第一次数阈值且大于预设第二次数阈值,以及其它类型所述安全函数特征的出现次数小于所述第二次数阈值时,确定所述函数特征为目标类型所述安全函数特征。
7.根据权利要求5所述的安全函数识别方法,其特征在于,所述根据检测结果确定对应于所述调用函数名称的调用函数的函数类型的步骤之后,还包括:
在所述函数类型为所述可疑函数时,获取所述可疑函数的手动验证结果;
当所述手动验证结果指示所述可疑函数为所述安全函数时,将所述可疑标签更新为可信标签;
在更新后的所述安全函数经过所述安全函数学习算法学习之后,将更新后的所述安全函数添加至所述安全函数集合中。
8.一种安全函数检测装置,包括:
存储模块,用于获取危险数据识别函数的相关数据信息,并将所述相关数据信息存储到数据集合中;其中,危险数据识别函数包括字符查找函数、字符替换函数;所述相关数据信息包括调用函数名称以及所述危险数据识别函数对应的入参数据;
识别模块,用于根据安全函数学习算法识别所述数据集合中的所述相关数据信息;
检测模块,用于根据所述安全函数学习算法相应的检测模型,对所述危险数据识别函数对应的入参数据进行检测;
确定模块,用于根据检测结果确定对应于所述调用函数名称的调用函数的函数类型;其中,所述函数类型包括安全函数、可疑函数,所述安全函数为识别或处理危险数据的函数。
9.一种电子装置,包括:存储器、处理器及总线,其特征在于,所述总线用于实现所述存储器、处理器之间的连接通讯;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至7中任意一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任意一项所述方法中的步骤。
CN202111602804.5A 2021-12-24 2021-12-24 一种安全函数识别方法、装置及计算机可读存储介质 Pending CN114417352A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111602804.5A CN114417352A (zh) 2021-12-24 2021-12-24 一种安全函数识别方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111602804.5A CN114417352A (zh) 2021-12-24 2021-12-24 一种安全函数识别方法、装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114417352A true CN114417352A (zh) 2022-04-29

Family

ID=81269562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111602804.5A Pending CN114417352A (zh) 2021-12-24 2021-12-24 一种安全函数识别方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114417352A (zh)

Similar Documents

Publication Publication Date Title
CN109325193B (zh) 基于机器学习的waf正常流量建模方法以及装置
US11163877B2 (en) Method, server, and computer storage medium for identifying virus-containing files
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
CN111222137A (zh) 一种程序分类模型训练方法、程序分类方法及装置
CN110866258A (zh) 快速定位漏洞方法、电子装置及存储介质
KR102516454B1 (ko) Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치
US20220201016A1 (en) Detecting malicious threats via autostart execution point analysis
O'Kane et al. N-gram density based malware detection
KR20160099159A (ko) 악성 코드를 탐지하기 위한 전자 시스템 및 방법
CN113190847A (zh) 一种脚本文件的混淆检测方法、装置、设备及存储介质
CN112817877A (zh) 异常脚本检测方法、装置、计算机设备和存储介质
WO2019235074A1 (ja) 生成方法、生成装置および生成プログラム
CN108509796B (zh) 一种风险性的检测方法及服务器
CN114417352A (zh) 一种安全函数识别方法、装置及计算机可读存储介质
CN115618316A (zh) 指纹碰撞确定方法、装置、存储介质及电子设备
CN112347479B (zh) 恶意软件检测的误报纠正方法、装置、设备和存储介质
CN114936366A (zh) 基于混合分析的恶意软件家族标签更正方法及装置
CN110674501B (zh) 恶意驱动检测方法、装置、设备及介质
CN111625825B (zh) 一种病毒检测方法、装置、设备及存储介质
CN114510717A (zh) 一种elf文件的检测方法、装置、存储介质
CN115695039B (zh) 网络安全漏洞检测系统及方法
CN115695054B (zh) 基于机器学习的waf拦截页面识别的方法、装置及相关组件
CN114329446A (zh) 操作系统威胁检测方法、装置、电子设备及存储介质
CN115664751A (zh) 用户异常操作的识别方法、识别装置和云平台
CN114329467A (zh) 一种内存WebShell检测方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination