CN106156623B - 基于意图的sqlia防御方法 - Google Patents

基于意图的sqlia防御方法 Download PDF

Info

Publication number
CN106156623B
CN106156623B CN201610606127.7A CN201610606127A CN106156623B CN 106156623 B CN106156623 B CN 106156623B CN 201610606127 A CN201610606127 A CN 201610606127A CN 106156623 B CN106156623 B CN 106156623B
Authority
CN
China
Prior art keywords
sql
variable
string
sqlidl
character strings
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.)
Expired - Fee Related
Application number
CN201610606127.7A
Other languages
English (en)
Other versions
CN106156623A (zh
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.)
Jiangxi Normal University
Original Assignee
Jiangxi Normal University
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 Jiangxi Normal University filed Critical Jiangxi Normal University
Priority to CN201610606127.7A priority Critical patent/CN106156623B/zh
Publication of CN106156623A publication Critical patent/CN106156623A/zh
Application granted granted Critical
Publication of CN106156623B publication Critical patent/CN106156623B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

基于意图的SQLIA防御方法,包括SQL操作意图的表示和解析、SQL字符串的静态分析和插桩、SQL操作的拦截与检测三部分。本发明设计了一种意图描述语言SQLIDL,可以准确表示和解析程序的SQL操作意图。首先通过编写SQLIDL程序表示Java EE程序中可能提交的所有SQL操作字符串,生成程序的SQL操作意图集合,然后对程序静态分析自动提取可能违背意图的SQL字符串并对其进行插桩标记,最后在程序运行时对所有SQL操作进行拦截,但是只检测带有标记的SQL字符串,判定其是否属于预定义的意图集合,如不是则报警SQLIA攻击。本发明的设计方案可以实时检测针对Java EE程序的各种SQLIA攻击。

Description

