论文摘要
随着Internet技术及其各种应用技术的高速发展,网络安全问题变得越来越重要和敏感。网络攻击技术和手段日新月异,迫使网络安全程序的开发必须越来越快。攻击技术和手段日益复杂、更具隐蔽性和分布性等特点使网络安全程序的开发也越来越困难。为了描述各种复杂的安全规则和方便地对安全功能进行扩展,各种专有的安全语言都发展起来,如IDS系统的Snort规则脚本和RUSSEL语言,扫描器Nessus的NASL语言,描述漏洞的AVDL和VulnXML,以及攻击描述语言LAMBDA、JIGSAW和CISL。然而,上述安全脚本和语言仍然存在许多缺陷,如功能单一;语法语义各不相同,不方便学习,对同一个安全事件,采取完全不同的描述方式;规则之间互操作困难,无法交换和共享信息;语言的表示能力,检测强度都没有一个统一的标准等。为此,提出了建立网络安全语言NSL(Network Security Language)的构想。通过对各种安全应用进行深入分析、归类、抽象出基于特征(Feature)、事件(Event)、过滤器(Filter)、限制(Constraint)和场景(Scenario)的模型。在此基础上定义了完整的NSL语法和语义,设计和实现了NSL的编译器和虚拟机。为大多数安全应用提供了一个统一的编程环境。构造了以Rule和Scenario为核心的两级语法结构。NSL的基本语法结构在表达式、语句和方法级别上都兼容C/C++语言,不仅提高了描述复杂结构的能力,而且也降低了学习曲线。NSL的Rule和Scenario实现不同的安全功能。Rule负责基于signature的检测,而Scenario具有状态转换的自动推导能力,可以检测复杂的安全事件。对基于signature的检测,主要采用了动态Filters加载方法,和Filters Cache结合在一起,既提供了强大的检测能力又允许方便的扩展。同时对内容检测的Boyer-Moore算法进行了优化,把Boyer-Moore算法中的两个启发式步骤连接起来,对匹配针对Web的攻击,可以达到更快的速度。Rule之间共设计了四种互动方式。现有的安全语言中,有的没有提供规则之间的互动能力,有的提供了比较简单的机制。而NSL具有4种粒度的规则交互方式:即规则启停控制,规则变量访问,规则方法调用和规则事件访问。丰富了规则的表现能力,提高了表示方法的简洁性。对复杂攻击场景,采用自动状态机来进行检测。一个Scenario语法结构包含多个状态,每个状态可以对应攻击中的一个步骤。当预定的事件(Event)对象出现,状态之间会自动进行转换。Scenario和Rule之间可以通过Event进行通信,方便的提供了分布式的检测能力。使NSL具有普通IDS系统不具备的高级攻击检测能力。为了能够适应网络应用对带宽苛刻的要求,还利用多种优化技术对NSL的运行了效率进行优化。包括四种方法:即窥孔优化(peephole optimization),快速指令分发,基于神经网络的垃圾搜集以及快速的Just-In-Time及时编译等算法和技术。基于神经网络的垃圾搜集为新提出的算法,通过神经网络来预测垃圾搜集的时机,取得了较好的效果。其他优化技术也在细节上做了改进。通过这些优化技术突破了一般安全语言在性能上的局限。提出基于返回地址的缓冲区保护的方法。为了提高NSL在非可信网络中的安全性,尤其针对泛滥的远程缓冲区溢出攻击,NSL通过建立只读返回地址区域和对返回地址进行编码,有效防止了各种缓冲区溢出的攻击。实现了一个较为完善的NSL编译、运行和测试环境。以此为基础开发了一个完整的安全工具:“开放式多功能安全平台”。该平台具有可扩展,分布式,集成化的特点。NSL语言在该项目的实际应用中,得到了测试和检验,结果表明了NSL在功能和性能上的有效性,基本达到了设计目标。在该平台上运行的Sniffer、Firewall和IDS等安全功能,经过实际环境中的测试,也都取得了良好的效果。该平台已经圆满的通过了有关部门的验收。
论文目录
相关论文文献
标签:网络安全语言论文; 网络安全论文; 编译优化论文; 缓冲区溢出论文; 开放式多功能安全平台论文;