天天看點

Apache Eagle:分布式實時 Hadoop 資料安全方案

随着大資料的發展,越來越多的成功企業或者組織開始采取資料驅動 商業的運作模式。在ebay,我們擁有數萬名工程師、分析師和資料科學家,他們每天通路分析數pb級的資料,以為我們的使用者帶來無與倫比的體驗。在全球業 務中,我們也廣泛地利用海量大資料來連接配接我們數以億計的使用者。

近年來,hadoop已經逐漸成為大資料分析領域最受歡迎的解決方 案,ebay也一直在使用hadoop技術從資料中挖掘價值,例如,我們通過大資料提高使用者的搜尋體驗,識别和優化精準廣告投放,充實我們的産品目錄,以 及通過點選流分析以了解使用者如何使用我們的線上市場平台等。

目前,ebay的hadoop叢集總節點資料超過10000多個,存儲容量超 過170pb,活躍使用者超過2000多。現在相關規模還在不斷增長中,同時為了支援多元化需求,我們引入越來越多樣的資料存儲和分析方案,比如hive、 mapreduec、spark 和hbase等,随之帶來的管理和監控的挑戰越來越嚴峻,資料安全問題亦是其中最重要的之一。

大資料時 代,安全問題開始變得空前的關鍵,特别ebay作為全球領先的電子商務公司,我們必須保證hadoop中使用者資料的絕對安全。通常我們的安全措施根據如下 幾點 :通路控制、安全隔離、資料分類、資料加密以及實時資料行為監控,然而經過廣泛的嘗試和研究,我們意識到沒有任何已經存在的産品或者解決方案能夠充分滿足 我們面臨海量實時資料流和多元化用例場景下資料行為監控的需求。為了逾越這道鴻溝,ebay決定從頭開始建構eagle。

Apache Eagle:分布式實時 Hadoop 資料安全方案

“eagle 是開源分布式實時hadoop資料安全方案,支援資料行為實時監控,能立即監測出對敏感資料的通路或惡意的操作,并立即采取應對的措施”

我 們相信eagle将成為hadoop資料安全領域的核心元件之一,是以我們決定将它的功能分享給整個社群。目前我們已經将eagle捐贈給apache軟 件基金會作為apache 孵化器項目開源,期望能夠同開源社群一同協作開發,使得eagle不斷發展壯大,共同滿足開源社群中更廣泛的需求。

eagle的資料行為監控方案可用于如下幾類典型場景:

eagle 具有如下特點:

Apache Eagle:分布式實時 Hadoop 資料安全方案

eagle 提供高度可擴充的程式設計api,可以支援将任何類型的資料源內建到eagle的政策執行引擎中。例如,在eagle hdfs 審計事件(audit)監控子產品中,通過kafka來實時接收來自namenode log4j appender 或者 logstash agent 收集的資料;在eagle hive 監控子產品中,通過yarn api 收集正在運作job的hive 查詢日志,并保證比較高的可伸縮性和容錯性。

流 處理api(stream processing api)eagle 提供獨立于實體平台而高度抽象的流處理api,目前預設支援apache storm,但是也允許擴充到其他任意流處理引擎,比如flink 或者 samza等。該層抽象允許開發者在定義監控資料處理邏輯時,無需在實體執行層綁定任何特定流處理平台,而隻需通過複用、拼接群組裝例如資料轉換、過濾、 外部資料join等元件,以實作滿足需求的dag(有向無環圖),同時,開發者也可以很容易地以程式設計地方式将業務邏輯流程和eagle 政策引擎架構內建起來。eagle架構内部會将描述業務邏輯的dag編譯成底層流處理架構的原生應用,例如apache storm topology 等,從事實作平台的獨立。

以下是一個eagle如何處理事件和告警的示例:

告警架構(alerting framework)eagle 告警架構由流中繼資料api、政策引擎服務提供api、政策partitioner api 以及預警去重架構等組成:

Apache Eagle:分布式實時 Hadoop 資料安全方案

1.a 可伸縮的eagle政策執行架構

eagle 支援根據使用者在hadoop平台上曆史使用行為習慣來定義行為模式或使用者profile的能力。擁有了這個功能,不需要在系統中預先設定固定臨界值的情況下,也可以實作智能地檢測出異常的行為。eagle中使用者profile是通過機器學習算法生成,用于在使用者目前實時行為模式與其對應的曆史模型模式存在一定程度的差異時識别使用者行為是否為異常。目前,eagle 内置提供以下兩種算法來檢測異常,分别為特征值分解(eigen-value decomposition)和 密度估計(density estimation)。這些算法從hdfs 審計日志中讀取資料,對資料進行分割、審查、交叉分析,周期性地為每個使用者依次建立profile 行為模型。一旦模型生成,eagle的實時流政策引擎能夠近乎實時地識别出異常,分辨目前使用者的行為可疑的或者與他們的曆史行為模型不相符。

下圖簡單描述了目前eagle中使用者profile的離線訓練模組化和線上實時監測的資料流:

Apache Eagle:分布式實時 Hadoop 資料安全方案

1.b 使用者profile 離線訓練以及異常監測架構

基于使用者 profile的eagle線上實時異常監測是根據eagle的通用政策架構實作的,使用者profile隻是被定義為eagle系統中一個政策而已,使用者profile的政策是通過繼承自eagle統一政策執行接口的機器學習evaluator來執行,其政策的定義中包括異常檢測過程中需要的特征向量等(線上檢測與離線訓練保持一緻)。