基于意图的SQLIA防御方法
技术领域
本发明涉及一种攻击Java EE程序的防御方法,尤其涉及一种基于意图的针对SQLIA攻击的防御方案,属于WEB应用和计算机安全领域。
背景技术
Java EE平台是三大WEB程序开发平台之一,针对该平台程序的攻击层出不穷。Cenzic历年的应用程序漏洞趋势报告(Application Vulnerability Trends)显示绝大部分WEB程序存在漏洞,而针对注入漏洞的SQL注入攻击(SQL Injection Attack,SQLIA)是对WEB程序最有威胁的攻击之一。SQLIA指攻击者利用WEB程序未对输入数据进行有效检查的漏洞,构造符合SQL语法但违背程序语义的恶意SQL语句,从而执行未经授权的数据库操作。
现有静态防御技术主要有两种:一是利用字符串分析技术直接获取执行数据库操作时可能的SQL操作集合,如果该集合与现有攻击模式不存在交集则可认为WEB程序不存在SQLIA;二是应用污点分析技术跟踪WEB输入,如果存在执行路径使得该输入未经检查并传播到SQL操作语句,则报警可能有SQLIA。但是字符串分析存在精确度较低的问题,而污点分析则存在虚警过多问题。
现有动态防御技术包括:1)动态污点分析。运行时跟踪WEB输入(污点),如果污点随着程序执行传播到SQL操作语句则实时报警;2)对比分析。主要以两次不同输入执行相同程序路径,比较生成的SQL字符串的语法结构,如果结构存在差异表明该程序存在SQLIA;3)基于文法的分析。利用字符串分析技术生成上下文无关文法(CFG)形式表示的SQL字符串集合,将输入标记为CFG的终结符,在程序执行后检查生成的SQL字符串是否满足该CFG,如果不满足则存在SQLIA。
现有防御技术都从SQL字符串的语法分析的角度来判定是否存在SQLIA,无法理解WEB程序设计者的数据库操作意图。本发明提出一种基于意图的SQLIA防御方法,设计了一种描述SQL操作意图的语言SQLIDL(SQL Intent Definition Language),用于描述WEB程序设计者允许用户执行的SQL操作集合,并设计解释程序将SQLIDL程序转换为确定有限自动机(DFA)表示的SQL操作意图集合。为了降低运行时开销,本发明预先应用静态字符串分析提取程序中每个SQL操作的所有可能取值,并生成由DFA表示的字符串值集合的上界,如果一个SQL操作的值集是预定义的SQL操作意图集合的子集,则运行时不需要动态检测该操作,否则需要对提交该SQL操作的方法调用语句进行插桩,即对SQL操作字符串进行标记,运行时提示检测模块对其进行检测。本发明在WEB程序执行时,拦截所有提交给数据库的SQL操作,仅检测带标记的SQL字符串,检测其是否属于预定义的操作意图集合,如不是则报警发现SQLIA攻击。
发明内容
本发明的目的是针对现有技术不足,提出一种基于意图的SQLIA防御方法,以提高Java EE程序抵御外部SQLIA攻击的能力,为达到此目的,本发明采用以下技术方案。
本发明的方法总体架构分为三部分:一是SQL操作意图的表示和解析,包括SQL意图描述语言SQLIDL的文法设计和SQLIDL的意图生成;二是SQL字符串的静态分析和插桩,包括SQL字符串的提取、SQL字符串与SQL操作意图的交集判定、可疑SQL字符串的插桩和标记;三是SQL操作的拦截与检测,包括拦截和检测;
1)SQL操作意图的表示和解析
1.1)本发明所述SQL操作意图描述语言SQLIDL的语法设计描述WEB程序的SQL操作集合和操作对象集合,操作对象包括值对象、列对象、表对象和方法名对象;一个SQLIDL程序包括变量声明语句、变量赋值语句和SQL操作语句,变量分为表变量、列变量、值变量和方法名变量;变量赋值语句将声明的变量赋予常量字符串值或正则表达式表示的字符串值,用于表示WEB程序允许操作哪些表或列,可以根据表名、列名和列值来表示程序的操作意图;表变量表示允许操作的表名,列变量表示允许操作的列名,值变量表示允许读取、修改、添加或删除的列值,方法名变量表示允许调用哪些内置过程和存贮过程;SQL操作语句由关键字、变量和常量构成,SQLIDL的关键字与标准SQL语言的关键字相同,用于表示允许的SQL操作和查询条件等,变量必须预先声明和赋值,常量包括字符串和数字;
1.2)本发明的SQLIDL意图生成用于解释SQLIDL程序,把用户编写的SQLIDL程序解释为确定有限自动机(DFA)表示的SQL操作意图字符串集合;首先通过自顶向下的语法分析方法,将SQLIDL的每一条SQL操作语句转换为由关键字、SQL操作符号、常量串和变量组成的符号序列,然后将序列中的变量替换为变量赋值语句中对相应变量的赋值,该值为常量或正则表达式表示的值集合,即每条SQL操作语句被解释为由常量串和正则表达式组成的符号序列;然后使用自动机的基本操作实现DFA的构建,使用的基本操作包括创建新的自动机,即设置开始状态为接受状态,联结自动机操作,即在一个自动机的接受状态之前增加一个状态,联合自动机操作,即将原自动机的开始状态作为目标自动机的开始状态,原自动机的结束状态作为目标自动机的结束状态,使用上述操作将所有的符号序列转换为确定的字符串有限自动机;
2)SQL字符串的静态分析和插桩
2.1)本发明的SQL字符串提取首先根据预先配置的方法模板提取程序中所有相应SQL操作的方法调用语句并生成待分析语句集合,模板中指明方法的返回值类型、参数数量、参数类型、方法名以及方法调用类型;然后对每条语句提交的SQL字符串应用静态字符串分析,近似估计该串在程序中不同位置的取值,并生成一个用正则文法表示的字符串集合包含该串在程序中的所有可能取值;
2.2)本发明的SQL字符串与SQL意图的交集判定应用自动机的交集计算方法;令正则文法表示的字符串集合为语言LN,预定义的DFA表示的SQL操作集合对应的语言为LM,如果LM的补集与LN不相交,即该SQL字符串的所有取值都属于预定义的操作意图集合,则该字符串不需要在运行时进行检测;否则它是需要检测的可疑SQL字符串;
2.3)本发明的可疑SQL字符串的插桩和标记对可疑SQL字符串变量所在方法调用语句进行插桩,对可能提交给数据库的SQL字符串变量加上标记;本发明的插桩过程在Jimple中间代码上完成,无需修改程序逻辑和源代码,仅对可疑变量的字符串的头部增加一个”—BADSQL--”标记,用于检测模块识别可疑SQL字符串;
3) SQL操作的拦截与检测
3.1)本发明的拦截模块是一个基于JDBC驱动的代理,可以跟踪任何使用JDBC的程序产生的SQL操作,并进行拦截和转发,在WEB程序部署时必须将数据库连接配置文件中的驱动程序改为本发明的拦截模块;
3.2)本发明的检测模块首先分析拦截到的SQL字符串是否包含”—BADSQL—“标记,对于不包含标记的字符串,直接转发并提交数据库;否则,在去除SQL字符串中的标记后,应用自动机判定方法检测该字符串是否属于预定义意图对应的语言L(M),如是则转发并提交数据库,否则不转发并报警发现SQLIA攻击;
本发明的有益效果是设计一种基于意图的SQLIA防御方法,发明了一种SQL操作意图描述语言SQLIDL,将程序允许的SQL操作意图解释为DFA表示的SQL操作字符串集合,并结合字符串分析技术和自动机的交集判定方法提取可疑的SQL字符串进行插桩和标记,避免运行时检测所有SQL操作,在运行时动态截取提交数据库的所有SQL操作,对于有标记的SQL操作字符串,应用自动机判定方法检测其是否属于DFA表示的预定义意图的SQL操作字符串集合,若不属于则违背预定义意图,即为SQLIA攻击。
本发明的设计方案可以实时防御针对Java EE程序的SQLIA攻击。
附图说明
图1为本发明的实施方案的总体结构和处理流程;
图2为实施方案中目前设计实现的SQLIDL语言的具体文法;
图3为Java EE程序示例片段1,判定输入的用户名和密码是否与数据库中的数据匹配,用于举例说明SQLIDL如何表示SQL操作意图;
图4为Java EE程序示例片段2,该片段相比图3更为复杂一些,用于说明SQLIDL可以表示较为复杂的SQL操作意图;
图5为SQLIDL程序,表示图3和图4程序的SQL操作意图;
图6为表示图3和图4程序SQL操作意图的确定有限自动机DFA,由解释器对图5的SQLIDL程序解析生成;
图7为对应图3程序的Jimple代码;
图8为对图7的Jimple代码插桩后的Jimple代码;
图9为SQLIA攻击发生时的效果截图。
具体实施方式
本发明的设计方案的实施需要完成以下几项工作,一是根据SQLIDL语言的文法开发相应解释器程序,二是设计SQL方法模板并实现静态字符串分析,三是基于Jimple代码实现对可疑字符串变量的插桩,四是基于已有JDBC代理程序实现拦截和检测,五是基于已有自动机算法库实现自动机的交集判定。
图1给出本发明的实施方案的总体结构和处理流程。
首先,基于Java语言开发SQLIDL解释器程序,负责将表示SQL操作意图的SQLIDL程序解释为DFA表示的意图集合。图2给出当前SQLIDL语言的具体文法,支持插入、删除、查询和修改数据操作,表变量、列变量、值变量和方法名变量可以使用标准的正则表达式表示。图3和图4给出了两个Java EE程序片段,图5的SQLIDL程序表示这两个程序片段的SQL操作意图,图6的自动机表示由图5的SQLIDL程序解释生成。
其次需要对具体的WEB应用编写SQLIDL程序,表示SQL操作意图集合。针对图3和图4程序片段,图5的SQLIDL程序使用值变量v1表示应用程序的userid变量,并使用正则式“[0-9]+”指明userid必须是数字串,值变量v2表示程序中的password变量,并使用正则式”/^[A-Za-z0-9\_]{6,22}$/”表示password为长度6-22个字符的串,且只能是字母和数字以及下划线,对表变量t1的赋值指明图3程序只对表employee操作。图3程序的第3行SQL语句在运行时,如果用户输入的userid或password不符合SQLIDL程序中给出的正则式,则会报警。
静态SQL操作抽取需要预先配置方法模板,对于图3和图4程序,可设置模板的方法名为executeQuery,参数个数为1,第1个参数即为SQL字符串。静态分析模块需要识别出图3和图4的第3行语句为有关方法,图1将这两条方法调用语句称为热点。基于开源Java字符串分析库Java String Analysis,对语句中的实参query进行静态字符串分析,使用正则表达式近似估计两个query变量在程序中的所有可能取值。基于开源自动机算法库dk.brics.automaton,判定query变量的所有可能取值是否都能用图6自动机表示的语言描述,如果不是则将query变量所在语句加入待插桩方法集。
可疑SQL字符串插桩模块基于开源Java编译框架SOOT实现,首先把WEB应用的字节码转化为Jimple代码,图7给出对应图3程序的Jimple代码,Label10为变量赋值部分包括变量的申明和实例化,Label11为方法调用部分。然后,对待插桩方法集的所有方法调用语句中的SQL字符串变量进行插桩,添加”—BADSQL--”标记,实现方案基于SOOT框架的PackManager.v().getPack("jtp").add(...)接口实现插桩,利用字符串相加的方法生成插桩代码块,图8给出对图7的Jimple代码插桩后的Jimple代码,其中省去了与插桩无关的操作,第2-3行是变量声明和实例化,第4-7行为针对图7代码的插桩结果,即在query变量的头部添加了”—BADSQL--”,图8的第7行对应图7的第6行。对插桩后的Jimple代码重新编译即可生成插桩后的WEB应用。
拦截和检测模块基于已有的JDBC代理程序实现,方法的当前实现基于开源JDBC驱动Ps6spy,增加字符串标记检测和删除功能,并调用开源自动机方法库dk.brics.automaton,判定可疑字符串是否属于DFA表示的SQL操作意图集合,如是则提交数据库,否则报警。
本发明的实施最终以Java的JAR包方式实现,包括两个组件。一是根据用户编写的SQLIDL程序和预先配置的方法模板,对WEB应用进行静态分析,生成待插桩方法集合。二是对所有待插桩方法的可疑SQL字符串变量进行插桩,并编译生成插桩后的新应用,新的应用与原有应用在功能上完全一致。但是在发生SQLIA攻击时,该SQL字符串会被拦截并显示在控制台,图9给出了方案实施时的效果图。

