CN109255240B - 一种漏洞处理方法和装置 - Google Patents
一种漏洞处理方法和装置 Download PDFInfo
- Publication number
- CN109255240B CN109255240B CN201810792461.5A CN201810792461A CN109255240B CN 109255240 B CN109255240 B CN 109255240B CN 201810792461 A CN201810792461 A CN 201810792461A CN 109255240 B CN109255240 B CN 109255240B
- Authority
- CN
- China
- Prior art keywords
- target program
- overflow
- input data
- vulnerability
- malformed
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种漏洞处理方法和装置,涉及网络安全技术领域,该方法包括:依据目标程序的输入类型,确定测试工具对应的测试参数;依据测试参数,调用测试工具对目标程序进行模糊测试,生成异常日志文件夹;依据异常日志文件夹确定缓冲区溢出漏洞,以及针对缓冲区溢出漏洞构造目标程序对应的畸形输入数据;依据畸形输入数据对应的溢出结果,获取目标程序的关键指令地址;依据关键指令地址,生成缓冲区溢出漏洞对应的填充数据Shellcode,其中,Shellcode用于利用缓冲区溢出漏洞进行业务处理。本发明实施例可以依据异常日志文件夹确定出缓冲区溢出漏洞,提高漏洞挖掘效率。
Description
技术领域
本发明涉及网络安全技术领域,特别是涉及一种漏洞处理方法和一种漏洞处理装置。
背景技术
随着网络技术的快速发展,网络普及率的快速提高,网络安全问题日益突出。
其中,程序漏洞的挖掘是网络安全的核心之一,也是最根本问题的所在。目前,主要是通过人工分析与模糊测试工具(Fuzz)相结合放入方式进行漏洞挖掘。具体的,在通过Fuzz工具进行模糊测试之前,需要用户手动配置Fuzz参数,使得Fuzz工具能够依据配置的Fuzz参数对指定程序进行模糊测试。该Fuzz工具在检测到指定程序发生异常时,可以针对该指定程序发生的异常生成对应的异常程序日志,使得用户可以通过分析该异常程序日志来确定出指定程序的漏洞对应的输入数据溢出点。例如,用户根据Fuzz工具生成的异常程序日志,采用人工方式分析指定程序的每一条指令,确定疑似可疑漏洞对应的输入数据溢出点,随后通过调试器反复调试指定程序,以检验该输入数据溢出点是否是该指定程序的漏洞位置。可见,现有技术需要用户一条一条地字形分析指定程序的指令,以确定出程序的漏洞位置,即需要大量人力来查找程序漏洞,影响了漏洞挖掘效率。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种漏洞处理方法和相应的一种漏洞处理装置。
为了解决上述问题,本发明实施例公开了一种漏洞处理方法,包括:
依据目标程序的输入类型,确定测试工具对应的测试参数;
依据所述测试参数,调用所述测试工具对所述目标程序进行模糊测试,生成异常日志文件夹;
依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据;
依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址;
依据所述关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,其中,所述Shellcode用于利用所述缓冲区溢出漏洞进行业务处理。
可选地,所述依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据,包括:对所述异常日志文件夹进行监测,确定所述目标程序的程序漏洞;依据所述异常日志文件夹中的异常信息,判断所述程序漏洞是否是缓冲区溢出漏洞;若所述程序漏洞是缓冲区溢出漏洞,则针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
可选地,还包括:依据所述畸形输入数据执行所述目标程序,得到溢出结果。其中,所述依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址,包括:判断所述溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配;若所述溢出结果与所述特殊数据不匹配,则采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,以及,依据重新构造的畸形输入数据执行所述目标程序,直到得到的溢出结果与构造的畸形输入数据中的特殊数据相匹配;在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址。
可选地,在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址,包括:
在所述溢出结果与所述特殊数据相匹配相匹配时,调用程序分析工具;
通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。
可选地,所述依据目标程序的输入类型,确定测试工具对应的测试参数,包括:
获取待测试的目标程序对应的输入类型,其中,所述输入类型包括文件输入类型或命令行输入类型;
基于所述文件输入类型或命令行输入类型,确定测试工具对应的测试参数。
可选地,所述生成所述缓冲区溢出漏洞对应的填充数据Shellcode之后,还包括:在所述目标程序运行过程中,依据所述填充数据Shellcode,生成所述缓存区溢出漏洞对应的漏洞利用结果。
相应的,本发明实施例还公开了一种漏洞处理装置,包括:
测试参数确定模块,用于依据目标程序的输入类型,确定测试工具对应的测试参数;
模糊测试模块,用于依据所述测试参数,调用所述测试工具对所述目标程序进行模糊测试,生成异常日志文件夹;
畸形输入数据构造模块,用于依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据;
指令地址获取模块,用于依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址;
填充数据生成模块,用于依据所述关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,其中,所述Shellcode用于利用所述缓冲区溢出漏洞进行业务处理。
可选地,所述畸形输入数据构造模块包括:
监测子模块,用于对所述异常日志文件夹进行监测,确定所述目标程序的程序漏洞;
判断子模块,用于依据所述异常日志文件夹中的异常信息,判断所述程序漏洞是否是缓冲区溢出漏洞;
畸形输入数据构造子模块,用于若所述程序漏洞是缓冲区溢出漏洞,则针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
可选地,漏洞处理装置还包括:
目标程序执行模块,用于依据所述畸形输入数据执行所述目标程序,得到溢出结果;
漏洞利用结果生成模块,用于在所述目标程序运行过程中,依据所述填充数据Shellcode,生成所述缓存区溢出漏洞对应的漏洞利用结果;
其中,所述指令地址获取模块包括溢出结果判断子模块和指令地址获取子模块;
所述溢出结果判断子模块,用于判断所述溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配;若所述溢出结果与所述特殊数据不匹配,则触发所述畸形输入数据构造模块采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,以及,触发所述目标程序执行模块依据重新构造的畸形输入数据执行所述目标程序,直到得到的溢出结果与构造的畸形输入数据中的特殊数据相匹配;
所述指令地址获取子模块,用于在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址。
可选地,所述测试参数确定模块包括输入类型获取子模块和测试参数确定子模块。所述输入类型获取子模块,用于获取待测试的目标程序对应的输入类型,其中,所述输入类型包括文件输入类型或命令行输入类型;所述测试参数确定子模块,用于基于所述文件输入类型或命令行输入类型,确定测试工具对应的测试参数;
所述指令地址获取子模块包括:工具调用单元和静态分析单元;所述工具调用单元,用于在所述溢出结果与所述特殊数据相匹配相匹配时,调用程序分析工具;所述静态分析单元,用于通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。
本发明实施例包括以下优点:
本发明实施例可以依据目标程序的输入类型,确定测试工具对应的测试参数,避免人工配置参数的麻烦,从而提高测试参数的配置效率;随后可依据确定出的测试参数,调用测试工具进行模糊测试,生成异常日志文件夹,并可依据该异常日志文件夹确定出缓冲区溢出漏洞,以及可针对该缓冲区溢出漏洞构造相应的畸形输入数据,从而可以基于畸形输入数据对应的溢出结果确定出溢出点,无需人工分析异常日志文件,节约人力成本,提高漏洞挖掘效率。
此外,本发明实施例在获取目标程序的关键指令地址后,可基于该关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,进而可以基于该填充数据Shellcode利用缓冲区溢出漏洞进行业务处理,提高漏洞利用效率。
附图说明
图1是本发明的一种漏洞处理方法实施例的步骤流程图;
图2是本发明的一种漏洞处理装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种漏洞处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,依据目标程序的输入类型,确定测试工具对应的测试参数。
本发明实施例中,目标程序可以包括被挖掘漏洞的程序,如可以是被挖掘漏洞的应用程序。在目标程序启动后,可以获取该目标程序对应的输入类型,以基于该目标程序对应的输入类型自动配置测试工具对应的测试参数,从而避免人工配置参数的麻烦,提高测试参数的配置效率。
在本发明的一个可选实施例中,上述步骤101可以包括如下子步骤:
子步骤1011,获取待测试的目标程序对应的输入类型,其中,所述输入类型包括文件输入类型或命令行输入类型。
具体而言,在目标程序启动后,可以将该目标程序作为本申请实施例中待检测的目标应用程序,随后可以获取待测试的目标程序对应的输入类型,如在待测试的目标程序需要读取文件时,其对应的输入类型为文件输入类型,即待测试的目标程序为文件型程序;又如,在待测试的目标程序是基于
磁盘操作***(Disk Operating System,DOS)窗口的无界面程序时,其对应的输入类型为命令行输入类型,即待测试的目标程序为命令行程序等等。
子步骤1012,基于所述文件输入类型或命令行输入类型,确定测试工具对应的测试参数。
具体的,本发明实施例在确定待测试的目标程序对应的输入类型后,可以根据该输入类型对测试工具对应的测试参数进行配置,以便测试工具可以采用其配置的测试参数进行模糊测试(Fuzzing)。例如,在获取到的输入类型为文件输入类型时,即在待测试的目标程序为文件型程序时,可以针对该文件型程序,可以基于文件输入类型自动配置测试工具对应的第一测试参数,使得测试工具可以依据配置好的第一测试参数对文件程序进行模糊测试;又如,在获取到的输入类型为命令行输入类型时,即在待测试的目标程序为文件型程序时,可以针对该命令行程序,可以基于命令行输入类型自动配置测试工具对应的第二测试参数,使得测试工具可以依据配置好的第二测试参数对命令行程序进行模糊测试,等等。可见,本发明实施例可以根据目标程序对应的输入类型的不同,对测试工具对应的测试参数进行配置,使得测试工具可以采用不同的测试参数对不同输入类型的目标程序进行模糊测试,从而提高漏洞处理效率。
步骤102,依据所述测试参数,调用所述测试工具对所述目标程序进行模糊测试,生成异常日志文件夹。
具体而言,本发明实施例在确定测试工具对应的测试参数后,可以基于该测试参数,调用测试工具对待测试的目标应用程序进行模糊测试,如调用模糊测试工具AFL(American Fuzzy Lop)对目标程序进行模糊测试等,生成该目标程序对应的异常日志文件夹。其中,异常日志文件夹可以包含一个异常时的输入样例信息和目标程序执行后的异常信息,如段错误(Segmentation Fault)信息等,本发明实施例对此不作限制。
需要说明的是,AFL是一种高级的模糊测试工具,可以用于测试程序安全性。.当需要测试的程序有源码时,AFL可以通过对源码重新编译时插桩(***分析代码)的方法来探测程序内部的执行路径,具有低性能消耗高效的fuzzing策略和tricks最小化技巧,通过简单的配置即可处理复杂的程序.当然,AFL也可对没有源码的程序进行模糊测试,如可以基于模拟处理器的自由软件Qeum的支持,对没有源码的可执行程序进行处理等。
步骤103,依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
本发明实施例可以对异常日志文件进行监测,如定时监控异常日志目录,以监测测试工具生成的异常日志文件,并且可在监测到异常日志文件时,可以基于该异常日志文件夹确定目标程序出现程序漏洞,以及可判断出该程序漏洞是否是缓存区溢出漏洞。若目标程序中出现的程序漏洞为缓存区溢出漏洞,则可针对该缓冲区溢出漏洞,构造目标程序对应的畸形输入数据,以基于构造的畸形输入数据确定出该缓存区溢出漏洞的溢出点。其中,异常日志目录可以包含有一个或多个异常日志文件夹的文件夹信息,如可以包含有一个或多个文件夹的生成信息、文件名信息等,本发明实施例对此不作限制。
在本发明的一个可选实施例中,上述步骤103可以包括如下子步骤:
子步骤1031,对所述异常日志文件夹进行监测,确定所述目标程序的程序漏洞;
在具体实现中,可以对测试工具产生的异常日志文件进行定时监测,以确定是否有异常日志文件生成。若有异常日志文件生成,则可以确定目标程序存在程序漏洞,然后执行子步骤103。
子步骤1032,依据所述异常日志文件夹中的异常信息,判断所述程序漏洞是否是缓冲区溢出漏洞。
本发明实施例中,可以通过对异常日志文件夹中所包含的异常信息进行分析,确定目标程序所存在的程序漏洞是否是缓冲区溢出漏洞。具体的,可以从日志日志文件夹中提取该目标程序对应的异常信息,随后可以基于提取到的异常信息判断该目标程序中所存在的程序漏洞是否是缓冲区溢出漏洞。若目标程序中所存在的程序漏洞为缓冲区溢出漏洞,则执行子步骤1033,以基于构造的畸形输入数据确定出该缓冲区溢出漏洞对应的溢出点。可选的,当目标程序中所存在的程序漏洞不是缓冲区溢出漏洞时,可以返回执行调用测试工具对所述目标程序进行模糊测试的步骤,以继续对目标程序进行模糊测试。
子步骤1033,若所述程序漏洞是缓冲区溢出漏洞,则针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
具体的,本发明实施例在确定出目标程序中存在缓冲区溢出漏洞后,可以针对该缓冲区溢出漏洞,基于异常日志文件夹中的异常信息,利用预先设定的构造算法,如二分查找算法等,构造该目标程序对应的畸形输入数据,随后可依据构造的畸形输入数据执行目标程序,得到该畸形输入数据对应的溢出结果。
可选地,本发明实施例中的漏洞处理方法还可以包括:依据所述畸形输入数据执行所述目标程序,得到溢出结果。具体而言,本发明实施例在构造畸形输入数据后,可以将该畸形输入数据输入到目标程序中,以触发目标程序依据该畸形输入数据运行,得到该目标程序的输出结果;且在该输出结果为输出异常结果时,可以将该输出结果确定为畸形输入数据对应的溢出结果,然后执行步骤104。
步骤104,依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址。
本发明实施例中,可以通过判断畸形输入数据对应的溢出结果是否刚好覆盖了溢出点,以确定是否能够基于当前构造的畸形输入数据的数据长度和目标程序中的一个关键指令地址来构造填充数据Shellcode。具体而言,当畸形输入数据对应的溢出结果刚好覆盖了溢出点,即在溢出结果刚好覆盖了缓冲区溢出漏洞对应的返回地址Ret时,可以获取目标程序中的任意一个关键指令地址,如获取该目标程序中的一个跳转指令对应的栈指针寄存器(Extended Stack Pointer,ESP)地址,以根据ESP地址构造Shellcode。其中,Shellcode可以包括获取到的ESP地址所指向一段程序代码等,本发明实施例对此不作限制。
可选地,上述步骤104具体可以包括:判断所述溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配;若所述溢出结果与所述特殊数据不匹配,则采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,以及,依据重新构造的畸形输入数据执行所述目标程序,直到得到的溢出结果与构造的畸形输入数据中的特殊数据相匹配;在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址。具体的,可以利用预设的二分查找算法,基于目标程序的输入类型构造该目标程序对应的畸形输入数据,且构造的畸形输入数据可以包含有特殊数据,如构造特有的畸形输入数据,该畸形输入数据的尾部为特殊数据,以及该特殊数据可以记为X。另外,可以通过预先设置的程序调试工具,基于构造的畸形输入数据执行目标程序,得到目标程序的输出结果。若执行目标程序崩毁,即在目标程序的输出结果包含畸形输入数据对应的溢出结果时,则可以通过判断该溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配,如通过判断溢出结果中所包含的网络协议(Internet Protocol,IP)地址的数值是否与构造的畸形输入数据中的特殊数据X相等,确定该溢出结果所包含的IP地址是否刚好覆盖缓冲区溢出漏洞对应的返回地址Ret。当溢出结果与畸形输入数据中所包含的特殊数据不匹配时,如在IP地址的数值与特殊数据X不相等时,可以确定当前构造的畸形输入数据对应的溢出结果所包含的IP地址不能刚好覆盖缓冲区溢出漏洞对应的返回地址Ret,随后可以利用预设的二分查找算法,重新构造畸形输入数据,从而提高畸形输入数据的构造效率,并可通过程序调试工具,基于重新构造的畸形输入数据执行目标数据,得到重新构造的畸形输入数据对应的溢出结果,即得到新的溢出结果;然后可通过判断新的溢出结果是否与重新构造的畸形输入数据中所包含的特殊数据相匹配,以确定是否需要继续重新构造畸形输入数据,直到得到的溢出结果所包含的IP地址刚好覆盖缓冲区溢出漏洞对应的返回地址Ret。当溢出结果与所述畸形输入数据中所包含的特殊数据相匹配时,如在IP地址的数值与特殊数据X相等时,可以确定当前构造的畸形输入数据对应的溢出结果所包含的IP地址刚好覆盖缓冲区溢出漏洞对应的返回地址Ret,随后可以通过预先设置的程序分析工具获取目标程序中的一处跳转指令对应的ESP地址,并可将获取到的ESP地址确定为该缓冲区溢出漏洞对应的关键指令地址,以依据该ESP地址构造利用该缓冲区溢出漏洞进行业务处理的填充数据Shellcode。
在本发明的一个可选实施例中,在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址,具体可以包括:在所述溢出结果与所述特殊数据相匹配时,调用程序分析工具;通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。其中,程序分析工具可以是一个可对程序进行静态分析并找出关键指令地址的开源工具,如可以是一个可对预安装环境(Preinstall Environment,PE)程序进行静态分析并找关键指令地址的工具Ropper。
例如,在程序调试工具GDB依据构造的畸形输入数据执行目标程序后,并且可以通过GDB对溢出结果进行显示,使得用户可以通过该GDB查看溢出结果,如可以查看GDB中显示的IP地址是否等于特殊数据X。如果GDB中显示的IP地址等于特殊数据X,则可以确定溢出结果所包含的IP地址刚好覆盖返回地址Ret;如果GDB中显示的IP地址小于特殊数据X,则可以确定畸形输入数据过长,随后可基于预先设定的二分查找算法,取当前返回地址Ret值加上畸形输入数据的长度后除2为起点,跳转到步骤101或步骤102继续循环执行,直到溢出结果中的IP地址等于特殊数据X。当溢出结果中的IP地址等于特殊数据X时,调用工具Ropper,从而可以通过调用的IP地址获取本程序的一处跳转指令JMP ESP地址,并可将获取到的ESP地址作为关键指令地址,然后执行步骤105。
步骤105,依据所述关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,其中,所述Shellcode用于利用所述缓冲区溢出漏洞进行业务处理。
具体而言,本发明实施例可以利用获取到的关键指令地址,构造出缓冲区溢出漏洞对应的填充数据Shellcode,从而可以基于该填充数据Shellcode触发目标程序利用缓冲区溢出漏洞进行业务处理,提高漏洞利用效率。
在具体实现中,本发明实施例在构造缓冲区溢出漏洞对应的填充数据Shellcode后,可以构造相应的概念验证(Proof Of Concept,POC)数据,以基于POC数据验证目标程序是否能够基于该填充数据Shellcode进行业务处理。需要说明的是,POC数据可以为观点提供证据,具体可以用于确定基于构造的填充数据Shellcode是否能够成功利用对应的缓冲区漏洞,如可以是目标程序的一种输入数据,且该POC数据的长度可以刚好覆盖Ret指令,并且可以将构造的填充数据Shellcode刚好覆盖到ESP所在的地址处。
在本发明的一个可选实施例中,在生成所述缓冲区溢出漏洞对应的填充数据Shellcode之后,该漏洞处理方法还可以包括:在所述目标程序运行过程中,依据所述填充数据Shellcode,生成所述缓存区溢出漏洞对应的漏洞利用结果。具体的,本发明实施例可通过诸如中央处理器(Central Processing Unit,CPU)等处理器执行目标程序,并可在执行目标程序的过程中,基于构造的填充数据Shellcode,利用缓冲区溢出漏洞进行业务处理,生成该缓存区溢出漏洞对应的漏洞利用结果,在满足业务处理需求的同时提高漏洞利用效率。
作为本发明的一个示例,在某网络安全攻防大赛上,当用户从预先建立的网络攻防***下载该网络攻防***中的攻防平台的试题程序后,如在用户主动下载攻防平台的试题程序后,可以将该试题程序作为本发明实施例中的目标程序;随后,可应用本发明实施例,对该试题程序中的漏洞进行处理,如基于本发明实施例的漏洞处理方法构建一个自动漏洞挖掘与利用***,从而可以利用该自动漏洞挖掘与利用***对下载到的试题程序进行处理,查找到缓冲区溢出点,即查找出该试题程序中所存在的缓冲区溢出漏洞对应的溢出点,生成填充数据Shellcode和相应的POC数据,依据可以将POC数据上传给攻防平台,使得攻防平台可以依据该POC数据获得试题程序对应的攻防得分。具体的,在试题程序进入高级持续性威胁(Advanced Persistent Threat,APT)检测环境后,可应用本发明实施例提供的漏洞处理方法,对试题程序做初步未知漏洞判断和危险性判定,如可以基于异常日志文件夹确定出试题程序存在危险性,且在异常日志文件夹包含有缓冲区类型的异常信息,即在异常日志文件存在缓冲区溢出漏洞对应的异常信息时,可以通过构造畸形输入数据检测出该试题程序中的缓冲区溢出漏洞的溢出点,从而提高漏洞挖掘效率,并可针对检测到的溢出点获取该试题程序的关键指令地址,以基于获取到的关键指令地址构造填充数据Shellcode和相应的POC数据,使得攻防平台可以基于该POC数据对试题程序进行处理,极大的提高了APT产品检测的准确性,提高漏洞利用效率,以及降低了未知漏洞所带来的安全隐患。
综上,本发明实施例可以利用诸如AFL模糊测试工具等测试工具对目标程序进行模糊测试,并可定时监控异常日志目录,以确定测试工是否产生异常日志文件夹;当有异常日志产生时,可以基于异常日志文件夹确定出缓冲区溢出漏洞,并可针对该缓冲区溢出漏洞构造相应的畸形输入数据,并查看其溢出结果,如采用二分查找算法循环构造畸形输入数据,从而可以基于畸形输入数据对应的溢出结果确定出溢出点,无需人工分析异常日志文件,节约人力成本,提高漏洞挖掘效率。
此外,本发明实施例在监控到溢出结果刚好覆盖ret时结束,可调用诸如工具Ropper等程序分析工具静态分析一下目标程序,获取该目标程序中的一处JMP ESP的内存地址,并可将获取到的内存地址作为关键指令地址,以基于该关键指令地址构造缓存区溢出漏洞对应的填充数据Shellcode和该填充数据Shellcode对应的POC数据,提高漏洞利用效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图2,示出了本发明的一种漏洞处理装置实施例的结构框图,具体可以包括如下模块:
测试参数确定模块210,用于依据目标程序的输入类型,确定测试工具对应的测试参数;
模糊测试模块220,用于依据所述测试参数,调用所述测试工具对所述目标程序进行模糊测试,生成异常日志文件夹;
畸形输入数据构造模块230,用于依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据;
指令地址获取模块240,用于依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址;
填充数据生成模块250,用于依据所述关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,其中,所述Shellcode用于利用所述缓冲区溢出漏洞进行业务处理。
在本发明的一个可选实施例中,所述畸形输入数据构造模块230可以包括如下子模块:
监测子模块,用于对所述异常日志文件夹进行监测,确定所述目标程序的程序漏洞;
判断子模块,用于依据所述异常日志文件夹中的异常信息,判断所述程序漏洞是否是缓冲区溢出漏洞;
畸形输入数据构造子模块,用于若所述程序漏洞是缓冲区溢出漏洞,则针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
在本发明的一个可选实施例中,上述漏洞处理装置还可以包括如下模块:
目标程序执行模块,用于依据所述畸形输入数据执行所述目标程序,得到溢出结果;
漏洞利用结果生成模块,用于在所述目标程序运行过程中,依据所述填充数据Shellcode,生成所述缓存区溢出漏洞对应的漏洞利用结果。
其中,所述指令地址获取模块240可以包括溢出结果判断子模块和指令地址获取子模块。所述溢出结果判断子模块,用于判断所述溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配;若所述溢出结果与所述特殊数据不匹配,则触发所述畸形输入数据构造模块采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,以及,触发所述目标程序执行模块依据重新构造的畸形输入数据执行所述目标程序,直到得到的溢出结果与构造的畸形输入数据中的特殊数据相匹配。所述指令地址获取子模块,用于在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址。
本发明实施例中,可选地,所述指令地址获取子模块,具体用于在所述溢出结果与所述特殊数据相匹配相匹配时,调用程序分析工具;通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。
在本发明的一个可选实施例中,所述指令地址获取子模块包括:工具调用单元和静态分析单元;所述工具调用单元,用于在所述溢出结果与所述特殊数据相匹配相匹配时,调用程序分析工具;所述静态分析单元,用于通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。
在本发明的一个可选实施例中,所述测试参数确定模块210可以包括输入类型获取子模块和测试参数确定子模块;所述输入类型获取子模块,用于获取待测试的目标程序对应的输入类型,其中,所述输入类型包括文件输入类型或命令行输入类型;所述测试参数确定子模块,用于基于所述文件输入类型或命令行输入类型,确定测试工具对应的测试参数。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种漏洞处理方法和一种漏洞处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种漏洞处理方法,其特征在于,所述方法包括:
依据目标程序的输入类型,确定测试工具对应的测试参数;
依据所述测试参数,调用所述测试工具对所述目标程序进行模糊测试,生成异常日志文件夹;
依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据;
依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址;
依据所述关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,其中,所述Shellcode用于利用所述缓冲区溢出漏洞进行业务处理;
其中,所述依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址,包括:
判断所述溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配;
若所述溢出结果与所述特殊数据不匹配,则采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,以及,依据重新构造的畸形输入数据执行所述目标程序,直到得到的溢出结果与构造的畸形输入数据中的特殊数据相匹配;所述溢出结果与构造的畸形输入数据中的特殊数据相匹配包括当前构造的畸形输入数据对应的溢出结果所包含的IP地址对所述缓冲区溢出漏洞对应的返回地址Ret覆盖;
在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址;
所述采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,包括:
若所述溢出结果所包含的IP地址小于所述畸形输入数据中所包含的特殊数据,则将所述当前缓冲区溢出漏洞对应的返回地址Ret值与所述当前畸形输入数据的长度的和再除二的值为起点,根据所述起点重新构造所述目标程序对应的畸形输入数据。
2.根据权利要求1所述的方法,其特征在于,所述依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据,包括:
对所述异常日志文件夹进行监测,确定所述目标程序的程序漏洞;
依据所述异常日志文件夹中的异常信息,判断所述程序漏洞是否是缓冲区溢出漏洞;
若所述程序漏洞是缓冲区溢出漏洞,则针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
3.根据权利要求1所述的方法,其特征在于,还包括:
依据所述畸形输入数据执行所述目标程序,得到溢出结果。
4.根据权利要求3所述的方法,其特征在于,在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址,包括:
在所述溢出结果与所述特殊数据相匹配相匹配时,调用程序分析工具;
通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。
5.根据权利要求1至4任一所述的方法,其特征在于,所述依据目标程序的输入类型,确定测试工具对应的测试参数,包括:
获取待测试的目标程序对应的输入类型,其中,所述输入类型包括文件输入类型或命令行输入类型;
基于所述文件输入类型或命令行输入类型,确定测试工具对应的测试参数。
6.根据权利要求1至4任一所述的方法,其特征在于,所述生成所述缓冲区溢出漏洞对应的填充数据Shellcode之后,还包括:在所述目标程序运行过程中,依据所述填充数据Shellcode,生成所述缓冲区溢出漏洞对应的漏洞利用结果。
7.一种漏洞处理装置,其特征在于,所述装置包括:
测试参数确定模块,用于依据目标程序的输入类型,确定测试工具对应的测试参数;
模糊测试模块,用于依据所述测试参数,调用所述测试工具对所述目标程序进行模糊测试,生成异常日志文件夹;
畸形输入数据构造模块,用于依据所述异常日志文件夹确定缓冲区溢出漏洞,以及针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据;
指令地址获取模块,用于依据所述畸形输入数据对应的溢出结果,获取所述目标程序的关键指令地址;
填充数据生成模块,用于依据所述关键指令地址,生成所述缓冲区溢出漏洞对应的填充数据Shellcode,其中,所述Shellcode用于利用所述缓冲区溢出漏洞进行业务处理;
其中,所述指令地址获取模块包括溢出结果判断子模块和指令地址获取子模块;
所述溢出结果判断子模块,用于判断所述溢出结果是否与所述畸形输入数据中所包含的特殊数据相匹配;若所述溢出结果与所述特殊数据不匹配,则触发所述畸形输入数据构造模块采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,以及,触发所述目标程序执行模块依据重新构造的畸形输入数据执行所述目标程序,直到得到的溢出结果与构造的畸形输入数据中的特殊数据相匹配;所述溢出结果与构造的畸形输入数据中的特殊数据相匹配包括当前构造的畸形输入数据对应的溢出结果所包含的IP地址对所述缓冲区溢出漏洞对应的返回地址Ret覆盖;所述采用预设的二分查找算法,重新构造所述目标程序对应的畸形输入数据,包括:若所述溢出结果所包含的IP地址小于所述畸形输入数据中所包含的特殊数据,则将所述当前缓冲区溢出漏洞对应的返回地址Ret值与所述当前畸形输入数据的长度的和再除二的值为起点,根据所述起点重新构造所述目标程序对应的畸形输入数据;
所述指令地址获取子模块,用于在所述溢出结果与所述特殊数据相匹配时,获取所述目标程序的关键指令地址。
8.根据权利要求7所述的装置,其特征在于,所述畸形输入数据构造模块包括:
监测子模块,用于对所述异常日志文件夹进行监测,确定所述目标程序的程序漏洞;
判断子模块,用于依据所述异常日志文件夹中的异常信息,判断所述程序漏洞是否是缓冲区溢出漏洞;
畸形输入数据构造子模块,用于若所述程序漏洞是缓冲区溢出漏洞,则针对所述缓冲区溢出漏洞构造所述目标程序对应的畸形输入数据。
9.根据权利要求7所述的装置,其特征在于,还包括:
目标程序执行模块,用于依据所述畸形输入数据执行所述目标程序,得到溢出结果;
漏洞利用结果生成模块,用于在所述目标程序运行过程中,依据所述填充数据Shellcode,生成所述缓冲区溢出漏洞对应的漏洞利用结果。
10.根据权利要求9所述的装置,其特征在于,
所述测试参数确定模块包括输入类型获取子模块和测试参数确定子模块;所述输入类型获取子模块,用于获取待测试的目标程序对应的输入类型,其中,所述输入类型包括文件输入类型或命令行输入类型;所述测试参数确定子模块,用于基于所述文件输入类型或命令行输入类型,确定测试工具对应的测试参数;
所述指令地址获取子模块包括:工具调用单元和静态分析单元;所述工具调用单元,用于在所述溢出结果与所述特殊数据相匹配相匹配时,调用程序分析工具;所述静态分析单元,用于通过所述程序分析工具对所述目标程序进行静态分析,确定所述目标程序中的关键指令地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810792461.5A CN109255240B (zh) | 2018-07-18 | 2018-07-18 | 一种漏洞处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810792461.5A CN109255240B (zh) | 2018-07-18 | 2018-07-18 | 一种漏洞处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109255240A CN109255240A (zh) | 2019-01-22 |
CN109255240B true CN109255240B (zh) | 2020-11-06 |
Family
ID=65048887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810792461.5A Active CN109255240B (zh) | 2018-07-18 | 2018-07-18 | 一种漏洞处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109255240B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992503B (zh) * | 2019-01-25 | 2022-10-11 | 北京丁牛科技有限公司 | 自动化测试方法及装置 |
CN109933989B (zh) * | 2019-02-25 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种检测漏洞的方法及装置 |
CN110489973A (zh) * | 2019-08-06 | 2019-11-22 | 广州大学 | 一种基于Fuzz的智能合约漏洞检测方法、装置和存储介质 |
CN110554965B (zh) * | 2019-09-05 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 自动化模糊测试方法及相关设备、计算机可读存储介质 |
CN111881460B (zh) * | 2020-08-06 | 2024-04-09 | 深信服科技股份有限公司 | 一种漏洞利用检测方法、***、设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023710A (zh) * | 2011-09-21 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 一种安全测试***和方法 |
CN105391729A (zh) * | 2015-11-30 | 2016-03-09 | 中国航天科工集团第二研究院七〇六所 | 基于模糊测试的web漏洞自动挖掘方法 |
CN108182359A (zh) * | 2017-12-29 | 2018-06-19 | 中国信息通信研究院 | 一种测试可信环境下api安全性的方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8997235B2 (en) * | 2012-02-07 | 2015-03-31 | Microsoft Technology Licensing, Llc | Adaptive fuzzing system for web services |
CN103530564B (zh) * | 2013-09-24 | 2016-04-13 | 国家电网公司 | 一种sql注入漏洞测试与验证方法及*** |
-
2018
- 2018-07-18 CN CN201810792461.5A patent/CN109255240B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023710A (zh) * | 2011-09-21 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 一种安全测试***和方法 |
CN105391729A (zh) * | 2015-11-30 | 2016-03-09 | 中国航天科工集团第二研究院七〇六所 | 基于模糊测试的web漏洞自动挖掘方法 |
CN108182359A (zh) * | 2017-12-29 | 2018-06-19 | 中国信息通信研究院 | 一种测试可信环境下api安全性的方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
Fuzzing漏洞挖掘与溢出利用分析技术研究;王颖;《CNKI中国优秀硕士学位论文全文数据库信息科技辑》;20120215(第2期);论文页码第10页第2.1.3章节、第32页第3.5章节、第36-38页第3.6.1章节、第38-39页第3.6.2章节和第44-45页第4.2.2章节 * |
软件漏洞分析中的脆弱点定位方法;蔡军等;《国防科技大学学报》;20151031;第37卷(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109255240A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109255240B (zh) | 一种漏洞处理方法和装置 | |
US10380350B1 (en) | Efficient and comprehensive source code fuzzing | |
KR100926115B1 (ko) | 특정 이벤트/조건에서 동작하는 윈도우용 악성 코드탐지를 위한 프로그램 자동 분석 장치 및 방법 | |
US8943478B2 (en) | Fault detection and localization in dynamic software applications | |
CN109101815B (zh) | 一种恶意软件检测方法及相关设备 | |
US20110016456A1 (en) | Generating additional user inputs for fault detection and localization in dynamic software applications | |
US9606905B2 (en) | Systems, methods, and media for testing software patches | |
WO2008091272A2 (en) | Methods, systems and media for software self-healing | |
CN111026601A (zh) | Java应用***的监控方法、装置、电子设备及存储介质 | |
KR101972825B1 (ko) | 하이브리드 분석 기술을 이용한 임베디드 기기 취약점 자동 분석 방법, 장치 및 그 방법을 실행하는 컴퓨터 프로그램 | |
CN111723380B (zh) | 一种检测组件漏洞的方法及装置 | |
CN112685745B (zh) | 一种固件检测方法、装置、设备及存储介质 | |
Wang et al. | A combinatorial approach to detecting buffer overflow vulnerabilities | |
US20190121985A1 (en) | Detecting vulnerabilities in applications during execution | |
CN110851352A (zh) | 一种模糊测试***及终端设备 | |
CN113761519A (zh) | 一种Web应用程序的检测方法、装置及存储介质 | |
CN107045474B (zh) | 一种Fuzz测试中的程序流跟踪方法及装置 | |
US10331513B2 (en) | Zero overhead code coverage analysis | |
CN115033892A (zh) | 一种组件漏洞分析方法、装置、电子设备及存储介质 | |
CN111949548B (zh) | 一种自动化越权渗透测试方法和存储设备 | |
CN112445706A (zh) | 程序异常代码获取方法、装置、电子设备以及存储介质 | |
CN114328168A (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
CN116522345A (zh) | 漏洞挖掘方法、装置、设备及可读存储介质 | |
Zhou et al. | Hunting garbage collection related concurrency bugs through critical condition restoration | |
CN115373984A (zh) | 代码覆盖率确定方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |