一种针对IoT设备的智能防护方法、系统
技术领域
本发明属于网络安全
技术领域
,尤其涉及一种针对IoT设备的智能防护方法、系统。
背景技术
目前:近年来,基于物联网(IoT)的网络攻击兴起。这些攻击大多都是利用已知的IoT设备漏洞,对存在漏洞的设备进行的。
物联网漏洞生命周期。通常,IoT设备的漏洞是其固件中的一个漏洞,使攻击者能够绕过已部署的安全措施。这种漏洞具有不同的生命周期,其特征是发现、公开、利用和修补。当供应商、黑客或第三方安全研究人员发现漏洞时,则认为此漏洞被发现。如果首先被黑客发现,安全风险就变得特别高。下一个阶段是由发现漏洞的人公开披露漏洞,并且应该通过一个协调的过程来完成,在此过程中漏洞信息是保密的,允许供应商创建补丁。然而,这一程序并不总是遵循的。实际的真实世界的泄露可能会通过互联网上的来源以不同的方式发生,包括个人博客、公共论坛和安全邮件列表。一旦公开披露,任何一个人都可以免费获得关于漏洞的信息。因此,随着黑客社区积极开发和发布0Day攻击,安全风险水平进一步增加。大约80%的IoT漏洞报告都是与可利用的方法一起发布的,这些方法很容易被黑客利用。更糟糕的是,供应商可能不提供任何安全更新或补丁以响应泄露,即使供应商可以做到。此外,即使有可用的补丁程序,受影响的IoT设备的许多用户也不会这样做,因为更新固件补丁程序太过复杂。IoT漏洞的生命周期在所有IoT用户安装修补程序以修复该漏洞时结束。然而,即使一个IoT设备存在严重的安全漏洞,并且厂商发布了补丁,但是一些用户由于知识有限,没有及时更新补丁的能力。所以一些IoT漏洞的生命周期长达五年以上,在此期间,这些问题可以随时被利用。
签名可用于描述对漏洞的特定攻击或对漏洞本身建模。后者提供了针对漏洞位置的所有相关攻击的全面保护,称为特定于漏洞的签名。这种签名通常是通过手动分析漏洞创建的。然而,本发明发现通过NLP技术、文本分析技术和沙盒模拟技术可以对各大漏洞数据库中发表的漏洞报告进行自动化生成签名。
通过上述分析,现有技术存在的问题及缺陷为:现有的防护方法安全性不高。并且目前大多数供应商厂商只是针对单个设备上的单个漏洞进行漏洞分析并打补丁,没有广泛的针对一个设备漏洞,延申到其他的设备或者厂商的IoT设备防护,我们可以认为目前的漏洞防护环境缺乏对各类型IoT设备的漏洞防护汇总。
解决以上问题及缺陷的难度为:虽然国内外近几年都有对IoT设备漏洞分析的研究工作,但是这些研究都只是针对某种设备类型或者固件类型的一类漏洞,很少有专门对主流相关厂商下所有设备的漏洞和其防护规则的汇集。这类问题目前难以实现的主要问题,一方面是无法完整收集和准确分析海量的IoT设备相关漏洞描述文本,另一方面是无法针对漏洞的相关文本准确高效地提取漏洞关键信息,并部署在防火墙进行防护。
解决以上问题及缺陷的意义为:本系统不但有效阻止针对IoT设备的漏洞攻击,也为IoT设备厂商提供了一种设备安全测试和开发的新思路,还对以后的IoT规则防护研究有重要意义。
发明内容
针对现有技术存在的问题,本发明提供了一种针对IoT设备的智能防护方法、系统。
本发明实现了一种针对IoT设备的智能防护系统,所述智能防护系统包括:
基于网络爬虫的漏洞报告自动采集模块,用于从Internet中提取漏洞报告;
基于正则、字典库匹配的数据清洗模块,对漏洞报告利用IoT漏洞提取器进行漏洞信息提取,并采用多维处理报告的方式进行漏洞报告的细化分类;
基于NLP、沙盒模拟、静态文本分析等的签名生成模块,用于生成漏洞的唯一标识—漏洞签名。
性能检测模块,用于针对漏洞签名生成可以直接部署在防火墙上的防护规则,并针对生成的防护桂萼则进行性能的检测。
本发明的另一目的在于提供一种应用所述智能防护系统的IoT设备智能防护方法,所述IoT设备智能防护方法包括:
步骤一,利用爬虫技术从多个漏洞库爬取相应漏洞报告;可以获取到大量的漏洞报告;
步骤二,对提取的漏洞报告进行数据清洗,筛出可能为广告或者漏洞综述等明显不是漏洞报告的文本,随后利用正则表达式提取漏洞报告中的实体,并使用实体检查脚本检查漏洞报告的实体是否真实存在,进一步对剩余的漏洞报告进行第二轮筛选。
步骤三,利用正则表达式提取漏洞报告中的实体,并使用实体检查脚本检查漏洞报告的实体是否真实存在;
步骤四,使用NLP、提取漏洞文件位置、沙盒模拟和PoC信息提取技术,提取漏洞报告的参数信息、PoC信息、漏洞文件位置信息,进而生成漏洞签名;
步骤五,基于步骤四生成的漏洞签名自动生成防御规则;并利用IoT固件仿真模拟进行防护性能检测;以证实系统生成签名规则有效且无害。
进一步,步骤二中,所述数据清洗操作包括:
对在漏洞库网站爬取到的报告运行过滤模块过滤与漏洞报告无关的文档;所述与漏洞报告无关的文档包括而不仅限于:包含多于95%字典词的文档、超过25个超链接的文档、超过5个CVE编号的文档。利用识别器对其余的文档识别IoT漏洞报告,并提取设备类型、厂商、型号、CVE编号及其他关键信息作为漏洞描述。并使用实体检查,即使用Google搜索以设备类型、厂商、型号等实体组成的集合,并以搜索结果作为实体是否存在的判断指标,如果超过52个搜索结果,则认为此漏洞报告是一个IoT漏洞报告。
进一步,步骤五中,所述防御规则生成包括:
根据符合条件的IoT漏洞报告,进行静态文本分析或动态脚本分析生成漏洞签名,并对漏洞签名分类并生成自动部署在防火墙上的过滤规则;
同时按照天为单位进行自动更新并根据规范报告自动生成防火墙过滤规则。
进一步,所述自动防御规则生成包括:
基于提取的包括设备类型、供应商、产品名称及其他漏洞信息以及分类得到的漏洞类型数据对描述相同IoT漏洞的IoT漏洞报告进行聚类,并给定每个集群,从漏洞报告中提取漏洞语义和其他结构化信息,生成漏洞签名。
进一步,所述从漏洞报告中提取漏洞语义和其他结构化信息,利用攻击面生成特定于漏洞的特征码还包括:
利用 NLP、提取漏洞文件位置、沙盒模拟和 PoC 信息提取,提取漏洞报告的参数信息、PoC 信息、漏洞文件位置信息,并且将相关参数组构成签名;IoT Guardian自动将签名转换为现有常用防火墙中的基于正则的防护规则;
IoT Guardian自动将签名转换为现有常用防火墙中的基于正则的防护规则。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明针对市面主流IoT产品,实现自动化漏洞检测,拦截各类攻击。本发明通过爬虫获取漏洞报告,关键词匹配清洗报告,全方面解析报告,内容拼接生成签名并自动化部署设备防火墙,在不影响设备正常工作的同时针对1day和Nday漏洞攻击进行拦截,同时能够自动化分析漏洞报告并生成攻击拦截签名。本发明实现自动化运行,以客户端形式,界面简洁、操作简便,方便用户自主使用。
本发明可以被部署在现有的入侵检测系统或web应用程序防火墙上,以检测目标物联网设备上的利用企图,显著提高了未来IoT攻击成功的门槛。
附图说明
图1是本发明实施例提供的智能防护系统原理图。
图2是本发明实施例提供的智能防护系统结构示意图;
图中:1、基于网络爬虫的漏洞报告自动采集模块;2、基于正则、字典库匹配的自动化筛选模块;3、基于NLP和文本聚类的规则生成模块;4、性能检测模块。
图3是本发明实施例提供的IoT设备智能防护方法原理图。
图4是本发明实施例提供的IoT设备智能防护方法流程图。
图5是本发明实施例提供的模拟固件框架架构示意图。
图6是本发明实施例提供的VeryNginx操作流程示意图。
图7是本发明实施例提供的VeryNginx的config.json配置示意图。
图8是本发明实施例提供的签名规则和防火墙的过滤规则示意图。
图9是本发明实施例提供的脚本运行无效示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种针对IoT设备的智能防护方法、系统,下面结合附图对本发明作详细的描述。
如图1-图2所示,本发明实施例提供的IoT 设备智能防护系统包括:
基于网络爬虫的漏洞报告自动采集模块1,用于从Internet中提取漏洞报告;
基于正则、字典库匹配的数据清洗模块2,用于基于提取的漏洞报告利用IoT漏洞提取器进行漏洞信息提取,并采用多维处理报告的方式进行漏洞报告的细化分类;
基于NLP、沙盒模拟、静态文本分析的签名生成模块3,用于基于提取的漏洞信息以及分类结果进行自动防御规则生成;
性能检测模块4,用于进行防护性能的检测。
如图3-图4所示,本发明实施例提供的IoT设备智能防护方法包括:
S101,利用爬虫技术从多个漏洞库爬取相应漏洞报告;可以获取到大量的漏洞报告;
S102,对提取的漏洞报告进行数据清洗,筛出可能为广告或者漏洞综述等明显不是漏洞报告的文本,随后利用正则表达式提取漏洞报告中的实体,并使用实体检查脚本检查漏洞报告的实体是否真实存在,进一步对剩余的漏洞报告进行第二轮筛选。
S103,利用正则表达式提取漏洞报告中的实体,并使用实体检查脚本检查漏洞报告的实体是否真实存在;
S104,使用NLP、提取漏洞文件位置、沙盒模拟和PoC信息提取技术,提取漏洞报告的参数信息、PoC信息、漏洞文件位置信息,进而生成漏洞签名;
S105,基于S104生成的漏洞签名自动生成防御规则;并利用IoT固件仿真模拟进行防护性能检测;以证实系统生成签名规则有效且无害。
本发明实施例提供的基于提取的漏洞报告利用IoT漏洞提取器进行漏洞信息提取包括:
在大型漏洞库网站通过爬虫技术爬取漏洞报告,并进一步对爬取到的报告运行过滤模块过滤与不符合规范的漏洞报告或与漏洞无关的文档;
利用识别器对其余的文档识别并筛选出IoT漏洞报告,并提取设备类型、厂商、型号、CVE编号、作者和发布日期及其他关键信息作为漏洞描述。
本发明实施例提供的与漏洞报告无关的文档包括但不仅限于以下特征:包含多于95%字典词的文档、超过25个超链接的文档、超过5个CVE编号的文档。
本发明实施例提供的防御规则生成包括:
根据符合条件的IoT漏洞报告,进行文本分析,生成包含漏洞关键信息的签名,并且将签名转化为能够部署在防火墙上的过滤规则,并自动化部署在防火墙上;
同时按照天为单位进行自动更新并根据规范报告自动生成防火墙过滤规则。
下面结合实验对本发明的技术效果作详细的描述。
为了验证签名阻挡漏洞攻击的有效性,本发明通过在虚拟机上部署模拟设备固件的形式,并安装防火墙。
因为IoT设备的固件大多都是基于UNIX内核开发,所以本发明可以在虚拟机上部署已经开源的模拟设备固件来进行本发明的规则签名验证工作。本发明使用ARM-X集成框架来实现模拟设备固件的工作。ARM-X 固件仿真框架是脚本、内核和文件系统的集合,用于与QEMU一起模拟ARM/Linux物联网设备。旨在通过虚拟化尽可能多的物理设备来促进物联网研究。这是本发明能够得到的最接近真实物联网的虚拟机。并且到目前为止,此框架已经能实现9种不同的设备。
简单来说,本发明通过在虚拟机中部署了ARM-X框架,而ARM框架在虚拟机中又部署一个模拟设备虚拟机,框架和设备的虚拟机IP地址不同,可以分割处理详细流程如图5所示。
本发明通过ARM-X得到一个的设备模拟固件完全类似一个标准的UNIX系统,本发明以Tenda AC15 Wi-Fi路由器为示例
在部署完虚拟设备之后,本发明需要在模拟设备上部署防火墙,本发明使用开源的VeryNginx防火墙,在本发明的虚拟设备上部署。VeryNginx基于lua_nginx_module(openrestry)开发,实现了高级的防火墙、访问统计和其他的一些功能。集成在Nginx中运行,扩展了Nginx本身的功能,并提供了友好的Web交互界面。
VeryNginx的自定义行为主要包含两部分,Matcher和Action。一个Matcher可以包含一个或者多个约束条件,目前支持以下几种约束:Client IP、Host、UserAgent、URI、Referer、Request Args,基本包含了目前IoT攻击请求所使用的字段。当一个请求没有违反Matcher中包含的全部条件时,即命中了这个Matcher,也就是捕获了攻击请求。每个Action会引用一个Matcher,当Matcher命中时,Action会被执行。其实例如图6所示。
综上所述,本发明的验证和之后的规则自动部署工作主要围绕新建matcher和action来进行。VeryNginx防火墙过滤规则通过在网页端设置或者改写 config.json文件进行部署更新,其中通过网页后台管理的方法,其中第一步配置Matcher相关参数,第二步和第三步分别为配置重定向的匹配规则和action的相关参数。
VeryNginx防火墙的配置文件config.json中matcher和action的格式如图7所示,本发明主要对Arg、header、cookie、uri、host、user_agent、referer、ip、method这几个matcher键参数进行修改,而action的配置在config.json中的filter_rules键中保存,其中本发明针对enable、custom_response、code、matcher、action这几个参数进行修改。
其中本发明的验证工作主要通过网页端的配置来操作,而在下一节中的规则自动部署中本发明通过更改config.json文件来操作。本发明以Tenda AC15 Wi-Fi路由器上的命令注入漏洞为例进行此部分的说明。
首先本发明使用漏洞报告提供的脚本,对部署在ARM-X中的模拟路由器设备注入命令“touch intected_cert”,来往路由器的文件系统中写入一个intected_cert文件,可以看到路由器的文件系统成功生成一个intected_cert文件,表明注入成功。
随后本发明开启VeryNginx防火墙,针对此漏洞的生成的规则,配置matcher和action,如图8所示,使得防护墙能够防住此脚本的攻击。随后本发明再使脚本向模拟路由器注入命令“touch intected_cert”,可以看到脚本脚本报如图9所示,并且文件系统没有出现此文件,所以本发明可以成功验证此签名是有效的。
此验证工作不仅说明了本发明通过报告提取生成的签名规则部署到防火墙能有效过滤攻击,也证明了本发明此作品能够防御全面漏洞攻击。
应当注意,本发明的实施方式可以软件或者软件和硬件的结合来实现。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。由于本发明保留了完整的漏洞攻击路径及参数,可以通过实施例中的verynginx实现防护功能,也可以很轻易的部署在多种防火墙或网关系统上。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。