Claims (1)

1.一种基于意图的SQLIA防御方法,其特征是:所述方法包括SQL操作意图的表示和解析、SQL字符串的静态分析和插桩、SQL操作的拦截与检测三部分;所述SQL操作意图的表示和解析包括SQL意图描述语言SQLIDL的语法设计和SQLIDL的意图生成器;
所述SQL操作意图描述语言SQLIDL的语法设计描述WEB程序的SQL操作集合和操作对象集合,操作对象包括值对象、列对象、表对象和方法名对象;一个SQLIDL程序包括变量声明语句、变量赋值语句和SQL操作语句,变量分为表变量、列变量、值变量和方法名变量;变量赋值语句将声明的变量赋予常量字符串值或正则表达式表示的字符串值,用于表示WEB程序允许操作哪些表或列;表变量表示允许操作的表名,列变量表示允许操作的列名,值变量表示允许读取、修改、添加或删除的列值,方法名变量表示允许调用哪些内置过程和存贮过程;SQL操作语句由关键字、变量和常量构成,SQLIDL的关键字与标准SQL语言的关键字相同,用于表示允许的SQL操作和查询条件等,变量必须预先声明和赋值,常量包括字符串和数字;
所述SQLIDL意图生成器用于解释SQLIDL程序,把用户编写的SQLIDL程序解释为确定有限自动机DFA表示的SQL操作意图字符串集合;首先通过自顶向下的语法分析方法,将SQLIDL的每一条SQL操作语句转换为由关键字、SQL操作符号、常量串和变量组成的符号序列,然后将序列中的变量替换为变量赋值语句中对相应变量的赋值,该值为常量或正则表达式表示的值集合,即每条SQL操作语句被解释为由常量串和正则表达式组成的符号序列;然后使用自动机的基本操作实现DFA的构建,使用的基本操作包括创建新的自动机,即设置开始状态为接受状态,联结自动机操作,即在一个自动机的接受状态之前增加一个状态,联合自动机操作,即将原自动机的开始状态作为目标自动机的开始状态,原自动机的结束状态作为目标自动机的结束状态,使用上述操作将所有的符号序列转换为确定的字符串有限自动机;
所述SQL字符串的静态分析和插桩包括SQL字符串的提取、SQL字符串与SQL意图交集判定、可疑SQL字符串的插桩和标记;
所述SQL字符串提取首先根据预先配置的方法模板提取程序中所有相应SQL操作的方法调用语句,模板中指明方法的返回值类型、参数数量、参数类型、方法名以及方法调用类型;然后对每条语句提交的SQL字符串应用静态字符串分析,近似估计该串在程序中不同位置的取值,并生成一个用正则文法表示的字符串集合包含该串在程序中的所有取值;
所述SQL字符串与SQL意图的交集判定应用自动机的交集计算方法;令正则文法表示的字符串集合为语言LN,预定义的DFA表示的SQL操作集合对应的语言为LM,如果LM的补集与LN不相交,即该SQL字符串的所有取值都属于预定义的操作意图集合,则该字符串不需要在运行时进行检测;否则它是需要检测的可疑SQL字符串;
所述可疑SQL字符串的插桩和标记基于Jimple代码对可疑SQL字符串变量所在方法调用语句进行插桩,对提交给数据库的可疑SQL字符串变量加上标记,无需修改程序逻辑和源代码,仅对可疑变量的字符串的头部增加一个”—BADSQL--”标记;
所述SQL操作的拦截与检测包括拦截模块与检测模块;
所述拦截模块基于JDBC驱动跟踪、拦截和转发任何使用JDBC的程序产生的SQL操作,在WEB程序部署时必须将数据库连接配置文件中的驱动程序设置为本发明的拦截模块;
所述检测模块首先分析拦截到的SQL字符串是否包含”—BADSQL—“标记,对于不包含标记的字符串,直接转发并提交数据库;否则,在去除SQL字符串中的标记后,应用自动机判定方法检测该字符串是否属于预定义意图集合对应的语言LM,如是则转发并提交数据库,否则不转发并报警发现SQLIA攻击。
CN201610606127.7A 2016-07-29 2016-07-29 基于意图的sqlia防御方法 Expired - Fee Related CN106156623B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610606127.7A CN106156623B (zh) 2016-07-29 2016-07-29 基于意图的sqlia防御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610606127.7A CN106156623B (zh) 2016-07-29 2016-07-29 基于意图的sqlia防御方法

