90
HITCON GIRLS 講座 惡意程式分析與密碼學: 深你不可不知的資訊安全 成功學 2016.4.28 HITCON GIRLS 講座

HITCON GIRLS 成大講座 基礎知識(蜘子珣)

Embed Size (px)

Citation preview

Page 1: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

HITCON GIRLS 講座

惡意程式分析與密碼學:深⼊入你不可不知的資訊安全

成功⼤大學 2016.4.28 HITCON GIRLS 講座

Page 2: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

今⽇日⼤大綱• 蜘⼦子珣 - 惡意程式分析基礎知識

• Turkey - 惡意程式分析實際操作

• 阿⽑毛 - 好親切密碼學

Page 3: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

前情提要• 今天是初學者課程

• 很多的專有名詞,都會簡單介紹!

• 但是深⼊入瞭解後你會有⼀一個新世界:P

• 希望這場演講可以讓你感受到

• 「分析惡意程式其實很有趣」

• 「資訊安全並不難」

Page 4: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

安安你好

蜘⼦子珣 HITCON GIRLS 副總召 HITCON GIRLS 讀書會惡意程式分析組組⻑⾧長 NISRA 前前前會⻑⾧長

Page 5: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

我的資安學習旅途?

⼤大學四年接觸 Network Security

碩⼠士兩年接觸惡意程式分析 順便兼任組合語⾔言助教

Page 6: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

Outline• 社群經驗分享

• 資訊安全學習地圖

• HITCON GIRLS 惡意程式分析組

Page 7: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

社群經驗分享

Page 8: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

社群經驗分享

為什麼要有社群?

社群可以給我什麼?

社群是⼀一個⼈人?還是組織?

為什麼我要花費時間參與社群?

Page 9: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

想像⼀一下• 你有沒有曾經對某個名詞感興趣

• 突然覺得有點想知道原理

• 閱讀完之後,發現你掌握了 60%

• 剩下的 20% 你有點困惑、感覺抽象、模模糊糊

• 最後的 20% 你看不懂

Page 10: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

想像⼀一下• 在世界遙遠的另外⼀一頭,有個⼈人

• ⼀一樣懂60%,恰好包含你覺得有點模糊的那20%

• 接下來問題來了

1. 你要怎麼認識這個⼈人?

2. 你要怎麼發現他也在研究這項名詞?

Page 11: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

為何答案是社群?• 社群的形成就是「想學」的衝勁

• 從學習與討論出發

• 每個社群都有各⾃自的⾵風格

• 社群代表著,這裏有許多⼈人可以成為你的夥伴

Page 12: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

為何答案是社群?• 「蛤?我上課已經這麼累了,還要學習?」

• 還記得剛剛假想情境的出發點嗎?

• 「你對某個名詞感興趣」

• 出發點是,你的興趣

Page 13: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

為何答案是社群?• 你現在坐在這裡,代表你當初在填科系的時候,做了「抉擇」,這個抉擇可能出發於「你的興趣」

• 什麼時候開始,壓⼒力>>>熱情?

Page 14: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

我⾃自⼰己的⼼心路歷程ˊ・_・ˋ• ⾯面對惡意程式分析,我也是初學者

• 曾經對某個名詞感興趣→逆向⼯工程、反組譯

• 讀書會⺫⽬目前在閱讀「逆向⼯工程核⼼心原理」

• 勇敢學習(๑•̀ㅂ•́)و✧

Page 15: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

那接下來聊聊 HITCON GIRLS

Page 16: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

HITCON GIRLS 資安⼥女孩• 由⼀一群對資安有興趣,想學習更多技術的⼥女孩們所組成。

• 成⽴立於2014年10⽉月

• 2014年12⽉月 Workshop

• 2015年7⽉月讀書會發表

Page 17: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

2014年12⽉月 Workshop

Page 18: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

2014年12⽉月 Workshop

Page 19: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

2015年7⽉月讀書會發表

Page 20: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

HITCON GIRLS 讀書會• 讀書會

• 我們分成不同的組別,進⾏行討論、學習和互補,惡意程式分析組針對 Malware 進⾏行分析,內容包含動態⼯工具、反組譯和惡意⾏行為的討論。

• Web PT 組

• Android PT 組

• 網路安全組

• CTF 組

Page 21: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

HITCON GIRLS 讀書會• 粉絲團

• https://www.facebook.com/HITCONGirls/

• 公開交流區

• https://www.facebook.com/groups/HITCONGIRLS/

• 歡迎加⼊入交流!

Page 22: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

資訊安全學習地圖

Page 23: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

資安學習地圖• 資訊收集

Information Gathering

• 網路安全 Network Security

• 網站與網⾴頁應⽤用程式安全 Web Security

• 系統安全 System Security

