一種基于sdn的反病毒系統的制作方法
【專利摘要】本發明涉及一種基于SDN的反病毒系統,包含以下幾個部分:基礎設施層、安全控制器、流表轉發規則模塊、日志生成器、接口抽象模塊、南向接口、北向接口、用戶APP。上述一種基于SDN的反病毒系統,其實施流程包含以下步驟:(1)動態注入代碼識別與封裝;(2)安全控制器策略初始化;(3)匹配算法模塊進行檢測;(4)虛擬機檢測模塊分析;(5)日志生成器模塊生成日志數據;(6)接口抽象模塊與應用層通信;(7)日志報告模塊生成可視化表格給用戶。采用本反病毒系統,通過對嵌入式設備所執行的動態注入進程的代碼進行二級檢測,可以在既保證效率的同時又能夠準確檢測出一些蠕蟲病毒的攻擊行為。
【專利說明】
一種基于SDN的反病毒系統
技術領域
[0001]本發明涉及一種基于SDN的反病毒系統,屬于通信與網絡安全領域。
【背景技術】
[0002] 軟件定義網絡(Sof tware Defined Network,SDN),是Emulex網絡一種新型網絡 創新架構,是網絡虛擬化的一種實現方式,其核心技術OpenFlow通過將網絡設備控制面與 數據面分離開來,從而實現了網絡流量的靈活控制,使網絡作為管道變得更加智能。本發明 所述SDN使用0NF組織給出的定義,其基本理念為:將網絡控制功能與轉發功能分離,實現控 制可編程。基于以上理念,0NF將SDN劃分為三個部分,即:應用層、控制層、基礎設施層。其 中,應用層通過北向接口與控制層通信,控制層通過南向接口與基礎設施層通信。
[0003] Hassidim A,Raz D等人已經指出,流檢測與分析是軟件定義網絡架構下一種有效 的攻擊檢測手段。相比于TCP/IP網絡基于數據包進行的檢測,基于流的檢測擁有更好的細 粒度和可控性。
[0004] 反病毒虛擬機的工作原理是對模擬執行一段代碼的過程予以記錄,交由檢測系統 或用戶判斷后表明該段代碼是否為惡意。其實現方法有兩種,一種是人工對代碼進行單步 或斷點調試,觀察執行過程中的異常變化;第二種是通過軟件模擬一顆真實CPU,記錄執行 過程后交由軟件所支撐的一套檢測系統進行判斷后得出結論。本發明所述反病毒虛擬機采 用后一種技術。
[0005]目前在軟件定義網絡的視閾下對網絡設備易遭受的攻擊進行防范的成果不多,且 大多成果不是無法與基礎設施層的網絡設備進行直接的交互,就是將基礎設施層與控制層 相混合,偏離了 SDN的設計初衷,也無法對網絡設備及時采取進一步的防范措施。
【發明內容】
[0006] 本發明的目的在于提供一種基于SDN的反病毒系統,以便解決TCP\IP網絡下無法 實現對網絡設備進行反病毒防護的問題,同時也實現SDN網絡下,用戶APP與基礎設施層的 網絡安全設備的交互。本發明將匹配算法模塊與反病毒虛擬機模塊進行整合,改進了傳統 的安全控制器,實現了對病毒行為的二級檢測與反制。
[0007] 為了實現上述目的,本發明的技術方案如下。
[0008] 一種基于SDN的反病毒系統,包含以下幾個部分:基礎設施層、安全控制器、流表轉 發規則模塊、日志生成器、接口抽象模塊、南向接口、北向接口、用戶APP,其中:
[0009] 所述基礎設施層包含網絡設備以及可池化的網絡安全設備,網絡設備負責接受流 表轉發規則模塊的控制進行數據包的轉發、可池化的網絡安全設備包括但不限于入侵檢測 系統、訪問控制系統等傳統安全設備;可池化之后將統一向上提供API接口供用戶APP調用 并實施特定的行為;
[0010] 所述安全控制器包含匹配算法模塊與反病毒虛擬機模塊,網絡設備將動態注入進 程的代碼封裝后輸入安全控制器,首先由匹配算法模塊進行檢測,若發現異常,則要求流表 轉發規則對網絡設備下不予執行的命令,否則繼續向上輸入給反病毒虛擬機模塊;反病毒 虛擬機模塊予以測試后若發現異常,同樣要求流表轉發規則對網絡設備下不予執行的命 令,否則要求網絡設備予以執行;所述匹配算法模塊通過算法返回值判斷注入代碼是否為 惡意。以蠕蟲中較常利用的緩沖區溢出為例,匹配算法的檢測思路為:正常注入進程的代碼 應當只具有"讀"與"執行"的屬性,而惡意代碼會額外具有"寫"屬性;除此之外,正常注入進 程的代碼一般能找到其在可執行文件上的映射,而惡意代碼則不會有這樣的特性;事實上, 匹配算法模塊可以對SQL注入等其他web攻擊手段予以檢測,從而形成檢測隊列。這也是該 系統具有一定的可拓展性的原因;所述反病毒虛擬機模塊,通過軟件模擬一個真實的CPU并 支撐一個檢測系統;模擬CPU所虛擬的包括但不限于真實環境下CPU的物理端口、內存空間 以及寄存器等要素,其將作為輸入數據的注入代碼模擬執行后,將執行結果予以記錄并實 時傳遞給檢測系統,檢測系統負責判斷執行過程中是否存在代碼的自我復制、異常調用系 統函數、異常跳轉、異常中斷等情形,如果有,認定為惡意代碼;
[0011] 所述流表轉發規則模塊接受安全控制器的控制,若安全控制器認定注入進程的該 段代碼為惡意,則命令基礎設施層的網絡設備不予執行,否則放行;
[0012] 所述日志生成器在安全控制器判斷存在惡意注入的代碼后,接受安全控制器的輸 入數據,包括但不限于動態注入的代碼段、注入時間、認定時間、認定模塊代號、認定的惡意 類型、注入主機IP與MAC信息;接受數據后,日志生成器將數據以一定規范進行封裝,輸出給 接口抽象模塊,并最終傳輸給用戶APP;
[0013] 所述接口抽象模塊,負責將日志生成器封裝的數據進行解封裝,并重新根據客戶 端的操作系統類型進行二次封裝,以傳輸給不同操作系統下的用戶APP;
[0014] 所述南向接口根據OpenFlow協議,將動態注入網絡設備的代碼進行封裝,傳遞給 安全控制器中的匹配算法模塊;OpenFlow不是唯一選擇,能根據需要修改;
[0015] 所述北向接口根據XML協議,將接口抽象模塊的輸出數據傳遞給用戶APP的日志報 告模塊;XML不是唯一選擇,能根據情況修改;
[0016] 所述用戶APP包含一個日志報告模塊,負責將接口抽象模塊的數據進行解釋,并重 新組織為用戶可讀的數據;數據包括但不限于:是否發現動態注入的惡意代碼,注入時間, 攻擊類型,注入主機,具體代碼;用戶APP能通過一鍵防護對注入代碼的主機進行訪問控制; 所述一鍵防護,由用戶APP調用可池化的基礎實施層的網絡安全設備API,如IDS,ACL,從而 及時防護可能正在遭受攻擊的網絡設備。
[0017] 上述一種基于SDN的反病毒系統,其實施流程包含以下步驟:
[0018] (1)動態注入代碼識別與封裝:基礎設施層的網絡設備首先需要對內部執行代碼 與動態注入進程的代碼進行識別,區分之后,根據OpenFlow規范予以封裝,傳輸給控制層的 匹配算法模塊進行判別;當基礎設施層與控制層之間的通信較為繁忙,優先保障動態注入 代碼的傳輸;為了避免這一步驟本身遭到攻擊,一方面,對所有區分出來的動態注入代碼進 行暫不執行操作,保存于設備的緩存中,除非明確收到經過流表轉發規則模塊加密后的命 令;
[0019] (2)安全控制器策略初始化:初始化之后的策略為:了={1,1,?4=[&1, &2]},其 含義為:當事件I發生的時候,將解封裝后的代碼送至模塊Μ進行檢驗,如果符合模式P,則執 行動作al,否則執行動作a2。這里,事件I為:控制器接收到封裝后的代碼段。模塊Μ為匹配算 法模塊。模式P為算法返回值為True,動作al為觸發流表轉發規則Oderl,動作a2為更新安全 策略。
[0020] 所述更新策略為將安全策略T更新為Τ1 = {Γ,M',P' = [pl,p2......pn],A' =
[al,a3]},含義為:事件Γ已經發生,將解封裝后的代碼送至模塊M'進行反病毒虛擬機檢 驗。事件Γ為安全策略已更新,模塊Μ'即反病毒虛擬機檢測模塊。將模式Ρ定義為多種是為 了適應算法隊列中所檢測攻擊類型的多樣化。動作a3為觸發流表轉發規則0der2。
[0021] 所述流表轉發規則Oderl為:命令基礎設施層的網絡設備不予執行緩存中的注入 代碼段;所述流表轉發規則0der2為:命令基礎設施層的網絡設備執行注入代碼段。
[0022] (3)匹配算法模塊進行檢測:匹配算法模塊對注入的代碼段進行分析。該模塊的核 心是一個算法隊列,代碼段經過每一個算法后都會返回一個值,記為V1、V2......Vn。將這 些值進行邏輯或操作,一旦發現邏輯結果為True就停止分析。根據步驟(2)所述,觸發流表 轉發規則Oderl。否則一直分析到算法隊列的尾部,并執行動作a2。
[0023] 對算法隊列中的每一個算法予以編號,因為不同的算法對應不同攻擊類型的檢 測,所以可以通過將算法返回值為True的編號告知日志系統以判斷攻擊類型。由于不同攻 擊類型給網絡設備造成的影響有大小,對算法在隊列中的順序進行安排,從而實現高危攻 擊的最快響應。
[0024]步驟(3)中的算法隊列包括但不限于緩沖區溢出檢測算法、SQL注入檢測算法、 CSRF攻擊檢測算法。根據不同的環境與需要可以進行拓展與修改。以緩沖區溢出檢測算法 為例,可以將偽代碼整理如下:
[0025]
[0026] (4)虛擬機檢測模塊分析:步驟(3)中所述算法隊列返回值為False時進入步驟 (4),虛擬機系統通過一顆模擬CPU執行注入代碼段后,若發現執行過程中存在代碼的自我 復制、異常調用系統函數、異常跳轉、異常中斷等情形便可認為此段注入代碼屬于惡意,應 當不予執行。其結果為觸發安全策略了2={1",1",產4' = [&4,&5]}。其中,事件1"為:虛擬 機檢測模塊即將把代碼與一些其他數據封裝后發送給日志生成器模塊,所以,M"自然為日 志生成器模塊。P"為日志生成器模塊解析發送過來的數據后,反饋一個True值給虛擬機檢 測模塊,動作a4為要求流表轉發模塊命令網絡設備不予執行注入的代碼并讓日志生成器模 塊繼續工作,動作a5為要求流表轉發模塊讓網絡設備執行這些代碼并讓日志生成器模塊停 止對數據的進一步處理.
[0027] (5)日志生成器模塊生成日志數據:步驟(4)執行了動作a4后進入步驟(5),日志生 成器模塊根據步驟(4)的安全控制器輸出的數據,整理后形成日志信息并加以封裝,傳輸給 接口抽象層。
[0028] (6)接口抽象模塊與應用層通信:步驟(5)中傳遞給接口抽象模塊的數據根據XML 協議封裝后傳遞給用戶APP的日志報告模塊。
[0029] (7)日志報告模塊生成可視化表格給用戶:日志報告木塊根據解封裝后的數據按 照一定規范予以組織,形成用戶可讀的表格給客戶端;用戶APP中設置一鍵防護功能,其工 作流程為:從日志表格中提取上報的惡意注入代碼的主機的MAC地址,通過可池化的網絡安 全設備所提供的API,將這些主機加入ACL的訪問控制對象中,默認時間為永久。用戶APP能 設置數據分析功能,方便用戶的總結與設備優化。
[0030] 所述數據分析功能包括但不限于:將攻擊在時間的密度進行統計、將攻擊的類型 進行統計、智能分析動態注入代碼可能是利用的設備上的哪一漏洞,形成簡要分析報告后 提供給用戶,供用戶參考。
[0031 ]該發明的有益效果在于:采用本反病毒系統的裝置,通過對嵌入式設備所執行的 動態注入進程的代碼進行二級檢測,可以在既保證效率的同時又能夠準確檢測出一些蠕蟲 病毒的攻擊行為。
【附圖說明】
[0032] 圖1是本發明系統的簡化模塊系統示意圖。
【具體實施方式】
[0033] 下面結合附圖對本發明的【具體實施方式】進行描述,以便更好的理解本發明。
[0034] 實施例
[0035] 圖1是本發明實施例中的基于SDN的反病毒系統的簡化示意圖。該系統包括基礎設 施層、安全控制器、流表轉發規則模塊、日志生成器、接□抽象模塊、南向接□、北向接口、用 戶APP,其中:
[0036] 所述基礎設施層包含網絡設備以及可池化的網絡安全設備,網絡設備負責接受流 表轉發規則模塊的控制進行數據包的轉發、可池化的網絡安全設備包括但不限于入侵檢測 系統、訪問控制系統等傳統安全設備;可池化之后將統一向上提供API接口供用戶APP調用 并實施特定的行為;
[0037] 所述安全控制器包含匹配算法模塊與反病毒虛擬機模塊,網絡設備將動態注入進 程的代碼封裝后輸入安全控制器,首先由匹配算法模塊進行檢測,若發現異常,則要求流表 轉發規則對網絡設備下不予執行的命令,否則繼續向上輸入給反病毒虛擬機模塊;反病毒 虛擬機模塊予以測試后若發現異常,同樣要求流表轉發規則對網絡設備下不予執行的命 令,否則要求網絡設備予以執行;所述匹配算法模塊通過算法返回值判斷注入代碼是否為 惡意。以蠕蟲中較常利用的緩沖區溢出為例,匹配算法的檢測思路為:正常注入進程的代碼 應當只具有"讀"與"執行"的屬性,而惡意代碼會額外具有"寫"屬性;除此之外,正常注入進 程的代碼一般能找到其在可執行文件上的映射,而惡意代碼則不會有這樣的特性;事實上, 匹配算法模塊可以對SQL注入等其他web攻擊手段予以檢測,從而形成檢測隊列。這也是該 系統具有一定的可拓展性的原因;所述反病毒虛擬機模塊,通過軟件模擬一個真實的CPU并 支撐一個檢測系統;模擬CPU所虛擬的包括但不限于真實環境下CPU的物理端口、內存空間 以及寄存器等要素,其將作為輸入數據的注入代碼模擬執行后,將執行結果予以記錄并實 時傳遞給檢測系統,檢測系統負責判斷執行過程中是否存在代碼的自我復制、異常調用系 統函數、異常跳轉、異常中斷等情形,如果有,認定為惡意代碼;
[0038] 所述流表轉發規則模塊接受安全控制器的控制,若安全控制器認定注入進程的該 段代碼為惡意,則命令基礎設施層的網絡設備不予執行,否則放行;
[0039] 所述日志生成器在安全控制器判斷存在惡意注入的代碼后,接受安全控制器的輸 入數據,包括但不限于動態注入的代碼段、注入時間、認定時間、認定模塊代號、認定的惡意 類型、注入主機IP與MAC信息;接受數據后,日志生成器將數據以一定規范進行封裝,輸出給 接口抽象模塊,并最終傳輸給用戶APP;
[0040] 所述接口抽象模塊,負責將日志生成器封裝的數據進行解封裝,并重新根據客戶 端的操作系統類型進行二次封裝,以傳輸給不同操作系統下的用戶APP;
[0041] 所述南向接口根據OpenFlow協議,將動態注入網絡設備的代碼進行封裝,傳遞給 安全控制器中的匹配算法模塊;OpenFlow不是唯一選擇,能根據需要修改;
[0042]所述北向接口根據XML協議,將接口抽象模塊的輸出數據傳遞給用戶APP的日志報 告模塊;XML不是唯一選擇,能根據情況修改;
[0043]所述用戶APP包含一個日志報告模塊,負責將接口抽象模塊的數據進行解釋,并重 新組織為用戶可讀的數據;數據包括但不限于:是否發現動態注入的惡意代碼,注入時間, 攻擊類型,注入主機,具體代碼;用戶APP能通過一鍵防護對注入代碼的主機進行訪問控制; 所述一鍵防護,由用戶APP調用可池化的基礎實施層的網絡安全設備API,如IDS,ACL,從而 及時防護可能正在遭受攻擊的網絡設備。
[0044] 上述基礎設施層包括網絡設備與向上統一提供API的可池化網絡安全設備,包括 但不限于路由器、交換機、防火墻。
[0045]所述南向與北向接口分別采用OpenFlow與XML進行層次之間的相互通信。其中北 向接口通信規范包括但不限于REST、RPC。
[0046] 所述驅動層包含一個轉發抽象層,為采用不同南向接口協議的網絡設備提供統一 的訪問接口。以OpenFlow為例,驅動層實現的主要功能為:建立和監聽連接、處理OpenFlow 事件、封裝與解封裝〇p enF 1 ow消息。
[0047] 所述內核層的主要職責是通過LLDP協議以及ARP協議發現所有的資源并進行管 理,同時完成一些數據的存儲。為網絡全局管理提供基礎。
[0048] 所述服務層包括路由計算,以及圖一所述的安全控制器模塊、流表轉發規則模塊、 日志生成器模塊。本發明主要考慮減輕客戶端負擔,因此在服務層集成了反病毒攻擊所需 的一些必要功能性模塊。
[0049] 所述接口層即圖1所述接口抽象模塊,通過標準接口為應用層的用戶APP提供資源 與服務。
[0050] 所述系統環境主要包括系統配置、資源分配以及系統初始化。
[0051]所述用戶APP基于OSGi框架開發,其中在圖1所述的模塊中包含圖1所述的日志報 告模塊,用于像用戶提供服務。
[0052]所述編排系統包括用戶組件、網絡功能組件、租戶信息、約束條件等要素。其中在 網絡功能組件中包含ACL接口,用于當用戶APP作出一鍵防護請求時,根據請求的具體信息, 為其提供訪問控制服務。
[0053]上述一種基于SDN的反病毒系統,其實施流程包含以下步驟:
[0054] (1)動態注入代碼識別與封裝:基礎設施層的網絡設備首先需要對內部執行代碼 與動態注入進程的代碼進行識別,區分之后,根據OpenFlow規范予以封裝,傳輸給控制層的 匹配算法模塊進行判別;當基礎設施層與控制層之間的通信較為繁忙,優先保障動態注入 代碼的傳輸;為了避免這一步驟本身遭到攻擊,一方面,對所有區分出來的動態注入代碼進 行暫不執行操作,保存于設備的緩存中,除非明確收到經過流表轉發規則模塊加密后的命 令;
[0055] (2)安全控制器策略初始化:初始化之后的策略為:1={1^4=[&1,&2]},其含 義為:當事件I發生的時候,將解封裝后的代碼送至模塊Μ進行檢驗,如果符合模式P,則執行 動作al,否則執行動作a2。這里,事件I為:控制器接收到封裝后的代碼段。模塊Μ為匹配算法 模塊。模式Ρ為算法返回值為True,動作al為觸發流表轉發規則Oderl,動作a2為更新安全策 略。
[0056] 所述更新策略為將安全策略T更新為Τ1 = {Γ,M',P' = [pl,p2......pn],A' =
[al,a3]},含義為:事件Γ已經發生,將解封裝后的代碼送至模塊M'進行反病毒虛擬機檢 驗。事件Γ為安全策略已更新,模塊Μ'即反病毒虛擬機檢測模塊。將模式Ρ定義為多種是為 了適應算法隊列中所檢測攻擊類型的多樣化。動作a3為觸發流表轉發規則0der2。
[0057] 所述流表轉發規則Oderl為:命令基礎設施層的網絡設備不予執行緩存中的注入 代碼段;所述流表轉發規則0der2為:命令基礎設施層的網絡設備執行注入代碼段。
[0058] (3)匹配算法模塊進行檢測:匹配算法模塊對注入的代碼段進行分析.該模塊的核 心是一個算法隊列,代碼段經過每一個算法后都會返回一個值,記為V1、V2......Vn。將這 些值進行邏輯或操作,一旦發現邏輯結果為True就停止分析。根據步驟(2)所述,觸發流表 轉發規則Oderl.否則一直分析到算法隊列的尾部,并執行動作a2。
[0059] 對算法隊列中的每一個算法予以編號,因為不同的算法對應不同攻擊類型的檢 測,所以可以通過將算法返回值為True的編號告知日志系統以判斷攻擊類型。由于不同攻 擊類型給網絡設備造成的影響有大小,對算法在隊列中的順序進行安排,從而實現高危攻 擊的最快響應。
[0060] 步驟(3)中的算法隊列包括但不限于緩沖區溢出檢測算法、SQL注入檢測算法、 CSRF攻擊檢測算法。根據不同的環境與需要可以進行拓展與修改。以緩沖區溢出檢測算法 為例,可以將偽代碼整理如下:
[0061]
[0062] (4)虛擬機檢測模塊分析:步驟(3)中所述算法隊列返回值為False時進入步驟 (4),虛擬機系統通過一顆模擬CPU執行注入代碼段后,若發現執行過程中存在代碼的自我 復制、異常調用系統函數、異常跳轉、異常中斷等情形便可認為此段注入代碼屬于惡意,應 當不予執行。其結果為觸發安全策略12={1"1"少'4' = [&4,&5]}。其中,事件1"為:虛擬 機檢測模塊即將把代碼與一些其他數據封裝后發送給日志生成器模塊,所以,M"自然為日 志生成器模塊。P"為日志生成器模塊解析發送過來的數據后,反饋一個True值給虛擬機檢 測模塊,動作a4為要求流表轉發模塊命令網絡設備不予執行注入的代碼并讓日志生成器模 塊繼續工作,動作a5為要求流表轉發模塊讓網絡設備執行這些代碼并讓日志生成器模塊停 止對數據的進一步處理。
[0063] (5)日志生成器模塊生成日志數據:步驟(4)執行了動作a4后進入步驟(5),日志生 成器模塊根據步驟(4)的安全控制器輸出的數據,整理后形成日志信息并加以封裝,傳輸給 接口抽象層。
[0064] (6)接口抽象模塊與應用層通信:步驟(5)中傳遞給接口抽象模塊的數據根據XML 協議封裝后傳遞給用戶APP的日志報告模塊。
[0065] (7)日志報告模塊生成可視化表格給用戶:日志報告木塊根據解封裝后的數據按 照一定規范予以組織,形成用戶可讀的表格給客戶端;用戶APP中設置一鍵防護功能,其工 作流程為:從日志表格中提取上報的惡意注入代碼的主機的MAC地址,通過可池化的網絡安 全設備所提供的API,將這些主機加入ACL的訪問控制對象中,默認時間為永久。用戶APP能 設置數據分析功能,方便用戶的總結與設備優化。
[0066] 所述數據分析功能包括但不限于:將攻擊在時間的密度進行統計、將攻擊的類型 進行統計、智能分析動態注入代碼可能是利用的設備上的哪一漏洞,形成簡要分析報告后 提供給用戶,供用戶參考。
[0067] 下面以Chameleon病毒攻擊基礎設施層的一個網絡設備為例,給出本發明一種基 于SDN的反病毒系統工作流程,具體如下:
[0068] 第一步,基礎設施層的網絡設備接收到可信主機A動態注入的一段病毒代碼。設備 指出該段代碼為動態注入,以OpenFlow規范封裝后,通過南向接口傳遞給安全控制器中的 匹配算法模塊。
[0069] 第二步,匹配算法模塊根據算法隊列開始對該段注入代碼進行檢測。根據對 Chameleon病毒的公告,我們知道,其工作原理為通過緩沖區溢出奪取系統權限后自我復 制,最后以設備-客戶端-設備的流程不斷傳播,以達到大范圍傳播的目的。由于這段注入的 代碼不具備寫屬性,且有可執行文件作映射,所以第二步的算法隊列返回False值。
[0070] 第二步所述的返回值使得該段代碼被繼續傳遞給虛擬機檢測模塊。在該模塊,由 于能夠明顯發現代碼所具有的自我復制、程序異常調用系統函數等情形,判斷為惡意代碼 并連同一些重要的其他數據傳遞給日志生成器模塊。
[0071] 日志生成器模塊返回一個True值給安全控制器,根據所觸發的安全策略T2,安全 控制器讓流表轉發規則模塊命令該網絡設備拒絕執行此段代碼。日志生成器模塊繼續處理 這些數據,將處理后的數據以數組的方式發送給接口抽象模塊。接口抽象模塊以XML協議將 數據封裝給用戶APP中的日志報告模塊。用戶APP將數據解封裝,再以一定方式組織成表格, 供用戶瀏覽。用戶閱覽完畢后通過一鍵防護功能,將惡意注入代碼的主機加入訪問控制對 象,除非用戶要求,時間為永久。
[0072]本發明的用戶使用場景1:SDN環境下的一臺網絡設備因為自身固件的安全隱患遭 受到蠕蟲病毒的攻擊,由于普通網絡設備無法像PC-樣對蠕蟲等病毒做出防護措施,因此 可以使用該系統來對一些較為脆弱的網絡設備進行保護。
[0073]本發明的用戶使用場景2:SDN環境下的一臺網絡設備因為自身固件的安全隱患遭 受到SQL注入、CSRF等web漏洞的攻擊。由于傳統的網絡設備對此類攻擊的防御更多部署于 客戶端的瀏覽器中,給用戶造成不必要的系統開銷,因此可以使用該系統,在服務器端實現 此類web漏洞攻擊的防護。
[0074]以上所述是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員 來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為 本發明的保護范圍。
【主權項】
1. 一種基于SDN的反病毒系統,其特征在于:包含以下幾個部分:基礎設施層、安全控制 器、流表轉發規則模塊、日志生成器、接口抽象模塊、南向接口、北向接口、用戶APP,其中: 所述基礎設施層包含網絡設備以及可池化的網絡安全設備,網絡設備負責接受流表轉 發規則模塊的控制進行數據包的轉發、可池化的網絡安全設備包括但不限于入侵檢測系 統、訪問控制系統等傳統安全設備;可池化之后將統一向上提供API接口供用戶APP調用并 實施特定的行為; 所述安全控制器包含匹配算法模塊與反病毒虛擬機模塊,網絡設備將動態注入進程的 代碼封裝后輸入安全控制器,首先由匹配算法模塊進行檢測,若發現異常,則要求流表轉發 規則對網絡設備下不予執行的命令,否則繼續向上輸入給反病毒虛擬機模塊;反病毒虛擬 機模塊予以測試后若發現異常,同樣要求流表轉發規則對網絡設備下不予執行的命令,否 則要求網絡設備予以執行;所述匹配算法模塊通過算法返回值判斷注入代碼是否為惡意; 以蠕蟲中較常利用的緩沖區溢出為例,匹配算法的檢測思路為:正常注入進程的代碼應當 只具有"讀"與"執行"的屬性,而惡意代碼會額外具有"寫"屬性;除此之外,正常注入進程的 代碼一般能找到其在可執行文件上的映射,而惡意代碼則不會有這樣的特性;事實上,匹配 算法模塊可以對SQL注入等其他web攻擊手段予以檢測,從而形成檢測隊列;這也是該系統 具有一定的可拓展性的原因;所述反病毒虛擬機模塊,通過軟件模擬一個真實的CHJ并支撐 一個檢測系統;模擬CPU所虛擬的包括但不限于真實環境下CPU的物理端口、內存空間以及 寄存器等要素,其將作為輸入數據的注入代碼模擬執行后,將執行結果予以記錄并實時傳 遞給檢測系統,檢測系統負責判斷執行過程中是否存在代碼的自我復制、異常調用系統函 數、異常跳轉、異常中斷等情形,如果有,認定為惡意代碼; 所述流表轉發規則模塊接受安全控制器的控制,若安全控制器認定注入進程的該段代 碼為惡意,則命令基礎設施層的網絡設備不予執行,否則放行; 所述日志生成器在安全控制器判斷存在惡意注入的代碼后,接受安全控制器的輸入數 據,包括但不限于動態注入的代碼段、注入時間、認定時間、認定模塊代號、認定的惡意類 型、注入主機IP與MAC信息;接受數據后,日志生成器將數據以一定規范進行封裝,輸出給接 口抽象模塊,并最終傳輸給用戶APP; 所述接口抽象模塊,負責將日志生成器封裝的數據進行解封裝,并重新根據客戶端的 操作系統類型進行二次封裝,以傳輸給不同操作系統下的用戶APP; 所述南向接口根據OpenFlow協議,將動態注入網絡設備的代碼進行封裝,傳遞給安全 控制器中的匹配算法模塊;OpenFlow不是唯一選擇,能根據需要修改; 所述北向接口根據XML協議,將接口抽象模塊的輸出數據傳遞給用戶APP的日志報告模 ±夬;XML不是唯一選擇,能根據情況修改; 所述用戶APP包含一個日志報告模塊,負責將接口抽象模塊的數據進行解釋,并重新組 織為用戶可讀的數據;數據包括但不限于:是否發現動態注入的惡意代碼,注入時間,攻擊 類型,注入主機,具體代碼;用戶APP能通過一鍵防護對注入代碼的主機進行訪問控制; 所述一鍵防護,由用戶APP調用可池化的基礎實施層的網絡安全設備API,如IDS,ACL, 從而及時防護可能正在遭受攻擊的網絡設備。2. 根據權利要求1所述的基于SDN的反病毒系統,其特征在于:其實施流程包含以下步 驟: (1) 動態注入代碼識別與封裝:基礎設施層的網絡設備首先需要對內部執行代碼與動 態注入進程的代碼進行識別,區分之后,根據OpenFlow規范予以封裝,傳輸給控制層的匹配 算法模塊進行判別;當基礎設施層與控制層之間的通信較為繁忙,優先保障動態注入代碼 的傳輸;為了避免這一步驟本身遭到攻擊,一方面,對所有區分出來的動態注入代碼進行暫 不執行操作,保存于設備的緩存中,除非明確收到經過流表轉發規則模塊加密后的命令; (2) 安全控制器策略初始化:初始化之后的策略為:T={I,M,P,A=[al,a2]},其含義 為:當事件I發生的時候,將解封裝后的代碼送至模塊M進行檢驗,如果符合模式P,則執行動 作al,否則執行動作a2;這里,事件I為:控制器接收到封裝后的代碼段;模塊M為匹配算法模 塊;模式P為算法返回值為True,動作al為觸發流表轉發規則Oderl,動作a2為更新安全策 略; 所述更新策略為將安全策略T更新為Tl = {Γ,M',P' = [pi,p2......pn],A' = [al, a3]},含義為:事件Γ已經發生,將解封裝后的代碼送至模塊M'進行反病毒虛擬機檢驗;事 件Γ為安全策略已更新,模塊M'即反病毒虛擬機檢測模塊;將模式P定義為多種是為了適應 算法隊列中所檢測攻擊類型的多樣化;動作a3為觸發流表轉發規則0der2; 所述流表轉發規則Oderl為:命令基礎設施層的網絡設備不予執行緩存中的注入代碼 段; 所述流表轉發規則0der2為:命令基礎設施層的網絡設備執行注入代碼段; (3) 匹配算法模塊進行檢測:匹配算法模塊對注入的代碼段進行分析;該模塊的核心是 一個算法隊列,代碼段經過每一個算法后都會返回一個值,記為Vl、V2......Vn;將這些值 進行邏輯或操作,一旦發現邏輯結果為True就停止分析;根據步驟(2)所述,觸發流表轉發 規則Oderl;否則一直分析到算法隊列的尾部,并執行動作a2; 對算法隊列中的每一個算法予以編號,因為不同的算法對應不同攻擊類型的檢測,所 以可以通過將算法返回值為True的編號告知日志系統以判斷攻擊類型;由于不同攻擊類型 給網絡設備造成的影響有大小,對算法在隊列中的順序進行安排,從而實現高危攻擊的最 快響應; 步驟(3)中的算法隊列包括但不限于緩沖區溢出檢測算法、SQL注入檢測算法、CSRF攻 擊檢測算法;根據不同的環境與需要可以進行拓展與修改; (4) 虛擬機檢測模塊分析:步驟(3)中所述算法隊列返回值為False時進入步驟(4),虛 擬機系統通過一顆模擬CPU執行注入代碼段后,若發現執行過程中存在代碼的自我復制、異 常調用系統函數、異常跳轉、異常中斷等情形便可認為此段注入代碼屬于惡意,應當不予執 行;其結果為觸發安全策略12={1"1",?"4' = [&4,&5]};其中,事件1"為:虛擬機檢測模 塊即將把代碼與一些其他數據封裝后發送給日志生成器模塊,所以,M"自然為日志生成器 模塊;P"為日志生成器模塊解析發送過來的數據后,反饋一個True值給虛擬機檢測模塊,動 作a4為要求流表轉發模塊命令網絡設備不予執行注入的代碼并讓日志生成器模塊繼續工 作,動作 a5為要求流表轉發模塊讓網絡設備執行這些代碼并讓日志生成器模塊停止對數據 的進一步處理; (5) 日志生成器模塊生成日志數據:步驟(4)執行了動作a4后進入步驟(5),日志生成器 模塊根據步驟(4)的安全控制器輸出的數據,整理后形成日志信息并加以封裝,傳輸給接口 抽象層; (6) 接口抽象模塊與應用層通信:步驟(5)中傳遞給接口抽象模塊的數據根據XML協議 封裝后傳遞給用戶APP的日志報告模塊; (7) 日志報告模塊生成可視化表格給用戶:日志報告木塊根據解封裝后的數據按照一 定規范予以組織,形成用戶可讀的表格給客戶端;用戶APP中設置一鍵防護功能,其工作流 程為:從日志表格中提取上報的惡意注入代碼的主機的MAC地址,通過可池化的網絡安全設 備所提供的API,將這些主機加入ACL的訪問控制對象中,默認時間為永久;用戶APP能設置 數據分析功能,方便用戶的總結與設備優化; 所述數據分析功能包括但不限于:將攻擊在時間的密度進行統計、將攻擊的類型進行 統計、智能分析動態注入代碼可能是利用的設備上的哪一漏洞,形成簡要分析報告后提供 給用戶,供用戶參考。
【文檔編號】H04L29/06GK105897728SQ201610304914
【公開日】2016年8月24日
【申請日】2016年4月27日
【發明人】倪健寒, 韓嘯
【申請人】江蘇警官學院