Malware

NIST [SOUP13] defines malware as:
A program that is inserted into a system, usually covertly, with the intent of compromising the confidentiality, integrity, or availability (CIA) of the victim’s data, applications, or operating system or otherwise annoying or disrupting the victim.

Types of Malware

  • Propagation: 它如何擴散或傳播以到達目標
    • viruses: 感染現有內容,之後再擴散到其他系統
    • worms/drive-by-downloads: 利用軟體漏洞,使 malware 能夠自行複製
    • Social engineering attacks: 說服使用者繞過安全機制來安裝 Trojans (木馬),或回應 phishing attacks (釣魚攻擊)
  • Payloads: 當到達目標後它如何運作
    • 破壞系統或資料檔案
    • 服務竊取: 讓系統變成 zombie agent
    • 竊取資訊
    • 隱藏自己在系統中的存在
  • Independent
    • Need a host program: parasitic code such as viruses
    • Independent, self-contained programs: worms, Trojans, and bots
  • Replicate
    • Yes: viruses and worms
    • No: Trojans and spam e-mail

Attack Kits

  • Toolkits: known as crimeware
  • A variety of propagation mechanisms and payload modules

Advanced Persistent Threat

APTs

  • 資源充足且持續性的威脅
  • 挑選目標,通常是企業或政治對象
  • 特徵: 精心挑選目標、持續性強、隱蔽

  • Advanced
    • 使用多種入侵技術與 malware
    • 各組件未必技術最先進,但都是精心挑選
  • Persistent
    • 長時間持續攻擊目標: 最大化成功機率
    • 可能逐步使用多種攻擊方式,直到目標被攻破
  • Threats
    • 有組織、有能力且資金充足的攻擊者: 專門挑選目標
    • 結合人工參與與自動化攻擊工具
  • Goals
    • 竊取智慧財產或資料
    • 破壞實體基礎設施
  • Techniques
    • Social engineering, spear-phishing email, drive-by-downloads, etc.
  • Intent
    • 以複雜 malware 感染目標
    • 使用多種傳播機制與 payloads

Propagation

Viruses

  • A piece of software: infect other programs
    • 任何可執行的內容
    • 修改這些內容,使其包含 virus 的副本 (copy)
    • 複製自己並繼續感染其他內容
    • 容易在網路環境中傳播
  • 可以執行宿主程式允許做的任何事情
    • 在程式執行時偷偷運作
  • 與作業系統與硬體相關: 利用其細節與弱點

Virus Components

  • Infection mechanism
    • 病毒用來擴散或傳播的方式
    • 也稱為 infection vector
  • Trigger
    • 決定何時啟動或釋放 payload 的事件或條件
    • 有時稱為 logic bomb
  • Payload
    • 病毒實際執行的行為 (besides spreading)
    • 可能造成破壞,或是無害但可察覺的行為

A Simple Virus

  • 病毒程式 V 會加在程式最前面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program V
1234567;

procedure attach-to-program;
begin
repeat
file := get-random-program;
until first-program-line ≠ 1234567;
prepend V to file;
end;

procedure execute-payload;
begin
(* perform payload actions *)
end;

procedure trigger-condition;
begin
(* return true if trigger condition is true *)
end;

begin (* main action block *)
attach-to-program;
if trigger-condition then execute-payload;
goto original program code;
end;
  • However, it is easily detected. Why?
    • 固定特徵 (Signature 太明顯)

A Compression Virus

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program V
1234567;

procedure attach-to-program;
begin
repeat
file := get-random-program;
until first-program-line ≠ 1234567;
compress file; (* t1 *)
prepend CV to file; (* t2 *)
end;

begin (* main action block *)
attach-to-program;
uncompress rest of this file into tempfile; (* t3 *)
execute tempfile; (* t4 *)
end;
  • 隱藏原始程式
  • 改變檔案結構

Virus Classifications (By Target)

  • Boot sector infector
    • 感染主開機記錄 (MBR) 或開機記錄 (boot record)
    • 當系統從含有病毒的磁碟開機時擴散
  • File infector
    • 感染 OS 或 shell 視為可執行的檔案
  • Macro virus
    • 感染包含巨集或腳本程式碼的檔案,這些程式碼會被應用程式解譯執行
  • Multipartite virus
    • 以多種方式或感染多種檔案類型

Virus Classifications (By Concealment Strategy)

Concealment Strategy: 隱藏策略

  • Encrypted virus
    • 使用加密來隱藏其內容
    • 其中一部分會產生隨機 encryption key,並加密病毒的其餘部分
    • 當病毒複製時,會選擇不同的隨機金鑰
  • Stealth virus (隱形)
    • 藏匿自身以避免被防毒軟體偵測
    • 使用程式碼變形、壓縮或 rootkit 技術
  • Polymorphic virus (多型態)
    • 產生功能相同但 bit patterns (位元模式)不同的複製體
    • 使用插入多餘指令、加密等方式
    • 每個複製體的 signature 都不相同
  • Metamorphic virus (變形)
    • 每次感染時都會變異 (Mutates)
    • Polymorphic virus 的差別:每次迭代都會完全重寫自身
    • 使用多種轉換技術,可能同時改變行為與外觀