• 加密與解密 Cryptography

• 惡意程式檢測 Malware Detection

• 逆向⼯工程 Reversing Engineering

• 數位鑑識 Digital Forensics

• ⾏行動裝置 Mobile Devices

Page 24: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

資安學習地圖• 資訊收集

Information Gathering

• 網路安全 Network Security

• 網站與網⾴頁應⽤用程式安全 Web Security

• 系統安全 System Security

• 加密與解密 Cryptography

• 惡意程式檢測 Malware Detection

• 逆向⼯工程 Reversing Engineering

• 數位鑑識 Digital Forensics

• ⾏行動裝置 Mobile Devices

Page 25: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

資安學習地圖• 資訊收集

Information Gathering

• 網路安全 Network Security

• 網站與網⾴頁應⽤用程式安全 Web Security

• 系統安全 System Security

• 加密與解密 Cryptography

• 惡意程式檢測 Malware Detection

• 逆向⼯工程 Reversing Engineering

• 數位鑑識 Digital Forensics

• ⾏行動裝置 Mobile Devices

Page 26: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

資安學習地圖• 「數位鑑識」 Digital Forensics

• 覺得家裡好像有被侵⼊入過,於是做⼀一些檢查。

• 「惡意程式檢測」 Malware Detection

• 地板上發現⼀一顆炸彈,移動到安全環境做檢驗。

• 「逆向⼯工程」 Reversing Engineering

• 理解運作原理、威脅性,反向尋找兇⼿手

Page 27: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

HITCON GIRLS 惡意程式分析組

Page 28: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

學習框架• 何謂惡意程式?

• 分析惡意程式⼩小撇步

• 從什麼層⾯面著⼿手?

• 逆向⼯工程:靜態與動態⼯工具

Page 29: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

第⼀一件事情: 什麼是惡意程式?

Page 30: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

何謂惡意程式 Malware• 定義

• 蓄意撰寫來進⾏行惡意⾏行為的程式

• 特性

• 強⾏行安裝、抵制移除、擅⾃自修改設定

• 干擾或佔⽤用系統資源

• ⾮非允許狀況下竊取使⽤用者資料

Page 31: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

何謂惡意程式 Malware• 簡單來說,惡意程式就是

• 會干擾你使⽤用電腦的軟體!

• 會暗地從你⾝身上偷⾛走資料、帳密甚⾄至是⾦金錢!

• 嚴重的話甚⾄至間接影響你的⾝身⼼心健康!

Page 32: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

Grayware 的存在• 具備下列特徵的應⽤用程式:

• 具有擾⼈人的⾏行為模式

• 其實好像沒損失,但⼜又有點困擾

• 介於「好軟體」與「壞病毒」的灰⾊色地帶

Page 33: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

常⾒見的惡意程式種類• 分類⽅方式太多種了!

• 運作⽅方式:⽊木⾺馬、蠕蟲、勒索軟體⋯⋯

• 惡意⺫⽬目的:竊取資料、詐騙、破壞⋯⋯

• 格式:EXE、DLL⋯⋯

• 相關技術:加殼、DLL Injection、API Hook

• 既獨⽴立⼜又可以並存,複雜奔放的⽣生態圈ಠ_ಠ

Page 34: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

第⼆二件事情: 我們要在哪裡分析?

Page 35: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意程式分析環境• 使⽤用虛擬環境分析

• 避免觸發程式後,因感染造成真實傷害

• 使⽤用 Snapshot

• 記錄乾淨的環境,⽅方便每次分析後還原

• 建⽴立內網連線

Page 36: HITCON GIRLS 成大講座 基礎知識(蜘子珣)
Page 37: HITCON GIRLS 成大講座 基礎知識(蜘子珣)
Page 38: HITCON GIRLS 成大講座 基礎知識(蜘子珣)
Page 39: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

第三件事情: 我們要分析什麼?

Page 40: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意⾏行為⼊入⾨門• 「⾏行為」泛指程式執⾏行時,具有⺫⽬目的之動作,例如對特定檔案的讀取、新增、修改、刪除

• 對於系統來說,哪些會被當作惡意⾏行為針對⺫⽬目標?

Page 41: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意⾏行為⼊入⾨門• 關⼼心下述部分

• Registry Key

• Process

• Network

• File system

Page 42: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意⾏行為⼊入⾨門• 關⼼心下述部分

• Registry Key

• Process

• Network

• File system

Page 43: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

⼩小知識 - Registry• Registry ⼜又稱登錄檔或註冊表

• ⽤用於儲存系統和應⽤用程式的設計資訊

• C:\Windows\regedit.exe

Page 44: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

⼩小知識 - 啟動項• 有些程式每次開機就會⾃自動啟動,這些程式的資訊都必須寫進啟動項!

