iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
Security

從桃子園灘頭到CySA+系列 第 10 篇

Day10|STIX 跟 TAXII 差在哪?

  • 分享至 

  • xImage
  •  

有兩個名詞我卡了很久。

一題在問,STIX 這種東西為什麼人看得懂、機器也讀得動,我答了 TAXII。
另一題問 TAXII 的重要性是什麼,我答了成本效益好、維護負擔低。
以上兩點,我都答錯。

後來想想,我當時根本沒把「情資」當成一個有形狀的東西在看。在我腦袋裡那就是一團從外面餵進來的資料,STIX 跟 TAXII 是掛在它旁邊的兩個英文縮寫,長得都很像,誰是誰、誰在幹嘛我不知道。

那就先從裡面是什麼開始。

情資裡面裝的是什麼

大致上有兩種東西。

一種是 IoC,Indicator of Compromise,中文常翻成入侵指標。它很具體,一條就是一個東西:某個檔案的 hash、某個 IP、某個網域、某個 URL。意思是「在你的環境裡看到這個,這台機器可能已經中獎了」。

Day08 我拿檔案的 hash 丟 VirusTotal 去查,查到的那個結果,本質上就是別人整理好的 IoC。

另一種是 TTP,Tactics, Techniques and Procedures,戰術、技術與程序。它描述的不是某個具體的檔案,是攻擊者做事的方式:用什麼手法進來、進來之後怎麼把權限拉高、資料怎麼帶出去。

這兩種東西的壽命差很多。

換掉一個 hash 有多容易

有一個叫 Pyramid of Pain 的模型在講這件事,直譯是痛苦金字塔,講的是你抓到哪一種指標,會讓攻擊者比較痛。

由下往上是 hash、IP、網域、主機與網路上留下的痕跡、工具,最上面是 TTP。

越靠下面的,攻擊者換掉越不痛。程式碼改一個字重新編譯,hash 就完全不一樣了,原本那條靠hash的指標當場失效。IP 換一台雲端主機就有,網域再買一個也不貴。

越往上越難換。他慣用的手法、習慣的動作順序,那是整套工作方式,也就是TTPs,抓到TTPs就是抓到這個攻擊者他的特徵。所以想做撐得久一點的偵測,通常會往行為模式那一側靠。

順帶一提,IoC 拿到手加進去之前,要先看清楚那一條指的是誰。

不是情資給甚麼hash 就直接加進偵測規則。那條如果指的是微軟自己簽章的正版系統檔案,加下去的結果是全公司每一台 Windows 同時命中,警報噴滿。而冒牌的那支程式 hash 本來就跟正版不一樣,想抓冒牌貨也抓不到。

一條 hash 只認得那一個檔案。這句話在太多地方都適用了

那 STIX 是什麼

情資要在不同組織之間傳來傳去,就得先講好它長什麼樣。

STIX 是 Structured Threat Information Expression,結構化威脅資訊表達式,由 OASIS 這個標準組織維護。它規定的是這份情資怎麼寫:一個 indicator(指標)有哪些欄位、一個 malware(惡意程式)有哪些欄位、兩個東西之間的關係要怎麼表示。

現在的版本是 2.1,寫成 JSON。長得大概像這樣:

{
  "type": "indicator",
  "spec_version": "2.1",
  "id": "indicator--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f",
  "name": "可疑執行檔",
  "pattern": "[file:hashes.'SHA-256' = 'aec07064...']",
  "pattern_type": "stix",
  "valid_from": "2026-01-01T00:00:00Z"
}

type 說這是哪一種物件、id 是它的身分、pattern 寫要比對的是什麼。

另外有一種物件叫 relationship,專門用來寫「這個 indicator 指向的是那隻惡意程式」,一份一份的情資就這樣被串成一張網,而不是一堆各自獨立的清單。

這裡有一個地方我要先講清楚。

我筆記裡記的是「STIX 底層是 XML,所以人跟機器都讀得懂」。那句話對應的是 STIX 1.x,早年確實是 XML。2.x 之後換成 JSON 了,OASIS 的官方說明寫的是 STIX 2 objects are represented in JSON。

:::warning
所以讀到的資料如果寫 XML,先看一下它在講哪一版。這兩版差得不只是外皮,物件的定義也重寫過。
:::