Macro and Scripting Viruses

  • 感染用於支援各種使用者文件類型中的活動內容的腳本程式碼
    • 與平台無關,存在於常用應用程式中的動態內容
    • 感染文件 (不是可執行程式碼)
    • 容易傳播
    • 傳統檔案系統 access controls 效果有限
      • 針對檔案存取
      • macro virus: 文件內部腳本
  • 各種防毒產品也開發了對抗巨集病毒的工具
    • Microsoft: 提供可選的巨集病毒防護與巨集數位簽章
  • 結構
    • 巨集語言可能有類似語法,但細節依應用程式而不同
    • 可以儲存在文件中,或儲存在 global template 中
    • 有些巨集會在特定動作發生時自動執行
    • 不只是處理文件內容,還可以讀寫檔案,甚至呼叫其他應用程式
  • 範例: Melissa 巨集病毒
    • 一種大量郵件散播的巨集病毒
    • 損害: 造成大量網路流量
    • 隱藏: 關閉巨集選單與安全功能
    • 讓使用者更難停止或移除
    • 感染:
      • 在系統中後續被開啟的所有文件
      • 透過電子郵件把被感染的文件傳送給其他使用者

Worms

  • 主動尋找更多機器來感染的程式
  • 每一台被感染的機器,都會變成自動攻擊其他機器的發射平台
  • 特徵
    • 利用用戶端或伺服器程式中的軟體漏洞
    • 傳播方式: 網路連線、共享媒體 (如 USB、光碟)、電子郵件 (透過巨集或腳本)
    • 一旦啟動,就會自我複製並再次擴散

Worm Replication

  • 電子郵件或即時通訊工具
    • 透過電子郵件發送自身副本,或透過即時訊息服務傳送附件
  • 檔案共享
    • 在可移除媒體 (ex: USB) 上建立自身副本或感染檔案
    • 利用某些軟體漏洞透過 autorun (自動執行) 機制
  • 遠端執行能力
    • 遠端檔案存取或傳輸能力
  • 遠端登入能力

Target Discovery

  • Same phases as a virus: dormant, propagation, triggering, and execution
  • Scanning (or fingerprinting)
    • 是 network worm 在 propagation (傳播) 階段的第一個功能
    • 搜尋其他可被感染的系統
  • 策略:
    • Random
    • Hit-list
    • Topological
    • Local subnet

The Morris Worm

  • 設計用於在 UNIX 系統上傳播
    • 嘗試破解本地密碼檔案,以取得帳號密碼登入其他系統
    • 利用 finger 協定中的漏洞 (用來查詢遠端使用者位置)
    • 利用遠端郵件收發程式 debug 選項中的後門漏洞
  • 感染步驟
    • 成功與系統 shell 溝通
    • 透過 shell 執行 bootstrap (小型啟動程式)
    • bootstrap 程式會呼叫母程式並下載 worm 的其餘部分
    • 執行完整的 worm

State of Worm Technology

  • Multiplatform 多平台
    • Mobile Code: 可以在不修改的情況下,傳送到各種平台執行的程式
  • Multi-exploit 多漏洞利用
  • Ultrafast spreading 超快速擴散
  • Polymorphic 多型態
    • 每個副本會動態產生新程式碼,使用等價指令與加密技術
  • Metamorphic 變形型
    • 在不同傳播階段會展現不同行為模式
  • Transport vehicles 傳輸載體
  • Zero-day exploit 零日漏洞利用

Drive-By-Downloads

  • 利用瀏覽器漏洞,當使用者瀏覽由攻擊者控制的網頁時,自動下載並安裝惡意軟體到系統中
  • 在大多數情況下,它們不會主動擴散
  • Adobe Flash Player 與 Java 外掛中的多個漏洞都被利用過

Clickjacking

  • 也稱為 user-interface (UI) redress attack
    • 用來收集被感染使用者的點擊行為
    • 通常使用多層透明或半透明的網頁層
  • 鍵盤輸入 (Keystrokes) 也可能被劫持
    • 在攻擊者控制的隱藏 iframe 中輸入

Social Engineering

欺騙使用者,讓他們協助入侵自己的系統

  • Spam 垃圾郵件
    • 未經請求的大量電子郵件
    • 惡意軟體的重要傳播媒介
    • 用於 phishing attacks
  • Trojan horse
    • 包含隱藏惡意程式碼的程式或工具
    • 用來完成攻擊者無法直接達成的操作
  • Mobile phone Trojans
    • 目標是智慧型手機

Payload

System Corruption

  • 資料破壞與勒索軟體 (ransomware)
  • 造成對實體設備的損害
    • Chernobyl 病毒不僅破壞資料,還改寫 BIOS 程式碼
    • Stuxnet 蠕蟲攻擊工業控制系統軟體,可能讓被控制設備運作超出正常範圍
  • Logic bomb
    • 嵌入惡意程式中的程式碼,會在特定條件成立時爆發

