CN105306414A - 端口漏洞的检测方法、装置及系统 - Google Patents
端口漏洞的检测方法、装置及系统 Download PDFInfo
- Publication number
- CN105306414A CN105306414A CN201410265871.6A CN201410265871A CN105306414A CN 105306414 A CN105306414 A CN 105306414A CN 201410265871 A CN201410265871 A CN 201410265871A CN 105306414 A CN105306414 A CN 105306414A
- Authority
- CN
- China
- Prior art keywords
- port
- terminal
- scan procedure
- leak
- scanning result
- 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
Links
Abstract
本发明公开了一种端口漏洞的检测方法、装置及系统。其中,该检测方法包括:获取多个当前未被使用的第一端口扫描进程;并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口;根据扫描结果判断第一终端的端口是否为存在漏洞的端口。采用本发明实施例,解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
Description
技术领域
本发明涉及漏洞检测领域,具体而言,涉及一种端口漏洞的检测方法、装置及系统。
背景技术
互联网终端上高危端口的随意开放,容易造成服务器被入侵。黑客破解高危端口之后可控制整台服务器或盗取数据库信息,这对服务器安全的打击是致命的。可以通过对互联网上的终端的高危端口的检测方法,及时有效发现高危险端口,规避安全风险。
在互联网上进行高危漏洞检测时,使用了网络上各个终端之间的网络之间互连的协议,其中,网络之间互连的协议(IP):是InternetProtocol的缩写,就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
具体地,现有技术中为了检测互联网上终端的高危端口,提供了一种互联网扫描工具,这种扫描工具是一种“无状态”的工具,具体地,该工具会向服务器(即互联网上的终端)发出扫描端口的请求,并“忘记”这些请求(也即不将这些请求保存在使用该工具的本地),然后等待服务器的回包。该扫描不会保留未获回复请求的清单,只是在发出的数据包中对识别信息进行编码,具体地,在发出数据包之前将一些服务特征封装在数据包中,然后将封装了服务特征的数据包发出去,对应一个端口可能发送数量很大的数据包,这样一来该工具就能对回复进行鉴别。例如,对应A端口发出了携带mysql、ssh,redis,rsync等服务特征的数据包,接收到了对应mysql的数据包,则可以确定A端口为绑定了mysql服务的高危端口。
由上可知,通过该扫描工具需要发送大量的数据包,极大限制地占用带宽,造成网络堵塞;并且由于该工具的无状态扫描,大量的发送数据包容易丢包,且其并没有丰富的服务指纹库(即服务特征),对于端口绑定的服务识别能力较弱,容易造成对高危端口的漏判和误判。
针对上述检测高危端口漏洞的检测速度慢的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种端口漏洞的检测方法、装置及系统,以至少解决检测高危端口漏洞的检测速度慢的问题。
根据本发明实施例的一个方面,提供了一种端口漏洞的检测方法,该检测方法包括:获取多个当前未被使用的第一端口扫描进程;并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口;根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
根据本发明实施例的另一方面,还提供了一种端口漏洞的检测装置,该检测装置包括:第一获取模块,用于获取当前未被使用的第一端口扫描进程;调用模块,用于调用当前未被使用的第一端口扫描进程扫描第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口;判断模块,用于根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
根据本发明实施例的另一方面,还提供了一种端口漏洞的检测系统,该检测系统包括:一个或多个扫描终端,每个扫描终端分别包括端口漏洞的检测装置。
采用本发明实施例,每个第一端口扫描进程扫描一个第一终端上的全部端口,并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端上的端口得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。在上述的扫描过程中,使用一个第一端口扫描进程执行扫描一个第一终端上的全部端口的操作,并行地使用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端,而不是现有技术中的只能对一台主机进行扫描,大大提升了扫描速度。采用本发明实施例,并行地对多个第一终端进行扫描解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种端口漏洞的检测方法的流程图;
图2是根据本发明实施例的一种可选的获取扫描结果的流程图;
图3是根据本发明实施例的判断第一终端的端口是否为存在漏洞的端口的示意图;
图4是根据本发明实施例的一种可选的确定第一端口扫描进程的数量的流程图;
图5是根据本发明实施例的一种可选的端口漏洞的检测方法的示意图;
图6是根据本发明实施例的一种端口漏洞的检测装置的示意图;以及
图7是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种系统漏洞攻击的检测方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种端口漏洞的检测方法,如图1所示,该检测方法可以通过如下步骤实现:
步骤S102:获取多个当前未被使用的第一端口扫描进程。
步骤S104:并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口。
步骤S106:根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
在本发明的上述实施例中,每个第一端口扫描进程用于扫描一个第一终端。具体地,每个第一端口扫描进程扫描一个第一终端上的一个或多个端口(如一个第一终端上的全部端口),并行调用多个第一端口扫描进程可以扫描多个第一终端上的端口。
采用本发明实施例,每个第一端口扫描进程扫描一个第一终端上的全部端口,并行地调用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端上的端口得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。在上述的扫描过程中,使用一个第一端口扫描进程执行扫描一个第一终端上的全部端口的操作,并行地使用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端,而不是现有技术中的只能对一台主机进行扫描,大大提升了扫描速度。采用本发明实施例,并行地对多个第一终端进行扫描解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
其中,上述实施例中的第一终端可以为互联网上的服务器。
本发明的上述实施例可以应用于Linux系统、uinx系统等操作系统。下面以在Linux系统中应用本发明为例详细介绍本发明。
Linux系统为基于posix(可移植操作系统接口)和unix(属于分时操作系统,是一种多任务、多用户的操作系统,支持多种处理器架构)的多用户、多任务、支持多线程、多CPU(处理器)的操作系统。该系统可以运行主要的unix工具软件、应用程序和网络协议。他可以支持32位和64位硬件。
具体地,可以在第二终端上实施本发明的上述实施例,其中第二终端为一台Linux系统的服务器。
第二终端可以通过启动crontab服务定期拉起代理调度进程,其中,crontab服务为用于设置被周期性执行的指令。可以将crontab服务当成一个定时器,也即在第二终端(即扫描终端)上启动定时器,每个预设时间开启一个代理调度进程(即Agent调度进程)。每个服务器分别对应一个Agent调度进程。通过该Agent调度进程启动对第一终端的端口的扫描任务。
在开启代理调度进程之后,获取多个当前未被使用的第一端口扫描进程,并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口,在获取扫描结果之后,根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
其中,上述实施例中的第一终端可以为互联网的终端,如,服务器。
通过本发明实施例的端口漏洞的检测方法,对服务器(即第一终端)进行全端口(其中,服务器的端口可以为1-65535个)扫描,并识别端口所绑定的服务(如ssh,mysql,ftp等)。通过上述执行多个第一端口扫描进程的分布式的扫描方式,可以大幅提升扫描速度。假如互联网中包括13万台服务器,则使用该方法扫描一轮只需要12小时。并且在服务器总量增加的情况下,只要通过添加扫描终端(即上述实施例中的第二终端)就可以维持其扫描的整体周期不变,实现快速全网扫描。
通过本发明上述实施例,尤其对于ssh,mysql,redis,rsync等高危险服务的检测效果很好,检测完全且不容易误检。
其中,ssh是为远程登录会话和其他网络服务提供安全性的协议;mysql是关系型数据库管理系统;redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API;rsync是类unix系统下的数据镜像备份工具remotesync。其中,API为应用程序编程接口。Key-Value为分布式存储系统。
在上述实施例中,22(ssh),3306(mysql)端口对外开放,就存在用户名和密码被暴力破解的风险,因此这些端口就可判断为存在漏洞的端口。
其中,22、3306为端口的端口号,ssh和mysql为对应端口上绑定的服务。
在本发明的上述实施例中,在执行每个步骤的过程中均可以调用日志服务器将执行的过程以日志的形式记录下来。
在本发明的上述实施例中,并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果可以包括:获取与第一端口扫描进程的数量对应的任务列表,其中,任务列表中包括第一终端的IP地址;按照IP地址确定第一终端;并行地调用多个第一端口扫描进程扫描多个第一终端上的全部端口,得到扫描结果。
具体地,如图2所示,调用当前未被使用的第一端口扫描进程扫描第一终端的端口得到扫描结果可以通过如下步骤实现:
步骤S202:获取与第一端口扫描进程的数量对应的任务列表。
具体地,第二终端可以向任务服务器请求与第一端口扫描进程的数量对应的任务列表,其中,任务列表中可以包括与第一端口扫描进程的数量相等的第一终端的IP地址。
步骤S204:按照IP地址确定第一终端。
其中,每个第一终端对应一个IP地址,通过该IP地址可以在互联网上确定任务列表中的各个第一终端。
IP地址为互联网协议地址,IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。其中的第一终端和第二终端均为互联网上的主机。
步骤S206:并行地调用多个第一端口扫描进程扫描多个第一终端上的全部端口,得到扫描结果。
具体地,在确定各个第一终端之后,并行地执行多个第一端口扫描进程以扫描第一终端上的全部端口得到扫描结果。
其中,所述扫描结果可以包括:第一终端上的端口的数量、第一终端上的端口的端口号、第一终端的端口上绑定的服务的信息、以及执行各个第一端口扫描进程的时间(即扫描耗时)等数据。
通过本发明的上述实施例,可以对第一终端快速检测得到高危漏洞端口。
根据本发明的上述实施例,根据扫描结果判断第一终端的端口是否为存在漏洞的端口可以包括:获取预设数据库,其中,预设数据库中保存有已确定为存在漏洞的端口的端口信息;检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库;其中,在扫描结果中第一终端的端口的端口信息存在于预设数据库的情况下,判断出第一终端的端口为存在漏洞的端口;在扫描结果中的端口的端口信息不存在于预设数据库的情况下,判断出第一终端的端口不为存在漏洞的端口。
具体地,如图3所示,本发明上述实施例可以通过如下步骤实现:
步骤S302:获取预设数据库,其中,预设数据库中保存有已确定为存在漏洞的端口的端口信息。
步骤S304:检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库。
其中,在扫描结果中第一终端的端口的端口信息存在于预设数据库的情况下,执行步骤S306;在扫描结果中的端口的端口信息不存在于预设数据库的情况下,执行步骤S308。
步骤S306:判断出第一终端的端口为存在漏洞的端口。
步骤S308:判断出第一终端的端口不为存在漏洞的端口。
在图2所示的实施例中,扫描结果可以包括:第一终端上的端口的数量、第一终端上的端口的端口号、第一终端的端口上绑定的服务的信息、以及执行各个第一端口扫描进程的时间(即扫描耗时)等数据。
在图3所示的实施例中,在执行步骤S304的过程中可以分别检测扫描结果中的端口或服务实现对第一终端的端口的端口信息的检测。
具体地,预设数据库中可以保存有已确定为存在漏洞的端口的端口信息,该端口信息可以包括已经确定为存在漏洞的端口的端口号和已经确定为存在漏洞的端口上绑定的服务的特征信息。
在本发明一种可选的实施例中,可以检测扫描结果中的第一终端的端口的端口号是否存在于预设数据库中,具体地,在预设数据库中查询是否存在第一终端的端口的端口号,如果预设数据库中存在该第一终端的端口的端口号,判断出扫描结果中的第一终端的端口号存在于预设数据库中,则判断出扫描结果的第一终端的端口为存在漏洞的端口;如果预设数据库中不存在该第一终端的端口的端口号,判断出扫描结果中的第一终端的端口号不存在于预设数据库,则判断出扫描结果的第一终端的端口不为存在漏洞的端口。
在本发明另一种可选的实施例中,可以检测扫描结果中的第一终端的端口的上绑定的服务的特征信息是否存在于预设数据库中,具体地,在预设数据库中查询是否存在第一终端的端口的上绑定的服务的特征信息,如果预设数据库中存在该第一终端的端口的上绑定的服务的特征信息,则判断出扫描结果中的第一终端的上绑定的服务的特征信息存在于预设数据库中,则判断出扫描结果的第一终端的端口为存在漏洞的端口;如果预设数据库中不存在该第一终端的端口的上绑定的服务的特征信息,则判断出扫描结果中的第一终端的上绑定的服务的特征信息不存在于预设数据库,则判断出扫描结果的第一终端的端口不为存在漏洞的端口。
根据本发明的上述实施例,在获取与第一端口扫描进程的数量对应的任务列表之前,检测方法还可以包括:查询执行端口扫描进程的第二终端的总扫描进程的数量;获取扫描终端当前使用的第二端口扫描进程的数量;总扫描进程的数量减去第二端口扫描进程的数量得到第一端口扫描进程的数量。
需要进一步说明的是,查询执行端口扫描进程的第二终端的总扫描进程的数量可以包括:读取第二终端的配置信息,其中,配置信息可以包括存储任务列表的第三终端地址、存储扫描结果的第四终端地址以及第二终端的总扫描进程的数量。
如图4所示,本发明的上述实施例可以通过如下步骤实现:
步骤S402:读取第二终端的配置信息。
其中,第二终端的配置信息可以保存在配置服务器上(也为互联网上的一个终端)。
具体地,第二终端将第二终端的IP地址发送至配置服务器,配置服务器将对应第二终端的IP地址的配置信息发送至第二终端,实现从配置服务器上读取第二终端的配置信息的操作。其中,配置信息可以包括:存储任务列表的第三终端地址、存储扫描结果的第四终端地址以及第二终端的总扫描进程的数量。
其中,第二终端获取存储任务列表的第三终端地址之后,可以根据该第三终端地址(即为第三终端的IP地址)从第三终端(如任务服务器)上获取任务列表,第二终端还可以在获取到扫描结果之后,将扫描结果存储在与第四终端地址(即为第四终端的IP地址)对应的第四终端(如扫描结果服务器)上。
在本发明的上述实施例中,配置服务器上保存的配置信息可以是预先保存在配置服务器上的。需要进一步说明的是,第二终端的总扫描进程的数量可以是按照第二终端的处理器性能、内存性能确定的。例如,第二终端的处理器为四核,内存为1G,通过对处理器性能的打分为80分,对内存的打分为75分,计算总分为155分,通过查表可以得到该第二终端的总扫描进程的数量为800。
上述通过打分查表得到第二终端的总扫描进程的数量的实现方法仅仅是作示意性说明,该数量可以通过其他的方法实现,并且第二终端的总扫描进程的数量可以根据其配置的高低确定为不同的数值,如700、800、200等。
步骤S404:获取扫描终端当前使用的第二端口扫描进程的数量。
具体地,可以调用第二终端的linux系统的shell命令,获取第二终端上现在正在使用的第二端口扫描进程的数量。
步骤S406:总扫描进程的数量减去第二端口扫描进程的数量得到第一端口扫描进程的数量。
具体地,在确定第一端口扫描进程的数量之后,可以获取任务列表,按照任务列表对第一终端上的全部端口进行扫描得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
下面结合附图5详细介绍本发明,如图5所示,该发明可以通过如下步骤实现:
步骤S501:启动代理调度进程。
具体地,第二终端可以通过启动crontab服务定期拉起代理调度进程,其中,crontab服务为用于设置被周期性执行的指令。可以将crontab服务当成一个定时器,也即在第二终端(即扫描终端)上启动定时器,每个预设时间开启一个代理调度进程(即Agent调度进程)。每个服务器分别对应一个Agent调度进程。通过该Agent调度进程启动对第一终端的端口的扫描任务。
步骤S502:代理调度进程更新扫描脚本的版本。
具体地,代理调度进程首先向配置服务器确认扫描脚本的版本信息。
其中,代理调度进程可以将客户端(即第二终端)上的本地的扫描脚本的版本信息发送至配置服务器。在配置服务器上获取最新版本的扫描脚本的版本信息。
在配置服务器上的最新版本的扫描脚本的版本信息与代理调度进程发送的本地的扫描脚本的版本信息不一致的情况下,确定本地(即第二终端)上的扫描脚本的版本信息不是最新版本,使用配置服务器上的最新版本更新第二终端上的扫描脚本的版本信息。
在配置服务器上的最新版本的扫描脚本的版本信息与代理调度进程发送的本地的扫描脚本的版本信息一致的情况下,确定本地(即第二终端)上的扫描脚本的版本信息是最新版本,执行步骤S503。
需要进一步说明的是,使用配置服务器上的最新版本更新第二终端上的扫描脚本的版本信息可以通过字符串协议读取配置服务器上的最新版本的扫描脚本的字符串信息,第二终端获取该字符串信息之后,将该字符串信息拷贝到保存本地的扫描脚本的位置上,以完成对第二终端上的扫描脚本的更新。
步骤S503:读取第二终端的配置信息。
具体地,第二终端将第二终端的IP地址发送至配置服务器,配置服务器将对应第二终端的IP地址的配置信息发送至第二终端,实现从配置服务器上读取第二终端的配置信息的操作。其中,配置信息可以包括:存储任务列表的第三终端地址、存储扫描结果的第四终端地址以及第二终端的总扫描进程的数量。
其中,第二终端获取存储任务列表的第三终端地址之后,可以根据该第三终端地址(即为第三终端的IP地址)从第三终端(如任务服务器)上获取任务列表,第二终端还可以在获取到扫描结果之后,将扫描结果存储在与第四终端地址(即为第四终端的IP地址)对应的第四终端(如扫描结果服务器)上。
需要进一步说明的是,配置信息中还可以包括日志服务器的IP地址。
步骤S504:获取当前未被使用的第一端口扫描进程。
具体地,可以调用第二终端的linux系统的shell命令,获取第二终端上现在正在使用的第二端口扫描进程的数量,然后根据可拉起的总扫描进程数(即上述的总扫描进程的数量)和已经拉起的扫描进程数(第二端口扫描进程的数量),计算还可拉起的扫描进程数(第一端口扫描进程的数量)。
具体地,将步骤S503中获取的总扫描进程的数量减去第二端口扫描进程的数量得到第一端口扫描进程的数量,获取等于该数量的第一端口扫描进程。
步骤S505:获取与第一端口扫描进程的数量对应的任务列表。
具体地,可以根据配置确定的还可拉起的扫描进程数,向任务server(即任务服务器,即上述实施例中的第三终端)拉取任务列表(即ip列表,该列表中包括待扫描的终端的IP地址)。
具体地,在确定第一端口扫描进程的数量之后,可以获取任务列表,按照任务列表对第一终端上的全部端口进行扫描得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
步骤S506:代理调度进程上报日志信息。
其中,日志信息即为log信息,该日志信息的内容可以为:代理调度进程准备扫描拉取任务(ip)列表。
具体地,第二终端上的代理调度进程可以将日志信息上传至日志服务器。在步骤S503中获取的配置信息中还包括了日志服务器的IP地址,通过该IP地址第二终端可以准确地将日志信息上报。
步骤S507:启动第一端口扫描进程。
具体地,代理调度进程可以根据拉取到的任务(ip)列表确定对应的第一终端,向各个第一终端发起扫描端口的请求,拉起多个对第一终端的端口的扫描进程(即第一端口扫描进程),并行地调用多个第一端口扫描进程。
步骤S508:并行地执行多个第一端口扫描进程对第一终端的全部端口进行扫描,获取扫描结果。图5中示出了第一终端A、第一终端B、以及第一终端C,也即在该实施例中使用了三个第一端口扫描进程。
步骤S509:第一端口扫描进程上报扫描日志信息。
具体地,第一端口扫描进程将扫描日志信息通过日志服务器的IP地址发送至对应的日志服务器。
其中,扫描日志信息可以包括:该第一端口扫描进程扫描到第一终端上开放的端口的数量、通过第一端口扫描进程扫描第一终端的全部端口的扫描耗时等数据。
步骤S510:第一端口扫描进程上报扫描结果。
其中,第一端口扫描进程将扫描结果通过扫描结果服务器的IP地址将该结果上报至对应的扫描结果服务器。
具体地,扫描结果中可以包括端口信息,具体地,端口信息包括第一端口扫描进程扫描到的第一终端上开放的端口的端口号以及第一终端上开放的端口上绑定的服务的特征信息。
步骤S510:规则脚本根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
具体地,获取预设数据库,其中,预设数据库中保存有已确定为存在漏洞的端口的端口信息;检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库;其中,在扫描结果中第一终端的端口的端口信息存在于预设数据库的情况下,判断出第一终端的端口为存在漏洞的端口;在扫描结果中的端口的端口信息不存在于预设数据库的情况下。
具体地,其中的检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库可以使用步骤S304的实现方法实现,在此不再赘述。
需要进一步说明的是,在本发明上述的各个实施例中,在根据扫描结果判断第一终端的端口是否为存在漏洞的端口之后,检测方法还可以包括:若判断出第一终端的端口为存在漏洞的端口,则执行禁用第一终端的端口的操作。
通过禁用存在漏洞的端口可以实现对高危漏洞的管制,提高系统的安全性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述实施例的端口漏洞的检测装置,该装置可以通过在实施例中涉及的测试方法来实现,下面对本申请的实施过程进行详细描述。
图6是根据本发明实施例的端口漏洞攻击的检测装置的示意图。如图6所示,该检测装置可以包括:第一获取模块10、调用模块20以及判断模块30。
其中,第一获取模块10用于获取多个当前未被使用的第一端口扫描进程。
调用模块20用于并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口。
判断模块30用于根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
在本发明的上述实施例中,每个第一端口扫描进程用于扫描一个第一终端。具体地,每个第一端口扫描进程扫描一个第一终端上的一个或多个端口(如一个第一终端上的全部端口),并行调用多个第一端口扫描进程可以扫描多个第一终端上的端口。
采用本发明实施例,每个第一端口扫描进程扫描一个第一终端上的全部端口,并行地调用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端上的端口得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。在上述的扫描过程中,使用一个第一端口扫描进程执行扫描一个第一终端上的全部端口的操作,并行地使用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端,而不是现有技术中的只能对一台主机进行扫描,大大提升了扫描速度。采用本发明实施例,并行地对多个第一终端进行扫描解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
其中,上述实施例中的第一终端可以为互联网上的服务器。
本发明的上述实施例可以应用于Linux系统、uinx系统等操作系统。下面以在Linux系统中应用本发明为例详细介绍本发明。
Linux系统为基于posix(可移植操作系统接口)和unix(属于分时操作系统,是一种多任务、多用户的操作系统,支持多种处理器架构)的多用户、多任务、支持多线程、多CPU(处理器)的操作系统。该系统可以运行主要的unix工具软件、应用程序和网络协议。他可以支持32位和64位硬件。
具体地,可以在第二终端上实施本发明的上述实施例,其中第二终端为一台Linux系统的服务器。
第二终端可以通过启动crontab服务定期拉起代理调度进程,其中,crontab服务为用于设置被周期性执行的指令。可以将crontab服务当成一个定时器,也即在第二终端(即扫描终端)上启动定时器,每个预设时间开启一个代理调度进程(即Agent调度进程)。每个服务器分别对应一个Agent调度进程。通过该Agent调度进程启动对第一终端的端口的扫描任务。
在开启代理调度进程之后,获取多个当前未被使用的第一端口扫描进程,并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口,在获取扫描结果之后,根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
其中,上述实施例中的第一终端可以为互联网的终端,如,服务器。
通过本发明实施例的端口漏洞的检测方法,对服务器(即第一终端)进行全端口(其中,服务器的端口可以为1-65535个)扫描,并识别端口所绑定的服务(如ssh,mysql,ftp等)。通过上述执行多个第一端口扫描进程的分布式的扫描方式,可以大幅提升扫描速度。假如互联网中包括13万台服务器,则使用该方法扫描一轮只需要12小时。并且在服务器总量增加的情况下,只要通过添加扫描终端(即上述实施例中的第二终端)就可以维持其扫描的整体周期不变,实现快速全网扫描。
通过本发明上述实施例,尤其对于ssh,mysql,redis,rsync等高危险服务的检测效果很好,检测完全且不容易误检。
其中,ssh是为远程登录会话和其他网络服务提供安全性的协议;mysql是关系型数据库管理系统;redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API;rsync是类unix系统下的数据镜像备份工具remotesync。其中,API为应用程序编程接口。Key-Value为分布式存储系统。
在上述实施例中,22(ssh),3306(mysql)端口对外开放,就存在用户名和密码被暴力破解的风险,因此这些端口就可判断为存在漏洞的端口。
其中,22、3306为端口的端口号,ssh和mysql为对应端口上绑定的服务。
在本发明的上述实施例中,在执行每个步骤的过程中均可以调用日志服务器将执行的过程以日志的形式记录下来。
根据本发明的上述实施例,调用模块可以包括:第一获取子模块,用于获取与第一端口扫描进程的数量对应的任务列表,其中,任务列表中包括第一终端的IP地址;确定模块,用于按照IP地址确定第一终端;调用子模块,用于并行地调用多个第一端口扫描进程扫描多个第一终端上的全部端口,得到扫描结果。
其中,上述实施例中每个第一终端对应一个IP地址,通过该IP地址可以在互联网上确定任务列表中的各个第一终端。
具体地,在确定各个第一终端之后,并行地执行多个第一端口扫描进程以扫描第一终端上的全部端口得到扫描结果。
其中,所述扫描结果可以包括:第一终端上的端口的数量、第一终端上的端口的端口号、第一终端的端口上绑定的服务的信息、以及执行各个第一端口扫描进程的时间(即扫描耗时)等数据。
通过本发明的上述实施例,可以对第一终端快速检测得到高危漏洞端口。
根据本发明的上述实施例,判断模块可以包括:第二获取子模块,用于获取预设数据库,其中,预设数据库中保存有已确定为存在漏洞的端口的端口信息;检测模块,用于检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库;第一判断子模块,用于在扫描结果中第一终端的端口的端口信息存在于预设数据库的情况下,判断出第一终端的端口为存在漏洞的端口;第二判断子模块,用于在扫描结果中的端口的端口信息不存在于预设数据库的情况下,判断出第一终端的端口不为存在漏洞的端口。
其中,上述实施例中的扫描结果可以包括:第一终端上的端口的数量、第一终端上的端口的端口号、第一终端的端口上绑定的服务的信息、以及执行各个第一端口扫描进程的时间(即扫描耗时)等数据。
在上述实施例中,可以分别检测扫描结果中的端口或服务实现对第一终端的端口的端口信息的检测。
具体地,预设数据库中可以保存有已确定为存在漏洞的端口的端口信息,该端口信息可以包括已经确定为存在漏洞的端口的端口号和已经确定为存在漏洞的端口上绑定的服务的特征信息。
在本发明一种可选的实施例中,可以检测扫描结果中的第一终端的端口的端口号是否存在于预设数据库中,具体地,在预设数据库中查询是否存在第一终端的端口的端口号,如果预设数据库中存在该第一终端的端口的端口号,则判断出扫描结果中的第一终端的端口号存在于预设数据库中,则判断出扫描结果的第一终端的端口为存在漏洞的端口;如果预设数据库中不存在该第一终端的端口的端口号,则判断出扫描结果中的第一终端的端口号不存在于预设数据库,则判断出扫描结果的第一终端的端口不为存在漏洞的端口。
在本发明另一种可选的实施例中,可以检测扫描结果中的第一终端的端口的上绑定的服务的特征信息是否存在于预设数据库中,具体地,在预设数据库中查询是否存在第一终端的端口的上绑定的服务的特征信息,如果预设数据库中存在该第一终端的端口的上绑定的服务的特征信息,则判断出扫描结果中的第一终端的上绑定的服务的特征信息存在于预设数据库中,则判断出扫描结果的第一终端的端口为存在漏洞的端口;如果预设数据库中不存在该第一终端的端口的上绑定的服务的特征信息,则判断出扫描结果中的第一终端的上绑定的服务的特征信息不存在于预设数据库,则判断出扫描结果的第一终端的端口不为存在漏洞的端口。
需要进一步说明的是,检测装置还可以包括:查询模块,用于查询执行端口扫描进程的第二终端的总扫描进程的数量;第二获取模块,用于获取扫描终端当前使用的第二端口扫描进程的数量;计算模块,用于总扫描进程的数量减去第二端口扫描进程的数量得到第一端口扫描进程的数量。
具体地,查询模块可以包括:读取模块,用于读取第二终端的配置信息,其中,配置信息包括存储任务列表的第三终端地址、存储扫描结果的第四终端地址以及第二终端的总扫描进程的数量。
其中,第二终端的配置信息可以保存在配置服务器上(也为互联网上的一个终端)。
具体地,第二终端将第二终端的IP地址发送至配置服务器,配置服务器将对应第二终端的IP地址的配置信息发送至第二终端,实现从配置服务器上读取第二终端的配置信息的操作。其中,配置信息可以包括:存储任务列表的第三终端地址、存储扫描结果的第四终端地址以及第二终端的总扫描进程的数量。
其中,第二终端获取存储任务列表的第三终端地址之后,可以根据该第三终端地址(即为第三终端的IP地址)从第三终端(如任务服务器)上获取任务列表,第二终端还可以在获取到扫描结果之后,将扫描结果存储在与第四终端地址(即为第四终端的IP地址)对应的第四终端(如扫描结果服务器)上。
在本发明的上述实施例中,配置服务器上保存的配置信息可以是预先保存在配置服务器上的。需要进一步说明的是,第二终端的总扫描进程的数量可以是按照第二终端的处理器性能、内存性能确定的。例如,第二终端的处理器为四核,内存为1G,通过对处理器性能的打分为80分,对内存的打分为75分,计算总分为155分,通过查表可以得到该第二终端的总扫描进程的数量为800。
上述通过打分查表得到第二终端的总扫描进程的数量的实现方法仅仅是作示意性说明,该数量可以通过其他的方法实现,并且第二终端的总扫描进程的数量可以根据其配置的高低确定为不同的数值,如700、800、200等。
具体地,上述实施例中可以调用第二终端的linux系统的shell命令,获取第二终端上现在正在使用的第二端口扫描进程的数量。
需要进一步说明的是,在本发明上述的各个实施例中,检测装置还可以包括:禁用模块,用于若判断出第一终端的端口为存在漏洞的端口,则执行禁用第一终端的端口的操作。
通过禁用存在漏洞的端口可以实现对高危漏洞的管制,提高系统的安全性。
上述实施例中的各个模块均与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
实施例3
本发明的实施例还提供了一种终端。可选地,在本实施例中,上述终端可以执行端口漏洞的检测方法,上述实施例中的端口漏洞的检测装置可以设置在该终端上。
图7是根据本发明实施例的一种终端的结构框图。如图7所示,该终端40可以包括:一个或多个(图中仅示出一个)处理器41、存储器43、以及传输装置45。
其中,存储器43可用于存储软件程序以及模块,如本发明实施例中的检测方法和装置对应的程序指令/模块,处理器41通过运行存储在存储器43内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器43可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器43可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至终端40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置45用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置45包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置45为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器43用于存储应用程序。
处理器41可以通过传输装置45调用存储器43存储的应用程序,以执行下述步骤:获取多个当前未被使用的第一端口扫描进程;并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口;根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
在本发明的上述实施例中,每个第一端口扫描进程用于扫描一个第一终端。具体地,每个第一端口扫描进程扫描一个第一终端上的一个或多个端口(如一个第一终端上的全部端口),并行调用多个第一端口扫描进程可以扫描多个第一终端上的端口。
采用本发明实施例,每个第一端口扫描进程用于扫描一个第一终端上的全部端口,并行地调用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端上的端口得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。在上述的扫描过程中,使用一个第一端口扫描进程执行扫描一个第一终端上的全部端口的操作,并行地使用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端,而不是现有技术中的只能对一台主机进行扫描,大大提升了扫描速度。采用本发明实施例,并行地对多个第一终端进行扫描解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
其中,上述实施例中的第一终端可以为互联网上的服务器。
本发明的上述实施例可以应用于Linux系统、uinx系统等操作系统。下面以在Linux系统中应用本发明为例详细介绍本发明。
Linux系统为基于posix(可移植操作系统接口)和unix(属于分时操作系统,是一种多任务、多用户的操作系统,支持多种处理器架构)的多用户、多任务、支持多线程、多CPU(处理器)的操作系统。该系统可以运行主要的unix工具软件、应用程序和网络协议。他可以支持32位和64位硬件。
具体地,可以在第二终端上实施本发明的上述实施例,其中第二终端为一台Linux系统的服务器。
在本发明的上述实施例中,处理器还用于执行下述操作:获取与第一端口扫描进程的数量对应的任务列表,其中,任务列表中包括第一终端的IP地址;按照IP地址确定第一终端;并行地调用第一端口扫描进程扫描第一终端上的全部端口,得到扫描结果。
在本发明的上述实施例中,处理器还用于执行下述操作:获取预设数据库,其中,预设数据库中保存有已确定为存在漏洞的端口的端口信息;检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库;在扫描结果中第一终端的端口的端口信息存在于预设数据库的情况下,判断出第一终端的端口为存在漏洞的端口;在扫描结果中的端口的端口信息不存在于预设数据库的情况下,判断出第一终端的端口不为存在漏洞的端口。
在本发明的上述实施例中,处理器还用于执行下述操作:查询执行端口扫描进程的第二终端的总扫描进程的数量;获取扫描终端当前使用的第二端口扫描进程的数量;总扫描进程的数量减去第二端口扫描进程的数量得到第一端口扫描进程的数量。
可选地,处理器还用于执行下述操作:读取第二终端的配置信息,其中,配置信息包括存储任务列表的第三终端地址、存储扫描结果的第四终端地址以及第二终端的总扫描进程的数量。
在本发明的上述实施例中,处理器还用于执行下述操作:禁用模块,用于若判断出第一终端的端口为存在漏洞的端口,则执行禁用第一终端的端口的操作。
本领域普通技术人员可以理解,图7所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternetDevices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,终端40还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种端口漏洞的检测系统。可选地,在本实施例中,上述系统可以包括上述实施例中的一个或多个扫描终端,每个扫描终端分别包括上述实施例中的任意一种端口漏洞的检测装置,用于执行上述实施例中的各个端口漏洞的检测方法。
在本发明的上述实施例中,每个第一端口扫描进程用于扫描一个第一终端。具体地,每个第一端口扫描进程扫描一个第一终端上的一个或多个端口(如一个第一终端上的全部端口),并行调用多个第一端口扫描进程可以扫描多个第一终端上的端口。
采用本发明实施例,每个第一端口扫描进程扫描一个第一终端上的全部端口,并行地调用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端上的端口得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。在上述的扫描过程中,使用一个第一端口扫描进程执行扫描一个第一终端上的全部端口的操作,并行地使用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端,而不是现有技术中的只能对一台主机进行扫描,大大提升了扫描速度。采用本发明实施例,并行地对多个第一终端进行扫描解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
在本发明实施例中的系统中可以包括一个或多个扫描终端、一个任务服务器、一个配置服务器、一个日志服务器、以及一个扫描结果服务器,如图5所示。
每个扫描终端分别对应扫描一个或多个第一终端(即待扫描的服务器)上的全部端口。
该系统中的扫描终端上设置的检测装置及执行检测方法均与上述的实现方法一致,在此不再赘述。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述的存储介质存储用于执行系统漏洞攻击的检测方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于实施例所示的终端上,还可以位于图5所示实施例的网络上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
步骤S102:获取多个当前未被使用的第一端口扫描进程。
步骤S104:并行地调用多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,第一终端为待扫描终端,每个第一端口扫描进程用于扫描一个第一终端上的端口。
步骤S106:根据扫描结果判断第一终端的端口是否为存在漏洞的端口。
在本发明的上述实施例中,每个第一端口扫描进程用于扫描一个第一终端。具体地,每个第一端口扫描进程扫描一个第一终端上的一个或多个端口(如一个第一终端上的全部端口),并行调用多个第一端口扫描进程可以扫描多个第一终端上的端口。
采用本发明实施例,每个第一端口扫描进程扫描一个第一终端上的全部端口,并行地调用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端上的端口得到扫描结果,并根据扫描结果判断第一终端的端口是否为存在漏洞的端口。在上述的扫描过程中,使用一个第一端口扫描进程执行扫描一个第一终端上的全部端口的操作,并行地使用多个当前未被使用的第一端口扫描进程可以扫描多个第一终端,而不是现有技术中的只能对一台主机进行扫描,大大提升了扫描速度。采用本发明实施例,并行地对多个第一终端进行扫描解决了现有技术中检测高危端口漏洞的检测速度慢的问题,实现了快速检测互联网终端的存在漏洞的端口的效果。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取与第一端口扫描进程的数量对应的任务列表,其中,任务列表中包括第一终端的IP地址;按照IP地址确定第一终端;并行地调用多个第一端口扫描进程扫描多个第一终端上的全部端口,得到扫描结果。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取预设数据库,其中,预设数据库中保存有已确定为存在漏洞的端口的端口信息;检测扫描结果中第一终端的端口的端口信息是否存在于预设数据库;其中,在扫描结果中第一终端的端口的端口信息存在于预设数据库的情况下,判断出第一终端的端口为存在漏洞的端口;在扫描结果中的端口的端口信息不存在于预设数据库的情况下,判断出第一终端的端口不为存在漏洞的端口。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可提取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种端口漏洞的检测方法,其特征在于,包括:
获取多个当前未被使用的第一端口扫描进程;
并行地调用所述多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,所述第一终端为待扫描终端,每个所述第一端口扫描进程用于扫描一个所述第一终端上的端口;
根据所述扫描结果判断所述第一终端的端口是否为存在漏洞的端口。
2.根据权利要求1所述的检测方法,其特征在于,并行地调用所述多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果包括:
获取与所述第一端口扫描进程的数量对应的任务列表,其中,所述任务列表中包括所述第一终端的IP地址;
按照所述IP地址确定所述第一终端;
并行地调用多个所述第一端口扫描进程扫描所述多个第一终端上的全部端口,得到所述扫描结果。
3.根据权利要求1所述的检测方法,其特征在于,根据所述扫描结果判断所述第一终端的端口是否为存在漏洞的端口包括:
获取预设数据库,其中,所述预设数据库中保存有已确定为存在漏洞的端口的端口信息;
检测所述扫描结果中所述第一终端的所述端口的端口信息是否存在于所述预设数据库;
在所述扫描结果中所述第一终端的所述端口的端口信息存在于所述预设数据库的情况下,判断出所述第一终端的所述端口为所述存在漏洞的端口;
在所述扫描结果中的所述端口的端口信息不存在于所述预设数据库的情况下,判断出所述第一终端的所述端口不为所述存在漏洞的端口。
4.根据权利要求2所述的检测方法,其特征在于,在获取与所述第一端口扫描进程的数量对应的任务列表之前,所述检测方法还包括:
查询执行所述端口扫描进程的第二终端的总扫描进程的数量;
获取所述扫描终端当前使用的第二端口扫描进程的数量;
所述总扫描进程的数量减去所述第二端口扫描进程的数量得到所述第一端口扫描进程的数量。
5.根据权利要求4所述的检测方法,其特征在于,查询执行所述端口扫描进程的第二终端的总扫描进程的数量包括:
读取所述第二终端的配置信息,其中,所述配置信息包括存储所述任务列表的第三终端地址、存储所述扫描结果的第四终端地址以及所述第二终端的所述总扫描进程的数量。
6.根据权利要求1至5中任意一项所述的检测方法,其特征在于,在根据所述扫描结果判断所述第一终端的端口是否为存在漏洞的端口之后,所述检测方法还包括:
若判断出所述第一终端的端口为存在漏洞的端口,则执行禁用所述第一终端的端口的操作。
7.一种端口漏洞的检测装置,其特征在于,包括:
第一获取模块,用于获取多个当前未被使用的第一端口扫描进程;
调用模块,用于并行地调用所述多个当前未被使用的第一端口扫描进程扫描多个第一终端的端口得到扫描结果,其中,所述第一终端为待扫描终端,每个所述第一端口扫描进程用于扫描一个所述第一终端上的端口;
判断模块,用于根据所述扫描结果判断所述第一终端的端口是否为存在漏洞的端口。
8.根据权利要求7所述的检测装置,其特征在于,所述调用模块包括:
第一获取子模块,用于获取与所述第一端口扫描进程的数量对应的任务列表,其中,所述任务列表中包括所述第一终端的IP地址;
确定模块,用于按照所述IP地址确定所述第一终端;
调用子模块,用于并行地调用多个所述第一端口扫描进程扫描所述多个第一终端上的全部端口,得到所述扫描结果。
9.根据权利要求7所述的检测装置,其特征在于,所述判断模块包括:
第二获取子模块,用于获取预设数据库,其中,所述预设数据库中保存有已确定为存在漏洞的端口的端口信息;
检测模块,用于检测所述扫描结果中所述第一终端的所述端口的端口信息是否存在于所述预设数据库;
第一判断子模块,用于在所述扫描结果中所述第一终端的所述端口的端口信息存在于所述预设数据库的情况下,判断出所述第一终端的所述端口为所述存在漏洞的端口;
第二判断子模块,用于在所述扫描结果中的所述端口的端口信息不存在于所述预设数据库的情况下,判断出所述第一终端的所述端口不为所述存在漏洞的端口。
10.根据权利要求8所述的检测装置,其特征在于,所述检测装置还包括:
查询模块,用于查询执行所述端口扫描进程的第二终端的总扫描进程的数量;
第二获取模块,用于获取所述扫描终端当前使用的第二端口扫描进程的数量;
计算模块,用于所述总扫描进程的数量减去所述第二端口扫描进程的数量得到所述第一端口扫描进程的数量。
11.根据权利要求10所述的检测装置,其特征在于,所述查询模块包括:
读取模块,用于读取所述第二终端的配置信息,其中,所述配置信息包括存储所述任务列表的第三终端地址、存储所述扫描结果的第四终端地址以及所述第二终端的所述总扫描进程的数量。
12.根据权利要求7至11中任意一项所述的检测装置,其特征在于,所述检测装置还包括:
禁用模块,用于若判断出所述第一终端的端口为存在漏洞的端口,则执行禁用所述第一终端的端口的操作。
13.一种端口漏洞的检测系统,其特征在于,包括:
一个或多个扫描终端,每个所述扫描终端分别包括权利要求7至11中的任意一项所述的端口漏洞的检测装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410265871.6A CN105306414A (zh) | 2014-06-13 | 2014-06-13 | 端口漏洞的检测方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410265871.6A CN105306414A (zh) | 2014-06-13 | 2014-06-13 | 端口漏洞的检测方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105306414A true CN105306414A (zh) | 2016-02-03 |
Family
ID=55203174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410265871.6A Pending CN105306414A (zh) | 2014-06-13 | 2014-06-13 | 端口漏洞的检测方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105306414A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106921680A (zh) * | 2017-05-05 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种端口扫描方法及装置 |
CN107465690A (zh) * | 2017-09-12 | 2017-12-12 | 国网湖南省电力公司 | 一种基于流量分析的被动式异常端口实时检测方法及系统 |
CN108574681A (zh) * | 2017-03-13 | 2018-09-25 | 贵州白山云科技有限公司 | 一种服务器智能扫描方法及装置 |
CN108965286A (zh) * | 2018-07-09 | 2018-12-07 | 国网重庆市电力公司电力科学研究院 | 一种基于python的轻量化网络设备端口探测方法 |
CN109639630A (zh) * | 2018-10-30 | 2019-04-16 | 国网陕西省电力公司信息通信公司 | 一种终端端口管控系统及管控方法 |
CN111683047A (zh) * | 2020-04-30 | 2020-09-18 | 中国平安财产保险股份有限公司 | 越权漏洞检测方法、装置、计算机设备及介质 |
CN112528330A (zh) * | 2020-12-14 | 2021-03-19 | 建信金融科技有限责任公司 | 日志扫描方法、装置和设备 |
CN112883383A (zh) * | 2021-03-04 | 2021-06-01 | 北京明略昭辉科技有限公司 | 一种漏洞安全防御方法、系统及计算机设备 |
CN113420303A (zh) * | 2021-07-14 | 2021-09-21 | 广东电网有限责任公司广州供电局 | 基于端口扫描的变电站主机安全漏洞检测方法和系统 |
CN113420302A (zh) * | 2021-06-27 | 2021-09-21 | 杭州迪普科技股份有限公司 | 主机漏洞检测方法及装置 |
CN114221775A (zh) * | 2020-09-18 | 2022-03-22 | 北京金山云网络技术有限公司 | 一种危险端口的预警方法、装置、云服务器及存储介质 |
US11698976B2 (en) | 2020-07-07 | 2023-07-11 | Cisco Technology, Inc. | Determining application attack surface for network applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088581A1 (en) * | 2002-11-04 | 2004-05-06 | Brawn John Melvin | Signal level propagation mechanism for distribution of a payload to vulnerable systems |
CN101133398A (zh) * | 2004-10-04 | 2008-02-27 | 普若米赛克有限公司 | 询问多个计算机化设备的方法和设备 |
CN101588247A (zh) * | 2008-05-22 | 2009-11-25 | 吉市有限公司 | 用于检测服务器的漏洞的系统和方法 |
-
2014
- 2014-06-13 CN CN201410265871.6A patent/CN105306414A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088581A1 (en) * | 2002-11-04 | 2004-05-06 | Brawn John Melvin | Signal level propagation mechanism for distribution of a payload to vulnerable systems |
CN101133398A (zh) * | 2004-10-04 | 2008-02-27 | 普若米赛克有限公司 | 询问多个计算机化设备的方法和设备 |
CN101588247A (zh) * | 2008-05-22 | 2009-11-25 | 吉市有限公司 | 用于检测服务器的漏洞的系统和方法 |
Non-Patent Citations (1)
Title |
---|
李慧慧: "一种基于多线程机制的端口扫描器的设计与实现", 《太原理工大学硕士学位论文》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108574681A (zh) * | 2017-03-13 | 2018-09-25 | 贵州白山云科技有限公司 | 一种服务器智能扫描方法及装置 |
CN106921680A (zh) * | 2017-05-05 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种端口扫描方法及装置 |
CN107465690A (zh) * | 2017-09-12 | 2017-12-12 | 国网湖南省电力公司 | 一种基于流量分析的被动式异常端口实时检测方法及系统 |
CN108965286A (zh) * | 2018-07-09 | 2018-12-07 | 国网重庆市电力公司电力科学研究院 | 一种基于python的轻量化网络设备端口探测方法 |
CN109639630A (zh) * | 2018-10-30 | 2019-04-16 | 国网陕西省电力公司信息通信公司 | 一种终端端口管控系统及管控方法 |
CN109639630B (zh) * | 2018-10-30 | 2021-06-18 | 国网陕西省电力公司信息通信公司 | 一种终端端口管控系统及管控方法 |
CN111683047A (zh) * | 2020-04-30 | 2020-09-18 | 中国平安财产保险股份有限公司 | 越权漏洞检测方法、装置、计算机设备及介质 |
CN111683047B (zh) * | 2020-04-30 | 2023-05-30 | 中国平安财产保险股份有限公司 | 越权漏洞检测方法、装置、计算机设备及介质 |
US11698976B2 (en) | 2020-07-07 | 2023-07-11 | Cisco Technology, Inc. | Determining application attack surface for network applications |
CN114221775A (zh) * | 2020-09-18 | 2022-03-22 | 北京金山云网络技术有限公司 | 一种危险端口的预警方法、装置、云服务器及存储介质 |
CN112528330A (zh) * | 2020-12-14 | 2021-03-19 | 建信金融科技有限责任公司 | 日志扫描方法、装置和设备 |
CN112528330B (zh) * | 2020-12-14 | 2022-12-23 | 建信金融科技有限责任公司 | 日志扫描方法、装置和设备 |
CN112883383A (zh) * | 2021-03-04 | 2021-06-01 | 北京明略昭辉科技有限公司 | 一种漏洞安全防御方法、系统及计算机设备 |
CN113420302A (zh) * | 2021-06-27 | 2021-09-21 | 杭州迪普科技股份有限公司 | 主机漏洞检测方法及装置 |
CN113420303A (zh) * | 2021-07-14 | 2021-09-21 | 广东电网有限责任公司广州供电局 | 基于端口扫描的变电站主机安全漏洞检测方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105306414A (zh) | 端口漏洞的检测方法、装置及系统 | |
CN104144419B (zh) | 一种身份验证的方法、装置及系统 | |
CN102685210B (zh) | 一种无线路由设备、移动终端、管理系统及方法 | |
CN111885115B (zh) | 设备绑定变更方法及装置 | |
CN105303112B (zh) | 组件调用漏洞的检测方法及装置 | |
CN104021141B (zh) | 数据处理和云服务的方法、装置及系统 | |
CN104902547A (zh) | WiFi网络连接方法及装置 | |
CN104994595A (zh) | 手机终端及其智能硬件联网控制方法 | |
CN104506594A (zh) | 用于社交应用系统的数据通信方法及系统 | |
CN107104924A (zh) | 网站后门文件的验证方法及装置 | |
CN104683407A (zh) | 一种页面数据和应用数据的传输方法和设备 | |
CN111263377B (zh) | 网络配置方法、装置、设备、系统和配网测试方法、系统 | |
CN113301568A (zh) | 用于配网的方法、装置和智能家居设备 | |
CN113778879B (zh) | 接口的模糊测试方法及装置 | |
CN108418780A (zh) | Ip地址的过滤方法及装置、系统、dns服务器 | |
CN104270204A (zh) | 一种无线通信模块测试方法及测试设备 | |
CN106656998B (zh) | 服务器通信方法及装置 | |
CN103023684A (zh) | 网络信息管理的方法、装置和系统 | |
CN106302345A (zh) | 一种终端认证方法及装置 | |
CN105282112A (zh) | 一种终端及检测终端数据交互的安全性的方法 | |
CN112398786B (zh) | 渗透攻击的识别方法及装置、系统、存储介质、电子装置 | |
CN107733785A (zh) | 一种多终端聊天信息同步删除方法及装置 | |
CN104836827A (zh) | 基于非对称p2p网络的数据处理方法和系统 | |
CN101835144A (zh) | 对无线网络进行安全检测的方法和装置 | |
US20140136597A1 (en) | Relay enabled dynamic virtual private network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160203 |