新型IDS降低误报和漏报
入侵检测系统(IDS)是多层安全体系架构的关键组成部分。但目前的入侵检测技术还不够完善,存在大量误报和漏报现象。误报是指在安全事件并没有发生时IDS报告发现了攻击,漏报是指在安全事件发生时IDS却没有发出报警。漏报和误报不仅阻碍了IDS的进一步应用,也使得一些专家对IDS的存在价值提出置疑。
一种采用被动指纹识别技术的IDS正在改变人们对IDS的看法。被动指纹识别技术能够识别网络中的系统信息,采集运行在主机上的操作系统、服务以及应用程序的关键数据进行综合分析,以降低误报和漏报。
当检测到一个可能包含恶意传输流的数据包时,采用被动指纹识别技术的IDS就会将该数据包与目标主机的脆弱性概况文件进行对比,以确定主机是否正在遭受潜在攻击的影响。如果主机被认为正在受到攻击,该IDS就会发出报警通知其他安全设备加以制止。当IDS确定操作系统为Linux的目标主机不会受到针对Windows远程过程调用攻击的影响时,就不会发出报警。
被动指纹识别技术将来自发送方主机的关键TCP/IP包头信息与内含目标主机特殊细节的“特征”数据库进行比较。最常见的包头标识符为窗口尺寸、生存时间、不分段标志和总长度标志。
● 窗口尺寸(Window Size,wSize)是指输入数据包缓冲区的长度。操作系统一般会在进行TCP会话时设置wSize参数。多数Unix操作系统(如Linux或Solaris)在TCP会话过程中保持wSize参数不变,而Windows操作系统常常在会话过程中改变窗口尺寸值。
● 生存时间(Time-to-Live,TTL)是另一个让人们深入了解主机操作系统信息的参数。操作系统在IP包头中设置数据包被丢弃前可经过跳数的缺省值。例如,TTL数值为64的主机可能运行FreeBSD或Linux,而数值为128的TTL表示主机则可能是Windows系统。
● 不分段(Don’t Fragment,DF)标志不如前面两个参数那样有用,因为多数操作系统把DF标志设置为缺省值。但是,由于少数操作系统(如OpenBSD)实际上没有设置DF标志,因此它可以被视为一种“例外”指标。
● 总长度(Total Length)标志是一个指示包括IP包头在内的数据包长度的指标。它可以作为一个重要的标识符,因为一些操作系统可以被SYN和SYNACK数据包的缺省长度所表示。以下是主要操作系统和所对应的可缺省的SYN数据包的长度:Linux(60)、Solaris(44)、Windows 2000(48)。
仅靠上述参数的某一个参数并不能判断主机的概况,但是当IDS根据操作系统的指纹特征数据库综合评估这些指标时,就可以准确确定主机的操作系统和服务。例如,分析TTL值为64的数据包,IDS指纹引擎将操作系统范围缩小到Linux或OpenBSD,因为这两种操作系统具有同样的TTL值,进一步检验wSize值,IDS则可以区分Linux和OpenBSD。指示性参数的组合将提供有关操作系统的可靠“特征”。由于在发出安全报警之前,采用被动指纹识别技术的IDS会首先确定目标主机是否真正受到某一攻击的影响,因此这种IDS能够大大减少误报和漏报,进而提供更准确的检测率。