NEL

NEL

通用攻擊描述語言
NEL平台是東軟開發的具有中國自主知識産權的攻擊描述語言平台,具有強大的攻擊描述能力、優異的可擴展性和卓越的運行效率。[1]NEL的設計目标是為不同類型的入侵檢測及防禦産品(如網絡IDS/IPS、主機IDS/IPS、應用防火牆、應用安全增強模塊等)的開發提供一個具有強大描述能力、高度可擴展性和很高代碼執行效率的語言平台。
  • 中文名:NEL
  • 外文名:NEL
  • 所屬學科:
  • 描述:一種通用攻擊描述語言
  • 研發商:東軟自主研發
  • 大大提高:協議分析和攻擊檢測規則開發效率
  • 極大地降低:開發團隊溝通成本和代碼維護代價

簡介

NEL開發環境(以下簡稱NEL平台)可以大大提高協議分析和攻擊檢測規則開發的效率,極大地降低開發團隊的溝通成本和代碼維護代價。同時NEL平台提供了無縫使用C語言中的常量、變量、結構、函數等語言實體的能力,從而可以複用大量己有的C程序代碼,有效縮短産品的面世時間以及更新升級周期。NEL是為了解決大型攻擊檢測防禦系統在傳統的開發過程中所面臨的難題而提出的。

概況

基于NEL平台進行大規模入侵檢測防禦産品 (Intrusionpreventionsystem,IPs)的開發能夠有效提高系統的開發效率。基于NEL平台,可以将基于協議分析的攻擊檢測任務劃分為協議分析的開發、攻擊檢測規則的制訂和語言平台的開發這三個子任務,每個子任務分别由協議分析小組、攻擊分析小組、和描述語言開發小組來承擔。

這樣,即使系統增加了很多的協議、制訂了很多的攻擊規則、描述語言的語法不斷增強,每個子系統的擴展以及規模不斷增長也不會影響到其他開發小組中的開發人員,使得構造一個大規模的攻擊檢測防禦系統成為可能。

采用NEL平台不僅解決了大型攻擊檢測防禦産品的分層次開發和系統可擴展性的難題,而且由于NEL在運行期将“協議分析”和“攻擊檢測”緊密禍合在一起,因此開發出的系統具有非常高的運行效率。NEL平台全新開發模式以及在代碼執行速度等方面的諸多技術優勢使得NEL平台成為一個理想的高性能攻擊檢測防禦産品開發平台。

優勢

NEL語一言具有強大的技術優勢,主要體現在以下幾點:

(1)強大的攻擊描述能力

NEL是一種過程型編程語言,提供了很多高級語言中刁‘有的過程性手段,具有強大的描述複雜攻擊的能力。NEL中可以定義各種數據類型、常量、變量、數組、表達式、函數等等,這些特性使得NEL達到了與C語言相當的描述能力。同時,NEL的語法與C非常相近,在NEL中可以定義一些抽象的語言實體(變量、函數),然後以過程性的方式操作這些語言實體來完成運算。

NEL引入了一個新的語言元素:事件。事件指開發者或NEL語言本身定義的攻擊檢測過程中檢測到的活動:檢測到一個TCP級的數據報、一個HTTP的請求或一次SMTP通信等等都可以被定義為一個事件。針對不同的應用協議,開發人員可以采用NEL中的事件在任何層次上(數據包層次、協議層次以及更高的層次上)來定義事件并基于事件來制訂攻擊檢測規則。

NEL中事件的引入為開發人員制訂攻擊檢測規則提供了極大的靈活性。

NEL中的“事件”概念使得在攻擊檢測系統的開發過程中,協議分析開發人員隻要專注于“基礎協議事件的定義和産生”,協議分析的開發完成後,協議分析的知識即被固化到系統中;攻擊檢測規則開發人員可以專注于“攻擊事件的定義”,而無需知道協議分析的細節。事件的引入使得協議分析的開發和攻擊檢測規則的開發被劃分成兩個完全獨立的層次。而對于沒有将協議分析開發和攻擊檢測規則開發分成兩個層次的語言,攻擊規則開發人員在編寫攻擊的檢測規則時,必須對協議的細節有深入了解,而且協議的分析過程必須體現在每一條規則中,不僅代碼變得非常龐雜,系統運行時攻擊檢測的效率也會受到非常大的影響。

