葉 枰
中國電信股份有限公司江蘇分公司
隨著移動業(yè)務(wù)互聯(lián)網(wǎng)化的發(fā)展,江蘇電信建設(shè)了一大批面向互聯(lián)網(wǎng)的應(yīng)用系統(tǒng):網(wǎng)上營業(yè)廳、掌上營業(yè)廳、微信公眾號等,通過這些線上渠道系統(tǒng),用戶可足不出戶,享受在線查詢、充值、業(yè)務(wù)辦理等便利,越來越多的交易正在從傳統(tǒng)的線下渠道遷移到線上渠道?;ヂ?lián)網(wǎng)的發(fā)展在提升用戶體驗的同時,也帶來了網(wǎng)絡(luò)安全風(fēng)險,相關(guān)黑色產(chǎn)業(yè)鏈的興起,不僅有可能造成業(yè)務(wù)層面的損失,也會對企業(yè)形象產(chǎn)生不良社會影響。此外,為應(yīng)對網(wǎng)絡(luò)安全風(fēng)險,我國出臺頒布了《數(shù)據(jù)安全法》《個人信息保護(hù)法》,對用戶個人信息保護(hù)也提出了更高要求。
圍繞上述風(fēng)險和發(fā)展要求,江蘇電信建設(shè)了Web 應(yīng)用防火墻(WAF),基于靜態(tài)特征碼、行為特征和特定規(guī)則進(jìn)行報文檢測與過濾,實現(xiàn)對已知特定攻擊的阻斷,在一定程度上有效遏制了網(wǎng)絡(luò)攻擊行為,但在面對攻擊者使用新工具、利用未知漏洞的攻擊行為時,往往無法進(jìn)行有效防護(hù),因此需要在做好傳統(tǒng)安全防護(hù)的基礎(chǔ)上,探索出一條新的安全風(fēng)險感知思路,及時發(fā)現(xiàn)、處置安全風(fēng)險,降低風(fēng)險影響。
本文實現(xiàn)的系統(tǒng)通過采集線上渠道數(shù)據(jù),對用戶訪問行為、業(yè)務(wù)數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換,結(jié)合業(yè)務(wù)場景建立業(yè)務(wù)風(fēng)險模型,通過數(shù)據(jù)分析,構(gòu)建各業(yè)務(wù)特征模型,有效識別繞過安全策略、非法為別人辦理業(yè)務(wù)等惡意行為,并對這些欺詐或違規(guī)行為進(jìn)行分析識別和告警。
基線技術(shù)主要與異常檢測和異常告警結(jié)合使用,傳統(tǒng)基線技術(shù)一般采用事先設(shè)定好的告警基線值,當(dāng)異常檢測結(jié)果達(dá)到基線值時即觸發(fā)告警?;€值的設(shè)置至關(guān)重要,由業(yè)務(wù)特性決定。當(dāng)監(jiān)測指標(biāo)較多,且業(yè)務(wù)特性復(fù)雜時,需要針對性地配置多個基線值,比如業(yè)務(wù)一天內(nèi)高峰時間、低谷時間、正常時間的基線值不同,工作日和非工作日基線值不同,尤其是在業(yè)務(wù)發(fā)生重大變化后,需要對基線值重新進(jìn)行設(shè)置。
動態(tài)基線技術(shù)中的基線值并不是事先設(shè)定的,而是通過動態(tài)計算出來的,核心思想是結(jié)合時間計算出各個時間區(qū)間的理想基線。計算的數(shù)據(jù)來自歷史業(yè)務(wù)數(shù)據(jù),在實際計算中一般需要對數(shù)據(jù)進(jìn)行預(yù)處理,去除不合理數(shù)據(jù),以減少數(shù)據(jù)異常對動態(tài)基線的影響,提高算法的穩(wěn)定性。動態(tài)計算結(jié)果作為觸發(fā)告警的依據(jù),可以是一個具體的基線值,也可以是一個基線區(qū)間。在真實應(yīng)用場景中,部分動態(tài)基線算法可采用插值法對數(shù)據(jù)進(jìn)行填充以及降噪處理,提高數(shù)據(jù)的完整性。
動態(tài)基線技術(shù)能有效解決業(yè)務(wù)迭代速度快、基線值變動頻繁、基線值維護(hù)工作量大等問題,尤其是在某些場景下能夠基于歷史經(jīng)驗給出未來一段時間內(nèi)的預(yù)測結(jié)果,相較于傳統(tǒng)基線技術(shù)更能準(zhǔn)確、有效地發(fā)現(xiàn)業(yè)務(wù)風(fēng)險并進(jìn)行告警。
異常檢測是一種識別不正常情況與挖掘非邏輯數(shù)據(jù)的技術(shù),用來在數(shù)據(jù)集中發(fā)現(xiàn)顯著不同于其他數(shù)據(jù)的對象,是數(shù)據(jù)挖掘中的一個重要組成部分,常用于金融、工業(yè)、通信等風(fēng)控領(lǐng)域。
異常檢測模型根據(jù)數(shù)據(jù)標(biāo)簽內(nèi)容可大致分為有監(jiān)督異常檢測、半監(jiān)督異常檢測、無監(jiān)督異常檢測。當(dāng)訓(xùn)練數(shù)據(jù)集中的數(shù)據(jù)都能打上正常和異常標(biāo)簽時,有監(jiān)督異常檢測模型能快速建立并作出預(yù)測。當(dāng)訓(xùn)練數(shù)據(jù)集中的數(shù)據(jù)包含正常標(biāo)簽時,半監(jiān)督異常檢測模型也能適用。然而在實際應(yīng)用中,訓(xùn)練數(shù)據(jù)集往往來自不含任何標(biāo)簽的歷史業(yè)務(wù)數(shù)據(jù),如果需要通過人工訓(xùn)練進(jìn)行打標(biāo),必然產(chǎn)生大量的人工成本。因此,無監(jiān)督異常檢測技術(shù)更適用于正常業(yè)務(wù)數(shù)據(jù)和異常業(yè)務(wù)數(shù)據(jù)都存在但沒有標(biāo)簽,同時正常業(yè)務(wù)數(shù)據(jù)遠(yuǎn)大于異常數(shù)據(jù)的情況。
無監(jiān)督異常檢測模型一般定義一個打分函數(shù)來表示一個數(shù)據(jù)對象的異常程度,按照數(shù)據(jù)對象的異常分排序,異常分高的數(shù)據(jù)對象往往作為異常。根據(jù)算法不同,無監(jiān)督異常檢測模型通常分為基于統(tǒng)計與概率的模型、基于距離的模型、基于密度的模型、基于線性的模型、基于樹的模型和基于神經(jīng)網(wǎng)絡(luò)的模型。
本系統(tǒng)的技術(shù)架構(gòu)主要分為展示層、分析層、系統(tǒng)層等三層結(jié)構(gòu),核心分析層主要分為離線分析及終端檢測模塊,如圖1 所示。
圖1 系統(tǒng)技術(shù)架構(gòu)設(shè)計
系統(tǒng)層實現(xiàn)各類安全數(shù)據(jù)的采集、處理、匯聚、存儲、檢索能力,以接口形式向安全威脅分析與預(yù)警分析提供輸入數(shù)據(jù)。系統(tǒng)層通過主動或被動方式采集相關(guān)系統(tǒng)及應(yīng)用數(shù)據(jù)源,主要包括登錄日志、訂單日志、接口調(diào)用日志以及業(yè)務(wù)辦理日志等。針對采集數(shù)據(jù)格式的不一致、數(shù)據(jù)輸入錯誤、數(shù)據(jù)不完整等情況,系統(tǒng)層對數(shù)據(jù)進(jìn)行轉(zhuǎn)換和加工,如字段映射、數(shù)據(jù)過濾、數(shù)據(jù)清洗、靜態(tài)補(bǔ)齊等過程,將輸出的數(shù)據(jù)進(jìn)行存儲。
分析層提供平臺分析方法與分析能力,其中分析方法采用了分析引擎、分析場景、分析輸出的分別定義,建立威脅分析檢測模型、預(yù)測分析模型等,依據(jù)不同安全場景需求采用離線分析、匯總統(tǒng)計、機(jī)器學(xué)習(xí)等方法進(jìn)行數(shù)據(jù)分析的驅(qū)動。
展示層將分析、處理、整合的數(shù)據(jù)根據(jù)不同業(yè)務(wù)場景需求進(jìn)行可視化的呈現(xiàn)、風(fēng)險的概覽、用戶行為的分析、事件管理呈現(xiàn),同時提供原始日志與標(biāo)準(zhǔn)化日志的智能搜索功能以及系統(tǒng)管理入口。
數(shù)據(jù)管理模塊是系統(tǒng)實現(xiàn)的核心,主要包含數(shù)據(jù)采集、數(shù)據(jù)清洗和標(biāo)準(zhǔn)化、數(shù)據(jù)存儲。
采集模塊原則上以主動采集為主,被動收集為輔,通過Flume 組件采集用戶各類操作日志并傳輸至消息隊列Kafka 中,支持基于Ftp/Sftp、webservice、SNMP、file、JDBC/ODBC、Syslog、Flow 協(xié)議的日志采集,支持分布式多節(jié)點部署,支持多采集節(jié)點存活、健康狀態(tài)監(jiān)控,發(fā)現(xiàn)節(jié)點異常后,及時告警。
數(shù)據(jù)清洗和標(biāo)準(zhǔn)化模塊通過分布式消息隊列Kafka 組件,對采集到的數(shù)據(jù)進(jìn)行字段映射、數(shù)據(jù)類型轉(zhuǎn)換、數(shù)據(jù)清洗、數(shù)據(jù)加載解析規(guī)則等處理。
數(shù)據(jù)存儲模塊中的日志存儲用于對采集上來的不同類型的數(shù)據(jù)進(jìn)行分類存儲,以滿足數(shù)據(jù)分析的要求,支持對結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、關(guān)系型數(shù)據(jù)庫等進(jìn)行分類存儲,支持的存儲方式包括HDFS、Hbase、Kafka、Elasticsearch 等。
當(dāng)用戶使用終端設(shè)備啟動應(yīng)用程序時,判斷設(shè)備是否存在異常,服務(wù)端通過接收終端設(shè)備信息,提取核心字段進(jìn)行設(shè)備指紋計算,為終端生成高唯一性、強(qiáng)穩(wěn)定性的設(shè)備標(biāo)識符。隨后使用多維度終端屬性數(shù)據(jù)建模分析識別偽造虛假設(shè)備,檢測惡意終端繞過業(yè)務(wù)規(guī)則進(jìn)行如虛假訂單、活動作弊等風(fēng)險行為。
離線分析模塊中的用戶行為分析是通過對用戶操作日志數(shù)據(jù)持續(xù)監(jiān)控,為單個用戶或群體構(gòu)建標(biāo)準(zhǔn)行為基線,通過動態(tài)基線技術(shù)提供從用戶、終端設(shè)備、IP 地址、UA 等維度,配置分析算法(基于經(jīng)驗法則、四分位異常、MA 序列)和自定義策略找出偏離基線的異常行為。它不僅僅是把行為分成非白即黑,而是經(jīng)過概率計算輸出分值來判斷是否異常,根據(jù)風(fēng)險累計的數(shù)值判斷用戶風(fēng)險級別。同時為用戶及其操作添加標(biāo)簽,通過可視化的方式呈現(xiàn)單個用戶的行為畫像。
由于業(yè)務(wù)存在大量的多維數(shù)據(jù),離線分析模塊采用基于孤立森林模型的異常識別打分算法,對歷史數(shù)據(jù)進(jìn)行訓(xùn)練,同時根據(jù)時間維度不斷完善訓(xùn)練數(shù)據(jù)集,算法的識別率隨著時間穩(wěn)步提升。假設(shè)用戶在訪問同一個接口時調(diào)用的參數(shù)相對固定,那么將這個接口的所有訪問參數(shù)在query 參數(shù)個數(shù)、參數(shù)中數(shù)字個數(shù)和參數(shù)總長度等維度上做對比,來確定哪一條訪問的參數(shù)異常,并對異常度進(jìn)行打分,然后對異常分?jǐn)?shù)最高的一批訪問進(jìn)行人工打標(biāo)簽來確認(rèn)是否真實存在異常,并將結(jié)果作為后續(xù)模型的訓(xùn)練樣本。
圍繞識別數(shù)據(jù)信息泄露、用戶異常行為等業(yè)務(wù)風(fēng)險,構(gòu)建了以下三個場景模型:
(1)登錄異常檢測模型:對業(yè)務(wù)系統(tǒng)中用戶登錄認(rèn)證操作進(jìn)行行為分析,識別出有撞庫、暴力破解、掃號等風(fēng)險行為的賬戶。
(2)業(yè)務(wù)系統(tǒng)互聯(lián)網(wǎng)安全檢測模型:對用戶登錄系統(tǒng)后辦理流量包、基礎(chǔ)業(yè)務(wù)、積分兌換等業(yè)務(wù)進(jìn)行風(fēng)險分析,通過辦理業(yè)務(wù)時間、業(yè)務(wù)名稱、辦理狀態(tài)等信息,建模分析識別其存在風(fēng)險,如繞過檢測規(guī)則、非法為他人辦理業(yè)務(wù)、惡意兌換積分等敏感操作,防止敏感信息泄露。
(3)違規(guī)腳本訂單檢測模型:分析通過各個系統(tǒng)產(chǎn)生的數(shù)據(jù),及時發(fā)現(xiàn)無效訂單,同時避免惡意刷單、惡意下單、訂單頻次異常等業(yè)務(wù)風(fēng)險。
為驗證風(fēng)險識別效果,江蘇電信以線上渠道生產(chǎn)的數(shù)據(jù)進(jìn)行訓(xùn)練,并輸出風(fēng)險識別異常結(jié)果,包括風(fēng)險用戶、風(fēng)險行為、風(fēng)險事件及風(fēng)險評分,如圖2 至圖5 所示。
圖2 業(yè)務(wù)風(fēng)險識別異常結(jié)果總覽(a)
圖3 業(yè)務(wù)風(fēng)險識別異常結(jié)果總覽(b)
圖4 業(yè)務(wù)風(fēng)險識別異常結(jié)果總覽(c)
圖5 業(yè)務(wù)風(fēng)險識別異常結(jié)果總覽(d)
系統(tǒng)運行初期,根據(jù)事先定義的風(fēng)險模型自動化輸出的風(fēng)險識別異常結(jié)果較多,月均達(dá)50000 條以上,經(jīng)過分析篩選出實際存在風(fēng)險數(shù)量月均2 條左右,有效識別率不超過0.04%,這主要是風(fēng)險模型構(gòu)建不夠精細(xì)、樣本數(shù)據(jù)質(zhì)量不高等原因造成的。經(jīng)過5 個月的數(shù)據(jù)訓(xùn)練及模型優(yōu)化,目前風(fēng)險識別異常結(jié)果數(shù)量下降至月均300條左右,經(jīng)分析實際存在風(fēng)險76條,有效風(fēng)險識別率提升至25.3%。
業(yè)務(wù)風(fēng)險分析系統(tǒng)作為一種分析平臺,是以數(shù)據(jù)驅(qū)動為核心主線,使用多種算法檢測、提取、建模出整個分析過程,通過行為分析盡可能將異常行為從海量數(shù)據(jù)中分析出來,提供更加精準(zhǔn)的異常行為結(jié)果,經(jīng)測試獲得了較好的應(yīng)用效果,從而在實踐過程中探索出一條新的運營商線上渠道安全風(fēng)險感知思路。但是不同的算法都有各自的局限性,很難有一個算法完全適用所有場景,且業(yè)務(wù)風(fēng)險分析系統(tǒng)依賴于歷史數(shù)據(jù)、專家經(jīng)驗,未來需要針對不同業(yè)務(wù)場景進(jìn)行參數(shù)優(yōu)化和算法優(yōu)化,不斷對異常檢測結(jié)果進(jìn)行驗證和回饋,以提升有效風(fēng)險識別率。