紀錄網路上蒐集整理的內容
概述
這病毒最初發現是在 2017 年末,有蠻多種名字
- TRITON
- TRISIS
- HATMAN
攻擊的目標是施耐德電器的 Triconex 安全儀表系統(SIS)控制器
本身是一個 RAT
最初攻擊的對象是沙烏地阿拉伯的石油與天然氣設施
這病毒使用的通訊協定是該 SIS 用的TriStation 協定
- 此協定沒公開
- 代表駭客應該事先逆過了
整個病毒代表意義
- 首次公開已知攻擊 SIS 設備的病毒
- 因為是做成模組化,且程式碼都有被人放到 Github ,可讓其他攻擊者仿照學習
當時發生這起事件時,施耐德找的處理廠商是 FireEye
一開始沒人知道攻擊者是誰,有看到 2017 年的分析文章有人猜是伊朗
不過 FireEye 有在 2018 年寫文章說猜測是俄羅斯政府
針對工業控制的攻擊其實都很客製化,就算你知道對方使用的設備型號
不同流程、設計、配置所需要考量的就會不同
所以可以猜測駭客應該事先知道內部環境配置,且應該有花
大概一年或以上的時間做模擬測試
根據被打得施耐德所述:
「被攻擊的工業控制器(Triconex),其型號為全世界 1.8 萬家工廠所使用,包含核處理設施」
攻擊的團隊目前認為是 XENOTIME APT 組織
- 從組織開始於 2014 年
- 2018年時又有攻擊其他工控廠商
攻擊目的
這攻擊在做到一半,猜測駭客操作不小心,導致工業生產過程異常而被關閉
所以代表
- 無法確切得知駭客最終目的為何
- 可以知道駭客已有能力去控制這些設備並做事情
- 沒有太大的人或事物的損失
什麼是 SIS
前面有說這起事件在打 SIS ,這邊簡單介紹一下
- Safety Instrumented System (安全儀表系統) 的縮寫
- 又名: Industrial Safety Systems
- 裡面使用一種特別的 PLC
- 主要任務是維持生產過程的安全狀態,當偵測到設備異常時,會直接終止運作或嘗試幫助設備回復正常
- 基本構造
- 感應器
- 傳感器
- 最終控制元件
感測器收集資料,傳感器根據感測器的資料執行預編程的動作,
最後將要執行的行為,交給最終控制元件去做
打下 SIS 設備可以做的事情簡單可以分
- 漏報
- 讓 SIS 設備無法正常運作,這樣他就不能偵測設備有無異常
- 誤報
- 讓他在設備正常時,也發出警告說設備有問題
基本上, OT 網路會和一般網路做隔離,但現在一般會讓工程師電腦可以去
存取這些工控設備,而工程師一般會使用 RDP 遠端連進去做管理
在事發當下也有找到異常的 RDP ,故而推測一開始打進去是透過 RDP 協定
(雖然我出去講課時,有被原廠糾正內幕不是 ...)
一般的網路分析文章,針對 TRITON/TRISIS 都是在描述第二階段攻擊
也就是假設當下環境是駭客已經控制摸到目標電腦,就看到怎麼感染和攻擊這樣
第一階段描述真的很少,有些直接以社交工程帶過
第二階段過程大概樣子 (底下為參照網路多數文章描述)
- Stage 2 Develop:
- 確認好目標 SIS 型號,並開發 TRISIS 來替換 logic and loader
- Stage 2 Test:
- 確保 TRISIS 可以正常運作,比如就算攻擊者斷開和目標的網路連接
- Stage 2 Deliver:
- 傳 TRISIS 到 SIS 中,裡面包含用在新的 logic 上的 ‘loader’ module
- Stage 2 Install/Modify:
- 執行時,會偽裝成用於分析SIS日誌的Triconex軟體
- 替換掉 logic 並上傳初始化程式碼
- Stage 2 Execute ICS Attack:
- 驗證上一步有否成功,並上傳新的 ladder logic 到 SIS 設備中
其實上面這邊講的第二階段,應該說
工控類攻擊大多會參照 ics kill chain
然後去看每個發生的資安事故,基本都差不多是這樣的一個流程
這邊不描述 ics kill chain (或以後無聊會補)
簡介病毒結構
主體是 trilog.exe ,他是一個 dropper
執行後會有三個檔案
- library.zip
- 包有執行個功能需要的函式庫
- inject.bin
- 目的是將 imain.bin 注入到目標
- imain.bin
- 病毒真正主體
TRISIS 是用 Python 寫的,然後經 py2exe 編為 PE 檔案,讓電腦
就算沒安裝 Python 也可以正常執行
所以要反編譯也很簡單
可以先用 unpy2exe 將其轉回 pyc
之後透過 uncompyle2 將 pyc 轉回 py
未完...
沒有留言:
張貼留言