《8賈林杰-基于Flink的安全數據分析與異常檢測(25頁).pdf》由會員分享,可在線閱讀,更多相關《8賈林杰-基于Flink的安全數據分析與異常檢測(25頁).pdf(25頁珍藏版)》請在三個皮匠報告上搜索。
1、賈林杰/高級安全開發工程師/某支付公司現任某支付公司高級信息安全工程師,從事多年安全開發工作,曾主導開發過分布式WEB掃描器、漏洞管理平臺、業務風控平臺、SOC平臺等,目前專注于XDR相關技術探索及開發。演講主題:基于Flink的實時安全數據分析與異常檢測基于Flink的實時安全數據分析與異常檢測匯付天下 高級信息安全工程師 賈林杰安全領域的數據分析與異常檢測的特點與要求數據來源多 數據來自主機、網絡、應用、安全設備等數據類型雜 各類型數據結構復雜,且不易關聯無限流數據 開機即生成,數據量巨大實時要求高 告警數據實時性要求高,越早發現,危害越小安全領域的數據處理流程數據收集階段需要盡可能全面的
2、收集可用于后續處理的日志、告警、外部情報等數據數據收集數據處理階段需要收集的多種日志進行標準處理、字段擴展、數據關聯等操作數據處理數據分析階段需要對標準化的數據進行多維度指標計算、條件判斷等分析操作數據分析通過分析后的目標數據可以用來進行可視化輸出、規則檢測、特征提取等更深層次的加工與輸出數據輸出基于ELK的日志收集及分析方案基于ELK的日志收集及分析方案1.beats可快速接入數據并通過logstash的可配置功能對數據進行初步的清洗,擴展、過濾2.強大的搜索功能,elasticsearch可以以分布式搜索的方式快速檢索,而且支持DSL的語法來進行搜索,可通過類似配置的語言,快速篩選數據。3
3、.完美的展示功能,可以展示非常詳細的圖表信息,而且可以定制展示內容,將數據可視化發揮的淋漓盡致。4.分布式功能,能夠解決大型集群運維工作很多問題,包括監控、預警、日志收集解析等。缺點1.logstash管道配置文件對數據的清洗、轉換、擴展等功能有限,無法進行數據流關聯等進一步操作2.ELK套件雖然具備強大的搜索功能,可快速篩選數據,但本質是仍然是分布式檢索平臺,不具備事件驅動能力,無法完成一些高級的有狀態計算3.ELK雖然具備分布式可擴展能力,但在仍然不適合進行較長時間跨度的數據存儲平臺,長時間跨度極大數據量的數據存儲仍然需要借助大數據平臺完成Apache Flink 是一個框架和分布式處理引
4、擎,用于對無界和有界數據流進行有狀態計算。Flink 被設計為在所有常見的集群環境中運行,并以內存中的速度和任何規模執行計算FLINK的介紹:FLINK的優勢海量數據秒級處理01Flink具有高吞吐,低延遲,高性能的特性支持事件時間02Flink能夠使用事件產生的時間進行計算,這種機制使得事件即使無序到達甚至延遲到達,數據流都能夠計算出精確的結果,同時保持了事件原本產生時的在時間維度的特點,而不受網絡傳輸或者計算框架的影響高度靈活的窗口操作03Flink窗口分為滾動窗口、滑動窗口、會話窗口,不同的窗口操作應用能夠反饋出真實事件產生的情況,用戶可以定義不同的窗口觸發機制來滿足不同的需求。比如統計
5、在過去的5分鐘內用戶查詢了多少次運單信息同時支持流、批處理04同一套框架支持兩種處理方式,很大程度上減少了技術學習成本和系統維護成本。有狀態計算架構05狀態就是流式計算過程中將算子的中間結果數據的保存下來,結合checkpoint和Savepoint,可以保障在故障發生程序能自動恢復,同時也提供了更好的流式運維方式基于Flink的數據分析與異常檢測基本方案FLINK的基本概念事件驅動型(Event-driven)l一個或多個事件流提取數據,并根據到來的事件觸發計算、狀態更新或其他外部動作流與批的世界觀,Flink流批一體,可處理有界和無界流l 批處理的特點:有界、持久、大量,非常適合需要訪問全
6、套記錄才能完成的計算工作,一般用于離線統計。l 流處理的特點:無界、實時,無需針對整個數據集執行操作,而是對通過系統傳輸的每個數據項執行操作,一般用于實時統計l 無界數據流:有開始無結束l 有界數據流:有開始有結束l 這種以流為世界觀的架構,最大好處是具有極低的延遲分層API(從上到下分三層)l a、SQLTable API 最上層高級API,使用簡單,數據按表操作,可寫SQLl b、DataStreanm API 核心層級API,可處理有界&無界數據(流批一體)l c、ProcessFunction API 可以拿到事件event,狀態state,時間time,自定義定時事件多種數據源(有時
7、不可靠):當數據是由數以百萬計的不同用戶或設備產生的,它是安全的假設數據會按照事件產生的順序到達,和在上游數據失敗的情況下,一些事件可能會比他們晚幾個小時,遲到的數據也需要計算,這樣的結果是準確的。應用程序狀態管理:當程序變得更加的復雜,比簡單的過濾或者增強的數據結構,這個時候管理這些應用的狀態將會變得比較難(例如:計數器,過去數據的窗口,狀態機,內置數據庫)。flink提供了工具,這些狀態是有效的,容錯的,和可控的,所以你不需要自己構建這些功能。數據的快速處理:有一個焦點在實時或近實時用例場景中,從數據生成的那個時刻,數據就應該是可達的。在必要的時候,flink完全有能力滿足這些延遲。海量數
8、據處理:這些程序需要分布在很多節點運行來支持所需的規模。flink可以在大型的集群中無縫運行,就像是在一個小集群一樣。FLINK的使用場景FLINK的層級APIFLINK的第三方庫CEP 用于分析低延遲、頻繁產生的不同來源的事件流。CEP 可以幫助在復雜的、不相關的事件流中找出有意義的模式和復雜的關系,以接近實時或準實時的獲得通知并阻止一些行為。CEP 支持在流上進行模式匹配,根據模式的條件不同,分為連續的條件或不連續的條件;模式的條件允許有時間的限制,當在條件范圍內沒有達到滿足的條件時,會導致模式匹配超時。FLINKCEPGelly是Flink的圖API庫,它包含了一組旨在簡化Flink中圖
9、形分析應用程序開發的方法和實用程序。在Gelly中,可以使用類似于批處理API提供的高級函數來轉換和修改圖。Gelly提供了創建、轉換和修改圖的方法,以及圖算法庫。GellyFLINK SQL使用kafka作為數據源Flink作業分析使用FLINK SQL對CobaltStrike注入進程文件進行檢測Flink作業分析FLINK SQL向kafka進行數據寫入操作Flink作業分析FLINK SQL 對操作員每小時的訪問特定URL的次數進行指標計算Flink作業分析使用FLINK SQL對來10分鐘內自同一IP的登錄失敗進行告警Flink作業分析Flink SQL 關聯兩個數據流中4個小時內I
10、D相同的事件Flink作業分析FLINK SQL通過CEP 匹配十分鐘內登錄失敗超過10次后登錄成功的事件Flink作業分析通過編寫UDF可自定義對數據的處理過程Flink作業分析Ververica PlatformVerverica平臺是一個以Apache Flink開源版本為內核,用于有狀態流處理和流分析的集成平臺,具備K8S集成,快速部署、Flink SQL在線編寫發布等功能,可快速實現對流式數據處理應用的開發、測試、部署。Flink與Sigma Sigma 是一種通用的開放式簽名格式,允許您以直接的方式描述相關的日志事件。規則格式非常靈活,易于編寫,適用于任何類型的日志文件。該項目的主
11、要目的是提供一種結構化的形式,研究人員或分析人員可以描述他們曾經開發的檢測方法,并使它們與他人共享。通過Sigma tools 可以將社區的通用規則自動化轉化為符合FlinkSQL 的形式的腳本,快速完成現有規則的在Flink 上的部署運行。目前我們完成了的部分轉換過程:https:/ AI FlowFlink AI Flow 是一個連接大數據和人工智能的開源框架。它將整個機器學習項目生命周期作為一個統一的工作流進行管理,包括特征工程、模型訓練、模型評估、模型服務、模型推理、監控等。在整個工作流中,Flink 作為通用計算引擎。Deep Learning on FlinkDeep Learning on Flink 旨在整合 Flink 和深度學習框架(例如 TensorFlow、PyTorch 等)。它在 Flink 算子內部運行深度學習任務,以便 Flink 可以幫助建立分布式環境、管理資源、讀/寫記錄和處理故障。