研究进度
阅读论文:Single-Packet OS Fingerprinting
操作系统的识别经过了几个阶段。
- 最开始的操作系统指纹识别基于应用程序的banner抓取,但是现在越来越多的程序会修改banner或者干脆不提供banner,导致这种方法可用性降低
- Multiple Packets,nmap工具出现,提出了基于TCP/IP协议栈来进行操作系统的指纹识别,nmap总是希望目标主机接收tcp连接,如果请求的是一个关闭的udp端口,目标主机会响应icmp unreachable,或者是回复ping。但是多包扫描可能会出现问题,负载均衡是现在非常常用的技术,多包探测可能会导致指纹混乱。
(四层负载均衡技术:1、基于NAT实现的负载均衡,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。2、DR:直接路由模式,3、TUN隧道)
- 单包探测:单包探测在传统的TCP/IP数据包上提取特征的基础上,还考虑了利用操作系统超时重传算法来区分操作系统,因为不同操作系统可能使用了不同的超时重传算法。
常见的阻止操作系统识别的方法
- windows下可以通过调整注册表来修改网络通信的一些参数,使TCP/IP上的部分特征变得不可靠。
- 还有一些其他方法,基本原理都是修改参数来变更网络传输的参数
单包操作系统识别的难点
- 复杂的广域网环境将导致RTO的值并不准确
- 单包本身包含的目标主机的信息有限
- 用户对特征信息的修改
论文的贡献
- 作者研究网络延迟和损失对测量样本的影响,分析现有的方法,并且假设分类问题是可处理的。
- 开发了解决延迟抖动,数据包丢失,和用户对SYN-ACK特性的修改的新方法,创建了一种分类方法,显著提高了现有技术的准确性,包括在模拟网络或者是在真实互联网上。