1.05k likes | 1.39k Views
Module 11 : 惡意程式偵測與防護技術實習. 學習目的. 近年來惡意程式的氾濫跟變種及 Botnet 引起的大範圍攻擊,使得攻擊者更能輕易竊取使用者資料並獲取利潤。瞭解這些惡意程式的架構、感染途徑及防護方式,就成為刻不容緩需要努力的目標 2. 本模組共有以下六個小節包括 (1) 惡意程式介紹 (*) (2) 惡意程式攻擊與防護方式 (*) (3) 特別討論 - Botnet(**) (4) 特別討論 - Rootkits(**) (5) Rootkit 之攻防演練的實務 (**) (6) 惡意程式的專案實作 (**) 共需三個鐘點.
E N D
學習目的 • 近年來惡意程式的氾濫跟變種及Botnet引起的大範圍攻擊,使得攻擊者更能輕易竊取使用者資料並獲取利潤。瞭解這些惡意程式的架構、感染途徑及防護方式,就成為刻不容緩需要努力的目標 2. 本模組共有以下六個小節包括 (1)惡意程式介紹(*) (2)惡意程式攻擊與防護方式(*) (3)特別討論 -Botnet(**) (4)特別討論 -Rootkits(**) (5)Rootkit之攻防演練的實務(**) (6)惡意程式的專案實作(**) 共需三個鐘點
Module 11:惡意程式偵測與防護技術實習 * 初級(basic):基礎性教材內容 **中級(moderate):教師依據學生的吸收情況,選擇性介紹本節的內容 ***高級(advanced):適用於深入研究的內容 Module 11-1:惡意程式介紹(*) Module 11-2:惡意程式攻擊與防護方法(*) Module 11-3:特別討論 -Botnet(**) Module 11-4:特別討論 -Rootkits(**) Module 11-5:Rootkit之攻防演練的實務(**) Module 11-6:惡意程式的專案實作(**)
前言 • 惡意程式包括病毒、特洛伊木馬或入侵者所撰寫的惡意腳本(script),可能利用自我複製、電子郵件或即時通訊軟體快速傳播,造成資料流失、當機和服務中斷等安全事件 • 駭客會把惡意程式附在有趣的動畫或小程式上,當使用者開啟這些程式,就會開啟一到數個Port常駐在系統上,此時駭客就能利用程式來得到系統上的資料 • 惡意程式成駭客獲利的來源
程式 • 在這邊我們定義為可執行檔,為一種可被電腦所解讀並運行特定動作的檔案
惡意程式定義 • 泛指任何惡意、未經使用者授權存取及不符合預期的程式碼皆為惡意程式 • 惡意程式依其行為特徵區分,有下列常見的分類 • 病毒(Virus) • 蠕蟲(Worm) • 特洛伊木馬(Trojan horse) • Rootkits • 惡意程式依據作者的目的,朝向綜合上述類型的惡意程式的優點,發展出兼具自動化、結構化及不易偵測等特性的混和式惡意程式
惡意程式分類 - 病毒(Virus) • 病毒是惡意的程式碼,會將自身附加到某些檔案中,進行偽裝 • 會在不同主機間散佈,可是不具自行複製的能力 • 病毒也具破壞軟體、硬體及檔案的能力 • 破壞軟體是一種比較新穎的攻擊方式,藉由過度使用硬碟,或是對CMOS與Flash BIOS以進行清除
惡意程式分類 - 蠕蟲(Worm) • 具有自行複製,並自動感染其它主機的能力 • 會自行掃描其它主機的漏洞,並透過該漏洞,複製自己到該主機上 • 佔用所寄生的主機資源 • 蠕蟲依其目的,可分為兩類 • 對單一主機進行攻擊與佔用單一運算資源 • 對大規模環境進行攻擊與佔用區域主機資源
惡意程式分類 - 特洛伊木馬(Trojan horse) • 特洛伊木馬通常是指被動式的惡意程式,且當它被執行後會自行與外界主機進行連線,進行更進階的惡意行為 • 特洛伊木馬與後門不同,後門指的是能讓攻擊者連線進入受害主機的途徑 • 特洛伊木馬分為兩種 • Universal:可以被遠端控制的 • Transitive:無法進行遠端控制,其行為是固定的
惡意程式命名 • 惡意程式命名法:在1991年,由CARO(Computer Antivirus Researchers Organization)所提出。些許類似生物界,界門綱目科屬種的命名法 • <惡意程式種類>://<平台>/<family名稱>.<group名稱>.<infective_長度>.<變種>.<子變種名稱> • Example: virus://w32/Beast.41472.A 資料來源:The Art of Computer Virus Research and Defense
惡意程式的威脅嚴重性 2008 FBI/CSI Survey 資料來源:http://i.cmpnet.com/v2.gocsi.com/pdf/CSIsurvey2008.pdf
惡意程式的威脅嚴重性(續) 2007資策會資安調查
惡意程式攻擊目的演化 • 惡意程式所想達到的目的,不停的在變化 • 破壞使用者電腦環境 • 取得對方主機內的重要資訊或資料 • 取得單一跳板主機,利用來對目標主機進行攻擊 • 取得大量殭屍主機,利用來對目標主機進行大型攻擊 • 惡意程式不再把目標放在單台主機,而是區域性或大規模的攻擊
惡意程式技術的演化 • 演化的方法就如同生態系一般,隨著環境變化而淘汰掉部份技術(能被偵測或被防制的惡意程式),並隨著新技術的產生 • 惡意程式研究人員研發抵禦的技術 • 傳播方法 • 隱匿與反制技術 • 攻擊技術 • 惡意程式作者研發反抵禦或新型的技術 • 偵測與分析 • 防制與阻檔攔截
惡意程式傳播方法 • 惡意程式必須透過一些途徑,方能進入受害者的電腦,並進行感染或繁殖 • 惡意網站 • 隨身儲存裝置 • IM (Internet Message)服務 • Email • P2P檔案方享 • 檔案型病毒
惡意程式隱匿與反制技術 • 行為隱蔽技術 • 利用隱避技術將惡意行為隱藏在正常行為之下 • 利用RegisterServiceProcess技術將自己註冊為服務 • DLL injection • 程式碼加殼 • 對程式本身進行二次封裝、加密或壓縮等等變化 • 防止被防毒軟體利用特徵碼分析來進行鑑別 • 反制防毒軟體或分析系統 • 特徵碼擾亂
行為隱蔽技術 • DLL Injection:可以讓一個它人的程式,運行攻擊者自行定義的程式碼 • 可透過修改註冊機碼來指定DLL檔的存取路徑 • 利用SetWindowsHookEx函式,直接修改DLL的記憶體中的參考位置,並指向到攻擊者定義的惡意DLL位置 • API Hooking • API為Windows所提供的服務,攻擊者可利用類似DLL Injection的方法來使正常程式使用惡意的API
程式碼加殼(Packer) • 惡意程式執行檔是可以透過反組譯工具,反組譯成右下圖的組合語言,可以供分析人員進一步得到更詳細的執行流程和邏輯 • 而加殼技術則是對惡意程式執行檔的二進位內容進行加密,使分析者無法理解其內容,此技術亦應用於一般軟體的智慧財產保護上 • 可抵擋傳統防毒技術的特徵碼分析比對
反制防毒軟體或分析系統 • 部份惡意程式能對防毒軟體進行攻擊 • 修改防毒軟體的重要檔案 • 與防毒軟體爭奪資源 • 有些分析方法是利用除錯器或者是虛擬機器的方式實現,惡意程式會利用一些反監測的方法來逃避這類型分析方法的監控 • 反虛擬機器監控(Anti-VM or Anti-Emulator)
惡意程式多型技術(Polymorphism) • 此類的技術目的為混淆防毒軟體與分析者,藉由插入許多無關緊要的程式碼,改變其執行檔的樣貌 • 例: 原始程式碼 MOV AX, 0E88 ;set key 1 MOV [di], AX MOV BX, [BP+0D2B] ;pick next word 多型程式碼 MOV AX, 0E88 ;set key 1 INC SI ;無義 MOV [di], AX CLC ;無義 NOP ;無義 MOV BX, [BP+0D2B] ;pick next word
惡意程式偵測與分析 • 偵測與分析主要可以分為下列項目 • 惡意程式分析 • 靜態分析 • 動態分析 • 惡意程式偵測 • 加總比對法(checksum) • 病毒特徵碼掃描
惡意程式分析 - 靜態分析 • 靜態分析通常是針對程式碼進行分析,分析器會對程式碼進行掃描,試圖找出符合特徵碼的區塊 • 反組譯分析 • 反組譯工具的開發難度極高 • 常用反組譯工具:IDA pro與Ollydebug • 脫殼工具 • 因為惡意程式常會加上殼,防止被靜態分析,所以就需要此類工具來協助 • 常用脫殼工具:PEID • 而有經驗的分析人員可以利用手動脫殼來進行
惡意程式分析 - 動態分析 • 靜態分析太過耗時,也耗人力,往往須要極有經驗的分析人員才能準確的得到結果,於是便有動態分析的方法被提出來 • 創造一個執行環境,讓惡意程式直接在裡面運行,然後再利用行為監控器去監視其一舉一動 • 現在許多動態分析平台都是建構在虛擬機器之上 • 分析速度較靜態分析快,但需要較多硬體資源 • CWSandbox就是一動態分析平台 (http://www.cwsandbox.org/)
惡意程式防制 • 防制主要可以分為下列項目 • 系統更新 • 使用最小權限進行工作 • 個人防火牆 • 防毒軟體 • 不安裝來路不明的軟體
基礎名詞解釋 • Bot:robot的簡寫,可以自動執行預先定義的功能,可以被預先定義的指令遠端控制,具有一定人工智慧之程式 • Zombie(殭屍主機):被植入Bot的主機,可被攻擊者遠端控制 • Botnet:由被植入Bot的殭屍主機所組成,可供攻擊者遠端控制的網路
Botnet基本概念 • 攻擊者不需登入Botnet的任何一台殭屍主機即可控制Botnet,並發送指令 • 當攻擊者發送指令後,Botnet的殭屍主機會自動執行指令,例如:攻擊目標主機或與其他殭屍主機交換資訊
Botnet特性 • 以IRC Botnet為例 • 典型的IRC Botnet包含一個IRC Server與多個殭屍主機,攻擊者透過IRC Server的頻道控制殭屍主機與下指令 • 殭屍主機會加入IRC Server的頻道,並等待攻擊者的指令 • 攻擊者會對頻道內的殭屍主機發送訊息,若該訊息為預先定義的指令,則殭屍主機會執行指令;若不是,則殭屍主機不會有任何反應 • 這些指令可能為發送垃圾郵件、下載檔案及DoS攻擊 • 殭屍主機執行命令後,會回傳其結果
Botnet與其他惡意程式比較表 資料來源: http://zh.wikipedia.org/w/index.php?title=%E6%AE%AD%E5%B1%8D%E7%B6%B2%E7%B5%A1&variant=zh-tw
Botnet威脅嚴重性 • 僵屍主機肆虐,台灣網路受害全球高居第三 • 資安廠商賽門鐵克公布全球網路威脅報告指出,台灣在全球國家受殭屍網路感染排名第三,僅次於美國與德國。(2011-04-20) 資料來源:http://www.symantec.com/business/threatreport/index.jsp#
Botnet發展三階段 • Botnet的發展過程包括傳播、感染及攻擊三個階段 • 傳播 • 感染 • 攻擊
Botnet傳播階段 Bot傳播過程
Botnet感染階段 • 每一個被感染主機都會因為隱藏在主機上的Bot的執行,而在使用者不知情的情況下成為Botnet的一員 • 以IRC Botnet為例,被感染的主機會成為殭屍主機(Bot),然後登錄到指定的伺服器與頻道中(C&C/IRC Server);登錄成功後,會在頻道中等待攻擊者的指令
Botnet攻擊階段 Bot攻擊路徑
Botnet的危害 • Botnet嚴重性 • Gartner:在2008大概有75%的企業會感染Bot • 刑事局偵九隊統計:全台有三分之一電腦遭植入Bot • FBI:Botnet受害者超過一百萬人 • 每10部電腦就有1.1部成為非自願的殭屍主機 • 網路文化的盛行,透過網路掛馬技術,可以很容易的讓瀏覽網頁的使用者在不知情的狀況下被殖入惡意程式,所以Bot規模也因此快速的發展起來 傀儡網路( botnet)無聲的主流威脅 資料來源:http://tw.trendmicro.com/tw/support/tech-support/board/tech/article/20081007100643.html
Botnet的危害 (續) • 藉由Botnet的大規模特性,可應用於下列幾種攻擊 • 拒絕服務攻擊 • 因為殭屍電腦都,所以攻擊者可快速的將指令傳達給每台殭屍電腦,並利用它們對特定受害者進行分散式拒絕服務攻擊(DDoS) • 發送垃圾郵件 • Botnet也可利用來發送大量的垃圾郵件,而且發送者可以透過代理伺服器來隱藏自身的IP資訊,減少攻擊者被發現的風險
Botnet的危害 (續) • 竊取機密 • 各個殭屍主機有機會被攻擊者用來收集其所需要的個人隱私資訊 • Bot也可利用竊聽器(Sniffer)來監看網路流量,取得使用者的帳號與密碼 • 濫用資源 • 一但成為殭屍電腦,資源便可遭攻擊者取來使用,進行大規模的檔案儲存或需要許多運算資源的攻擊 • 利用殭屍主機來進行釣魚攻擊,誘導使用者連線到錯誤的網站 Mentor’s Research & Interest:Botnet介紹 資料來源:http://mentorwang.blogspot.com/2008/07/botnet.html
Rootkits定義 • Rootkits由Root與kits兩字所結合 • Root → Unix系統管理者的名稱,代表Unix系統中的最高權限 • kits →一個或數個以上的工具套件 • Rootkits • 一個能夠隱藏攻擊者所想隱藏事物的工具組 • 不限於隱藏檔案,亦可隱藏攻擊者的行為
Rootkits分類 • Rootkits可依據其所能隱藏的層級或是其所存在的層級來進行分類 • Rootkits 分級 • User mode (ring 3) • Kernel mode (ring 0) • 虛擬機器 (ring -1) • SMM mode (ring -2)
User Mode Rootkits • 技術 • IAT Hook • Inline function patch • 特性 - easy for everything • 實作的難度不高 • 易遭發現
Kernel Mode Rootkits • 技術 • SSDT hook • IDT hook • Layered driver • Inline function patch • 特性 - hard for everything • 其技術較難實作,在現實上會碰到許多難題 • 也難於發現此類Rootkits的存在
虛擬機器Rootkits Target application Target application Target Host Operating System • Virtual Machine Based Rootkits • Samuel T. King Peter M. Chen在2006年提出 • 模擬真實環境給使用者 RING 0~3 RING -1 Malware Virtual Machine Monitor Malicious Host Operating System RING -2 Host Hardware
SMM mode虛擬機器(***) • 一種藏於CPU SMM mode下的Rootkits • 由Rutkowska Joanna等研究人員於2009年提出 • 雖然此概念於實作上尚有難度,但其成功後所能得到的效益極大 • 是一種極難被發現的Rootkits實作方法
SMM mode Rootkits(***) RAM • SMM mode- System Management Mode • 是一種CPU所提供的模式 • 用來進行維護 • 可應用於電源管理和除錯模式 • 可運行特定的程式碼 • SMM mode的執行環境是位於一個獨 立且特定的記憶體區塊 • SMM mode下的程式可以存取所有記憶體位置 • 將Rootkits置於此模式下可以對整台主機的所有資源進行存取,且又不會被發現 Common SMRAM Common Common Common
資安趨勢 - Sony又被抓到在產品中使用Rootkits程式 • 大綱 • 資安業者近日提出警告,指出Sony採用類似Rootkit技術,其MicroVault USB隨身碟驅動程式會在Windows內建立隱藏檔案,可能被駭客用來藏匿惡意程式。F-Secure安全研究人員指出,當使用者購買Sony的MicroVault USB後,該隨身碟提供指紋辨識功能,並含在驅動程式中,一旦使用者安裝了該驅動程式,就會在視窗中建立一個隱藏目錄及檔案,假設駭客知道該檔名,就能透過命令提示字元進入該目錄,並建立一個新的隱藏檔,而且可以執行其中的檔案 資料來源:http://www.ithome.com.tw/itadm/article.php?c=45063
惡意程式的技術發展相當快速,防毒公司或研究人員所提出的解決方案,往往無法完全應付新的惡意程式技術惡意程式的技術發展相當快速,防毒公司或研究人員所提出的解決方案,往往無法完全應付新的惡意程式技術 現今的惡意程式其目的不在是為了破壞一台主機,而是針對大規模受害者和大規模跳板或殭屍主機為其主流 要對惡意程式進行防範,使用者需要有良好的主機使用習慣 結論