远程OS探测中的网络协议栈指纹识别技术
在做IP包的分段重组时,不同OS的处理方式不同。有些OS会用新IP段覆盖旧的IP段,而有些会用旧的IP段覆盖新的IP段。
13) MSS(最大分段尺寸)
不同的OS有不同的缺省MSS值,对不同的MSS值的回应也不同。如,给Linux发送一个MSS值很小的包,它一般会把这个值原封不动地返回;其它的系统会返回不同的值。
14) SYN Flood限度
在处理SYN Flood的时候,不同的OS有不同的特点。如果短时间内收到很多的伪造SYN包,一些OS会停止接受新的连接。有的系统支持扩展的方式来防止SYN flood。
15) 主机使用的端口
一些OS会开放特殊的端口,比如:WINDOWS的137、139,WIN2K的445;一些网络设备,如入侵检测系统、防火墙等也开放自己特殊的端口。
16) Telnet选项指纹
建立Telnet会话时,Socket连接完成后,会收到telnet守候程序发送的一系列telnet选项信息。不同OS有不同的Telnet选项排列顺序。
17) Http指纹
执行Http协议时,不同的Web Server存在差异。而从Web Server往往可以判断OS类型。Web Server的差异体现在如下方面:
1:基本Http请求
处理HEAD / Http/1.0这样的请求时,不同系统返回信息基本相同,但存在细节差别。如,Apache返回的头信息里的Server和Date项的排序和其它的服务器不同。
2:DELETE请求
对于DELETE / Http/1.0这样的非法请求,Apache响应"405 Method Not Allowed",IIS响应"403 Forbidden", Netscape响应 "401 Unauthorized"。
3:非法Http协议版本请求
对于GET / Http/3.0这样的请求,Apache响应"400 Bad Request",IIS忽略这种请求,响应信息是OK, Netscape响应"505 Http Version Not Supported"。
4: 不正确规则协议请求
对不规则协议的请求,Apache忽视不规则的协议并返回200 "OK",IIS响应"400 Bad Request", Netscape几乎不返回Http头信息。
18) 打印机服务程序指纹
RFC 1179规定了请求打印服务时须遵循的协议。
在实践中,如果打印请求符合RFC1179的格式,不同OS表现行为相同。但当打印请求不符合RFC1179的格式时,不同OS就会体现出差别。如对一个非法格式的请求,Solaris这样回应:
Reply: Invalid protocol request (77): xxxxxx
而AIX系统这样回应:
Reply: 0781-201 ill-formed FROM address.
大多数OS会给出不同的响应信息。个别OS会给出长度为0的回应。
对于Windows,则是通过专有的SMB协议(Server Message Block Protocol)来实现打印机的共享。
19) 网络协议栈指纹实践
在实践中,网络协议栈指纹方法通常这样应用:总结各种操作系统网络协议栈的上述细微差异,形成一个指纹数据库。在探测一个系统的时候,通过网络和目标系统进行交互,或者侦听目标系统发往网络的数据包,收集其网络协议栈的行为特点,然后以操作系统指纹数据库为参考,对收集的信息进行分析,从而得出目标系统运行何种OS的结论。
20) 远程OS探测的防护方法
由于协议栈指纹方法是建立在操作系统底层程序差别的基础上的,所以要彻底防护指纹识别是很难的。但是有一些方法可以减少信息泄漏并干扰指纹识别的结果,在很大程度上提高系统的安全性。
21) 检测和拦截
对于主动向主机发送数据包的协议栈指纹识别,可以使用IDS检测到异常包或异常的行为,从而加以记录和拦截。
对于通过Sniffer来进行的协议栈指纹识别,这种方法是无效的。
22) 修改参数
一些操作系统的协议栈参数,如缺省WINDOW、MSS、MTU等值,是可以修改的。在Solaris和Linux操作系统下,很多TCP/IP协议栈的参数可以通过系统配置程序来修改。在WINDOWS系统中,可以通过对注册表的修改来配置一些协议栈参数。通过修改这些可设置参数的值,可以给指纹识别造成干扰,从而减少真实信息的泄漏。
23) 修改程序
修改参数可以给指纹识别造成一些干扰,但是对于一些协议栈的行为特征,比如数据包序列号的生成方式,是无法通过参数来修改的。
对于这些行为特征,可以通过修改系统底层程序来实现,但是这么做通常需要付出较高的开发成本,并可能降低一些网络功能。
在实践中,可以综合上述几种防护方法,来达到比较好的安全性。
参考文献
[1] Fyodor,《X - Remote ICMP Based OS Fingerprinting Techniques》, Phrack Magazine Volume 54
[2] Fyodor《Remote OS detection via TCP/IP Stack FingerPrinting》, Phrack Magazine Volume 8
[3] Lance Spitzner《Passive Fingerprinting》, http://www.securityfocus.com/ focus/ids/articles/pfinger.html
[4] RFC 1179: Line Printer Daemon Protocol, Network Printing Working Group, L. McLaughlin III, 1990
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论