數(shù)據(jù)分析與機器學習如何為業(yè)務安全賦能?
目前傳統(tǒng)的安全檢測、防護類設備針對業(yè)務應用安全基本上沒有防護效果。數(shù)據(jù)分析與機器學習為業(yè)務安全問題提供了一個有效的解決方案。基于業(yè)務的歷史數(shù)據(jù),通過統(tǒng)計分析與機器學習的方法學習出業(yè)務的歷史特征,結合專家知識形成業(yè)務特征的基線。根據(jù)基線來檢測業(yè)務行為是否存在異常。本文給出了幾個通過數(shù)據(jù)分析和機器學習的方法檢測業(yè)務系統(tǒng)中異常的具體案例:web業(yè)務安全、物聯(lián)網(wǎng)卡業(yè)務安全、變電站業(yè)務安全。
隨著高級持續(xù)性威脅(APT)攻擊的泛濫以及內(nèi)部人員威脅的增加,針對企業(yè)業(yè)務系統(tǒng)的安全威脅日益增多。當前,一般企業(yè)的安全檢測類產(chǎn)品有操作系統(tǒng)(OS)漏掃、Web漏掃、數(shù)據(jù)庫(DB)漏掃等,但這些設備都不能發(fā)現(xiàn)客戶自開發(fā)應用的安全問題、業(yè)務邏輯方面的安全問題。同時,目前部署的入侵檢測系統(tǒng)(IDS)等檢測類設備由于是基于特征庫或者啟發(fā)式規(guī)則進行檢測,對于針對業(yè)務邏輯類攻擊、APT類的攻擊往往毫無感知。傳統(tǒng)的防火墻(Firewall)往往針對五元組進行檢測,對上層應用的防護效果不大。Web應用防火墻(WAF)主要針對Web攻擊進行防護,而對業(yè)務邏輯、業(yè)務數(shù)據(jù)偽造等攻擊無能為力。同時,沙盒類APT攻擊檢測措施的重點是檢測威脅OS或某些應用的惡意代碼,對針對客戶應用數(shù)據(jù)的檢測更是無能為力。
業(yè)務系統(tǒng)的異常有很多類型,最常見的有以下幾種:
- 業(yè)務邏輯異常。例如用戶通過運營商的網(wǎng)站辦理繳費業(yè)務,通過某種方式繞過了支付的步驟,導致在用戶未支付的情況下成功辦理了收費業(yè)務。
- 業(yè)務濫用異常。例如對網(wǎng)站進行薅羊毛,雖然業(yè)務的操作邏輯完全正常,但是薅羊毛屬于對業(yè)務的濫用,也是業(yè)務異常。
- 業(yè)務數(shù)據(jù)異常。例如業(yè)務的參數(shù)異常,業(yè)務的統(tǒng)計數(shù)據(jù)異常等。
綜上所述,目前傳統(tǒng)的安全檢測、防護類設備針對業(yè)務應用安全基本上沒有防護效果。與網(wǎng)絡層面的安全不同,業(yè)務應用安全的特點是用戶的行為符合訪問控制規(guī)則,并且對業(yè)務的每一步操作都不帶有明顯的攻擊特征,例如沒有SQL注入,沒有跨站腳本攻擊(XSS)等攻擊特征。但是用戶對業(yè)務的整體操作流程存在著異常,例如驗證碼猜測,密碼暴力破解,關鍵業(yè)務操作步驟缺失等。因此,需要一種全新的方案來檢測業(yè)務系統(tǒng)的安全。
數(shù)據(jù)分析與機器學習為業(yè)務安全問題提供了一個有效的解決方案?;跇I(yè)務的歷史數(shù)據(jù),通過統(tǒng)計分析與機器學習的方法學習出業(yè)務的歷史特征,包括操作邏輯特征,時間特征,參數(shù)特征,統(tǒng)計信息特征等,結合專家知識形成業(yè)務特征的基線。根據(jù)基線來檢測業(yè)務行為是否存在異常。
與網(wǎng)絡安全不同,業(yè)務系統(tǒng)的種類繁多。對于Web類型的業(yè)務來說,由于其一般工作在TCP/IP網(wǎng)絡協(xié)議的第七層,即應用層,其業(yè)務參數(shù)及業(yè)務操作定制化程度很高。另外對于像工控系統(tǒng),其業(yè)務主要是針對設備的控制指令操作,或者設備本身的數(shù)據(jù)上報與心跳。因此,對于不同類型的業(yè)務系統(tǒng),其面臨的業(yè)務安全問題差別較大,需要針對不同的安全場景開發(fā)相應的解決方案。下面分別針對幾種典型的場景,給出相應的業(yè)務層面的分析手段。
一、Web業(yè)務安全場景
Web類型的業(yè)務一般工作在TCP/IP網(wǎng)絡協(xié)議的第七層,主要采集業(yè)務辦理過程中瀏覽器的HTTP頭數(shù)據(jù)來學習業(yè)務的操作序列。HTTP頭數(shù)據(jù)中包含有時間,HTTP請求類型,body,cookie,referer等字段信息。其中,HTTP請求類型信息可以區(qū)分出相應的請求是否對應了關鍵的業(yè)務操作;body和cookie信息可以用來標識出用戶信息和會話的信息;referer信息可以用來標識業(yè)務的資源信息。其系統(tǒng)結構如圖1所示。
圖1 Web業(yè)務安全系統(tǒng)結構
采用關聯(lián)分析和統(tǒng)計分析的方法對采集到的HTTP頭數(shù)據(jù)進行分析,以得出業(yè)務的操作序列。在用戶對業(yè)務系統(tǒng)的操作過程中,瀏覽器主要有兩種類型的HTTP請求,即GET類型的請求和POST類型的請求。而對于業(yè)務辦理的操作來說,由于需要向服務器提交數(shù)據(jù),所以業(yè)務辦理的關鍵步驟對應的都是POST類型的HTTP請求。
提取出POST類型的數(shù)據(jù)以后,根據(jù)cookie和body中的信息將一個用戶在同一次會話的數(shù)據(jù)聚合在一起。將聚合以后的操作序列按照時間進行排序,就得到了有序的業(yè)務操作數(shù)據(jù)。
在HTTP請求數(shù)據(jù)中,referer信息可以標識出業(yè)務的資源,例如運營商系統(tǒng)中的流量套餐,彩鈴等業(yè)務。每個用戶在一次會話過程中可能會辦理多項業(yè)務,這些辦理業(yè)務的操作數(shù)據(jù)會一起出現(xiàn)。因此需要將這些數(shù)據(jù)按照referer信息進行聚合,以分別提取出用戶辦理業(yè)務的操作序列。
將前面提取出的業(yè)務操作序列進行去重,即得到包含有用戶信息和會話信息的序列。為了提取出業(yè)務本身所對應的操作序列,需要去掉用戶信息和會話信息,只留下業(yè)務本身的操作信息。在實際的業(yè)務系統(tǒng)中,業(yè)務本身的操作信息由URL的跳轉序列,和序列中每一條URL所對應的body信息中的屬性名組成。統(tǒng)計出原始數(shù)據(jù)中每一組URL跳轉序列出現(xiàn)的次數(shù),再分別統(tǒng)計出每一組URL跳轉序列下所對應的不同的body參數(shù)屬性名稱組合出現(xiàn)的次數(shù),并按照從多到少的順序進行排序。出現(xiàn)次數(shù)多的序列更有可能是正常的業(yè)務操作序列。將提取出的序列與專家知識進行結合,即可得到業(yè)務操作序列的基線,用于檢測業(yè)務操作序列的異常。
根據(jù)前面的方法,針對某彩鈴訂購網(wǎng)站的HTTP請求數(shù)據(jù)進行統(tǒng)計分析,得到的業(yè)務最小操作序列如表1所示。在表1中,URL序列就是通過統(tǒng)計學習得到的一條最小操作序列。在后面的參數(shù)字段就是在這種操作序列下出現(xiàn)的body中的參數(shù)字段的組合。出現(xiàn)次數(shù)指的是在給定的原始數(shù)據(jù)中相應序列組合的出現(xiàn)次數(shù)。在表1中一條URL序列對應了三種body的組合,也就是說表1中包含了三種可能的業(yè)務。統(tǒng)計學習出來的結果還需要經(jīng)過管理員的確認,以保證其準確性。這樣通過歷史數(shù)據(jù)學習來取得業(yè)務的操作序列可以幫助管理員配置安全審計系統(tǒng)中的業(yè)務操作基線,減少管理員的工作量。
表1 Web業(yè)務最小操作序列示例
二、物聯(lián)網(wǎng)卡業(yè)務安全場景
物聯(lián)網(wǎng)卡指的是運營商用在物聯(lián)網(wǎng)業(yè)務中的SIM卡。物聯(lián)網(wǎng)卡的類型與功能如表2所示。
表2 物聯(lián)網(wǎng)卡的類型與功能
由于很多物聯(lián)網(wǎng)卡的功能與普通手機卡的功能相同,所以物聯(lián)網(wǎng)卡會存在著被濫用的情況,即被用在個人手機業(yè)務中,或者被用來進行薅羊毛、電信詐騙等。另外,由于物聯(lián)網(wǎng)卡一般不會與設備進行綁定,所以也會存在物聯(lián)網(wǎng)卡實際應用的業(yè)務場景與合同約定的場景不同的情況。基于大數(shù)據(jù)分析和機器學習的方法可以有效的發(fā)現(xiàn)物聯(lián)網(wǎng)卡業(yè)務數(shù)據(jù)的異常,進而發(fā)現(xiàn)被異常使用的卡。
圖2 物聯(lián)網(wǎng)卡異常分析流程
如圖2所示,采集物聯(lián)網(wǎng)卡的語音話單、短信話單、流量話單、上網(wǎng)日志和發(fā)卡與用卡單位相關信息等數(shù)據(jù),根據(jù)異常分析模型數(shù)據(jù)需求,從話單中提取出有效的關鍵數(shù)據(jù)特征,如通話信息、短信發(fā)送信息、上網(wǎng)行為信息等,采用統(tǒng)計分析,關聯(lián)分析和相似度聚類分析、深度學習等基于機器學習的方法進行行為模式分析。其中,統(tǒng)計分析針對原始數(shù)據(jù)進行統(tǒng)計,并基于專家知識找出統(tǒng)計結果的異常。關聯(lián)分析將多個維度進行關聯(lián),進一步提高檢測的準確性?;跈C器自學習的行為模式分析通過歷史數(shù)據(jù)學習出卡的行為模式特征,并基于特征來檢測卡的當前行為是否異常。將分析的結果經(jīng)過人工審核與確認,最終找到被異常使用的物聯(lián)網(wǎng)卡。
基于某運營商的物聯(lián)網(wǎng)卡的相關數(shù)據(jù)進行分析,并結合人工調查的結果,得出物聯(lián)網(wǎng)卡主要存在以下幾種異常使用的情況:
1. 挪用異常
物聯(lián)網(wǎng)卡被應用的場景發(fā)生了變化。例如原來被用在電梯衛(wèi)士中的SIM卡被用在了車務通中。由于物聯(lián)網(wǎng)卡的發(fā)卡合同規(guī)定不允許私自變更卡所應用的物聯(lián)網(wǎng)業(yè)務,因此這種情況屬于異常使用。通過和人工確認,發(fā)現(xiàn)異常的卡號有320個。
2. 濫用異常
物聯(lián)網(wǎng)卡只能應用在物聯(lián)網(wǎng)業(yè)務中,不能應用在個人業(yè)務中。如果物聯(lián)網(wǎng)卡被用在了個人的手機中,這種情況屬于卡被濫用的情況。經(jīng)過分析和人工確認,發(fā)現(xiàn)存在濫用異常的卡號一共有1020個。
3. 合同及管理異常
在實際調查中發(fā)現(xiàn),有很多的卡雖然在數(shù)據(jù)分析的結果中被認為是異常,但實際上這種異常并非由于卡被異常使用所引起,而是由于在管理中的疏忽所導致。例如有些卡存在個人業(yè)務的行為特征,而實際調查中發(fā)現(xiàn)這些卡本身就是已經(jīng)實名制的個人手機卡,但卡的相關信息卻出現(xiàn)在了物聯(lián)網(wǎng)卡的數(shù)據(jù)集合中。這種情況一般是由于卡在被管理的過程中出現(xiàn)差錯導致的,而卡本身并不存在被異常使用的情況。另外還有一種情況是物聯(lián)網(wǎng)卡的發(fā)卡合同中只規(guī)定了卡所對應的收費套餐,而沒有規(guī)定卡所應用的行業(yè)場景。這種情況也屬于對卡的管理存在漏洞導致的異常,而不是卡本身存在被異常使用的情況。
三、變電站業(yè)務安全場景
變電站是電力系統(tǒng)中變換電壓、接受和分配電能、控制電力的流向和調整電壓的電力設施。它通過其變壓器將各級電壓的電網(wǎng)聯(lián)系起來。而智能變電站是指通過智能設備以全站信息數(shù)字化、通信平臺網(wǎng)絡化、信息共享標準化為基本要求,自動完成信息采集、測量、控制、保護、計量和監(jiān)測等基本功能,并可根據(jù)需要支持電網(wǎng)實時自動控制、智能調節(jié)、在線分析決策、協(xié)同互動等高級功能的變電站。與傳統(tǒng)變電站不同,智能變電站采用IEC61850的標準。這是一個國際通用的變電站自動化系統(tǒng)。它對于設備的行為,數(shù)據(jù)的命名以及定義都進行了規(guī)范。智能變電站使用電子式互感器替代傳統(tǒng)的電壓互感器,使用光纖接線替代傳統(tǒng)的信號電纜硬接線,傳輸?shù)臄?shù)據(jù)也變?yōu)閿?shù)字量。
與一般的IT網(wǎng)絡不同,由于工業(yè)網(wǎng)絡中經(jīng)常存在輪詢,診斷,周期刷新等業(yè)務,工業(yè)網(wǎng)絡中傳輸?shù)膱笪脑跁r間上通常具有一定的規(guī)律。變電站網(wǎng)絡如果遭到入侵導致工作異常,其報文傳輸?shù)臅r間特性通常會發(fā)生變化。因此對變電站網(wǎng)絡中報文傳輸?shù)臅r間特性進行分析,可以為變電站網(wǎng)絡是否遭到入侵提供一種檢測的方法。這里以智能變電站中的MMS報文為例,來分析其傳輸?shù)臅r間特性。
將采集到的MMS報文按照源IP/port,目的IP/port,報文類型和關鍵字進行聚合,聚合以后統(tǒng)計其傳輸間隔的時間特性。其時間特性如圖3所示。
圖3 聚合以后的MMS報文的時間間隔特性
如果MMS報文的時間間隔特性發(fā)生變化,則說明中間有對系統(tǒng)的操作,或者系統(tǒng)出現(xiàn)了異常情況。由于時間特性的變化會很微小,不容易直接檢測到,這里采用小波變換的方法進行檢測。如圖4和圖5所示。
圖4 MMS報文的時間間隔與其小波變換
圖5 MMS報文的時間間隔與其小波變換
圖4所示是對圖3中的序列進行小波變換以后所得到的結果。在圖5中,時域信號發(fā)生了微小的變化。這種時域的變化不容易直接檢測。但是采用Haar小波變換的方法卻可以檢測這種變化,如圖5中間的曲線圖所示,時域序列的微小變化會引起小波變換以后的結果發(fā)生較大的變化。通過檢測這種變化,即可檢測到原始時域序列的變化,進而檢測報文傳輸?shù)漠惓!?/p>
以上給出了幾個通過數(shù)據(jù)分析和機器學習的方法檢測業(yè)務系統(tǒng)中異常的案例。可以看出由于業(yè)務系統(tǒng)的功能不同,其數(shù)據(jù)源和分析方法有較大的差別。根據(jù)系統(tǒng)的特點和功能對其數(shù)據(jù)進行分析與學習,將得到的結果與專家知識結合,即可發(fā)現(xiàn)業(yè)務系統(tǒng)中的異常情況。
【本文是51CTO專欄作者“綠盟科技博客”的原創(chuàng)稿件,轉載請通過51CTO聯(lián)系原作者獲取授權】