OSI模式第4层是传输层,它位于OSI模式的中间。这一章将阐述指纹识别以及其与传输层的关系。指纹识别是操作系统(OS)级功能。为了更好的理解指纹识别是如何工作的,我们首先需要回顾一下传输层的一些基本概念:身份验证。
比如,客户端是运行MAC OS10、BSD还是Windows 2003服务器呢? 有两个与传输层相关的主要协议:第一个是用户数据包协议(UDP),它是一个无连接的协议。 UDP并不提供可靠性机制,它的设计目标是提高速度。另一个是传输控制协议(TCP),它是基于连接并以可靠性为设计目标的。TCP的可靠性是通过使用流控制、错误检测校验码、确认序列号、窗口大小定义以及进程启动和关闭来实现的……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
OSI模式第4层是传输层,它位于OSI模式的中间。这一章将阐述指纹识别以及其与传输层的关系。指纹识别是操作系统(OS)级功能。为了更好的理解指纹识别是如何工作的,我们首先需要回顾一下传输层的一些基本概念:身份验证。比如,客户端是运行MAC OS10、BSD还是Windows 2003服务器呢?
有两个与传输层相关的主要协议:第一个是用户数据包协议(UDP),它是一个无连接的协议。 UDP并不提供可靠性机制,它的设计目标是提高速度。另一个是传输控制协议(TCP),它是基于连接并以可靠性为设计目标的。TCP的可靠性是通过使用流控制、错误检测校验码、确认序列号、窗口大小定义以及进程启动和关闭来实现的。
TCP还使用了一套控制位和标记。这些标记是用来控制数据流的。下面是一些常见的标记:
- URG:表示紧急数据
- ACK:表示确认序列值。确认序列数字很重要,它必须经过接受者的检验。
- RST:表示重置。RST可以用于终止一个出现问题的连接。
- SYN:表示同步。SYN用于启动一个会话。
- FIN:表示完成。FIN用于在会话结束时,它会发送会话清除信号。
在创建连接的过程中,TCP和UDP都充当了中间人的角色。其中,传输层是负责主机间的连接。当说到连接问题时,你可以想象一下打电话的情景。听到电话那头某人的应答声你就可以知道很多信息——他(她)是年轻的还是年老的,是男人还是女人。当黑客尝试识别攻击目标时,指纹识别的功能与这种情况非常相似。被攻击目标必须在攻击加载之前被识别。可以是积极的或消极的。
被动的指纹识别
被动的指纹识别很难检测的。它并不需要在网络中注入流量,而更像是一个数据包嗅探器。被动的指纹识别工具能检测数据包,并查看其中的IP、ICMP和TCP报头的默认值,从而确定创建数据包的操作系统的类型。虽然被动的指纹识别可能没有主动的指纹识别准确,但它却是非常很隐蔽的。诸如Siphon、Ettercap 和p0f等工具都是基于被动概念的。如果想阅读更多关于被动的文章,可以浏览来自Honeynet Project:了解你的对手: 被动的指纹识别的文章。
为了更好的了解被动的指纹识别是如何工作的,让我们来进一步地看看程序p0f。这个被动的指纹识别工具是使用p0f.fp文件来存储已知的OS作业系统的“指纹”。如下是该文件的一小部分:
----------------- MacOS ------------------- 32768:255:1:48:M*,W0,N:.:MacOS:9.0-9.2 ----------------- OpenBSD ----------------- 16384:64:1:64:M*,N,N,S,N,W0,N,N,T:.:OpenBSD:3.0-3.4 |
我们先看第一项,我会详细介绍前面的四个字段。首先,值“32768”是TCP的最初窗口大小。下一个值“255”是IP 存活时间(Time-To-Live,TTL)。紧跟着的“1”表示IP是非分片位。第四个字段“48”定义了TCP SYN数据包的字节总长度。这些数字唯一地定义了一个MAC OS 9操作系统。将这些数值与OpenBSD的进行比较,你可以看到相当大的差别。这意味着每个供应商在设计一个OS时都使用稍微有些差别的值。这些差别可以用来识别出不同的系统。如果你希望了解更多关于p0f的信息,可以浏览p0f应用主页。
主动的指纹识别
主动的指纹识别不像被动的指纹识别那样低调。入侵检测系统(IDS)无法检测到被动的指纹识别,但是是可以检测到主动的指纹识别。黑客可以从主动的指纹识别中获取理准确的数据。主动的指纹识别是通过发送特定格式化的TCP数据包实现的。结果是每个目标会对这些有害的数据包作出不同的响应。其中常见主动的指纹识别工具有Xprobe2和Nmap。
Nmap是通过向目标主机发送不同类型的数据包实现识别的。一旦Nmap识别了至少一个开放和一个关闭的端口,它就可以开始进行实际的OS识别了。Nmap可以发出大量带有不同TCP标记或TCP选项的数据包。目的是希望其中的某一个数据包能够引起目标系统的响应。例如,发送一个带有SYN、FIN、PUSH 和URGENT标记的TCP数据包进行扫描。这显然便不是一个正常的数据包。
虽然针对被动扫描的防范是有限的,但是IDS工具可以用与检测主动的指纹识别。嗅探也可以用于匹配已知的主动的指纹识别扫描模式。Morph则是另外一个可选的工具。Morph是一个OS指纹混乱工具,它可以用于扰乱主动的指纹识别工具,使它们无法作出准确的探测。
无论你选择哪种技术,重要的是你必须了解这些技术是如何工作的,这样你才能更好地进行防卫。
关于作者:
Michael Gregg 在IT方面有15年左右的工作经验。Michael是Houston-based 培训和咨询公司Superior Solutions Inc.的总裁。他是一位网络、安全和因特网技术专家。他有两个辅修学位,一个学士学位和硕士学位。目前他拥有下列证书:MCSE、MCT、CTT、A+、 N+、CAN、CCNA、CIW Security Analyst 和 TICSA。
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
SOHO环境中 哪些设备支持IPv6?
随着IPv6慢慢进入人们的视线,你可能也想尝试一下,但是你的操作系统以及SOHO网络设备都支持IPv6吗?
-
对虚拟化动心的十件酷事
虚拟化并非只是针对极客们或者运行高性能服务器的用户们的。它可以为任何人提供有益的帮助,如果你还没有在虚拟化的海边沾湿自己的鞋,那你就可能要落伍了。
-
OSI堆栈安全:第5层——会话劫持
OSI模式的第5层是会话层。会话层负责建立、管理、终止数据交换和会话。由于第5层是处理会话和连接协调,这个文章主要探讨的内容是会话劫持。