Ukraine Power Grid Cyberattack

  • 第一個已知成功攻擊電力網路的網路攻擊事件
  • 帶有 BlackEnergy 惡意程式的 Spear-phishing 郵件
  • 奪取 SCADA 系統控制權,遠端關閉變電站
    • SCADA: 監控與資料擷取系統
  • 停用或破壞 IT 基礎設施
  • 使用 KillDisk 惡意程式刪除伺服器上的檔案
  • 對客服中心發動 DoS 攻擊,使消費者無法取得即時資訊

Attack Agent - Zombie, Bots

  • 接管另一台連上網路的電腦,並利用該電腦發動或管理攻擊
  • Botnet (殭屍網路): 由多個 bot 組成,可協同運作的集合
  • 遠端控制機制: bot 與 worm 的關鍵差異
    • Worm 會自己傳播並自行啟動
    • Bot 一開始是由某個中央控制系統操控

Information Theft - Keyloggers, Phishing, Spyware

  • Keylogger 鍵盤側錄
    • 擷取鍵盤輸入內容,讓攻擊者監控敏感資訊
    • 使用過濾機制,只回傳與關鍵字相關的資訊
  • Spyware 間諜軟體
    • 控制受害電腦,用來監控系統活動
    • 監控瀏覽紀錄與內容
    • 將特定網頁請求重新導向到假網站
    • 即時修改瀏覽器與網站之間交換的資料
  • Phishing 釣魚攻擊
    • 利用 social engineering,假冒可信來源來取得使用者信任
  • Spear-phishing 魚叉式釣魚 (精準針對特定被害人)
    • 攻擊者會仔細研究目標收件人
    • 郵件內容會針對特定受害者客製化
    • 常引用各種資訊來增加可信度

Stealthing - Backdoors, Rootkits

  • Backdoor: 允許攻擊者取得存取權並繞過安全驗證程序
    • Maintenance hook: 程式設計師用於除錯與測試的後門
    • 通常實作為監聽 non-standard port 的網路服務
  • Rootkit: 隱藏程式以 root 權限秘密維持系統存取權
    • Root access: 攻擊者擁有完整系統控制權,並能以惡意且隱密的方式修改系統功能
    • 透過竄改監控與回報機制來隱藏自己
    • 分類:
      • Persistent: 每次系統開機時都會啟動
      • Memory based: 無法在重新開機後存活,但可能更難被偵測
      • User mode: 攔截 API 呼叫並修改回傳結果
      • Kernel mode: 攔截 kernel mode 下的原生 API 呼叫
      • Virtual machine based: 安裝輕量級 VM,再讓 OS 運行於其上
      • External mode: 位於正常作業模式之外 (例如 BIOS 或 system management mode)

Kernel mode rootkit 範例: 修改 system call table

Countermeasures

Requirements for Countermeasures

  • Generality: 能處理各種類型的攻擊
  • Timeliness: 能快速回應,限制被感染程式的數量
  • Resiliency: 能抵抗規避 (evasion) 技術
  • Minimal DoS costs: 對系統容量或服務的影響要最小
  • Transparency: 不需要修改現有作業系統、應用程式或硬體
  • Global and local coverage: 同時防禦來自網路外部與內部的攻擊來源

Host-based Scanners: Anti-virus Software

  • First generation: simple scanners
    • 需要 malware signature 來辨識惡意軟體
    • 只能偵測已知惡意程式
  • Second generation: heuristic scanners
    • 在虛擬機中執行可疑程式,或反編譯並分析原始碼
    • 或是進行 integrity checking (完整性檢查)
  • Third generation: activity traps
    • 常駐記憶體程式,透過行為而非程式結構來辨識惡意軟體
  • Fourth generation: full-featured protection
    • 結合多種防毒技術的套件
    • 包含掃描、行為偵測與存取控制功能

Other Countermeasures

  • Generic decryption (GD)
    • 用於偵測最複雜的多型病毒與惡意程式
    • 基於行為: 含有 polymorphic virus 的檔案執行時,病毒必須先解密 (decrypt)自己才能啟動
    • 可執行檔會經過 GD 掃描器: 模擬器會逐條解譯目標程式指令,尋找解密程序
    • 設計問題: 要決定模擬執行多久
  • Host-based Behavior-Blocking software
    • 與作業系統整合,即時監控程式行為以偵測惡意動作
    • 在惡意行為影響系統前先阻止它
    • 即時阻擋可疑軟體,因此比 fingerprinting 或 heuristic 更有優勢
    • 缺點: 惡意程式必須先執行,才能辨識其完整行為
      • 在被偵測前可能已經造成傷害
  • Spyware detection and removal
  • Rootkit countermeasures
  • Perimeter scanning approaches
  • Distributed Intelligence gathering approaches

紅字整理

P14: A Simple Virus, However, it is easily detected. Why?

  • 固定特徵 (Signature 太明顯)
  • 使用 Compression Virus
    • 隱藏原始程式
    • 改變檔案結構

P20: Macro and Scripting Viruses, Traditional file system access controls are of limited use. Why?

  • 針對檔案存取
  • macro virus: 文件內部腳本