TAXII 是把它送出去的那一段

TAXII 是 Trusted Automated Exchange of Intelligence Information。OASIS 的文件把它==定義成一個透過 HTTPS 交換網路威脅情資的應用層協定==,目前也是 2.1 版。

所以它跟 STIX 根本不在同一層。STIX 是那份檔案該長甚麼樣子,TAXII 是把檔案從你家搬到我家的那條路。

TAXII 這一側有兩種取得法。一種叫 Collection,你去跟伺服器要,它回給你,就是一般的請求跟回應。另一種叫 Channel,訂閱制,有新的就推給你。

TAXII 是為了送 STIX 設計的,但它送的也不一定要是 STIX。

回到我錯的那兩題。

第一題問可讀性。可讀性是內容那一層的事,跟用什麼方式送它沒有關係,我卻拿運送方式去回答內容的問題。

第二題問重要性。我選的省成本、好維護,這種話套在哪個工具上都成立,所以它不太可能是答案。TAXII 只有它自己做得到的事,是讓不同組織之間,包含公部門跟私部門,可以即時把情資丟給對方,而不是各自寄 Excel 檔。

名詞 它是什麼 我的理解
IoC hash、IP、網域這類具體指標 看到這個東西,可能中獎了
TTP 攻擊者的手法與做事順序 比較難換掉,所以撐得比較久
STIX 描述情資的格式,2.1 是 JSON 這份情資要怎麼寫
TAXII 交換情資的協定,跑在 HTTPS 上 這份情資怎麼送到對方手上

情資是從哪裡來的

知道格式跟管道之後,另一個問題是東西打哪來。

OSINT(Open Source Intelligence,開源情資)是公開就拿得到的,資安廠商的部落格、研究報告、社群上流傳的分析。量大、免費,但品質落差也大。

ISAC(Information Sharing and Analysis Center,資訊分享與分析中心)是同一個產業的人組起來互通有無的組織,金融、醫療、能源各自有自己的。同業會碰到的攻擊常常是同一批,所以這種情資的關聯性特別高。

商業情資是付費訂閱的,通常會附上比較完整的背景與可信度評分。

政府與官方通報免費、可信度高,而且多半是機器可讀的格式,像台灣的 TWCERT/CC 就會發資安訊息與相關指標。

拿到一份情資,我後來會先看三件事:誰發的、什麼時候發的、跟我這個環境有沒有關係。一條半年前針對某個產業的 IP 清單,跟我手上這台機器可能完全搭不上,那它的價值就有限。

還有一件跟考試沒什麼關係但我覺得很有趣的事。各家廠商給攻擊團體取的代號其實是有規則的,CrowdStrike 用動物,Bear 是俄羅斯、Panda 是中國、Kitten 是伊朗、Chollima(千里馬)是北韓。不是國家級的就換一套,Spider 是為了錢的網路犯罪、Jackal 是搞行動主義的那種。微軟則是改用天氣,Blizzard、Typhoon、Sandstorm 各自對應不同來源。

所以看到報告裡冒出一個沒聽過的動物名字,大致上可以先猜到它在講哪一國。

這個可以自己看

STIX 檔案不用自己生,公開的就有。

MITRE 把整包 ATT&CK 用 STIX 2.1 格式放在 GitHub 上,attack-stix-data 這個 repo 裡面是一包一包的 JSON。現在就可以點進去挑一個檔案打開來看,裡面全是 type 為各種值的物件,一路往下捲會看到 relationship 把它們接起來。檔案很大,瀏覽器直接開可能會卡,抓下來用編輯器開比較順。

OASIS 自己也有一頁範例集,每一個情境配一段完整的 JSON,比規格書好讀很多。想知道一份情資實際上怎麼寫,從這裡進去比從規格書進去快。

最後一件現在就可以做的事,是去翻一下自己公司或手上設備的威脅情資來源,看它餵進來的是哪一種東西、多久更新一次。如果是一份躺在那裡兩年沒換過的 IP 黑名單,那它擋到的東西大概也有限。


上一篇
# Day09|PAM 管的是什麼?
下一篇
Day11|SOAR & SIEM
系列文
從桃子園灘頭到CySA+ 共 12 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言