一种基于协议栈指纹的手机模拟器识别方法技术

技术编号:18006974 阅读:57 留言:0更新日期:2018-05-21 07:36
本发明专利技术公开了一种基于协议栈指纹的手机模拟器识别方法,旨在解决现有技术中不同的操作系统以及操作系统版本需要不同模拟器模拟因此需要不同的分析方法对各种不同类型的模拟器识别进而导致模拟识别成本高的问题;本申请巧妙的将协议栈指纹技术应用到模拟器识别中,由于模拟器具有需要另一个操作系统作为载体的共有特性,识别其操作系统类型和版本并结合用户实际场景进行判断就能解决模拟器类型多、版本多、版本升级快造成模拟器识别不准确、识别成本过高等问题,本申请通过引入协议栈指纹技术实现了各种模拟器识别解析的统一化,节约了模拟器识别成本,同时本申请避免了模拟器版本升级造成模拟器识别不准确的问题;本申请适用于模拟器识别相关领域。

【技术实现步骤摘要】
一种基于协议栈指纹的手机模拟器识别方法
本专利技术涉及手机模拟器识别领域,具体涉及一种基于协议栈指纹的手机模拟器识别方法。
技术介绍
在另一个操作系统中模拟一个操作系统,比如:在Windows操作系统中模拟一个Android的操作系统,模拟Android操作系统软件称之为模拟器。使用模拟器能对程序进行模拟运行调试程序可以减少对真机的伤害,所以现在的模拟器不断的发展以更加贴近真机。但是模拟器的不断发展,也带来了一些不利影响;例如:利用模拟器进行刷单拉高一些钓鱼应用或者一些没有实质用途的应该,误导用户的使用;例如:利用模拟器进行恶意攻击,银行系统存储了许多用户的金融信息,如果银行系统被攻击,将可能导致不可挽回的损失,而模拟器可以避免设备指纹的验证,容易生成,伪装性强,存在批量行为,存在撞库、拖库、暴力破解、机器人的使用,破坏性极强,如果系统能够尽早识别模拟器以尽量消除模拟器带来的负面影响有重要意义;协议栈指纹技术常规的应用场景是,黑客进行攻击或者网络安全维护人员进行网络扫描时候使用的一种技术。黑客攻击服务器之前需要确认服务器中所安装操作系统的类型和版本,才能有针对性的安排攻击计划,因此获取到操作系统的类型和版本成为攻击的前提条件,协议栈指纹技术在此类场景下经常为使用到。网络安全人员在进行网络安全性扫描和漏洞发现前获取网络中设备的各类信息时也需要了解网络中的操作系统情况,采用协议栈指纹技术能有效帮助安全人员获取到网络中的中服务器的操作系统情况。但是在传统的模拟识别方案中,大多数使用在本地安装每一个版本的模拟器,对模拟器中的各项数据指标进行采集并进行分析,最终判断是否为模拟器。但这种方法的缺点在于,当需要识别的模拟器数量庞大时识别的成本将非常高,而且当已识别的模拟器软件进行版本升级后可能无法识别此类模拟器,又需要在进行一次数据分析和判断才能识别。在银行系统中,尤其如此,访问的用户众多,机型众多,如果对于每一个用户均需要不同的模拟器进行识别,这对于银行来说,成本过高,而且过多的数据分析或导致银行系统的工作效率难以提高。概括来说传统的模拟器识别方法,缺点如下:(1)若期望识别市面上所有模拟器需要将每一个类型的模拟器的每一个版本都进行数据分析和判断,造成模拟器识别工作量极大;(2)每一种模拟器都会升级器软件版本,因此会带来不断跟随模拟器版本升级进行数据分析和判断;(3)由于每一种模拟器升级的时间不确定,会造成模拟器升级后在未做新版模拟数据分析时无法识别新版本模拟器;所以如何解决模拟器类型多、版本多、版本升级快造成模拟器识别不准确、识别成本过高等问题对于发展模拟器识别技术有重要的研究意义。
技术实现思路
本专利技术的目的在于:针对现有技术中不同的操作系统以及操作系统版本需要不同的模拟器模拟因此需要不同的分析方法对各种不同类型的模拟器识别进而导致模拟器识别方法难一统一、识别成本高的问题,本申请提供了一种基于协议栈指纹的手机模拟器识别方法。本专利技术采用的技术方案如下:本申请提供了一种基于协议栈指纹的手机模拟器识别方法,包括以下步骤:步骤1:获取用户可采用的操作系统类型;具体地,用户可采用的操作系统类型是Android、iOS的一种或两种;或者步骤1通过应用端获取用户可采用的操作系统类型;或者步骤1通过限定应用使用的操作系统类型获取用户可采用的操作系统类型;步骤2:通过协议栈指纹获取到当前用户通讯时的操作系统类型;所述步骤2的具体步骤为:步骤2.1:抓取当前用户通讯时操作系统的协议栈指纹的数据包;步骤2.2:利用不同的操作系统的协议栈指纹的数据包之间的差异来获取当前用户通讯时的操作系统;具体地,数据包差异是ACK序号、TOS、ICMP地址屏蔽请求、FIN包的响应、虚假标记的SYN包响应、初始化序列号、ICMP错误信息、ICMP消息引用、分段重组处理、MSS、SYNFlood限度的一种或几种,具体说明如下:ACK序号,不同的OS处理ACK序号时是不同的。如果发送一个FIN/PSH/URG数据包到一个关闭的TCP端口,大多数OS会把回应ACK包的序号设置为发送的包的初始序号,而Windows和一些打印机贝iJ会发送序号为初始序号加1的ACK包;TOS(服务类型),对于ICMP端口不可达消息,送回包的TOS值也是有差别的。大多数TOS是0,而Linux是OxcO;ICMP地址屏蔽请求,对于ICMP地址屏蔽请求,有些OS会产生相应的应答,有些则不会,会产生应答的系统有OpenVMS,MSWindows和SUNSolaris等,在这些产生应答的系统中,对分片ICMP地址屏蔽请求的应答又存在差别,可以做进一步的区分;对FIN包的响应,发送一个只有FIN标志位的TCP数据包给一个打开的端口,Linux等系统不做响应;有些系统,例如MSWindows,CISCO和HP/UX等,则发回一个RESET;虚假标记的SYN包,在SYN包的TCP头里设置一个未定义的TCP标记,目标系统在响应时,有的会保持这个标记,有的不保持,还有一些系统在收到这样的包时会复位连接;ISN(初始化序列号),不同的OS在选择TCPISN时采用不同的方法。一些UNIX系统采用传统的64K递增方法,较新的Solaris,IRIX,FreeBSD,DigitalUnix和Cray等系统则采用随机增量的方法,Linux2.0,OpenVMS和AIX等系统采用真随机方法,Windows系统采用一种时间相关的模型。还有一些系统使用常数;ICMP错误信息,在发送ICMP错误信息时,不同的OS有不同的行为。RFC1812建议限制各种错误信息的发送率,有的OS做了限制,有的没有;ICMP消息引用,RFC规定ICMP错误消息可以引用一部分引起错误的原消息。在处理端口不可达消息时,大多数OS送回IP请求头外加8个字节,Solaris送回的稍多,Linux更多,有些OS会把引起错误消息的头做一些改动再发回来;分段重组处理,在做IP包的分段重组时,不同OS的处理方式不同。有些OS会用新IP段覆盖旧的IP段,而有些则会用旧的IP段覆盖新的IP段;MSS(最大分段尺寸),不同的OS有不同的默认MSS值,对不同MSS值的回应也不尽相同。如给Linux发送一个MSS值很小的包,它一般会把这个值原封不动地返回,但其他系统会返回不同的值;SYNFlood限度,在处理SYNflood时,不同的OS有不同的特点。如果短时间内收到很多的伪造SYN包,一些OS会停止接受新的连接。有的系统以支持扩展的方式来防止SYNFlood;步骤3:将步骤2中的获取的操作系统类型与步骤1中的操作系统类型对比,如不属于步骤1中的操作系统类型,则判断为模拟器;本申请首先确定用户的行为只能产生在某一类或几类操作系统之上,若识别出发出数据的操作系统不是确定的操作系统则判定为模拟器。比如:确定用户的操作只能在智能手机上进行,当用户在Windows中安装模拟器中进行操作时,通过协议栈指纹可以获取到当前用户通讯时的操作系统不是Android或者iOS而且一个Windows是操作系统,此时可以判定当前用户使用模拟器;将当前与系统交互的用户的数据包进行抓取,并通过协议栈指纹进行解析,解析后获取到的操作系统类型和版本提供到当前系统,系统中根据操作系本文档来自技高网
...

