iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 21
0
Elastic Stack on Cloud

前端三分鐘 X Elastic Stack系列 第 21

Elastic Machine Learning 基礎: 機器學習的名詞、相關流程與案例介紹 (21)

這篇文章會介紹 Elastic Machine Learning 中的名詞、相關流程與案例介紹。

Elastic Machine Learning 簡介

機器學習解決問題主要分兩種

  • 分群、分類 (Classification): 將資料分成不同的群組,群組內的成員都是類似的
  • 回歸 (Regression): 了解兩個或多個變數間是否相關,還有相關方向與強度

機器學習使用的方法:

  • 監督學習 (Supervised Learning): 輸入和輸出之間存在某一種關係或模式,要先把資料都進行標記,像是 "幾歲" 的 "女孩子" 購買 "名牌包" 比例最高
  • 非監督學習 (Unsupervised Learning ): 不需要先進行標記,輸入數據,依據不同變量,找出相似或相關的群,傳統一定會上到的例子就是買尿布會順便買啤酒

資料:

  • 時間序列資料 (Time Series)
  • 面板數據 (Panel Data)
  • 橫截面數據 (Cross Section)

Elastic Machine Learning 中的資料異常偵測是透過非監督學習來分類時間序列的資料,可以回答像是下面的問題

  • 網路正在被攻擊嗎?
  • 網路系統有在恢復中嗎?
  • 哪些類型的使用者現在暴露在危險中?

Elastic Machine Learning 異常偵測
https://ithelp.ithome.com.tw/upload/images/20200923/201300262PRAaeN8UH.png

異常偵測

現在的系統、網路架構越來越複雜,攻擊行為也越來越多樣,難以透過設定規則、資料標記來逐一處理,所以透過收集相關紀錄後分析也許是一個比較好的解決方式,網路安全主要蒐集以下資訊

SSH logs 可以透過 Filebeat 紀錄

  • Timestamp
  • SSH Server Host Name
  • SSh Client IP
  • User
  • Authentication Method
  • IP Geo Information

DNS Traffic

  • Timestamp
  • Client IP
  • Source Host
  • Destination IP
  • Highest Registered Domain
  • Subdomain

Elastic Machine Learning 透過非監督學習來分類時間序列的資料後,其實可以大致分出項基本的決策樹

Elastic Machine Learning 異常行為決策樹
https://ithelp.ithome.com.tw/upload/images/20200923/20130026KrvyFJXHSp.png

偵測異常的行為流程大致如下

  • 將 SIEM 中的資料餵給機器學習任務
  • 機器學習開始運算,會透過相關模型運算更新模型
  • 儲存計算結果提供 Kibana 查看
  • 端點防護工具監看數據或是設置告警機制

異常行為偵測流程
https://ithelp.ithome.com.tw/upload/images/20200923/201300264zRR1YrzcR.png

Machine learning job

使用上,需要先準備資料,資料部分則可以分析 Elasticsearch 中的或是額外透過 API 餵進來。

有資料後需要建立任務,任務可以透過 API 或是 Kibana UI 建立,一個機器學習任務包含配置資訊及所需的 Metadata,配置流程大致如下

  • Job Type
    • Single Metric
    • Multi Metric: 可以看成跑了好幾個 Single 的概念
    • Advanced
    • Population
  • 設定 Data Feed: 提供 Elasticsearch 中時間序列資料
    • Index Pattern
    • Query
    • Time Range
  • 設定 buckets: buckets 是切割時間序列資料的單位,通常是五分鐘到一小時,設定太長會增加運算負擔也較難看出結果,建議依照資料型態決定,最後每個 bucket 都會得到計算後的分數

    Bucket 中的最大值
    https://ithelp.ithome.com.tw/upload/images/20200923/20130026BbRRdy5iGX.png

  • 設定 Detectors: 每個 Detector 會針對資料中的欄位套用一種分析函式,像是最大最小、平均、極端值,最大就會找出某個 bucket 中的最大
  • 設定 Influencer: 建議設置但也不能設定太多,因為太多會增加閱讀難度
    • 方便找兇手,像是如果可以從 IP 看出可疑活動就可以直接設定 IP
    • 協助簡化、聚合結果資料
  • 執行並查看 Job 結果
    • Single Metric Viewer
    • Anomaly Explorer
  • 監看即時資料
    • 排程
    • Query
    • Condition
    • Action

常見用法案例

  • low_request_rate: 透過 low_count function 去找到比較低流量的資料
  • response_code_rates: 透過 count function 並透過 code 切割資料去找到特殊 code 像是 404 的相關異常
  • url_scanning: 透過 high_distinct_count function,最後透過可以透過相關分布看出是不是有哪些 IP 常打特定 URL

透過機率預測數據應該會出現在哪裏
ExpectedValues


上一篇
Elastic Machine Learning Quick Start: 零基礎也能使用的機器學習工具 (20)
下一篇
Elastic Anomaly Detection for Cybersecurity: DNS 常見攻擊與可能的偵測方法 (22)
系列文
前端三分鐘 X Elastic Stack31

尚未有邦友留言

立即登入留言