[发明专利]一种基于协程异步IO的漏洞探测方法及其漏洞扫描系统有效
申请号: | 201810103601.3 | 申请日: | 2018-02-01 |
公开(公告)号: | CN108156181B | 公开(公告)日: | 2020-10-20 |
发明(设计)人: | 王俊杰;范渊 | 申请(专利权)人: | 杭州安恒信息技术股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 杭州中成专利事务所有限公司 33212 | 代理人: | 周世骏 |
地址: | 310051 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及网络漏洞扫描技术,旨在提供一种基于协程异步IO的漏洞探测方法及其漏洞扫描系统。该种基于协程异步IO的漏洞探测方法通过运行主线程,由主线程创建一个输出汇总队列,一个协程池和一个输出汇总线程;主线程完成系统各参数的初始化工作后,读取待扫描目标列表文件,创建扫描任务并提交到协程池,协程池中相应协程被创建对目标使用漏洞探测规则进行探测,当探测到漏洞结果时,将结果排队到输出队列中,由输出汇总线程统一输出到一个扫描日志文件保存。本发明使用协程将异步IO基于状态机的业务流程同步化,以更接近人的思维方式去编写代码,同时获得异步IO的性能。 | ||
搜索关键词: | 一种 基于 异步 io 漏洞 探测 方法 及其 扫描 系统 | ||
【主权项】:
一种基于协程异步IO的漏洞探测方法,协程异步IO模式下,在IO进行中时,协程能被挂起,底层线程转去执行其它协程,而在IO完成后能恢复执行,其特征在于,所述基于协程异步IO的漏洞探测方法具体包括下述步骤:(1)协程连接探测目标;首先初始化一个协程上下文,然后执行这个协程,发起一个协程连接操作连接被探测目标;进入协程连接操作后,协程库发起异步连接操作,并保存当前协程的运行上下文;运行当前协程的线程调用事件选择器获取下一事件:如果无事件则阻塞等待,执行协程连接操作的协程被挂起;如果事件选择器收到相应的事件,阻塞的线程被系统内核唤醒,线程根据异步连接前保存的协程运行上下文,将连接成功状态保存到上下文中,然后根据上下文中保存的信息,恢复各寄存器值,并转到指令指针PC处继续运行,执行协程连接操作的协程被恢复执行,进入步骤(2);(2)协程发送探测包;探测协程再发起一个协程发送操作;进入协程发送操作后,协程库发起异步发送操作,并保存当前协程的运行上下文;运行当前协程的线程再次调用事件选择器获取下一事件:如果无事件则阻塞等待,执行协程发送操作的协程被挂起;如果事件选择器再次收到相应的事件,阻塞的线程被系统内核唤醒,线程根据异步发送前保存的协程运行上下文,将发送成功状态保存到上下文中,然后根据上下文中保存的信息,恢复各寄存器值,并转到指令指针PC处继续运行,执行协程发送操作的协程被恢复执行,进入步骤(3);(3)协程接收探测响应包;探测协程再次发起一个协程接收操作;协程库发起异步接收操作,并保存当前协程的运行上下文;运行当前协程的线程再次调用事件选择器获取下一事件:如果无事件则阻塞等待,执行协程接收操作的协程被挂起;如果事件选择器再次收到相应的事件,阻塞的线程被系统内核唤醒,线程根据异步接收前保存的协程运行上下文,将接收成功状态保存到上下文中,然后根据上下文中保存的信息,恢复各寄存器值,并转到指令指针PC处继续运行,执行协程接收操作的协程被恢复执行,进入步骤(4);(4)判断探测是否结束;探测协程根据所探测漏洞的类型和返回数据包进行判断是否完成了探测:如果未完成探测,则根据当前返回数据包的内容准备下一个探测包,并再次发起协程发送操作,并跳到步骤(2)重复上面过程,直到漏洞探测过程结束;如果完成了探测,即漏洞探测过程结束,则保存对该目标探测所获得的信息进行保存;(5)结束一个目标的探测;最后结束对该目标的探测,关闭已建立网络连接。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州安恒信息技术股份有限公司,未经杭州安恒信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810103601.3/,转载请声明来源钻瓜专利网。