【技术保护点】
一种基于协议栈指纹的手机模拟器识别方法,其特征在于,包括以下步骤:步骤1:获取用户可采用的操作系统类型;步骤2:通过协议栈指纹获取到当前用户通讯时的操作系统类型;步骤3:将步骤2中的获取的操作系统类型与步骤1中的操作系统类型对比,如不属于步骤1中的操作系统类型,则判断为模拟器。

【技术特征摘要】
1.一种基于协议栈指纹的手机模拟器识别方法,其特征在于,包括以下步骤:步骤1:获取用户可采用的操作系统类型;步骤2:通过协议栈指纹获取到当前用户通讯时的操作系统类型;步骤3:将步骤2中的获取的操作系统类型与步骤1中的操作系统类型对比,如不属于步骤1中的操作系统类型,则判断为模拟器。2.如权利要求1所述的一种基于协议栈指纹的手机模拟器识别方法,其特征在于,所述步骤2的具体步骤为:步骤2.1:抓取当前用户通讯时操作系统的协议栈指纹的数据包;步骤2.2:利用不同的操作系统的协议栈指纹的数据包之间的差异来获取当前用户通讯时的操作系统。3.如权利要求2所述的一种基于协议栈指纹的手机模拟器识别方法,其特征在于...

【专利技术属性】
技术研发人员:陈少磊刘嵩孟勐
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1