远程OS探测中的网络协议栈指纹识别技术(一).pdf

上传人:赵** 文档编号:21122653 上传时间:2022-06-18 格式:PDF 页数:4 大小:203KB
返回 下载 相关 举报
远程OS探测中的网络协议栈指纹识别技术(一).pdf_第1页
第1页 / 共4页
远程OS探测中的网络协议栈指纹识别技术(一).pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《远程OS探测中的网络协议栈指纹识别技术(一).pdf》由会员分享,可在线阅读,更多相关《远程OS探测中的网络协议栈指纹识别技术(一).pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、远程 OS 探测中的网络协议栈指纹识别技术(一)摘要远程探测计算机系统的 OS(操作系统)类型、版本号等信息,是黑客入侵行为的重要步骤,也是网络安全中的一种重要的技术。 在探测技术中,有一类是通过网络协议栈指纹来进行的。 协议栈指纹是指不同操作系统的网络协议栈存在的细微差别, 这些差别可以用来区分不同的操作系统。 本文研究和分析了此技术的原理和实践, 并提出了防止指纹探测的方法。关键词远程 OS 探测协议栈指纹 TCP/IP协议1 引言探测和识别一个计算机系统在运行什么OS 是黑客入侵的重要步骤。如果不知道目标系统在运行什么 OS,就很难在目标系统上执行操作,也无法判断是否存在安全漏洞,更谈不

2、上攻击。从管理和防范的角度来说, 如果能减少被探测时泄漏的信息, 就减少了黑客入侵行为的信息来源,使其入侵行为变得相当困难。因此,研究这方面的技术,对于提高系统的安全性和抵抗入侵的能力具有重要的意义。2 简单的 OS 探测技术在早期,黑客经常采用一些简单的探测方法来获取目标系统的信息。 如通过 telnet 标题,ftp的标题和 STAT命令,通过 HTTP 服务程序,DNS,SNMP 等都可以得到很多有用信息。但是,在长期的入侵和防入侵的斗争中, 通过简单的手段即可获得的信息越来越少了。 管理员努力地减少通过网络泄漏的信息,有时还修改OS 的代码,给出虚假的信息。在这种情况下,简单的方法已经

3、很难奏效了,因此出现了通过网络协议栈指纹来识别OS 的技术。3 网络协议栈指纹原理常用的网络协议是标准的, 因而从理论上讲各个操作系统的协议栈应该是相同的。 但是,在实践中, 各种操作系统的协议栈的实现存在细微的差异。 这些差异称作网络协议栈的“指纹”。对 TCP 协议族来说, 这些差异通常表现在数据包头的标志字段中。 如 windowsize、 ACK 序号、TTL 等的不同取值。通过对这些差别进行归纳和总结,可以比较准确地识别出远程系统的OS 类型。由于 Internet 广泛使用 TCP/IP协议族,因此下面的讨论主要围绕TCP/IP来进行。4 网络协议栈指纹构成下面列出了不同 OS 的

4、网络协议栈的差异,这些差异可作为协议栈指纹识别的依据。1)TTLTTL:TimeToLive,即数据包的“存活时间”,表示一个数据包在被丢弃之前可以通过多少跃点(Hop)。不同操作系统的缺省TTL 值往往是不同的。常见操作系统的 TTL 值:Windows9x/NT/2000Intel128DigitalUnix4.0Alpha60Linux2.2.xIntel64Netware4.11Intel128AIX4.3.xIBM/RS600060Cisco12.02514255Solaris8Intel/Sparc642)DF 位DF(不分段)位识别:不同 OS 对 DF 位有不同的处理方式,有些

5、OS 设置 DF 位,有些不设置 DF 位;还有一些 OS 在特定场合设置 DF 位,在其它场合不设置 DF 位。3)WindowSizeWindowSize:TCP 接收(发送)窗口大小。它决定了接收信息的机器在收到多少数据包后发送 ACK 包。特定操作系统的缺省 WindowSize 基本是常数,例如,AIX 用 0 x3F25,Windows、OpenBSD、FreeBSD 用 0 x402E。一般地,UNIX 的 WindowSize 较大。MSWindows,路由器,交换机等的较小。4)ACK 序号不同的 OS 处理 ACK 序号时是不同的。如果发送一个 FIN|PSH|URG 的数

6、据包到一个关闭的TCP 端口,大多数 OS 会把回应 ACK 包的序号设置为发送的包的初始序号, 而 Windows 和一些打印机则会发送序号为初始序号加1 的 ACK 包。5)ICMP 地址屏蔽请求对于 ICMP 地址屏蔽请求,有些 OS 会产生相应的应答,有些则不会。会产生应答的系统有OpenVMS,MSWindows,SUNSolaris等。 在这些产生应答的系统中, 对分片 ICMP 地址屏蔽请求的应答又存在差别,可以做进一步的区分。6)对 FIN 包的响应发送一个只有 FIN 标志位的 TCP 数据包给一个打开的端口, Linux 等系统不响应; 有些系统,例如 MSWindows,

7、CISCO,HP/UX等,发回一个 RESET。7)虚假标记的 SYN 包在 SYN 包的 TCP 头里设置一个未定义的 TCP 标记,目标系统在响应时,有的会保持这个标记,有的不保持。还有一些系统在收到这样的包的时候会复位连接。8)ISN(初始化序列号)不同的 OS 在选择 TCPISN 时采用不同的方法。一些UNIX 系统采用传统的 64K 递增方法,较新的 Solaris,IRIX,FreeBSD,DigitalUnix,Cray等系统采用随机增量的方法;Linux2.0,OpenVMS,AIX等系统采用真随机方法。Windows 系统采用一种时间相关的模型。还有一些系统使用常数。如,3