Publications (2)

Publication Number Publication Date
CN106156623A CN106156623A (zh) 2016-11-23
CN106156623B true CN106156623B (zh) 2018-10-30

Family

ID=58060988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610606127.7A Expired - Fee Related CN106156623B (zh) 2016-07-29 2016-07-29 基于意图的sqlia防御方法

Country Status (1)

Country Link
CN (1) CN106156623B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228068B (zh) * 2016-07-21 2019-03-05 江西师范大学 基于混合特征的Android恶意代码检测方法
CN108319620A (zh) * 2017-01-18 2018-07-24 北京京东尚科信息技术有限公司 一种防止数据库索引错乱的方法、系统、装置及存储介质
CN108694172B (zh) * 2017-04-05 2021-12-31 北京京东尚科信息技术有限公司 信息输出方法和装置
CN107222494A (zh) * 2017-06-28 2017-09-29 上海红阵信息科技有限公司 一种sql注入攻击防御组件及方法
CN109753513A (zh) * 2018-12-19 2019-05-14 国网新疆电力有限公司电力科学研究院 一种基于正则表达式匹配的输变配台帐核查方法及系统
US11275840B2 (en) * 2019-07-29 2022-03-15 Sap Se Management of taint information attached to strings
CN110647749A (zh) * 2019-09-20 2020-01-03 湖南大学 一种二阶sql注入攻击防御的方法
CN111046396B (zh) * 2020-03-13 2020-07-17 深圳开源互联网安全技术有限公司 web应用测试数据流跟踪方法及系统
CN111966718B (zh) * 2020-09-09 2024-03-15 支付宝(杭州)信息技术有限公司 用于应用系统的数据传播追踪的系统及方法
CN113901449B (zh) * 2021-09-07 2023-08-15 燕山大学 基于静态和动态执行的二阶sql注入漏洞的防御和检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833270A (zh) * 2012-09-18 2012-12-19 山石网科通信技术(北京)有限公司 Sql注入攻击的检测方法、装置和具有该装置的防火墙
CN103744802A (zh) * 2013-12-20 2014-04-23 北京奇虎科技有限公司 Sql注入攻击的识别方法及装置
CN104123497A (zh) * 2014-07-04 2014-10-29 北京神州绿盟信息安全科技股份有限公司 一种防御sql注入的方法、装置及系统
CN105704146A (zh) * 2016-03-18 2016-06-22 四川长虹电器股份有限公司 Sql防注入的系统与方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465978C (zh) * 2005-11-16 2009-03-04 白杰 被病毒程序破坏的数据恢复方法、装置及病毒清除方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833270A (zh) * 2012-09-18 2012-12-19 山石网科通信技术(北京)有限公司 Sql注入攻击的检测方法、装置和具有该装置的防火墙
CN103744802A (zh) * 2013-12-20 2014-04-23 北京奇虎科技有限公司 Sql注入攻击的识别方法及装置
CN104123497A (zh) * 2014-07-04 2014-10-29 北京神州绿盟信息安全科技股份有限公司 一种防御sql注入的方法、装置及系统
CN105704146A (zh) * 2016-03-18 2016-06-22 四川长虹电器股份有限公司 Sql防注入的系统与方法

