iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
AI Security

30 天打造 AI 輔助 SOC 資安事件分析平台系列 第 13 篇

Day 13|Severity 分類:區分一般事件與資安告警

  • 分享至 

  • xImage
  •  

前兩天已經完成 Suricata EVE JSON 的解析以及事件欄位標準化。但目前處理的 HTTP 與 DNS Event 主要代表網路活動,本身並不一定代表發生資安攻擊。
因此今天進一步處理 Severity,希望讓系統能夠區分一般 Network Event 與具有嚴重程度資訊的 Security Alert。

Network Event 不等於 Security Alert
Suricata 的 EVE JSON 中包含不同種類的 event_type。例如 HTTP Event 代表觀察到 HTTP 網路活動,而 DNS Event 則記錄 DNS 查詢或回應。
因此不能單純因為出現 HTTP 或 DNS Event,就自行將事件分類成 High、Medium 或 Low。
在這次實作中,一般 HTTP 與 DNS Event 的 Severity 暫時設定為:

Severity       : None
Severity Level : N/A

只有當 event_type = alert 時,才進一步讀取 Alert 中的 Severity。

建立 Severity 分類

severity_to_level() 函式:

def severity_to_level(severity):
    if severity == 1:
        return "High"
    elif severity == 2:
        return "Medium"
    elif severity == 3:
        return "Low"
    else:
        return "Unknown"

https://ithelp.ithome.com.tw/upload/images/20260927/201777549imHh5Mh4S.png
目前系統統一使用:

1 → High
2 → Medium
3 → Low
其他 → Unknown

並另外使用測試資料確認分類函式是否能正常運作。
https://ithelp.ithome.com.tw/upload/images/20260927/20177754LetLPecDXL.png

為什麼需要 Unknown?

在程式設計上,如果遇到沒有定義的 Severity,不應直接將它視為 Low Risk。
因此除了 High、Medium、Low 外,另外加入 Unknown,讓系統在收到無法識別的 Severity 時保留未知狀態,而不是自行做出錯誤判斷。


上一篇
Day 12|事件欄位標準化:把不同 Suricata Log 整理成統一格式
下一篇
Day 14|事件搜尋:從大量 SOC Event 找到需要的資料
系列文
30 天打造 AI 輔助 SOC 資安事件分析平台 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言