http指纹识别技术 【扩展阅读:SMTP协议原始命令码和工作原理】
【扩展信息:SMTP服务对命令流水的扩展】http指纹识别现在已经成为应用程序安全中一个新兴的话题,http服务器与http应用程序安全也已经成为网络安全中的重要一部分.从网络管理的立场来看,保持对各种web服务器的监视与追踪使得http指纹识别变的唾手可得,http指纹识别可以使得信息系统与安全策略变的自动化,在基于已经设置了审核策略的特殊的平台或是特殊的web服务器上,安全测试工具可以使用http指纹识别来减少测试所需要的配置. 本文将介绍现有的http指纹识别技术,同时也将讨论所遇到的一些问题并且拿出可行的解决方案. 一.指纹识别理论 指纹的定义是这样的:1是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在纸上留下的的墨水印象;2是指可以用来识别的东西:如特色、痕迹或特性等揭露起源的东西,表示物体或物质的特色的证据. 指纹识别可以分为两步,一是对指纹进行收集与分类;二是将未知的指纹同被储存在数据库中的指纹进行比较,从而找出最符合的. 当采集指纹的时候,对物体的所有主要特性的抓取是必要的.采集较多的细节,可以对第二步产生很大的帮助.当比较指纹的时候,很有可能有几个指纹是被不合适的匹配的,因为可指纹之间微小的差别很容易使识别产生错误,这也要求指纹识别需要很高的技术. 指纹识别技术现在已经是网络安全的已知技术.操作系统指纹识别在任何的网络评估中是一件通常的工作,现在也有很多操作系统指纹识别技术.操作系统指纹识别为什么能成功?那是因为每个操作系统实现tcp/ip协议时有微小的差别,当前比较流行的是利用tcp/ip堆栈进行后操作系统识别,相关工具比如nmap;还有的是利用icmp进行操作系统识别,代表工具如xprobe. http指纹识别的原理大致上也是相同的:记录不同服务器对http协议执行中的微小差别进行识别.http指纹识别比tcp/ip堆栈指纹识别复杂许多,理由是定制http服务器的配置文件、增加插件或组件使得更改http的响应信息变的很容易,这样使得识别变的困难;然而定制tcp/ip堆栈的行为需要对核心层进行修改,所以就容易识别. 二.banner获取 查看http应答头信息是http指纹识别中最简单也是最基础的,我们可以通过一个tcp客户端比如netcat来实现,一般我们用的比较多的是telnet到80端口,然后发送命令来得到响应信息,这里我们以netcat来做例子,以下是三个不同http服务器的响应信息: 1:apache1.3.23server: http/1.1200ok date:mon,08sep200317:10:49gmt server:apache/1.3.23 last-modified:mon,08sep200303:48:19gmt etag:"32417-c4-3e5d8a83" accept-ranges:bytes content-length:196 connection:close content-type:text/html 2:microsoftiis5.0server: http/1.1200ok server:microsoft-iis/5.0 expires:mon,08sep200301:41:33gmt date:mon,08sep200316:41:33gmt content-type:text/html accept-ranges:bytes last-modified:mon,08sep200315:32:21gmt ... 下一页