2010 亞太資安論壇心得筆記

分類: 工作雜談 作者: jaceju

23 4 月 2010

轉自:2010 亞太資安論壇心得筆記

這次臨時去亞太資安論壇,主要是因為 Darkhero 的介紹,且主題剛好是我有興趣的網頁安全;所以就拜託了 Neo 老大讓我去聽課囉。

聽了一整天下來,很多都是廠商在介紹產品,觀念部份反而都是老調重彈 (但實作技術上都比以前進步很多) 。

阿碼科技創辦人

不過阿碼科技的場次倒是讓我非常驚豔!主要是他們本身在這個業界就非常有名,而且這次分享的內容偏向技術面,讓我非常有認同感。

這次阿碼科技的分享主要內容是「網頁掛馬」,以下我就簡單分享這次的筆記與心得。

Malware 是什麼?

其實就是用來控制被攻擊電腦的惡意軟體,像是不必經過使用者允許就能遠端連線的桌面控制工具。

而常看到的透過 Script 或 Iframe 標籤所連結的 JavaScript ,其實只是用來下載 Malware 的工具程式。

網頁掛馬的途徑

網頁掛馬的方式分成三種途徑:

Web

一般常見的就是透過後端技術 (例如 ASP 、 PHP 、 JSP 等等) ,然後使用 SQL Injection 等常見的 Web 攻擊手法,把木馬掛到 Web 應用程式當中。

LAN

利用使用者操作上的疏忽,感染他們的電腦,再透過區域網路的 ARP 封包來對主機做掛馬的動作。常見的工具有 zxarps.exe ,它可以對區網內的使用者所訪問的所有網站插入惡意的 HTML 碼,例如 iframe 。

WAN

部份非知名品牌的網路設備 (例如 Layer 4 / Layer 7 switch) 存在著漏洞,駭客就利用它來讓連線的用戶被導向惡意的網站。

Malzilla 解掛碼工具

阿碼科技提供了以下測試用的掛碼網址:

  • http://zcrack.org/a
  • http://zcrack.org/cookie

然後透過 Malzilla 來就可以攔截到 http://zcrack.org/a 的原始 HTML 碼:

<html>
<head>
  <META NAME = "ROBOTS" CONTENT = "NOARCHIVE" >
  <META NAME = "ROBOTS" CONTENT = "NOINDEX" >
  <META NAME = "ROBOTS" CONTENT = "NONE" >
</head>
<body>
<div id="imgs"> <script src='go.jpg'></script><script src='2.jpg'></script><script src='3.jpg'></script><script src='4.jpg'></script><script src='5.jpg'></script><script src='5.1.jpg'></script><script src='6.jpg'></script><script src='7.jpg'></script><script src='8.jpg'></script>
</body>
</html>

主要可以看到木馬透過多個 <script> 標籤去組合,這會讓 Sever 端的防毒很難偵測出它的存在。

而這些 JavaScript 就會動態組合出所謂的 Exploits (或稱為 Dropper 及 Downloader ),讓特定的瀏覽器執行後去下載真正的惡意程式 (Malware) 。

因為這些 Exploits 是動態組合,所以不容易被偵測出來,因此要借重一些工具來找出真正的 JavaScript 。

Burp Suite 可以幫我們攔截網頁 HTML ,然後進行適當的修改 (例如把 JavaScript 的 eval 改為 alert ) ,讓我們能看到真正會被執行的 JavaScript 長什麼樣子。

圖解掛馬流程

一般掛碼分為三個步驟:

掛馬流程

  1. Cracker 想辦法攻擊某些網站的漏洞 (就是上面提到的三種途徑) ,並把 Url Generator 放到它們上面;通常流量較大的知名網站越容易成為被攻擊目標。

  2. 使用者去瀏覽這些被攻擊的網站的頁面時,就會被導向置有惡意 JavaScript Exploits 的網站。

  3. 當下載回來的 JavaScript Exploits 被特定瀏覽器執行時 (例如 IE6 ) ,就會再次連到另一個真正存放惡意軟體的網站將該惡意軟體下載回來執行。

偵測的難度如下圖所示:

偵測難度

因為 JavaScript 可以透過 JavaScript 來產生新的 JavaScript ,使得 Url Generator 及 Exploits 很容易變形,增加了偵測的難度。

Exploits 難以偵測的原因

  • 目前的 Exploites 都做了模組化,不同的瀏覽器有不同的掛馬方式。

  • 如果 Exploites 透過 Browser Agent 的方式識別瀏覽器的話,很容易被資安廠商透過更改 Agent 的方式偵測到。所以目前的 Exploits 大多都是透過瀏覽器支援的特性來識別瀏覽器,這樣就更能精準確認使用者的瀏覽器,避免被資安廠商的自動檢測掛馬程式給偵測出來。

  • Exploites 也會先行利用偵測到的瀏覽器特性為 Key 來對自己的程式碼進行編碼,這樣就更能增加自動檢測掛馬程式的偵測難度。

Cracker 掛馬的難度

  • 要讓被攻擊網站的安全檢測工具都檢查不出來。

  • 在網路上的任何節點也不能被偵測到。

  • 要隨時注意瀏覽器的漏洞。

  • 必須知道資安廠商的 IP ,避免自己的網站被列入黑名單。

資安廠商因應的對策

  • Web Application Firewall

  • 使用白名單網址,判斷 Script 的來源是否合法。

心得

其實以前也研究過有關 IIS 與 ASP 的資安議題,也在實際上線的網站上被 Cracker 攻擊過,那時就覺得網站安全是一門很深的學問。

今天又在阿碼科技的 CTO 口中,瞭解了這些相當紮實且淺顯易懂的觀念,真是此行最大的收穫!

資安的世界真是複雜又有趣呀~

我要留言

關於這裡

這個部落格分享了哇寶在電子商務領域的技術及資訊,希望能讓更多人一起為台灣的網路產業加油。