• Registry 中開機先執⾏行的項⺫⽬目,就是啟動項

• HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Page 45: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

陰魂不散的惡意程式 Σ(・ω・ノ)ノ

Page 46: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意⾏行為⼊入⾨門• 關⼼心下述部分

• Registry Key

• Process

• Network

• File system

Page 47: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

⼩小知識 - Process• 觸發程式 → 被載⼊入記憶體 → 產⽣生程序了!

• 程序 (process)可以說就是正在運作中的程式

PID

執⾏行者的權限屬性參數

所需程式碼與相關資料

記憶體中程序產⽣生的相關資料

使⽤用者執⾏行

載⼊入記憶體

磁碟中的程式

Page 48: HITCON GIRLS 成大講座 基礎知識(蜘子珣)
Page 49: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

假設有些程式正在執⾏行, 但你卻看不到,是不是很恐怖?

Σ(・ω・ノ)ノ

Page 50: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意⾏行為 - 常⾒見⾏行為懶⼈人包• 修改啟動項 HKLM\…\CurrentVersion\Run

• 有 Process 但你卻看不到執⾏行畫⾯面

• 讀取系統資訊

• 連線⾄至特定的 IP 或 DNS

• ⾃自我刪除、複製檔案

Page 51: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

第四件事情: 我們要⽤用什麼去分析?

Page 52: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意程式分析⼯工具• Behavior Tool

• Autoruns

• Process Monitor / Process Explorer

• TCP View / TCPLogView

• WireShark

• Online Sandbox

• Virustotal

• Comodo

• ⾃自⾏行架設 Sandbox

• Cuckoo

• CaptureBat

Page 53: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

分析⼯工具• 都是免費提供,⼤大家可以下載來玩玩看

• Autoruns

• Process Explorer

• TCP View乾淨狀態

觸發惡意程式

系統時間

會多什麼呢?

污染狀態

Page 54: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

分析⼯工具 - Autoruns

Page 55: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

分析⼯工具 - Autoruns• 檢查 Registry Key 是否被新增、修改

Page 56: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

分析⼯工具 - ProcessExplorer

Page 57: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

分析⼯工具 - ProcessExplorer • 檢閱記憶體中在執⾏行的所有程序及其⺫⽬目錄

• 作⽤用類似於⼯工作管理員

• 優點在可顯⽰示動態連結函式庫(DLL)檔、簽章

Page 58: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

分析⼯工具 - TCPView• 顯⽰示連線記錄、是由哪⽀支程式造成的

Page 59: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

⼩小結• ⺫⽬目前已經解到「惡意⾏行為」跟「可⽤用⼯工具」

• 但我們想要的東⻄西只有了解⾏行為嗎?

Page 60: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

第五件事情: 拼湊出惡意程式真⾯面⺫⽬目 等下會有⼈人 Demo!

DEMO !

Page 61: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

第六件事情: 我們回頭想想分析只有⼀一種⽅方法嗎?

Page 62: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

難道永遠都只能防守?

Page 63: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

逆向⼯工程• 逆向⼯工程 Reverse Engineering

• 泛稱對⺫⽬目標進⾏行分析研究,得出其流程、結構

• 反組譯

• 逆向⼯工程應⽤用在軟體裡的其中⼀一種⽅方法

• 把機器碼轉換成組合語⾔言

Page 64: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

逆向⼯工程 - 靜態與動態

   動態分析 靜態分析

優可知執⾏行時的真實⾏行為

可信度⾼高

分析範圍較⼤大、︑較完整不受特定招數影響不需要運⾏行程式

缺容易被躲避需要運⾏行程式

被混淆的程式碼分析困難無法得知執⾏行時的資訊

Page 65: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

動態分析 - ⼯工具 • Immunity Debugger 哈囉!ヽ( ´∀`)ノ

• Olly Dbg 說你好!ヽ( 。∀。)ノ

Page 66: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

靜態分析 - ⼯工具 • IDA 安安!ヽ( ´∀`)ノ

• 主打強悍的靜態分析功能

• 好⽤用程度跟價格成正⽐比

Page 67: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

補張 IDA 介⾯面圖

Page 68: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步• 第⼀一個難關:加殼!

• 第⼆二個難關:從何看起?

• 第三個難關:⼀一堆看不懂的 API !

• 第四個難關:想要了解程式內容!

Page 69: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步(1)• 第⼀一個難關:加殼!

• 加殼分成加密殼、壓縮殼

• 為了不讓程式被分析,⽽而⽣生的保護機制

• 如何解?

• 先了解使⽤用的是哪種殼

• 找相對應的脫殼⼯工具 / ⼿手動脫殼

Page 70: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

UPX加殼⼩小範例

?

