这是一篇论文,我对论文做了思维导图,思维导图可以在我的资源里面找到
论文名:A framework for searching Internet-wide devices
时间:2017
作者:Qiang Li, Xuan Feng, Lian Zhao, and Limin Sun
这是一篇关于设备搜索的论文,分成了三部分网络探测、指纹识别和应用,网络探测使用的是主动探测,首先发送TCP包确定主机是否存活,为了防止IP地址堵塞,论文使用了无状态发送即不产生三次握手,还使用了RC5分组密码随机选择IP地址。
文章还表明针对不同的设备类型比如摄像头使用特定的端口,比如80、554。
在获得响应数据之后使用横幅抓取解析数据获得想要的信息,对于信息文章主要收集<IP、协议、类型、位置、ISP、时间戳>,并把他们存入数据库,IP、协议、类型和ISP通过响应数据就能获得,比如类型往往出现在响应数据的头部;位置通过使用MaxMind’s GEOIP database通过IP获得所对应的城市;由于存储的是元组,时间戳的目的是及时的更新数据,防止重复,当出现重复时就更新时间戳。数据库选择的是MongoDB。
文章还提出使用分类器获得设备的OS,通过构建<发送数据,响应数据>这样的数据集构建分类模型,以达到分类目的。
应用部分,文章构建了一个查询网站,通过使用Elasticsearch建立在线物理设备索引,然后实时的提供互联网范围内在线设备的图片,就是把活着的设备的IP对应到地域上。
具体流程如下图:
探测到的响应数据经过指纹识别获得我们想要的数据,然后通过kafaka传输到本地寄存器,寄存器判断数据库中是否存在这个设备,如果不存在直接加入,存在则更新时间戳,然后就是网上网民可以使用API搜索设备。
总结:
可以发现这种设备识别方式还处于初级阶段,横幅抓取需要依靠规则,不同厂商规则不同,需要太多手动操作。
这篇论文通过提取响应数据中的信息获得元组内容,现在响应数据里面大多都不包含这些了,提取到的内容有限,尤其是针对响应数据,获得的信息有限,特定端口也不行,有些设备会使用一些不常用端口,方法也不够自动化,指纹识别部分可以使用更多的机器学习。