NEL开发环境(以下简称NEL平台)可以大大提高协议分析和攻击检测规则开发的效率,极大地降低开发团队的沟通成本和代码维护代价。同时NEL平台提供了无缝使用C语言中的常量、变量、结构、函数等语言实体的能力,从而可以复用大量己有的C程序代码,有效缩短产品的面世时间以及更新升级周期。NEL是为了解决大型攻击检测防御系统在传统的开发过程中所面临的难题而提出的。
基于NEL平台进行大规模入侵检测防御产品 (Intrusionpreventionsystem,IPs)的开发能够有效提高系统的开发效率。基于NEL平台,可以将基于协议分析的攻击检测任务划分为协议分析的开发、攻击检测规则的制订和语言平台的开发这三个子任务,每个子任务分别由协议分析小组、攻击分析小组、和描述语言开发小组来承担。这样,即使系统增加了很多的协议、制订了很多的攻击规则、描述语言的语法不断增强,每个子系统的扩展以及规模不断增长也不会影响到其他开发小组中的开发人员,使得构造一个大规模的攻击检测防御系统成为可能。
采用NEL平台不仅解决了大型攻击检测防御产品的分层次开发和系统可扩展性的难题,而且由于NEL在运行期将“协议分析”和“攻击检测”紧密祸合在一起,因此开发出的系统具有非常高的运行效率。NEL平台全新开发模式以及在代码执行速度等方面的诸多技术优势使得NEL平台成为一个理想的高性能攻击检测防御产品开发平台。
NEL语言的优势
NEL语一言具有强大的技术优势,主要体现在以下几点:
(1)强大的攻击描述能力
NEL是一种过程型编程语言,提供了很多高级语言中刁‘有的过程性手段,具有强大的描述复杂攻击的能力。NEL中可以定义各种数据类型、常量、变量、数组、表达式、函数等等,这些特性使得NEL达到了与C语言相当的描述能力。同时,NEL的语法与C非常相近,在NEL中可以定义一些抽象的语言实体(变量、函数),然后以过程性的方式操作这些语言实体来完成运算。
NEL引入了一个新的语言元素:事件。事件指开发者或NEL语言本身定义的攻击检测过程中检测到的活动:检测到一个TCP级的数据报、一个HTTP的请求或一次SMTP通信等等都可以被定义为一个事件。针对不同的应用协议,开发人员可以采用NEL中的事件在任何层次上(数据包层次、协议层次以及更高的层次上)来定义事件并基于事件来制订攻击检测规则。
NEL中事件的引入为开发人员制订攻击检测规则提供了极大的灵活性。
NEL中的“事件”概念使得在攻击检测系统的开发过程中,协议分析开发人员只要专注于“基础协议事件的定义和产生”,协议分析的开发完成后,协议分析的知识即被固化到系统中;攻击检测规则开发人员可以专注于“攻击事件的定义”,而无需知道协议分析的细节。事件的引入使得协议分析的开发和攻击检测规则的开发被划分成两个完全独立的层次。而对于没有将协议分析开发和攻击检测规则开发分成两个层次的语言,攻击规则开发人员在编写攻击的检测规则时,必须对协议的细节有深入了解,而且协议的分析过程必须体现在每一条规则中,不仅代码变得非常庞杂,系统运行时攻击检测的效率也会受到非常大的影响。