780 likes | 1.07k Views
BOTNET Detection and Prevention. 黃能富 教授 國立清華大學資訊工程系 nfhuang@cs.nthu.edu.tw. Contents. Botnet 是什麼? Botnet 有哪些架構? Botnet 能夠用來做什麼? Botnet 如何擴張? Botnet 如何偵測? Botnet 如何防治? Botnet Traffic Forensics System Conclusion. Botnet 是什麼?. 從 2004 年起 botnet 才開始被大家搜尋,也就是說這個詞從那時起才開始流行。.
E N D
BOTNET Detection and Prevention 黃能富 教授 國立清華大學資訊工程系 nfhuang@cs.nthu.edu.tw
Contents • Botnet是什麼? • Botnet有哪些架構? • Botnet能夠用來做什麼? • Botnet如何擴張? • Botnet如何偵測? • Botnet如何防治? • Botnet Traffic Forensics System • Conclusion
Botnet是什麼? • 從 2004 年起 botnet才開始被大家搜尋,也就是說這個詞從那時起才開始流行。
Botnet是什麼? • Bot (Zombie) • 受控制的被入侵電腦、俗稱為”僵屍” 或 “傀儡”。 • 典故應該是起源於 IRC channel當中的自動回話機器人軟體 (robot)。 • Botnet • 一群被 bot master 控制的 bots。 • 所謂的”僵屍網路” 或 “傀儡網路”。 • 依此定義,Botnet所涵蓋的範圍是很廣的。
Botnet有哪些架構? • Botnet依照它的命令與控制(Command & Control, C&C)傳達模式一般可以分為兩種: • Centralized (集中式) • 有專責的 servers 來傳達 C&C • C&C servers 以 IRC servers 居多 • EX: Agobot, SDBot, SpyBot and GT Bot. • P2P (點對點) • 沒有專責的 servers 來傳達 C&C • 除了自行設計外,也有使用現成的 P2P協定 • EX: Phatbot utilizes Gnutella • EX: Slapper, Sinit, Phatbot, and Nugache.
Botnet有哪些架構? • 集中式的 Botnet架構示意圖。 • 在早期 C&C server 通常是 IRC Server。
2. Botnet 有哪些架構? • What is IRC ? • IRC: Internet Relay Chat Protocol • RFC 1459, in 1993. • TCP port 6667. • 簡單地說它是一個 “線上多人聊天室 ” • 在台灣,相對於 BBS 它並不流行。 • 這表示理論上 IRC 所佔的校園網路的流量應該不多
Botnet有哪些架構? • 關於 IRC 上面的 Robot: • 它最初的設計理念是用來在 IRC 聊天室中自動回應其他使用者,以便取代真人,也就是所謂的 Chat Bot。 • 到後來 IRC 成為木馬的溝通管道,木馬會自動連上特定的 IRC server,成為 bot,自動聽取主人經由 IRC 所下的命令並執行。 • 因此,慢慢地,botnet就成為殭屍網路的代名詞。
Botnet能夠用來做什麼? • 1. 做壞事營利: 發 SPAM、打 DDOS 等。 • 2. 租給人家做壞事營利。(下圖的新聞E)
Botnet能夠用來做什麼? • 如何靠Botnet營利? 1. 賣從被害者所偷來的資料。 • E-mail address book, Credit Card NO, and so on. 2. 賣 DDOS (DDOS as a Service) 3. 賣 SPAM (Spam as a Service) 4. 網路戰爭
Botnet能夠用來做什麼? • Botnet DDOS 示意圖。
Botnet如何擴張? • 根據觀察,Botnet通常有兩種方法擴張: • 1. 藉由已經存在的 bot直接去入侵有弱點的 hosts。 • 通常需要比較高的技術能力。 • 利用設備的弱點。 • 2. 藉由社交工程(詐騙)的手法,讓使用者心甘情願地自己把 bot執行起來。 • 想法子寫一隻目前的防毒軟體掃不到的毒。 • 利用人性的弱點。 • 無論是用哪個方法,最終的目的都是要把 bot程式塞到被害人的電腦裡。
Botnet如何擴張? • 藉由已經存在的 bot直接去入侵有弱點的 hosts。
Botnet如何擴張? • 弱點週期 (Zero-Day Attack period)。
Botnet如何擴張? • 當一個系統弱點被發現之後,在 patch 或 偵測碼 出現之前的這一段時間,是所謂的 Zero-Day Period (ZDP), • 有這個弱點的設備在 ZDP 這個期間內是只有任人宰割的份。 • 過了 ZDP 之後,如果有弱點的機器沒有上相對的 patch,或是防護程式沒有更新到相對的偵測碼,依然還是任人宰割。
Botnet如何擴張? • 藉由社交工程(詐騙)的手法,讓使用者心甘情願地自己把 bot執行起來。 (下圖也包含了 web 掛碼這種媒介)
Botnet如何擴張? • MSN 的社交工程-1(騙你點 URL)
Botnet如何擴張? • 點了之後,就有可能自動把 malware 抓下來執行。
Botnet如何擴張? • MSN 的社交工程-2 • 騙你輸入email address 或是 MSN 帳號/密碼。
Botnet如何擴張? • 壞人取得 email address 之後 • 發 email 進行下一階段的詐騙 • 把你的 email address 賣給別人 • 壞人取得 帳號/密碼之後 • 用你這個帳號密碼去 try 你別的帳號 • Ex: 拿 Yahoo 的去 try Gmail。
Botnet如何擴張? • Email 社交工程(人性的挑戰) • 直接把 LNK/EXE 寄給你, 執行了你就變 bot。
BOTNET偵測與防治技術簡介 Botnet如何擴張? • Anti Virus 有時不太敏感-1 • 例如2008/12/25 收到bot,2008/12/26 送去掃
Botnet如何擴張? • Anti Virus 有時不太敏感-2
Botnet如何擴張? • Anti Virus 有時不太敏感-3
Botnet如何擴張? • Anti Virus 有時不太敏感-4 • AV 是一般 user 的最後一道防線,當使用者點到惡意連結,下載了一隻新毒,在上述的例子中能夠偵測它的只有1/3的防毒軟體,掃不到的不乏大廠。 • 在人性的弱點上,因為好奇或是不慎而執行了bot,且 AV 又沒擋住,Botnet 就是這樣擴張的。
Botnet如何偵測? • 要如何知道校園網路中到底有沒有 bot呢? • 做流量分析,研究 bot與 bot master 之間的C&C。 • 找 C&C connections • 找 bot的網路異常行為:SPAM, DDOS 等 • 交叉比對之。 • EX:如果發現你有 C&C 又發 SPAM,就猜你是bot。 • 直接針對某種類型的 bot做 host scan。 • 某些 bot會影響主機上的 server 反應。 • 這特殊的反應 (如反應變慢) 可以當成判定的依據。 • 但這種 scanner 工具並不多。
Botnet如何偵測? • 下圖是 GT Bot的部份的 C&C,在 traffic 中找 GT Bot的時候可以此為據。
Botnet如何偵測? • 直接掃 bot的程式 • Ex: Simple Conficker Scanner
Botnet如何偵測? • 想法子成為 botnet的臥底去刺探軍情。 • 1.直接執行 bot,看它跟誰聯絡。 • 2.故意使用有弱點的機器當 honeypot (誘餌機),引誘入侵者。 • 以上這些方法都會同時錄 traffic。
Botnet如何偵測? • 刺探軍情的成果之一。 • 受害者:72.10.162.2 (印尼)
Botnet如何偵測? • 刺探軍情的成果之二。 • 攻擊封包特徵:IP Fraged、UDP、SP:1767 DP:1145
Botnet如何偵測? • Honeypot與 Traffic Analysis 通常可得到如下結果: • 清楚 C&C traffic 的特徵 • 明白入侵手法 • 知道敵人從來哪來,Bot跟何方聯絡(IP) • 因此就可以拿來作為防治的依據。例如: • 偵測/阻擋已知的 Botnet C&C traffic • 偵測/阻擋已知的 入侵手法 • 阻擋 malicious IP list
Botnet如何偵測? • Botnet偵測上可能面臨的困難。 • C&C 連線加密。 • 架構為 P2P or Random。 • 偽裝成別的通訊協定。 • EX: HTTP
Botnet如何防治? • 由上述可知,Botnet之所以得以擴張,主要是因著兩方面的弱點: • 設備的弱點: • 一開始的時候就設計不良。 • 接著時間久了,弱點被壞人發現,但管理者沒發現。 • 系統沒有定期更新。 • 人性的弱點: • 不知道網路上有壞人,容易被騙。 • 好奇,被聲色所引誘。
Botnet如何防治? • 建議: • 一開始的時候就設計不良。 • EX:Buffer Overflow, SQL-Injection • 治標:採用 IDS/IPS/WAF 或是各式各樣的掃描器。 • 治本:從資訊教育改進,程式設計不只是要考慮功能,還要注意安全。 • 接著時間久了,弱點被壞人發現,但管理者沒發現。 • 管理者需要加強資安的敏感度,與時代同進步。 • 系統沒有定期更新。 • 用正版軟體。(安全是需要代價的)
Botnet如何防治? • Botnet防治上可能面臨的困難。 • Bug Free 的程式/系統 只是一個夢想? • 資安教育需要很長的時間才有成效。 • 人的心防強度有時候容易瓦解。 • EX:被壞人投其所好。 • EX:偽裝老師寄給研究生的執行檔,研究生敢不開?
BotnetDetection Web Servers/ Landing Site/ 跳板 C&C Server Cracker/Bot Master 1. Compromise and put some things 3. Browsing 2. Social Engineering/SPAM 5. Join Botnet/ Data Leakage 4. Infection Anti-botnet Mechanism
About Anti-Botnet Project • Generated rule to detect this contact
About Anti-Botnet Project • 這樣做 rule 的方法是對的,但是,有個問題? • Malware 的數量有多少 ?
About Anti-Botnet Project • Number of Malwares is very huge
About Anti-Botnet Project • To analyze this huge amount of malwares, the better way is to do this automatically, and parallelization, like using cloud computing platform.
About Anti-Botnet Project • Automatic Rule Generation Flow.
About Anti-Botnet Project • Our rule set (for Snort ) is available to download on the website, updated periodically. • http://www.anti-botnet.edu.tw/index.html
About Anti-Botnet Project • 製作 Anti-Botnet IDS rule • 2012/6 BotnetIDS Rule 組成為(共4,040條Rule) • 1,654 條自製 (由真實bot活體網路行為轉譯) • 至 2012/8 止已側錄6,234隻Malware及Bot • 2,386 條國外公開的 botnet rule • 格式採用 Snort Rule Format (Open Source)
About Anti-Botnet Project • Botnet Rule 下載者來源分佈 • 2012/1-2012/6來自世界各地 IP 499個
About Anti-Botnet Project • Botnet Rule 下載者來源分佈 • 2012/1-2012/6來自台灣 IP 184個