Also Published As

Publication number Publication date
CN106156623A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106156623B (zh) 基于意图的sqlia防御方法
Momeni et al. Machine learning model for smart contracts security analysis
Howar et al. Active automata learning in practice: an annotated bibliography of the years 2011 to 2016
Yu et al. Automata-based symbolic string analysis for vulnerability detection
Rawat et al. SQL injection attack Detection using SVM
CN104765687B (zh) 基于对象跟踪和污点分析的j2ee程序漏洞检测方法
Chen et al. State of the art: Dynamic symbolic execution for automated test generation
Abdulla et al. All for the Price of Few: (Parameterized Verification through View Abstraction)
Lam et al. Securing web applications with static and dynamic information flow tracking
Bisht et al. Waptec: whitebox analysis of web applications for parameter tampering exploit construction
Ko Execution Monitoring of security-critical programs in a distributed system: a specification-based approach
Arceri et al. Analyzing dynamic code: a sound abstract interpreter for evil eval
Liu et al. Revealer: Detecting and exploiting regular expression denial-of-service vulnerabilities
CN113742205B (zh) 一种基于人机协同的代码漏洞智能检测方法
Reger Automata based monitoring and mining of execution traces
Qu et al. Design of automatic vulnerability detection system for Web application program
Wang et al. More anti-chain based refinement checking
Livshits et al. SecuriFly: Runtime protection and recovery from Web application vulnerabilities
Poorhadi et al. Analysing the impact of security attacks on safety using SysML and event-B
Meredith et al. Efficient parametric runtime verification with deterministic string rewriting
Balakrishnan et al. Refining the control structure of loops using static analysis
Zhang et al. Correct-by-construction implementation of runtime monitors using stepwise refinement
Zheng et al. Research and implementation of web application system vulnerability location technology
Andrijasa et al. Towards Automatic Exploit Generation for Identifying Re-Entrancy Attacks on Cross-Contract
Rodrigues et al. Towards a structured specification of coding conventions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181030

Termination date: 20200729

CF01 Termination of patent right due to non-payment of annual fee