NEL不僅引入了“事件”這一概念,還引入了對事件自身和事件之間的邏輯約束關系,比如對事件進行限定和歸約等操作。事件和事件邏輯約束關系的引入使得NEL具有了強大的攻擊描述能力,同時提供了攻擊檢測所必須的抽象性和概括性,使得NEL開發者可以方便地編寫基于協議異常、漏洞特征等不同類型的攻擊檢測規則,由于檢測規則具有對協議上下文的精确理解,包括了漏洞特征的描述,因此具有非常高的檢測準确性。

(2)良好的可擴展性

NEL平台以及NEL平台之上的協議分析模塊和攻擊檢測規則都可以不斷地擴展:NEL平台自身的擴展可以為開發者提供越來越強大的協議和攻擊描述、分析和防禦能力,使得攻擊檢測具有越來越高的準确率和性能,而這種擴展對平台上己經開發出的協議分析模塊和攻擊檢測規則不會有任何影響;同樣,開發者也可以不斷進行協議分析模塊的擴充,以提供更強的針對特定協議的攻擊檢測能力,而這種擴充對于協議之上己有的攻擊檢測規則也不會有任何影響。

在現實世界中,許多協議都是非常複雜的,受時間和人力投入的制約,在攻擊檢測系統的開發過程中,一開始就将協議所有的命令和交互過程都實現是非常困難的,也是不必要的。NEL提供了一種機制,允許開發者将一個協議所有未做全面分析的命令作為一個統一的事件來處理,并基于這個事件來定義攻擊規則,從而使得協議分析的開發成為一個漸進的過程,開發重點和次序可以根據攻擊的危害程度和影響範圍、人力資源狀況等多方面因素靈活調整。這種漸進式的協議分析開發模式對于應對複雜多變的網絡攻擊是十分必要的。

為了有效利用己有的C語言代碼,NEL平台提供了無縫使用C語言實體的功能,開發者可以在NEL中無縫地調用C語言的代碼。在這種模式下,C語言是一個宿主語言,而NEL是一個寄生語言。采用NEL構建攻擊防禦系統,可以有效複用大量己有C代碼,迅速增強和擴展系統的協議分析和攻擊檢測能力。

NEL平台高度的可擴展性使得采用NEL構造的産品可以快速開發出針對新的應用、漏洞和攻擊的檢測規則和防護方案,消除伴随着新的應用協議及漏洞不斷增長而帶來的安全風險。

(3)高效的分析檢測過程

NEL的協議分析和攻擊檢測過程在運行期是緊禍合在一起的,因此具有非常高的運行效率。

對于攻擊檢測及防禦系統開發來說,攻擊描述語言的檢測準确性、擴展性、運行效率以及開發模式等方面的因素對于産品的成功是至關重要的。NEL在攻擊描述能力、檢測準确性、運行效率和開發效率等諸多方面都具有明顯優勢,非常适合應用于高速網絡環境中的深度防禦産品(如IPs、應用防火牆等)的開發。

開發過程

基于NEL的攻擊檢測系統的開發,主要分為六個過程:引擎初始化、連接初始化、協議解析、事件分析、連接釋放和引擎關閉。

(1)引擎初始化。由“協議分析引擎的初始化”和“事件分析引擎的初始化”兩部分構成。前者利用c語言來完成,後者則通過NEL庫中提供的nel少tab少arseo和nel_fileesparseo兩個函數,來讀入開發人員定義的NEL規則(包括協議規則和攻擊規則來完成。

(2)連接初始化。由“協議分析引擎的初始化”和“事件分析引擎的初始化”兩部分構成。前者直接在C語言中完成,而後者則是通過調用nel_env_alloco來完成的。

(3)協議解析。由協議分析引擎單獨完成的。這部分工作的目的,是對網絡數據包進行分析,并将分析的結果保存在一個結構中(我們稱其為“協議元素”),為此後的事件分析提供輸入。

(4)事件分析。由協議分析引擎調用nel_env--analysiso初始化,然後由事件分析引擎來完成的。事件分析引擎将根據内部的分析表、分類器來判斷輸入的協議結構是否會産生攻擊事件。如果是攻擊、或者疑似攻擊,則調用協議分析引擎中定義的函數,采取适當的動作(阻斷、丢棄、審計和報警等)。

(5)連接釋放。即對某一連接相關的數據結構進行釋放。我們需要先利用nel_env--deanuP()來釋放掉保存在事件分析引擎中為該連接保存的所有數據結構,然後再調用協議分析引擎的釋放函數,對連接數據結構進行徹底的釋放。

(6)引擎關閉。最後,調用neti_en段dealloco來釋放整個事件分析引擎,然後協議引擎釋放自己的數據結構,這樣就可以關閉引擎了。

上一篇:現金紅包

下一篇:切歌

相關詞條

相關搜索

其它詞條