Page 71: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

UPX加殼⼩小範例

Page 72: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步(2)• 第⼆二個難關:從何看起?

• 發現程式碼很⻑⾧長⋯⋯很⻑⾧長⋯⋯⋯⋯

• 如何解?

• 使⽤用 String Windows 起⼿手!

• 字串⼤大多會明碼留在程式裡!

Page 73: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

天啊是字串⼩小範例

Page 74: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步(3)• 第三個難關:⼀一堆看不懂的 API !

• 粉紅⾊色的都是 Windows 的API

• 但⋯⋯什麼是API?

• 如何解?

• 就查啊!

Page 75: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

什麼是 API ?• API (Application Programming Interface)

• 應⽤用程式開發介⾯面

• 為了⽅方便使⽤用 Function ⽽而⽣生

• 只需要了解參數即呼叫,進⽽而使⽤用該功能

Page 76: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

Windows API ⼩小範例

Page 77: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

Windows API ⼩小範例

Page 78: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步(4) • 第四個難關:想要了解程式內容!

• ⋯⋯

• ⋯⋯

• ⋯⋯

Page 79: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步(4) • 第四個難關:想要了解程式內容!

• 你可以選擇

• ⋯⋯訪問惡意程式撰寫者

• ⋯⋯通靈(?)

• ⋯⋯或者是從現在開始學組合語⾔言

Page 80: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

我覺得學組合語⾔言 ⽐比較簡單啦

Page 81: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

什麼是組合語⾔言?

age = input(‘How old are you?’)

if (age <18):

print ‘No you can’t drink beer.’

mov edx, OFFSET HowOldAreYou;

call WriteString;

call readint;

cmp eax,18d;

jb LessThan18;

LessThan18:

mov edx,OFFSET NoYouCantDrinkBeer;

call WriteString;

Python Assembly Language難讀、難寫

Page 82: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

什麼是組合語⾔言?• ⽤用來跟機器溝通的低階語⾔言

• ⽐比機器碼 01010000 好讀

• ⽐比⾼高階語⾔言難讀

• 但是⽐比⾼高階語⾔言執⾏行速度快,佔⽤用記憶體⼩小

• 舉凡 MASM、NASM

Page 83: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

為何是組合語⾔言?• 惡意程式通常是執⾏行檔

• 以 .EXE (executable file) 副檔名存在

• 是看不到原始碼的啊啊啊!

• 透過⼯工具反組譯後,看到的正是組合語⾔言

Page 84: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

慘了!接下來我好像⋯⋯ 得講組合語⾔言?

Page 85: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

才不要呢XD

Page 86: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

靜態分析 - ⼩小結• ⼩小撇步是我⾃自⼰己學靜態分析遇到的困境和SOP

• 「想要了解程式內容」是最花時間和經驗的部分

• ⽽而且才是最精華、最難以傳授的

• 通常也會跟⼀一點作業系統、組合語⾔言相關知識

• 沒有騙你真的要好好念書啊

Page 87: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

惡意程式分析 - 懶⼈人包第⼀一件事情:什麼是惡意程式?

第⼆二件事情:我們要什麼環境分析?

第三件事情:我們要分析什麼⾏行為?

第四件事情:我們要⽤用什麼⼯工具去分析?

第五件事情:Demo!實作!

第六件事情:分析只有⼀一種⽅方法嗎?

Page 88: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

初學者靜態分析⼩小撇步 - 懶⼈人包第⼀一個難關:有沒有加殼?如何解殼?

第⼆二個難關:資訊量很多,從哪個地⽅方起⼿手?

第三個難關:遇到看不懂的 API ,怎麼辦?

第四個難關:如何了解程式內容?

Page 89: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

感謝聆聽,問題有嗎? OwO/

Page 90: HITCON GIRLS 成大講座 基礎知識(蜘子珣)

Q:Windows 的惡意程式⽐比較多嗎? A:攻擊者投⼊入了⼼心⼒力做惡意程式,就會希望獲得最⼤大收益,依據時代做調整,往往哪個作業系統分佈廣散、漏洞⼜又多,就會被當作⺫⽬目標

Q:有些惡意程式會把 Sandbox 打穿,有遇過嗎? A:還沒有遇到,有樣本的話我會很想分析,不過就得有相對應的分析策略和設置XD

Q:如果我有⼀一個程式,我要怎麼知道他是惡意程式?有沒有除了上述四個之外的⽅方式知道? A:⼀一般⼈人要辨別這是惡意程式⽐比較困難,⽐比較普遍的⽅方法就是把它丟進 VirusTotal 讓防毒軟體公司告訴你

Q:有沒有遇到綁架⾸首⾴頁的惡意程式? A:有,就會有⼀一些瀏覽器的相關設定操作