To be completed!

此篇為個人學習筆記
課程:Sound the Alarm: Detection and Response-Google @ Coursera

主題
理解資安事件回應生命週期,並實作使用相關工具以偵測與處置資安事件。

# 檢測和事件響應簡介

# 事件響應生命週期

NIST Incident Response Lifecycle 是一個為應對網絡安全事件而設計的流程,包括:

  1. 準備(Preparation)
  2. 偵測與分析(Detection and Analysis)
  3. 應變(Containment, Eradication, and Recovery)
  4. 事後活動(Post-Incident Activity)。

這個可重複的流程旨在幫助組織更有效地處理和恢復網路事件。

# 事件響應操作

角色與應對

資安人員將與團隊共同監控、偵測並應對事件。

電腦安全事件應對小組(CSIRT
一群資安專業人員,負責事件管理與應對。目標:

  • 有效與高效地管理資安事件
  • 預防未來事件
  • 提供事件應對與復原的服務與資源

CSIRT 中的角色
CSIRT 可能是獨立團隊或根據需要組成的工作小組,包含安全和非安全專業人員,非安全專業人員來自如人資、法務等部門。安全專業人員主要包括以下三個角色:

  • 安全分析師:持續監控安全威脅,分析警報、調查根本原因、升級或解決警報。
  • 技術領導:負責技術層面的事件應對,確定根本原因並制定應對策略,協調其他團隊確保業務優先級一致。
  • 事件協調員:與外部部門協作,保持事件溝通順暢,確保所有人員了解事件狀況。不同公司可能被稱為事件指揮官或事件經理。

安全營運中心(SOC
專責監控網絡、系統和設備的組織單位,用來檢測安全威脅或攻擊。SOC 參與藍隊活動,包括網絡監控、分析和事件應對。

組織結構

  • 第 1 層(L1)SOC 分析師:負責監控警報、創建和關閉警報,並升級問題至第 2 層或第 3 層。
  • 第 2 層(L2)SOC 分析師:負責接收升級票證、進行深入調查、配置安全工具,並向 SOC 領導報告。
  • 第 3 層(L3)SOC 領導:負責團隊運作、通過高級檢測技術(如惡意軟體和取證分析)探索檢測方法,並向 SOC 經理報告。
  • SOC 經理:負責招募、訓練和評估團隊成員,創建績效指標,並與利益相關者 (高層管理) 溝通報告。

其他角色

  • 取證調查員:通常是 L2 或 L3,負責收集和分析數位證據。
  • 威脅獵人:通常是 L3,利用威脅情報防禦新型威脅。

# 事件響應工具

文檔

沒有業界固定的類型,常見的資安文件如下:

  • Playbooks
  • Final Reports
  • Policies

工單系統 (Ticketing system),如: Jira

  • 紀錄事件處理流程
  • 追蹤事件狀態與責任分工

偵測工具概述

偵測工具如同數位保全系統,持續監控網路與系統中的可疑活動。一旦偵測到異常行為,便會觸發警報,提醒資安人員介入調查與防範入侵。

資安分析師常使用多種偵測工具,比較如下:

功能項目IDSIPSEDR
偵測惡意活動
阻止入侵N/A
記錄活動
產生警報
行為分析N/AN/A

IDS(入侵偵測系統)
可持續監控網路活動並對可疑行為發出警報,但不會主動阻止入侵行為。資安人員需根據警報進行調查與應對。

常見 IDS 工具:

  • Zeek
  • Suricata
  • Snort®
  • Sagan

偵測分類

  • 真陽性(True Positive):正確偵測到攻擊並發出警報。
  • 真陰性(True Negative):無攻擊發生,也無警報。
  • 假陽性(False Positive):誤判為攻擊,實際無害。會浪費團隊的資源。
  • 假陰性(False Negative):實際有攻擊但未偵測,風險極高。

IPS(入侵防禦系統)
可偵測入侵行為,並主動採取行動來阻止攻擊,降低其影響。

例如:

  • 發出警報
  • 修改路由器上的存取控制列表 (ACL) 封鎖特定流量

許多工具具備 IDS 與 IPS 雙重功能,如:

  • Suricata
  • Snort
  • Sagan

EDR(端點偵測及回應)
安裝於端點設備(如電腦、手機、平板)上,專注於監控與防禦端點層級的惡意活動。

功能特色:

  • 監控、記錄並分析端點活動
  • 執行行為分析以識別威脅模式
  • 利用 AI/ML 分析異常行為
  • 自動封鎖可疑行為,無需人工介入

常見 EDR 工具:

  • Open EDR®
  • Bitdefender™ EDR
  • FortiEDR™

註:SIEM 工具亦具備偵測能力。

SIEM 技術概述

安全資訊與事件管理工具用於收集與分析日誌,協助監控組織內的重要活動,是資安事件偵測與應變的核心工具之一。

SIEM 優勢

  • 事件資料存取:整合來自多個設備的活動資料,提供即時與歷史事件可視性。
  • 即時監控與警報:持續監控並套用偵測規則,偵測可疑行為並發出警報。
  • 日誌儲存功能:支援長期資料保留,便於調查與合規管理。

流程三步驟
1. 收集與彙整資料

  • 日誌來源:防火牆、伺服器、路由器等
  • 資料集中於 SIEM,提升效率
  • 進行剖析(Parsing)以解析欄位與數值

範例:

April 3 11:01:21 server sshd[1088]: Failed password for user nuhara from 218.124.14.105 port 5023

剖析後結果:

  • host = server
  • process = sshd
  • source_user = nuhara
  • source_ip = 218.124.14.105
  • source_port = 5023

2. 資料標準化

  • 收集的資料來自多種來源,格式各不相同,為利分析,將資料轉換成統一的結構化格式。
  • 提高資料可搜尋性與可分析性
  • 促進跨系統一致性分析
  • 便於規則比對與警報觸發

3. 資料分析
將已標準化的資料進行分析,產生可用的安全警報。

分析方式:

  • 套用偵測規則與條件,符合規則時,觸發警報通知資安團隊

事件關聯分析(Correlation)

  • 比對多筆日誌事件
  • 辨識潛在攻擊模式與異常行為
  • 串聯零散事件,提升威脅識別精準度

常見 SIEM 工具

  • AlienVault® OSSIM™
  • Chronicle
  • Elastic
  • Exabeam
  • IBM QRadar® Security Intelligence Platform
  • LogRhythm
  • Splunk

SOAR (Security orchestration, automation, and response, 安全編排、自動化與回應)
一套應用程式、工具與工作流程集合,利用自動化回應資安事件。

# 網絡監控和分析

# 了解網絡流量

透過網路監控維持情境感知

常見行為如寄信、看影片、上網都會產生網路流量與資料。

  • 網路流量 (Network Traffic):在網路中傳輸的資料量,包含傳輸協定(例如 HTTP)等類型。
  • 網路資料 (Network Data):設備間實際傳輸的內容。

網路通訊揭露資訊如:

  • 來源與目的地 IP
  • 傳輸資料量
  • 日期與時間等

Baseline

  • 表示系統、裝置或網路的「正常行為參考值」,可用於監控是否偏離正常狀況。
  • 建立基準有助於:
    • 辨識異常行為
    • 發現潛在威脅

數據外洩(Data Exfiltration)
未經授權地從系統傳輸或竊取資料,常見於內部人員濫用或外部入侵。

橫向移動(Lateral Movement / Pivoting)

  • 攻擊者在網路內部橫向擴張控制權限 (如利用合法帳號、系統漏洞)
  • 目標為:
    • 擴大入侵範圍
    • 維持持久存取

網路監控的重要

  • 維持網路活動情境感知
  • 有助偵測可疑或異常活動
  • 前提是先明確知道「該監控什麼」

可監控項目:

  1. 流量分析(Flow Analysis)
    • 分析封包、通訊協定、連接埠
    • 攻擊者可能使用非標準埠與協定進行 C2 (command and control) 通訊
    • 應確保開啟的埠口皆為核准用途
  2. 封包載荷資訊(Packet Payload information)
    • 檢查實際傳輸的資料內容(可能需解密)
    • 發現機密資料外傳可能表示資料外洩攻擊
  3. 時間模式(Temporal Patterns)
    • 分析流量出現的時間是否偏離正常營運時段
    • 非營業時間的高流量需特別注意

SOC vs. NOC 職責比較:

  • SOC:偵測與回應資安威脅
  • NOC (網路營運中心):維持網路效能與可用性

資安分析師的任務:

  • 辨識 IoC(威脅指標,Indicators of Compromise)
    • 提供具體證據,如:惡意 IP 位址
  • 發現異常流量
  • 防禦入侵行為

常見網路監控工具:

  1. IDS
    • 偵測設定好的異常行為並發出警報
    • 分析封包內容,辨識惡意活動
  2. 封包分析器(Packet Sniffers)
    • 擷取與分析網路流量
    • 工具如:
      • tcpdump (CLI)
      • Wireshark (GUI)

# 捕捉與檢視網路流量

封包擷取(Packet Captures)

封包是資料傳輸的基本單位

  • 網路活動(如瀏覽網站、上傳圖片)都會觸發封包傳輸
  • 分析封包能提供事件背景,有助調查與防禦

封包的組成:
1.Header

  • 位於封包起始
  • 提供路由與控制資訊
  • 可能包含:
    • 來源 / 目的 IP
    • 協定類型(如 TCP/IP)
    • 封包長度與識別碼

2.Payload(載荷)
封包內真正的傳輸資料,例如圖片、文字、指令等內容

3.Footer (Trailer): 封包結束訊號與錯誤檢查資訊

  • 用於錯誤檢查(如 Ethernet 中的 CRC)
  • 多數協定(如 IP)不使用 footer
  • 有時因擷取工具設定不會顯示

網路協定分析器(封包嗅探器)

  • 用於捕捉並分析網路流量的工具,如 tcpdump、Wireshark、TShark
  • 亦可用於收集網路統計數據(如頻寬、速度)及排解性能問題。
  • 也可被用於惡意行為,像是捕捉敏感資料(如帳戶登入資訊)。

運作原理
網路協議分析儀結合軟硬體功能,擷取並解析網路流量供分析使用。

  1. 透過網路介面卡(NIC, Network Interface Card)收集封包,並需將 NIC 設為監聽模式或混雜模式以捕捉所有可見封包。僅切換模式無法全面擷取所有封包,分析儀須部署於正確的網路區段。
  2. 所擷取的封包為二進位格式,分析儀會將其轉換為人類可讀的格式。

混雜模式可能導致設備暴露機敏資訊,使用時應特別小心。

NIC 是一種將電腦連接至網路(如路由器)的硬體,負責接收與傳送網路流量。預設情況下,NIC 僅接收發送給自己的封包。若需擷取網路上所有可見的封包,則需將 NIC 切換至可擷取全部封包的模式。無線介面稱為「監聽模式(monitor mode)」;有線網路則常稱為「混雜模式(promiscuous mode)」。

封包擷取
封包擷取檔(p-cap)可用網路協議分析儀進一步過濾與分析,例如篩選特定 IP 的流量。

P-cap 檔案格式依封包擷取函式庫而異,常見如下:

  • Libpcap:Unix-like 系統(如 Linux/macOS)常用,tcpdump 預設格式。
  • WinPcap:舊版 Windows 平台函式庫,已較少使用。
  • Npcap:Nmap 開發,現為 Windows 常用封包擷取函式庫。
  • PCAPng:次世代格式,能擷取封包並儲存額外資料。

未經授權攔截私人通訊在多數地區屬違法行為。

調查封包細節

IP (網際網路通訊協定) 是網路資料傳輸的基礎,負責封包的路由與定位。

IPv4 標頭包含以下主要欄位:

- Version:IPv4 版本識別。
- IHL:標頭長度。
- ToS(服務類型):封包優先順序。
- Total Length:整體封包長度。
- Identification:分段識別用 ID。
- Flags:是否分段及是否為最後一段。
- Fragment Offset:分段位置。
- TTL:封包存活時間,避免無限循環。
- Protocol:使用的傳輸層協定。
- Header Checksum:標頭錯誤檢查。
- Source Address:來源 IP。
- Destination Address:目的 IP。
- Options:選用欄位,可加入安全設定。

IPv6 標頭欄位:

- Version:IPv6 版本識別。
- Traffic Class:封包優先順序或分類資訊。
- Flow Label:識別同一來源資料流的封包。
- Payload Length:封包資料部分的長度。
- Next Header:後續協定類型(如 TCP)。
- Hop Limit:封包在網路中的跳數限制。
- Source Address:來源 IPv6 位址。
- Destination Address:目的 IPv6 位址。

Wireshark
一款開源圖形化網路協議分析工具,可視覺化檢視封包內容。

顯示過濾器可根據協定、IP 位址、通訊埠等封包屬性進行過濾,提升調查效率。

比較運算子
Wireshark 支援使用比較運算子過濾特定欄位數值,符號與縮寫皆可使用,例如: ip.src == 8.8.8.8 等同於 ip.src eq 8.8.8.8

類型符號縮寫
等於==eq
不等於!=ne
大於>gt
小於<lt
大於等於>=ge
小於等於<=le

也可與 andor 搭配,並用括號分組。

contains :過濾包含指定文字字串的封包。
範例: http contains "moved" 可找出包含 "moved" 的 HTTP 封包。

matches :透過正規表示式過濾符合特定模式的封包。

Wireshark 過濾器工具列
輸入協定名稱即可過濾封包,例如:

  • dns
  • http
  • ftp
  • ssh
  • arp
  • telnet
  • icmp

IP、MAC、通訊埠過濾範例

  • 任一來源 / 目的 IP: ip.addr == 172.21.224.2
  • 來源 IP: ip.src == 10.10.10.10
  • 目的 IP: ip.dst == 4.4.4.4
  • MAC 位址: eth.addr == 00:70:f4:23:18:c4
  • UDP 埠(例如 DNS): udp.port == 53
  • TCP 埠(例如 SMTP): tcp.port == 25

追蹤串流

  • Wireshark 可使用 Follow Stream 功能查看完整協定通訊內容。
  • 串流即為設備間基於協定的資料交換過程,Wireshark 會將資料重組為可讀格式。
  • 適用於查看 HTTP 請求與回應等通訊細節。

實驗 1
使用平台: Qwiklab
使用軟體: Wireshark

實驗目的

  • 使用 Wireshark 開啟封包擷取檔
  • 檢視封包細節
  • 套用顯示過濾器
    • tcp.port == 80 → 過濾 Web (HTTP) 流量
    • tcp contains "curl" → 過濾封包中含 curl 請求的流量

# 封包檢查(Packet Inspection)

tcpdump 概觀

  • 支援將流量儲存為 .pcap 檔,供分析使用
  • 可用於故障排除或偵測惡意流量
  • 多數 Linux 系統預設已安裝,macOS 也可安裝
  • 封包大多為加密內容,需相應私鑰才能解讀資料

擷取封包語法

sudo tcpdump [-i interface] [option(s)] [expression(s)]
  • 需使用管理權限
  • -i 指定介面
    • -i any 擷取所有介面
    • 使用 tcpdump -D 列出可用的網路介面
  • [option (s)]:可選參數,用於調整執行行為
  • [expression (s)]:過濾條件,用於過濾特定流量(如 IP、port)

常見 options

  • 短選項: -i
  • 長選項: --interface
  • 選項區分大小寫,如 -w-W
  • 短選項可與參數連寫: -i any-iany

-w <檔案名> :寫入封包至 .pcap

  • 範例: sudo tcpdump -i any -w packetcapture.pcap

-r <檔案名> :從 .pcap 檔讀取並顯示封包

  • 範例: sudo tcpdump -r packetcapture.pcap

-v / -vv / -vvv : Verbose 模式,增加輸出詳細程度 (如 IP 標頭),v 越多越詳細

-c <數字> → 限制擷取封包數量

  • 範例: -c 3 表示只擷取 3 筆封包

-n
tcpdump 預設會進行名稱解析,即:

  • 解析 IP → 主機名稱(DNS)
  • 解析埠號 → 常見服務名稱(如 80 → HTTP)

為了避免誤導與 DNS 反查會曝光的風險

  • -n :不解析主機名稱
  • -nn :不解析主機名稱與埠號
  • 範例: sudo tcpdump -r packetcapture.pcap -v -n

合併用法: -vn
不可合併帶參數選項,如 -c 1-r file

常見 expressions

  • 單或雙引號可保證正確解析整個表達式
  • ip6 :過濾 IPv6 封包
  • 可使用布林邏輯運算: and , or , not ,如 sudo tcpdump -r packetcapture.pcap -n 'ip and port 80'
  • 括號可優先執行群組條件
    • 範例: ip and (port 80 or port 443)

輸出說明
範例指令:

sudo tcpdump -i any -v -c 1

輸出範例

執行指令後,每行顯示一筆封包,格式如下:

  1. 時間戳記: hh:mm:ss.微秒
  2. 來源 IP 與來源埠號
  3. 目的 IP 與目的埠號
  4. 其他詳細資訊 (由 -v 提供),如 TCP flags, seq, options 等

Flags 欄位(TCP 標誌位元)

  • P : Push flag,表示資料應立即傳送給接收端的應用層。
  • . : 代表 ACK,表示已收到前一個封包。
    此封包是帶有資料的 ACK 封包

實驗 2

實驗目的

  • 找出可用網路介面
  • 使用 tcpdump 擷取封包
  • 儲存為 .pcap 檔案
  • 應用封包過濾器進行分析

實驗步驟

  1. sudo ifconfig 或用 sudo tcpdump -D 替代。
  2. sudo tcpdump -i eth0 -v -c5
  3. sudo tcpdump -i eth0 -nn -c9 port 80 -w capture.pcap & , 手動產生網路流量: curl opensource.google.com , 檢測檔案: ls -l capture.pcap ,顯示 "Done" 表示有成功擷取
  4. sudo tcpdump -nn -r capture.pcap -v , sudo tcpdump -nn -r capture.pcap -X
  • & : Bash Shell 的指令,表在背景執行(非同步處理)
  • -X : 顯示封包的十六進位與 ASCII 格式,用於進階分析如惡意流量與鑑識調查

# 事件調查和響應

# 事件檢測和驗證

資安事件偵測方法

在事件回應生命周期的偵測與分析階段,資安團隊會接獲事件通知,並透過資料收集與分析進行確認。偵測是發現安全事件,分析則是調查與驗證警示。

IDS 能偵測入侵並發送警示。亦可使用 SIEM 工具來偵測與分析安全數據。

若設定不當,可能無法發現可疑活動,讓系統暴露於風險中。

威脅狩獵 (Threat hunting)
隨著威脅的演變,攻擊者不斷提升其技術。自動化偵測工具可能無法跟上變化,而人工驅動的威脅狩獵則將科技與人類分析結合,用來發現偵測工具未能察覺的隱藏威脅。

威脅狩獵是主動搜尋網路威脅的過程,旨在發現未被偵測工具識別的惡意活動,並進行深入分析。它也用來在威脅造成損害前進行預防。例如,無檔案惡意軟體難以被偵測工具識別,因為它隱匿於記憶體中,避免傳統的偵測方法。透過威脅狩獵,結合人工分析與科技工具可識別這類威脅。

威脅狩獵專家(威脅獵人)會研究新興威脅與攻擊,並評估組織面臨攻擊的風險。威脅獵人利用威脅情報、入侵指標、攻擊指標和機器學習搜尋威脅。

威脅情報
企業可透過了解不斷變化的威脅環境及其與惡意攻擊者的關係來提升偵測能力。威脅情報是基於證據的威脅資訊,提供現有或新興威脅的背景。來源包括:

  • 行業報告:包含攻擊者的戰術、技術與程序(TTP)資料。
  • 政府公告:同樣提供攻擊者 TTP 的資料。
  • 威脅數據流:提供與威脅相關的數據,幫助防範像高級持續性威脅(APT)等複雜攻擊者。通常是指標列表,如 IP 位址、域名和檔案哈希值。

企業管理大量威脅情報時可能遇到挑戰,可使用威脅情報平台(TIP)來集中收集、分析來自不同來源的情報。TIP 可協助識別與優先處理威脅,並提高安全防護。

威脅情報數據流應用於偵測時,只能提供背景,並應在應用前先評估。

網路欺騙 (Cyber deception)
網路欺騙技術故意誤導惡意攻擊者,目的是提升偵測能力和防禦策略。

蜜罐 (Honeypots) 是利用欺騙技術的主動防禦機制。蜜罐是設計為易受攻擊的系統或資源,吸引攻擊者。例如,設置一個標為「客戶信用卡資訊 - 2022」的假檔案,攻擊者可能誤以為是真實的,從而將其行為暴露。當攻擊者存取該檔案時,安全團隊會收到警示。

持續監控 CI/CD

CI/CD 管道雖提升發佈速度,但也為攻擊者創造漏洞。自動化監控能夠發現管道中的異常活動,幫助安全團隊及時反應並減少損害。這是強化 CI/CD 安全的重要目標。

CI/CD 管道中的常見入侵指標(IoCs):

  • 未經授權的代碼變更:來自不應該進行變更的人員、異常時間或位置的代碼變更,或不符合編碼規範的代碼。
  • 可疑的部署模式:部署到未經批准的系統或在不正常的時間進行部署,或由異常帳號啟動部署。
  • 受損的依賴項:發現已知漏洞的依賴項 (CVE)、添加意外依賴項或從不信任來源下載依賴項。
  • 異常的管道執行:管道步驟失敗、執行時間延長或步驟順序未經批准的變化。
  • 嘗試暴露機密:日誌顯示從未經授權的位置嘗試訪問機密,或發現硬編碼的私密資料。

持續監控 CI/CD 管道,專注於異常檢測與 IoCs 發現可以:

  • 迅速應對事件:早期發現 IoCs 能快速響應潛在攻擊,防止攻擊者達成目標。
  • 限制損害:快速反應減少攻擊者在管道中的停留時間,降低事件影響。
  • 提升威脅知識:檢查 IoCs 有助於理解攻擊者的攻擊方式,改善未來的安全防護。

可以通過以下方法自動化發現 IoCs:

  • 綜合日誌與審計:詳細的日誌是發現異常活動和 IoCs 的基礎,常見的日誌包括:
    • 管道執行日誌:通過基準化技術,檢查偏離正常執行時間、出現錯誤或步驟順序變化的情況。
    • 代碼提交日誌:監控異常代碼變更,如不應該修改的代碼、深夜變更或可疑內容。
    • 訪問日誌:檢查異常登錄行為,如來自異地的登錄或修改關鍵設置的嘗試。
    • 部署日誌:發現異常部署行為。
  • SIEM 整合:將 CI/CD 日誌接入 SIEM,可利用機器學習與規則引擎自動偵測異常與已知 IoCs,例如:
    • 發現與已知攻擊相關的惡意檔案雜湊。
    • CI/CD 伺服器連線至已知 C2 伺服器。
    • 嘗試在非授權流程中存取私密資料。
  • 即時警示與通知
    • 建置步驟異常失敗。
    • 可疑代碼變更(如變更異常、內容混亂)。
    • 機密資料存取異常。
    • CI/CD 伺服器出現可疑外部網路流量。

效能監控與漏洞掃描

  • 效能異常(如資源耗盡、系統變慢)可作為攻擊指標(IoAs),進一步調查可能揭露 IoCs。
  • 持續漏洞掃描可發現 CI/CD 工具、外掛與容器中的 CVE,屬潛在 IoCs,應立即修補避免攻擊。

入侵指標(IoCs, Indicators of compromise)與攻擊指標(IoAs)

  • IoC 是可觀察的攻擊證據,通常在事件發生後出現,例如惡意檔案名稱或連線 IP。
  • IoA 則是實時觀察到的攻擊行為,揭示攻擊者的意圖與方法。
  • IoC 協助事後鑑識「發生了什麼」;IoA 著重即時防禦「正在發生什麼」。
  • 注意:IoC 不一定代表真的發生資安事件,可能只是誤操作或系統異常。

痛苦金字塔(Pyramid of Pain)
此模型說明不同 IoC 類型對攻擊者的干擾程度,由下而上難度提升:

  1. Hash 值:惡意檔案雜湊,易繞過。
  2. IP 位址:可輕易更換代理或跳板主機。
  3. 網域名稱:攻擊者可重註網域。
  4. 網路遺留物:網路層可觀察行為(如 User-Agent)。
  5. 主機遺留物:本機行為痕跡(如惡意檔案名稱)。
  6. 工具:攻擊者使用的軟體,阻斷會影響其效率。
  7. TTPs (戰術、技術與程序,Tactics, Techniques, and Procedures):如滲透手法、橫向移動策略等,最難改變,對攻擊者破壞性最大。

使用調查工具分析 IoCs

調查工具能協助分析可疑 IoCs 並建立事件脈絡,提升警示的可信度與調查效率。單一 IoC 需透過背景分析才能準確判斷是否為真正的資安事件。

建立 IoC 的事件脈絡
單一 IoC 不足以判斷整體威脅。透過威脅情資 (Threat Intelligence),可找出相關網路行為、進程活動等遺留物,幫助資安團隊建立完整事件脈絡,加速偵測並做出更有依據的應變決策。

群眾外包 (Crowdsourcing) 與威脅情資分享

  • 群眾外包讓全球資安社群可共享 IoCs 與攻擊模式,有效對抗重複攻擊。
  • ISACsOSINT 是主要的情資來源,提供產業特定或公開的威脅資訊。
  • 偵測到攻擊後,可將相關 IoCs 上傳至 VirusTotal 等平台,協助其他組織即早防禦。

VirusTotal

  • 可分析檔案、IP、URL、網域等是否為惡意。
  • 提供靜態分析、行為分析、關聯性與社群意見等完整報告。
  • 偵測比率與社群分數可幫助評估 IoC 的可信度。
  • 注意:上傳內容將公開,請避免提交機密或個資。
  • 病毒檔案 hash 範例: 54e6ea47eb04634d3e87fd7787e2136ccfbcc80ade34f246a12cf93bab527f6b

其它平台

  • Jotti malware scan
  • Urlscan.io
  • MalwareBazaar

# 創建和使用文檔

資安紀錄 (Documentation)

三大效益:

  • 透明性:如證物鏈 (Chain of Custody) 記錄,指記錄在事件生命週期中,證據的持有者與存取過程,提供可稽核性並符合法規需求。
  • 標準化:透過應變計畫等文件,建立可重複執行的一致流程。
  • 清晰性:讓團隊快速理解紀錄內容與處置依據,提升效率與準確度。

文件撰寫最佳實務

  • 了解讀者:依受眾 (如:SOC 經理還是 CEO) 調整內容與用詞,符合其理解需求。
  • 簡潔明瞭
  • 定期更新

# 響應和恢復

分流(Triage)

分流用於評估警示並指派優先級,協助資安團隊有效分配資源,優先處理關鍵事件。

流程:

  1. 接收並評估
    • 接收來自 IDS 等系統的警示,確認真偽與完整資訊
    • 判斷是否誤報、是否重複、是否由已知漏洞引發,並評估嚴重性
  2. 指派優先權
    • 根據功能影響、資訊影響及復原可能性指派優先級
    • 評估事件範圍、影響與資源分配
  3. 收集並分析
    • 全面蒐集證據與研究,詳細紀錄調查過程
    • 嚴重事件可升級給高階分析師或管理者處理

好處

  • 資源管理:聚焦緊急威脅,避免浪費資源,縮短回應時間。
  • 標準化流程:透過標準作業流程,確保警示有效且適當評估,提升處理效率

營運持續性考量

  • 減少安全事件對系統與服務的影響,避免法律、財務及聲譽損害。
  • 營運持續性計畫(BCP)規範中斷期間維持營運程序,確保關鍵業務快速恢復。
  • 初級分析師需了解 BCP 的重要性,雖非負責制定與測試。
  • 註:BCP 與災難復原計畫不同,後者聚焦於災害後系統復原。

勒索軟體對營運持續性的影響

  • 勒索軟體會加密關鍵資料,影響醫療等基礎設施服務,甚至危及國家與公共安全。
  • BCP 幫助減少營運中斷,確保重要服務持續可用。

復原策略

  • BCP 含復原策略,目標回復正常營運。
  • 站點韌性 (Site resilience) 指系統能應對中斷並持續服務。類型包含:
    • 熱備站點:主環境複製,故障時可立即切換。
    • 溫備站點:配置完整但需短時間準備。
    • 冷備站點:備用,基礎設施有限,準備時間長。

# 事件後檢討

事件後活動
NIST 事件回應生命週期中的事件後活動階段,指的是審查事件以找出處理過程中可改進之處的過程。

經驗回顧會議(Post-mortem)
召集所有涉入重大事件的人員,評估事件與回應行動,找出改進點。會議應於事件處理後兩週內召開。非所有事件皆需召開,依嚴重性決定。重大事件如勒索軟體須專門召開。

會議討論問題範例

  • 發生了什麼?
  • 發生時間?
  • 發現者?
  • 如何遏止?
  • 採取的復原行動?
  • 可改進之處?

避免重蹈覆轍,改善措施包括更新應變手冊與導入新安全技術。

最終報告
提供事件完整回顧,主要內容包括:

  • 執行摘要:事件關鍵發現與重點
  • 時間軸:事件時間順序與時間戳
  • 調查過程:偵測與分析行動紀錄
  • 建議事項:未來預防措施

活動: Review a final report
檔案: Google docs

# 使用 ID 和 SIEM 工具的網絡流量和日誌

# 日誌概述

日誌收集與管理最佳實務

資安團隊透過 SIEM 等接收器集中管理日誌,進行日誌分析以識別重要事件,揭示事件 5W。

日誌類型:

  • 網路日誌:防火牆、路由器等產生。
  • 系統日誌:作業系統產生。
  • 應用程式日誌:軟體應用產生。
  • 安全日誌:防毒軟體、入侵偵測等安全相關。
  • 認證日誌:認證事件產生,如登入。

日誌細節

  • 包含日期、時間、地點、動作、動作者。如: Login Event [05:45:15] User1 Authenticated successfully
  • 詳細日誌記錄更多資訊,如: Login Event [2022/11/16 05:45:15.892673] auth_performer.cc:470 User1 Authenticated successfully from device1 (192.168.1.2)

日誌管理:涵蓋收集、儲存、分析及銷毀。

  • 紀錄內容選擇:依事件需求決定紀錄來源與資料,避免過度冗長。個人識別資訊(PII)須特殊處理,部分地區禁紀錄。
  • 過度紀錄問題:全面紀錄常見誤區,增加成本及系統負擔,影響效能與事件辨識。
  • 日誌保存期限:部分行業需遵守法規保存期限,如 FISMA、HIPAA、PCI DSS、GLBA、SOX。
  • 日誌保護:維護日誌完整性,避免竄改。集中式伺服器存放日誌,提升安全防護。

日誌檔案格式

JSON (JavaScript 物件表示法)
JSON 是輕量、易讀寫的資料格式,廣泛應用於網頁與雲端,語法源自 JavaScript。其核心語法元素包括:

  • 鍵值對: "Alert": "Malware" ,冒號前後建議保留空格提升可讀性
  • 逗號:分隔多筆資料,如 "Alert": "Malware", "severity": 10
  • 雙引號:包覆字串資料,數值不使用引號
  • 大括號:包覆物件,如
    "User": {
        "id": "1234",
        "name": "user",
        "role": "engineer"
    }
  • 中括號:包覆陣列,如 ["Administrators", "Users", "Engineering"]

Syslog
日誌的標準化紀錄與傳輸方式,包含以下三個面向:

  • 協定:用於傳送日誌至集中式伺服器,埠號 514(明文)、6514(加密)
  • 服務:整合多來源日誌並轉發至遠端
  • 格式:Unix 系統常用格式,包含 Header、Structured-data、Message

Syslog 範例

<236>1 2022-03-21T01:11:11.003Z virtual.machine.com evntslog - ID01 [user@32473 iut="1" eventSource="Application" eventID="9999"] This is a log entry!
  • Header:
    • 時間戳:2022-03-21T01:11:11.003Z(UTC)
    • 主機: virtual.machine.com
    • 應用程式:evntslog
    • 訊息 ID:ID01
  • Structured-data:
    [user@32473 iut="1" eventSource="Application" eventID="9999"]
  • Message: This is a log entry!
  • Priority(PRI): <236> ,數值愈小表示事件愈緊急

Syslog 可與 JSON、XML 或自訂格式結合使用。

XML(可延伸標記語言)
一種用於儲存與傳輸資料的語言與格式,廣泛應用於 Windows 系統。其語法包含:

  • 標籤(Tags):每個元素需有成對標籤。
  • 元素(Elements):由標籤與其中資料構成,所有 XML 檔需有一個根元素,內含子元素
    <Event>
        <EventID>4688</EventID>
        <Version>5</Version>
    </Event>
  • 屬性(Attributes):元素可含屬性提供額外資訊,寫於起始標籤內,屬性值須加引號,如: <Data Name='SubjectUserSid'>S-2-3-11-160321</Data>

XML 可表現結構化資料,常用於系統日誌與跨系統資料交換。

CSV
以逗號分隔欄位資料。日誌中每個值的位置對應其欄位名稱,但欄位名稱可能不會包含在內。

理解來源設備(如 IPS、防火牆等)所使用的欄位順序與格式至關重要。

CEF(通用事件格式)
使用鍵值對格式結構化資料的標準日誌格式,其結構為:

CEF:版本|設備廠商|設備產品|設備版本|簽章 ID|事件名稱|嚴重性|延伸欄位
  • 欄位間以 | 分隔
  • 延伸欄位(Extension)使用鍵值對,如 src=10.0.0.2
  • 可透過 Syslog 傳輸,Syslog 會加上時間戳記與主機名稱
  • 範例:
    Sep 29 08:26:10 host CEF:1|Security|threatmanager|1.0|100|worm successfully stopped|10|src=10.0.0.2 dst=2.1.2.2 spt=1232
    
  • Extension 與 Syslog 前綴為可選項目。

# IDS 概述

檢測工具和技術

HIDS (主機型入侵偵測系統,Host-based IDS)
安裝在端點(如電腦或伺服器)上的代理程式,用於監控主機本身的活動。

  • 功能:
    • 偵測未授權行為(如安裝未知程式)
    • 發送警報與記錄日誌
    • 監控項目:檔案系統、系統資源、使用者行為、網路流量等
  • 特性:
    • 每台端點需個別安裝
    • 僅監控本機行為,無法監控其他裝置或整體網路

HIDS 適合補強本機端安全,與 NIDS 可互補併用。

NIDS (網路型入侵偵測系統,Network-based IDS)

NIDS

一種部署於網路節點的系統,用於監控跨多台設備的網路流量。

  • 功能:
    • 分析封包、偵測惡意網路活動
    • 記錄可疑事件並產生警報
  • 部署位置:
    • 網路邊界(如閘道器)
    • 專用網路監控設備等
  • 特性:
    • 可同時監控多台裝置的流量
    • 適合進行整體網路威脅分析

IDS 常用兩種技術來偵測威脅:
特徵碼式分析(Signature-based Analysis)
比對已知惡意模式(特徵碼)以識別攻擊。

  • 優點:偵測已知威脅準確、誤報率低
  • 缺點:
    • 攻擊者可輕易變造繞過
    • 須定期更新特徵碼資料庫
    • 無法偵測未知或零時差攻擊

異常行為分析(Anomaly-based Analysis)
比對行為是否偏離「正常行為基準」。

  • 流程:
    1. 訓練階段建立正常基準
    2. 偵測階段比對異常行為
  • 優點:可發現未知與變異型威脅
  • 缺點:
    • 誤報率高(非惡意也可能偏離基準)
    • 若訓練期間系統已被入侵,將誤判為正常行為

Suricata 概述

開源的多功能資安工具,核心功能:

  1. IDS 模式:監控網路或主機活動,偵測可疑行為並發送警報
  2. IPS 模式:偵測後立即阻擋惡意活動(需額外啟用設定)
  3. NSM 模式(Network Security Monitoring)
    • 擷取與儲存網路流量記錄
    • 支援 live traffic、pcap 分析、封包擷取
    • 用於資安鑑識、事件分析、自訂簽章測試等

Suricata 使用規則(亦稱特徵碼)來偵測惡意行為與異常網路活動。

組成結構
每條規則包含三部分:

  1. 動作(Action): 描述符合特徵時要採取的動作。
    • alert , pass , drop (只在 IPS 模式下發生), reject
  2. 標頭(Header)
    • 協定、來源與目的 IP/Port、流量方向
  3. 規則選項(Rule Options): 提供自訂特徵的選項。
    • () 包含的細部條件(如 content、msg、sid 等),用 ; 隔開。
    • 具順序性,順序錯誤可能導致規則失效或誤判

範例:

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"GET on wire"; flow:established, to_server; content:"GET"; http_method; sid: 12345; rev:3;)
  • msg : 提供警報文本,顯示觸發原因(如 "GET on wire")。
  • flow:established,to_server : 用於比對流量方向,匹配從客戶端到伺服器的封包。
  • content:"GET" : 指定要比對的封包字串,在 http.method 部分查找 "GET"。
  • sid:12345 : 唯一的簽名 ID。
  • rev:3 : 簽名的修訂版本。

簡言之,當 Suricata 檢測到內部到外部的 HTTP GET 請求時,會觸發警報。

預設規則處理順序: pass → drop → reject → alert ,當多條規則同時符合封包,順序將決定處理方式。

自訂規則

  • 根據組織需求編寫或調整規則
  • 可降低誤報率、提升偵測精準度
  • 是資安人員重要的實務技能

組態檔: suricata.yaml

  • 可設定模組、規則載入、輸出格式、網路介面等
  • 是部署 IDS/IPS 前的核心設定檔案

日誌檔案
eve.json

  • 建議使用的主要日誌格式
  • JSON 格式,詳細記錄事件、flow_id、分類、metadata
  • 適合 SIEM 匯入、進階分析與威脅獵捕

fast.log

  • 傳統簡易警報日誌
  • 僅含基本 IP、Port 等資訊
  • 適用於快速查看是否有告警,不建議用於事件回應

實驗 1
實驗目的

  • 檢查一條 Suricata 規則
  • 觸發該規則並審查警報日誌
  • 分析 eve.json 的輸出結果

實驗步驟

  1. cat custom.rules ,查看規則。
  2. ls -l /var/log/suricata , 啟動 Suricata,使用 custom.rules 處理 sample.pcap : sudo suricata -r sample.pcap -S custom.rules -k none , 此命令會輸出處理的封包數量。接著檢查警報: ls -l /var/log/suricata , cat /var/log/suricata/fast.log
  3. cat /var/log/suricata/eve.json ,
    jq . /var/log/suricata/eve.json | less ,
    jq -c "[.timestamp,.flow_id,.alert.signature,.proto,.dest_ip]" /var/log/suricata/eve.json ,
    jq "select(.flow_id==X)" /var/log/suricata/eve.json ,X 換成上一個指令輸出中的任一 ID

補充:
1. less 指令可用來逐頁閱讀長篇檔案內容,適合查看大量輸出結果。
2. 此實驗中,需使用 sudo 來處理封包檔案,但在實際環境中可能不需要。

  • -k none 選項禁用 Suricata 的所有校驗和檢查。由於使用的是樣本封包流量,因此不需檢查校驗和的完整性。
  • 當規則條件滿足時,Suricata 會在 /var/log/suricata/fast.log 中新增警報。

3-2. 使用 jq 美化 JSON 輸出。使用 fb 鍵瀏覽, Q 退出。
3-3. 該 jq 指令從 JSON 中擷取欄位。
3-4. 使用 jq 查詢 eve.json 中指定 flow_id 的所有事件。
flow_id 是唯一識別網路流的 16 位數,可用來關聯相同來源與目的地的流量記錄。

網路遙測 (network telemetry): 用於收集如 HTTP 流量等資料供分析。

# SIEM 概述

日誌來源與擷取 (ingestion)

SIEM 透過日誌擷取從伺服器等來源收集資料,並保留副本以進行分析,不會修改原始日誌。這些事件資料包含登入紀錄、網路活動等,集中管理便於資安應變。

使用日誌轉送器 (Log forwarders) 可自動收集並傳送日誌,比手動方式更有效率。有些 OS 內建轉送器,否則需安裝第三方工具,設定轉送規則後即可將日誌傳至 SIEM 進行標準化與分析。

業界常用 SIEM 工具: Splunk, Google SecOps (原 Chronicle)

SIEM 工具的搜尋方法

Splunk
使用 SPL 語言來查詢事件資料,例: index=main fail 指定從 main 索引中搜尋包含 "fail" 的事件。

可使用 | 管線符號串接命令,如: index=main fail | chart count by host 會顯示各主機發生失敗事件的次數圖表。

萬用字元 * 用於擴展搜尋條件,如: fail* → "failed"、"failure"

使用雙引號 " " 可精準搜尋完整詞組,如: "login failure"

Google SecOps
提供兩種搜尋方式:

  1. UDM Search(預設,Unified Data Model)
    • 搜尋已標準化的安全事件資料
    • 使用欄位如 metadata.event_type = "USER_LOGIN"
    • 搜尋快速、結構清晰
  2. Raw Log Search
    • 搜尋原始、未解析的日誌
    • 支援正規表示式,搜尋更彈性
    • 搜尋速度較慢,但可補 UDM 資料不足

使用程序式篩選:可進一步篩選結果,如依事件類型或來源篩選。

常見的 UDM 欄位包括

  • Entities(實體):描述事件中涉及的裝置、使用者或程序,例如主機名稱、使用者名稱、IP 位址。
  • Event Metadata(事件中繼資料):包含事件類型、時間戳記等基本資訊。
  • Network Metadata(網路中繼資料):記錄與網路流量與協定相關的資訊。
  • Security Results(安全結果):說明事件的安全結果,例如「偵測到病毒並隔離」。

Wazuh 安裝導引

Wazuh 是開源且免費的現代化 SIEM 工具,具備日誌分析、威脅偵測與事件調查等核心功能。

相比 Splunk 和 Google SecOps 等商用平台,Wazuh 提供無門檻的實作環境,適合學習與練習專業資安技能。

P1. 安裝

  1. 網路搜尋並下載 "Wazuh virtual machine OVA"
  2. VirtualBox 中匯入 .ova 檔完成安裝

P2. 啟動前調整

  1. 選取 Wazuh VM → 點選 Settings
  2. 前往 System 分頁
  3. 調整 Base Memory 為 4096MB (4GB)
  4. 儲存設定

P3. 存取儀錶板

  1. 點選 Start 啟動 VM,按 "右 Ctrl" 釋放滑鼠游標
  2. 設定共享資料夾:
    • VirtualBox 選單:Devices > Shared Folders > Shared Folders Settings
    • 新增資料夾
    • Folder Path:選取 tutorialdata (gcsc 活動下載解壓)
    • Folder Name:輸入 buttercup-shared
    • 勾選 Auto-mount → 點選 OK
  3. 完成權限設定:以 root /wazuh (帳密) 登入 VM,執行下列指令設定共享資料夾權限並重新啟動
    usermod -aG vboxsf root
    reboot
  4. 重開機後再次登入,輸入 ip a 查找 VM 的 IP(通常為 192. 開頭)
    • 用瀏覽器開啟: https://<VM_IP>
    • 登入 Wazuh 控制台: admin /admin

P4. 匯入並分析資料

  1. 存取資料夾: cd /media/sf_buttercup-shared
  2. 建立設定檔: nano ingest.yml
    貼上下方內容,儲存 ( Ctrl+X , Y , Enter)
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /media/sf_buttercup-shared/mailsv/*.log
        - /media/sf_buttercup-shared/vendor_sales/*.csv
        - /media/sf_buttercup-shared/www1/*.log
        - /media/sf_buttercup-shared/www2/*.log
        - /media/sf_buttercup-shared/www3/*.log
    output.logstash:
      hosts: ["localhost:5044"]
  3. 執行導入: /usr/share/filebeat/bin/filebeat -c ingest.yml -e
  4. 分析資料:
    • 開啟 Dashboard > Explore > Discover
    • 設定時間範圍:起始選 2000/01/01
    • 搜尋 *
    • 若資料筆數 < 100,請重做前述步驟

查詢後,檢查事件的以下欄位:

  • host.keyword :事件來源主機
    • mailsv :郵件伺服器(含驗證事件)
    • www1www2www3 :Web 應用主機
    • vendor_sales :銷售系統主機
  • log.file.path.keyword :事件來源日誌檔案
    • 共可見 8 個不同檔案
    • 包含 /mailsv/secure.log (與驗證 / 授權有關)
  • host.keyword: mailsv
  • host.keyword: mailsv AND (fail* OR failed) AND root