8、Com 集线器使用 0 x803,AppleLaserWriter打印机使用 0 xC7001。9)ICMP 错误信息在发送 ICMP 错误信息时,不同的 OS 有不同的行为。RFC1812 建议限制各种错误信息的发送率。有的 OS 做了限制,而有的没做。10)ICMP 消息引用RFC 规定 ICMP 错误消息可以引用一部分引起错误的源消息。在处理端口不可达消息时,大多数 OS 送回 IP 请求头外加 8 字节。Solaris 送回的稍多,Linux更多。有些 OS 会把引起错误消息的头做一些改动再发回来。例如,FreeBSD,OpenBSD,ULTRIX,VAXen等会改变头的 ID。这种方

9、法功能很强,甚至可以在目标主机没有打开任何监听端口的情况下就识别出Linux 和Solaris。11)TOS(服务类型)对于 ICMP 端口不可达消息,送回包的服务类型(TOS)值也是有差别的。大多数 OS 是 0,而Linux 是 0 xc0。12)分段重组处理在做 IP 包的分段重组时, 不同 OS 的处理方式不同。 有些 OS 会用新 IP 段覆盖旧的 IP 段,而有些会用旧的 IP 段覆盖新的 IP 段。13)MSS(最大分段尺寸)不同的 OS 有不同的缺省 MSS 值,对不同的 MSS 值的回应也不同。如,给 Linux 发送一个MSS 值很小的包,它一般会把这个值原封不动地返回;其

10、它的系统会返回不同的值。14)SYNFlood 限度在处理 SYNFlood 的时候, 不同的 OS 有不同的特点。 如果短时间内收到很多的伪造SYN 包,一些 OS 会停止接受新的连接。有的系统支持扩展的方式来防止SYNflood。15)主机使用的端口一些 OS 会开放特殊的端口,比如:WINDOWS 的 137、139,WIN2K 的 445;一些网络设备,如入侵检测系统、防火墙等也开放自己特殊的端口。16)Telnet选项指纹建立 Telnet会话时,Socket连接完成后,会收到telnet 守候程序发送的一系列telnet 选项信息。不同 OS 有不同的 Telnet选项排列顺序。1

11、7)Http 指纹执行 Http 协议时,不同的 WebServer 存在差异。而从 WebServer 往往可以判断 OS 类型。WebServer的差异体现在如下方面:1:基本 Http 请求处理HEAD/Http/1.0这样的请求时, 不同系统返回信息基本相同, 但存在细节差别。 如, Apache返回的头信息里的 Server 和 Date 项的排序和其它的服务器不同。2:DELETE 请求对于 DELETE/Http/1.0 这样 的非法请求,Apache 响应405MethodNotAllowed,IIS 响应403Forbidden,Netscape响应401Unauthoriz

12、ed。3:非法 Http 协议版本请求对于 GET/Http/3.0 这样的请求,Apache 响应400BadRequest,IIS 忽略这种请求,响应信息是OK,Netscape 响应505HttpVersionNotSupported。4:不正确规则协议请求对 不 规 则 协 议 的 请 求 ,Apache忽 视 不 规 则 的 协 议 并 返 回200OK,IIS响 应400BadRequest,Netscape几乎不返回 Http 头信息。18)打印机服务程序指纹RFC1179 规定了请求打印服务时须遵循的协议。在实践中,如果打印请求符合RFC1179 的格式,不同OS 表现行为相同

13、。但当打印请求不符合 RFC1179 的格式时,不同OS 就会体现出差别。如对一个非法格式的请求,Solaris 这样回应:Reply:Invalidprotocolrequest(77):xxxxxx而 AIX 系统这样回应:Reply:0781-201ill-formedFROMaddress.大多数 OS 会给出不同的响应信息。个别OS 会给出长度为 0 的回应。对于 Windows,则是通过专有的 SMB 协议(ServerMessageBlockProtocol)来实现打印机的共享。19)网络协议栈指纹实践在实践中, 网络协议栈指纹方法通常这样应用: 总结各种操作系统网络协议栈的上述

14、细微差异,形成一个指纹数据库。在探测一个系统的时候,通过网络和目标系统进行交互,或者侦听目标系统发往网络的数据包, 收集其网络协议栈的行为特点, 然后以操作系统指纹数据库为参考,对收集的信息进行分析,从而得出目标系统运行何种OS 的结论。20)远程 OS 探测的防护方法由于协议栈指纹方法是建立在操作系统底层程序差别的基础上的, 所以要彻底防护指纹识别是很难的。 但是有一些方法可以减少信息泄漏并干扰指纹识别的结果, 在很大程度上提高系统的安全性。21)检测和拦截对于主动向主机发送数据包的协议栈指纹识别,可以使用 IDS 检测到异常包或异常的行为,从而加以记录和拦截。对于通过 Sniffer来进行

15、的协议栈指纹识别,这种方法是无效的。22)修改参数一些操作系统的协议栈参数,如缺省WINDOW、MSS、MTU 等值,是可以修改的。在Solaris和 Linux 操作系统下, 很多 TCP/IP协议栈的参数可以通过系统配置程序来修改。 在 WINDOWS系统中,可以通过对注册表的修改来配置一些协议栈参数。通过修改这些可设置参数的值,可以给指纹识别造成干扰,从而减少真实信息的泄漏。23)修改程序修改参数可以给指纹识别造成一些干扰, 但是对于一些协议栈的行为特征, 比如数据包序列号的生成方式,是无法通过参数来修改的。对于这些行为特征, 可以通过修改系统底层程序来实现, 但是这么做通常需要付出较高的开发成本,并可能降低一些网络功能。在实践中,可以综合上述几种防护方法,来达到比较好的安全性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