此外,eagle 提供自動訓練排程器,可根據檔案或者ui配置的時間周期和粒度來排程這個基于spark的離線訓練程式,用于批量建立使用者profile和行為模型,預設該訓練系統以每月的頻率更新模型,模型粒度為一分鐘。

核密度估計算法 (density estimation)

該算法的基本思想是根據檢測的訓練樣本資料針對每個使用者計算出對應的機率密度分布函數。首先,我們對訓練資料集的每個特征均值标準化,标準化可以使得所有資料集轉化為相同尺度。然後,在我們的随機變量機率分布估計中,我們采用高斯分布式函數來計算機率密度。假設任意特征彼此互相獨立,那麼最終的高斯機率密度就可以通過分解各個特征的機率密度而計算得到。線上實時檢測階段,我們可以首先計算出每個使用者實時行為的機率。如果使用者出現目前行為的可能性低于某個臨界值,我們表識為異常警告,而這個臨界值完全由離線訓練程式通過稱為“馬修斯相關系數”(mathews correlation coefficient)的方法計算而得。

Apache Eagle:分布式實時 Hadoop 資料安全方案

1.c 單一次元上使用者行為直方圖

特征值分解算法(eigen-value decomposition)

該算法中,我們認為生成使用者profile的主要目的是為了從中發現有價值的使用者行為模式。為了實作這個目的,我們可以考慮對特征依次進行組合,然後觀察他們互相之間是如何影響的。當資料集非常巨大時,正如通常我們所遇到的場景,由于正常模式的數量非常之多,以至于特征集的異常的模式很容易被忽視。由于正常的行為模式通常處于非常低維的子空間内,是以我們也許可以通過降低資料集的次元來更好的了解使用者的真正的行為模式。該方法同樣可以對于訓練資料集進行降噪。根據對大量使用者特征資料方差的進行運算,通常在我們的用例場景中選取方差為95%作為基準,我們可以得到方差為95%的主成分的數量為k,是以我們将前k個主成分認為是使用者的正常子空間,而剩下的(n-k)個主成分則被視為異常子空間。

當線實時異常檢測時,如果使用者行為模式位于正常子空間附近,則認為該行為正常,否則,如果使用者行為模式位于異常子空間附近,則會立即報警,因為我們相信通常使用者行為一般應該位于正常子空間内。至于如何計算使用者目前行為接近正常還是異常子空間,我們采用的是歐氏距離法(euclidian distance method)。

Apache Eagle:分布式實時 Hadoop 資料安全方案

1.d 展示重要的使用者行為模式成分

政策管理器:eagle政策管理器提供互動友好的使用者界面和rest api 供使用者輕松地定義和管理政策,一切隻需幾次滑鼠點選而已。eagle的使用者界面使得政策的管理、敏感中繼資料的辨別和導入、hdfs或hive 的資源浏覽以及預警儀表等功能都非常易于使用。

eagle 政策引擎預設支援wso2的siddhi cep引擎和機器學習引擎,以下是幾個基于siddi cep的政策示例

查詢服務(query service): eagle 提供類sql的rest api用來實作針對海量資料集的綜合計算、查詢和分析的能力,支援例如過濾、聚合、直方運算、排序、top、算術表達式以及分頁等。eagle優先支援hbase 作為其預設資料存儲,但是同時也支援基jdbc的關系型資料庫。特别是當選擇以hbase作為存儲時,eagle便原生擁有了hbase存儲和查詢海量監控資料的能力,eagle 查詢架構會将使用者提供的類sql查詢文法最終編譯成為hbase 原生的filter 對象,并支援通過hbase coprocessor進一步提升響應速度。

目前,eagle的資料行為監控系統已經部署到一個擁有2500多個節點的hadoop叢集之上,用以保護數百pb資料的安全,并正計劃于今年年底之前擴充到其他上十個hadoop叢集上,進而覆寫ebay 所有主要hadoop的10000多台節點。在我們的生産環境中,我們已針對hdfs、hive 等叢集中祝喲啊資料設定了一些基礎的安全政策,并将于年底之前不斷引入更多的政策,以確定重要資料的絕對安全。目前,eagle的政策涵蓋多種模式,包括從通路模式、頻繁通路資料集,預定義查詢類型、hive 表和列、hbase 表以及基于機器學習模型生成的使用者profile相關的所有政策等。同時,我們也有廣泛的政策來防止資料的丢失、資料被拷貝到不安全地點、敏感資料被未授權區域通路等。eagle政策定義上極大的靈活性和擴充性使得我們未來可以輕易地繼續擴充更多更複雜的政策以支援更多多元化的用例場景。

過去兩年中,在ebay 除了被用于資料行為監控以外,eagle 核心架構還被廣泛用于監控節點健康狀況、hadoop應用性能名額、hadoop 核心服務以及整個hadoop叢集的健康狀況等諸多領域。我們還建立一系列的自動化機制,例如節點修複等,幫助我們平台部門極大得節省了我們人工勞力,并有效地提升了整個叢集資源地使用率。

以下是我們目前正在開發中地一些特性:

陳浩,apache eagle committer 和 pmc 成員,ebay 分析平台基礎架構部門進階軟體工程師,負責eagle的産品設計、技術架構、核心實作以及開源社群推廣等。

ebay 分析平台基礎架構部(analytics infrastructure)是ebay的全球資料及分析基礎架構部門,負責ebay在資料庫、資料倉庫、hadop、商務智能以及機器學習等各個資料平台開發、管理等、支援ebay全球各部門運用高端的資料分析解決方案作出及時有效的作業決策,為遍布全球的業務使用者提供資料分析解決方案。