[軟體] 美國駭客年會Black Hat 2008觀察--第二天
轉貼自: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
此文續「美國駭客年會 Black Hat 2008 觀察--第一天(注1)」...
注1. http://armorize-cht.blogspot.com/2008/08/black-hat-2008.html
說真的如果不是要來 Black Hat / DEFCON,我是絕對不會想到這邊來的。我去過不
少城市,但是了解我的人應該都知道,這邊除了駭客年會,還真沒有東西可以吸引我。
今天的 keynote 是美國政府資安界的當紅新人炸子雞 Rod Beckstrom(注2),大家都
來看他的風采。Rod 是我們營運長 Matt 的 Stanford MBA 學長,也是一位有名的創
業家,他之前以 twiki 作者的身份,創辦了 TWIKI.NET(注3)。今年三月20日,他正
式接受美國國土安全部(DHS、Department of Homeland Security(注4))的邀請,
擔任底下一個新成立的單位:「國家資安中心(National Cyber Security Center、
NCSC(注5))」的首席。NCSC 是一個新的跨部門單位,負責協調各資安部門之間情
報的交換。
注2. http://en.wikipedia.org/wiki/Rod_Beckstrom
注3. http://www.twiki.net/
注4. http://www.dhs.gov/
注5. http://en.wikipedia.org/wiki/National_Cyber_Security_Center
NCSC 的成立以及這項任命,是源自於布希於今年一月簽同的一項機密的指引(注6),
主要用以擴大情報界對於目前日益嚴重的針對美國的網路攻擊之掌握度,因為之前
美國情報單位對於資安攻擊的掌握過渡零散,缺乏一個中央協調的組織。
Rod Beckstrom 其實並沒有資安背景,但是他有創業家的經驗,對業界很熟,成功
創辦 TWIKI.NET 幫助企業用 wiki 觀念協調資訊交換,以及著有很暢銷的
「The Starfish and the Spider(注7)」一書,提出新的分散式企業管理概念,這
些都是美國國土安全部(DHS(注8))看中他的原因。
注6.
http://www.washingtonpost.com/wp-dyn/content/article/2008/01/25/AR2008012503261.html
注7. http://www.starfishandspider.com/
注8. http://www.dhs.gov/
圖片:
http://3.bp.blogspot.com/_hELDi5B8zOI/SKo6e-brWII/AAAAAAAAA-Q/tHcpnJF-6MM
/s1600-h/IMG_1971_filtered_cropped_WB_730.jpg
Rod 講了很多美國政府的歷史與政府在資安方面的歷史,基本上我覺得就是幫政府
建立形象啦,表示美國政府從電報的年代就很懂資安與情報的重要。我對美國政府
的歷史沒有興趣,我對駭客的歷史比較有興趣,但是我覺得 Rod 的加入對布希政
府在形象上一定是一大加分,因為 Rod 感覺很有業界經驗,不會讓外界覺得政府
都閉門造車。
Rod 講了他認為目前資安難做的原因,我非常的認同。他說,有些球類,進攻難,
防守易,例如足球,所以分數都不高(幾比幾);有些球類,則是進攻容易,防守
難,例如籃球,所以分數都很高(可以破百)。資安比較像籃球;事實上在資安裡
面,防守比攻擊要難太多太多了,這也就是資安難做的原因。
這個我完全認同。是的,要有好的防守,必須很懂得敵人,很懂得敵人所用的攻擊
方法。所以重要的駭客年會我們都會派人參加。但是這只是基本功而已。懂得攻擊
之後,要設計防守,又更加困難。為什麼?因為攻擊成本低,防守成本高!就拿防
毒軟體來說,其實測不到,不是防毒廠商沒有樣本,可是防毒軟體不能佔用系統太
多資源,所以樣本不能無限制的長大,必須有所選擇,在盡量不影響到系統效能的
前提下,達到最高的偵測率。
又像如果打生物戰,那麼一樣,設計病毒,只需能感染讓人致死就好,可是設計解
藥,不但要殺死病毒,還要保存人體不被破壞。不論在網路空間或實際生活中,攻
擊總比防守簡單太多,這是資安難做的原因。再加上攻擊處於主動,何時攻擊可以
自行選擇,但是防守處於被動,何時被攻擊無法預期,所以無時無刻都需要檢查與
防範,而這些無時無刻都需要做的檢查與防範,都是成本的增加,這也是資安難做
的原因。
另外 Rod 探討了一些我們在業界常探討的資安的投資報酬率問題。感覺他有觀念,
但是畢竟他之前不在資安產業,探討的東西都還太淺了些。以下是兩張投影片,基
本上是說,如果 x 軸是資安的投資,y 軸是因為資安投資而減低的損失,那麼需要
找到投資報酬率最高的點。但是 Rod 你說用一條 45 度的線跟曲線取交點,是這
樣嗎?我高中畢業很久了,博班資格考也沒考微積分,但是我怎麼直覺覺得,要分析
要看此曲線斜率,所以要做一下一次微分後分析...
圖片: http://4.bp.blogspot.com/_hELDi5B8zOI/SKpMPP7vcSI/AAAAAAAAA_k/rl
qg0KsB9IQ/s1600-h/rod_slides_730.jpg
這裡有他當天演講的一段錄影:
http://www.youtube.com/watch?v=SQnIsW4sINQ
聽完之後去幫 Jeremiah (注9)捧場,聽他同事 Arian Evans(大會(注10))講
「Encoded, Layered, and Trancoded Syntax Attacks: Threading the Needle
past Web Application Security Controls(注11)」
注9. http://jeremiahgrossman.blogspot.com/
注10. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Evans
注11. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Evans
這個題目就不翻譯了,基本上整個演講在說一件事:Web 上的攻擊,如果加上各種
不同的編碼方式,那麼穿透率幾乎可以達 100%,沒有任何 Web 防火牆可以阻擋。
這是指 Web 防火牆設定成利用黑名單的情況下,如果花時間設白名單的話,一樣
可以阻擋,可是一般稍微有規模的站,我看到大部分都是用黑名單方式,因為設白
名單是很繁瑣的事情,需要找到好的廠商才行。
講到這裡,其實我深深覺得資安業,找對公司比找對產品重要多了。不論是源碼檢
測或 Web 防火牆,如果賣方只是想塞產品給您,那麼買了再好的,牌子在大的產品
也沒有用,一樣會失敗,最後還是會發生資安事件。如果找對好的 partner,有心服
務客戶,長期經營,技術能量也夠,那即使用免費的開放源碼 ModSecurity(注12)
做 Web 防火牆,一樣能設定到讓您高枕無憂。其實對方有沒有心做服務,還是只想
塞產品,還有對方的技術團隊有沒有實力,通常很快就能看出來。
注12. http://www.modsecurity.org/
圖片: http://2.bp.blogspot.com/_hELDi5B8zOI/SKs2zvIC0_I/AAAAAAAABAU/FAZni
M95APA/s1600-h/IMG_2122_filtered_cropped_WB_730.jpg
這張明天要去賣 Arian 了,拍得太好了 :)
投影片一拿出來就開始講今年初進行到現在的大規模 SQL Injection 加網頁掛馬攻
擊(阿碼新聞稿(注13),PC World(IDG)(注14),ITHome(注15))。Arian 拿當初
Neil Carpenter 蒐集到的攻擊字串(注16)做例子:
注13. http://www.armorize.com.tw/news/shownews.php?news=23
注14. http://www.pcworld.com/businesscenter/article/146048/mass_sql_injec
tion_attack_targets_chinese_web_sites.html
注15. http://www.ithome.com.tw/itadm/article.php?c=49121
注16. http://blogs.technet.com/neilcar/archive/2008/03/15/anatomy-of-a-sql
-injection-incident-part-2-meat.aspx
view plaincopy to clipboardprint?
1. 2008-03-08 13:37:13 /dir1/archive.asp
id=z%27%20ANd%20char(124)%2Buser%2Bchar(124)=0%20and%20%27%25%27=%27
Link:
http://www.openwaves.net/armorize_blog/clipboardhijack/sql_penetrate.html
這是一行 web server 的 log。在這個例子裡,%XX(例如 %27、%20、%2B)是 URL
encoding 的一部份,會被 web server decode,decode 完變成:
view plaincopy to clipboardprint?
1. 2008-03-08 13:37:13 /dir1/archive.asp id=z' ANd
char(124)+user+char(124)=0 and '%'='
Link:
http://www.openwaves.net/armorize_blog/clipboardhijack/sql_penetrate2.html
然後整個 SQL injection 字串,會被 SQL server 解碼成:
view plaincopy to clipboardprint?
1. id=z ANd |user|=0 and '%'='
Link:
http://www.openwaves.net/armorize_blog/clipboardhijack/sql_penetrate3.html
不要說多層編碼,即使只用一層的 URL 編碼,就可以因為 UTF-8,而使同一個字串幾
乎有無限種編碼可能(注17)。譬如一個簡單的:
注17. http://wikisecure.net/articles/uri-encoding-to-bypass-idsips/
GET / indexA.html HTTP/1.1
就可以被編碼成:
GET /index%41.html HTTP/1.1
GET /index%2541.html HTTP/1.1 (double percent)
GET /index%%34%31.html HTTP/1.1 (double nibble)
GET /index%%341.html HTTP/1.1 (first nibble)
GET /index%4%31.html HTTP/1.1 (second nibble)
然後如果再利用 2-byte or 3-byte UTF-8 編碼的話,變化又更多了。
但是這整個演講的內容其實對我來說一點都不新,這些編碼來穿透 Web 防火牆的方式
大概四五年前很多書還有 paper 都已經介紹得很完整了。整理起來,整個演講的重點
就兩個:
一、由於 UTF-8,攻擊字串幾乎有無限種編碼方式。
二、攻擊可以分層的編碼,像上述例子,一層給 web server 解,一層給 SQL server
解。或穿插 URI % encoding 或 UTF-8 encoding、HTML decimal entity encoding、
SQL server encoding(char())等混合使用。
聽完後去聽好友 Billy Hoffman(大會(注18)、wikipedia(注19))的演講:「擊敗
javascript 分析工具(Circumventing Automated JavaScript Analysis Tools)
(注20)」。Billy著有「Ajax Security(注21)」,上次在 RSA 2008 (注22)辦簽名會
,我一口氣簽了很多本回來送朋友,讓他高興得不得了。既然是 Billy,當然要照帥
一些囉!有沒有注意到左下方 Billy 的筆電?併購後筆電也該 HP 囉!
注18. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Hoffman
注19. http://en.wikipedia.org/wiki/Billy_Hoffman
注20. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Hoffman
注21. http://www.amazon.com/Ajax-Security-Billy-Hoffman/dp/0321491939
注22. http://www.rsaconference.com/2008/US/Home.aspx
圖片: http://3.bp.blogspot.com/_hELDi5B8zOI/SKpLhBJaV7I/AAAAAAAAA_Y/V0Try_r6
02E/s1600-h/IMG_2171_filtered_cropped_730.jpg
今年講網站掛馬的演講真是多,其實這個題目去年就很紅了,今年年初再加上兩點,
使得這個議題紅到不行:
一、年初的大規模自動 SQL Injection 加 網頁掛馬(阿碼新聞稿(注23),PC World
(IDG)(注24),ITHome(注25))
注23. http://www.armorize.com.tw/news/shownews.php?news=23
注24. http://www.pcworld.com/businesscenter/article/146048/mass_sql_injection
_attack_targets_chinese_web_sites.html
注25. http://www.ithome.com.tw/itadm/article.php?c=49121
二、網路掛馬所使用的 javascript 語言,其編碼與變形太過容易(除了大家熟悉的
MPack (注26)自動化犯罪工具包,現在線上的 javascript 編碼/變形服務也到處都
是:看這裡(注27)和這裡(注28)。)
注26. http://en.wikipedia.org/wiki/MPack_%28software%29
注27. http://www.cha88.cn/
注28. http://www.malwareguru.org/mediawiki/index.php/Collection_of_tools_for
_javascript_encryption_%28javascript_packers%29
Billy 在他的摘要(注29)裡就直接提到:「拜 MPack (注30)所賜,大部分惡意
javascript 都編碼過(Obfuscated JavaScript payloads are the norm thanks to
malware frameworks like MPACK.)」
注29. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Hoffman
注30. http://en.wikipedia.org/wiki/MPack_%28software%29
的確,根據「IBM X-Force 2008 年終趨勢報告(IBM X-Force 2008 Mid-Year Trend
Statistics)(注31)」,2007年後半年,網頁掛馬中 javascript 編碼變形以達 100%
:「A year later,
in the second half of 2007, Web browser attack obfuscation approached 100
percent.」
注31. http://www-935.ibm.com/services/us/iss/xforce/midyearreport/
在這個 talk 中,Billy 講了惡意程式變形技術與偵測技術間永無止境的鬥智遊戲。
這是我很期待的一個 talk,因為跟我們 HackAlert(注32) 非常相關。
注32. http://hackalert.armorize.com/
Billy 今年的研究延續去年 Ben Feinstein(網頁(注33)、Blog(注34))跟 Daniel
Peck(blog-1(注35),blog-2(注36)) 講的 Caffeine Monkey (注37)(paper
(注38)、投影片(注39)、程式碼(注40))。
注33. http://benfeinstein.net/
注34. http://www.secureworks.com/research/blog/index.php/author/ben/
注35. http://www.secureworks.com/research/blog/index.php/author/dpeck/
注36. http://www.digitalbond.com/index.php/author/daniel-peck/
注37. http://www.secureworks.com/research/tools/caffeinemonkey.html
注38. http://www.secureworks.com/research/blog/wp-content/uploads/bh-usa-07-
feinstein_and_peck-WP.pdf
注39.
http://www.secureworks.com/research/blog/wp-content/uploads/CaffeineMonkey.pdf
注40. http://www.secureworks.com/research/tools/caffeinemonkey.html
OKOK,繼續之前,我們先來看看這些人到底在講什麼。
現在的大規模自動網站掛馬(阿碼新聞稿(注41),PC World(IDG)(注42),ITHome
(注43))都是利用 SQL Injection 漏洞在網頁裡安插惡意的 javascript。這些
javascript 都經過變形(或稱編碼)。利用 MPack,甚至可以動態變形,也就是說
,每一個訪客所下載到的網頁,裡頭的 javascript 都經過不同的變形。
注41. http://www.armorize.com.tw/news/shownews.php?news=23
注42. http://www.pcworld.com/businesscenter/article/146048/mass_sql_inject
ion_attack_targets_chinese_web_sites.html
注43. http://www.ithome.com.tw/itadm/article.php?c=49121
變形的 javascript 到底長什麼樣子?我們就拿我之前寫的「神秘 Web 攻擊綁架剪
貼簿(注44)」來看好了,其中用的一段範例 javascript:
注44. http://armorize-cht.blogspot.com/2008/08/registerweb.html
view plaincopy to clipboardprint?
1. function IE_ClipBoard()
2. {
3. if (window.clipboardData) {
4. window.clipboardData.setData("Text","Hello from Wayne!");
5. }
6. }
(圖 1)Link: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
好,現在我們用 malwareguru (注45)上的線上編碼工具(注46) Vanishing Point
Packer(網頁(注47)、malwareguru 上提供的線上 demo(注48)),把上面這一段
javascript 貼進去,按「pack」,原本的 javascript 就變成了以下這段了:
注45. http://www.malwareguru.org/
注46. http://www.malwareguru.org/mediawiki/index.php/Collection_of_tools
_for_javascript_encryption_%28javascript_packers%29
注47. http://code.google.com/p/vanishingpoint/
注48. http://malwareguru.com/JSPacker/JavaScriptPacker.php
view plaincopy to clipboardprint?
1. eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(
/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=funct
ion(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+
e(c)+'\\b','g'),k[c])}}return p}('4 3(){2(1.0){1.0.5("8","7 6 9!")}}',10,
10,'clipboardData|window|if|IE_ClipBoard|function|setData|from|Hello|Text
|Wayne'.split('|'),0,{}))
(圖 2)Link: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
網路上隨便 Google 「javascript obfuscator」或「javascript packer」,可以找
到一堆線上的服務,每一個變形出來都不太一樣。舉幾個例子:
Yellopipe source code encrypter: (注49)
注49. http://www.yellowpipe.com/yis/tools/source-encrypter/index.php
view plaincopy to clipboardprint?
1. document.write(unescape("function%20IE_ClipBoard%28%29%20%20%0D%0A%7B%20
%20%0D%0A%20%20if%20%28window.clipboardData%29%20%7B%20%20%0D%0A%20%20%20%20wi
ndow.clipboardData.setData%28%22Text%22%2C%22Hello%20from%20Wayne%21%22%29%3B%
20%20%0D%0A%20%20%7D%20%20%0D%0A%7D%20%20"));
(圖 3)Link: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
Audit My PC HTML Encoder: (注50)
注50. http://www.auditmypc.com/html-encoder.asp
(圖 4)Link: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
中國的「网?免? 孤程?雪(注51)」線上服務:
注51. http://www.cha88.cn/safe/jsvbscode.php
(圖 5)Link: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
嗯嗯,圖五很熟悉吧?各位 IT 應該都不陌生...是的,這種編碼方式很受到前一波掛馬
駭
客的喜愛,很多網站掛馬都長得很像圖 5...所以我們把這個「网?免? 孤程?雪」站的話
面
貼出來一下好了:
(圖 6)Link:
http://3.bp.blogspot.com/_hELDi5B8zOI/SKsKtP-tlOI/AAAAAAAABAE/ff9zJLHc4
OE/s1600-h/cha88.png
編碼還可以分很多層,可以用不同的編碼器編過幾層。看到這些,我們想一想,現在很多
gateway 產品,都號稱他們可以及時偵測與阻擋惡意網頁...現在網路頻寬都很大,在這
麼
大的頻寬下,一個 gateway 裝置要 buffer 住所有的 HTTP response,然後即時的執行
javascript 解碼,然後識別惡意程式...您相信嗎?
看著圖 1-5,您也許會想,編碼過的 javascript 都有一些特徵,例如都是一堆的數字,
偵測這些特徵,不就可以偵測到惡意的 javascript 了嗎?問題是這會有很多的誤判。
因為原本這些 javascript 編碼器,都不是拿來做網站掛馬的,而是用來保護
javascript
的智慧財產權的。Javascript 必須要在瀏覽器上執行,所以不論你花多少時間寫
javascript,最後誰都可以拿到你的程式,因為 javascript 不會編譯成執行檔,而是
直接以程式碼的方式傳到瀏覽器上,再由瀏覽器執行。所以為了要保護 javascript 程
式不要輕易的被有心人研究,許許多多的程式設計師,都會將自己的 javascript 利用
上述這些編碼器編碼或變形。也就是說,編碼過的 javascript 不見得都是惡意的,很
多大型網站上,擁有非常多編碼過的 javascript,大部分商售的 javascript,也都經
過編碼變形。究竟有多少 javascript 編碼器?很多,連 Yahoo! 都提供 Yahoo! 的
javascript 編碼器(注52),也介紹其他好用的編碼器。
注52. http://developer.yahoo.com/yui/compressor/
好吧,那到底該如何偵測呢?HackAlert(注53)用的是實際的瀏覽器環境,所以沒有問題
,不論什麼樣的 javascript 變形方式,或者此 javascript 攻擊什麼樣的未知的 0day
弱點,反正只要試圖攻擊,就一定測得到。可是這樣的技術要對 windows 環境以及各
browser 的構造很熟才行。
注53. http://hackalert.armorize.com/
這次在 Black Hat / DEFCON,在會後的一些 meeting 中,我發現一個很有去的現象,
就是在偵測網站掛馬方面,「使用者」(大銀行,大企業,軍方,情報單位)的功力,
有時反而比廠商甚至講師更強。探討下來,因為網站掛馬太嚴重了,可是廠商都沒有
好的解決方案,號稱可以測到的,其實都是用靜態分析或黑名單方式,沒有辦法即時,
辨識率也偏低,所以這一年下來,「使用者」只好 DIY,自己利用 Caffeine Monkey
(注54)(paper(注55)、投影片(注56)、程式碼(注57))或 spidermonkey(注58) 來偵
測(SANS最近也玩了一下(注59)),但是就如同 SANS 的 Daniel Wesemann 說的(注60)
:「But SpiderMonkey is only a JavaScript engine - it doesn't emulate the
browser and doesn't even have a "document" or "location" object...」。
Caffeine Monkey就是建構在Spidermonkey 之上。SpiderMonkey 是 Mozilla 的
javascript 執行器,但是不是一個瀏覽器,還缺很多環境,Caffeine Monkey 一方面
設法補足,一方面增加了一些自動偵測的技巧。
注54. http://www.secureworks.com/research/tools/caffeinemonkey.html
注55. http://www.secureworks.com/research/blog/wp-content/uploads/bh-usa-07
-feinstein_and_peck-WP.pdf
注56.
http://www.secureworks.com/research/blog/wp-content/uploads/CaffeineMonkey.pdf
注57. http://www.secureworks.com/research/tools/caffeinemonkey.html
注58. http://www.mozilla.org/js/spidermonkey/
注59. http://isc.sans.org/diary.html?storyid=4724
注60. http://isc.sans.org/diary.html?storyid=4724
Billy 今年的 talk,則是針對諸多以 SpiderMonkey 為基礎的偵測方式做破解,列了一
打
以上的破解方式,不過基本上可以粗分為兩類:
一、偵測抓網頁的是否是真的人還是要偵測的機器人(執行 SpiderMonkey 之類的)
二、直接用一些方法,讓以SpiderMonkey 為基礎的的自動偵測失效。
對於(一),Billy 列了很多的方法,包含了 HTTP/browser fingerprinting、DOM
testing
and encrypting、Doman and Network testing、Execution environment testing、
cross
plugin communication testing 等等。Billy 的演講是針對 SpiderMonkey 和
Caffeine
Monkey 設計的,所以這次講的方法對以這些為基礎的技術或產品真的很有效。以這些為
基礎
的產品很多嗎?非常多,因為這些是開放源碼的程式,現在很多公司都是看到客戶有需要
了
,不做研究,不花功夫,拿一些開放源碼的程式整合一下,就把產品推出了。有的時候從
客
戶那邊聽到這些業務的語言,我真的不敢相信,怎麼大家都這麼敢虎!客戶又不是笨蛋,
你
說你功能都有,其實是那一些開放源碼堆起來的,客戶難道就不會測試嗎?我接觸的客戶
技
術水準都越來越高,這些說話不打草稿的業務,應該會越來越吃虧。
Billy 講的方法,基本上對 HackAlert 都無效,因為 HackAlert 後端基本上就是一套跟
使
用者一模一樣的環境,是我們自己開發的,不是拿開放源碼的程式湊的。
對於(二),則分兩方面。一方面,因為 SpiderMonkey 畢竟不是整個瀏覽器環境,所以
很
容易可以用一些方法偵測出,執行的環境是「人」在用的瀏覽器,還是偵測用的環境。如
果
次偵測用的環境,那就不發動攻擊,環境也就測不出來了。另一方面則是利用
SpiderMonkey
環境跟真正瀏覽器環境的不同,把 javascript 設計成,在 SpiderMonkey 環境下無法
成功
執行,那麼 SpiderMonkey 就測不到了。
一樣,對 SpiderMonkey 很有效,對 HackAlert 則無效。
但是看這兩種攻擊,其實用一句 Billy 最後講的話就可以總結了:「現在我碰到的網站
掛馬
越來越多是用 vbscript 而非 javascript。SpiderMonkey 和 Caffeine Monkey 都只支
援
javascript,所以一旦惡意程式用 vbscript,所有這些偵測方法都完蛋了。」
寫到這邊,如果您回去看 圖 6,左上角的第二個和第三個按鈕:「VB 網頁加密」、「
VBS
腳本加密」,也就說明了一切--在必要的情況下,駭客用 vbscript。
於是 Billy 在演講中強調又強調,目前沒有開放源碼的 vbscript parser,造成他研究
的
瓶頸。我會後跟他說,vbscript 雖然是很爛的語言,但是文法還是能表示出來,我們約
花
一個月時間就做出 vbscript 的 parser 了。所有語言裡面,vbscript 的語法最模擬兩
可
,最難用 lalr 表示出來,但是解譯不只需要 parser,還需要處理如 scoping 等等,幾
乎等於需要一個 compiler,所以即使他弄出了 parser,後面的功夫還很大。他問我們為
何
這麼快可以完成 vbscript parser。問題是...我們本來就是源碼檢測的公司,parser 跟
grammar 對於源碼檢測或 compiler 的公司來說,是基本功。我們原本做 vbscript
parser
,是為了 CodeSecure(注61) 對 ASP 語言的支援,不是要偵測惡意程式。
注61. http://www.armorize.com/corpweb/en/products/codesecure
至於我們的 vbscript parser,是否會用在 HackAlert 中,輔助偵測網站掛馬呢?目前
看
起來沒有必要。不論是 javascript 或 vbscript,這些都是 interpreted 語言,不是
compiled 語言。Interpreted 語言,動態可以產生新程式,語法也較不嚴謹,太多狀態
需
runtime 時才能決定,非常不利於靜態分析技術。HackAlert(注62)目前動態偵測方面,
完
全模擬使用者環境,偵測率很高,不需要再靠其他方式。
注62. http://hackalert.armorize.com/
最後 Billy 你說我們的 vbscript grammar 可否開放源碼,這我們得思考看看了。
這裡(注63)可以看到 Daniel Peck(注64)(Caffeine Monkey(注65) 作者之一)
blog 對於 Billy 這場演講的看法(注66)。
注63.
http://www.digitalbond.com/index.php/2008/08/08/blogging-blackhat-day-two/
注64. http://www.secureworks.com/research/blog/index.php/author/dpeck/
注65. http://www.secureworks.com/research/tools/caffeinemonkey.html
注66.
http://www.digitalbond.com/index.php/2008/08/08/blogging-blackhat-day-two/
Billy 的演講一向都很受歡迎,如果您想要聽,他有一場 2007 年底在 Google Toolkit
Conference 上講的 Ajax Security:
影片: http://www.youtube.com/watch?v=hKrvY42dw1A
Ok,我必須承認,在 Billy 演講的中間,我落跑了 20 分鐘... 我去聽了 Justin
Clarke
(大會(注67)、blog(注68))的短演講:「SQL Injection 蠕蟲:為了興趣也為了利益
(SQL Injection Worms for Fun and Profit)(注69)」。看這就知道今年網頁掛馬熱到
什
麼程度了,竟然同一時間有兩個演講,逼不得已只好跟 Billy 請個假了!
注67. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Clarke
注68. http://www.justinclarke.com/
注69. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Clarke
Justin Clarke (大會(注70)、blog(注71))是 Network Security Tools (注72)
(O'Reilly)的作者,也是 SQL Brute(注73) 工具的作者。
注70. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Clarke
注71. http://www.justinclarke.com/
注72. http://oreilly.com/catalog/9780596007942/
注73. http://www.gdssecurity.com/l/t.php
圖片:
http://3.bp.blogspot.com/_hELDi5B8zOI/SKsxdCLZTOI/AAAAAAAABAM/eG5z6nH0W28/s
1600/IMG_2214_filtered_cropped_WB_730.jpg
Justin 主要就是講今年年初開始的大規模 SQL injection 加網站掛馬攻擊,但是我發現
,
我們對這些攻擊的掌握度似乎更快。基本上他所有講的,我們在之前都公開過了:
阿碼新聞稿(注74),PC World(IDG)(注75),ITHome(注76)
注74. http://www.armorize.com.tw/news/shownews.php?news=23
注75. http://www.pcworld.com/businesscenter/article/146048/mass_sql_injection_
attack_targets_chinese_web_sites.html
注76. http://www.ithome.com.tw/itadm/article.php?c=49121
整理重點:大規模攻擊,SQL Injection 指令設計得很好,針對微軟的平台,利用
Google
(?q=)找尋攻擊點,SQL Injection 的目的是為了要掛馬...等等。這邊重點是,雖然
HackAlert 可以偵測掛馬,但是為何會被入侵掛馬?都是因為有 SQL Injection 漏洞,
故需把程式改好,才是徹底解決之道。今天聽到現在已經第三場講大規模 SQL 加掛馬了
,大家的 SQL 漏洞快修修吧!
聽完又回去捧場 Jeremiah(注77) 了,這回他帶同事一起講:「Get Rich or Die
Trying -
"Making Money on The Web, The Black Hat Way"(注78)」。
注77. http://jeremiahgrossman.blogspot.com/
注78. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Grossman
圖片: http://4.bp.blogspot.com/_hELDi5B8zOI/SKuHLN-WmyI/AAAAAAAABAk/01lWgzZuU
y4/s1600-h/IMG_2410_filtered_cropped_730.jpg
Jeremiah 這次講的,跟我上次安排他來台北(他blog的遊記1(注79)、遊記1,值得看)
講的「商業邏輯錯誤(Business Logic Flaws)(他的 blog(注80)、paper(注81))」
其實是一樣的,只是多花了一些時間整理出更有去的內容:怎樣可以利用這些邏輯錯誤
來賺錢(其實也就是會造成什麼損失啦!)。但是所介紹的邏輯錯誤本身,跟在台北講
的那場差不多。他帶著年輕的同事 Trey 一起講,感覺是要訓練後輩,而 Trey 以這麼
輕的年紀,這麼滿的一間,台風算很好了,應該沒讓 Jeremiah 失望啦!
注79. http://jeremiahgrossman.blogspot.com/search?q=owasp+asia
注80. http://jeremiahgrossman.blogspot.com/2007/09/business-logic-flaws-fres
hly-minted.html
注81. http://www.whitehatsec.com/home/assets/WP_bizlogic092407.pdf
他們這次的投影片可以在這裡(注82)下載,也可以直接看線上的版本:
Get Rich or Die Trying - Black Hat 08072008(注83)
注82.
http://www.whitehatsec.com/home/assets/presentations/PPT_BlackHat080708.pdf
注83. http://www.slideshare.net/jeremiahgrossman/black-hat-08072008?src=embed
講完後他們接受的訪問在這裡:
影片:http://www.youtube.com/watch?v=6Y8cU4kVqHg
最後去了 Matthieu Suiche (blog(注84)、大會(注85))的演講:「Windows
Hibernation
File for Fun and Profit(注86)」。Matthieu 是專門分析 Windows 休眠檔工具
Sandman
(注87)的作者。
注84. http://www.msuiche.net/
注85. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Suiche
注86. http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Suiche
注87. http://sandman.msuiche.net/
圖片:
http://3.bp.blogspot.com/_hELDi5B8zOI/SKuI-IotkuI/AAAAAAAABAs/uRKVt-lIgCY
/s1600/IMG_2607_filtered_730.jpg
他對於這次演講的 blog 在這裡(注88),投影片在這裡:PDF(注89)、PPTX(注90),demo
環境在這裡(注91)。其實內容跟我們在台北辦的 SySCAN Taipei 2008(注92)裡 PK 講的
「犯罪現場: Windows 記憶體內容擷取與鑑識」差不多,基本上就是 demo 從分析記憶體
或休眠檔,可以取出非常多的資訊。PK 那場講得非常好,我很感謝他。PK 的許多內容應
該都是參考 Matthieu Suiche(注93)的,因為 Matthieu 是這方面的先驅,修眠檔的資安
問題方面研究,他算是祖師,他的 Sandman(注94)也是現在這方面最領先的工具之一。
注88. http://www.msuiche.net/2008/08/11/black-hat-usa-2008-slides-and-demos/
注89.
http://msuiche.net/con/bhusa2008/Windows_hibernation_file_for_fun_%27n%27_profit-0.6.pdf
注90.
http://msuiche.net/con/bhusa2008/Windows_hibernation_file_for_fun_%27n%27_profit-0.6.pptx
注91. http://msuiche.net/con/bhusa2008/SandMan-BHUSA2008-Demos.zip
注92. http://syscantaiwan.blogspot.com/
注93. http://www.msuiche.net/
注94. http://sandman.msuiche.net/
好啦!終於寫完啦!感謝各位花時間看完。這些資安會議多跑幾個,攻擊的趨勢,技術的
進步,產業的趨勢就都很容易掌握了。沒有時間去的就看我的 blog 囉。另外我們在台灣
辦的會議,品質也都很好,有空可以多來。
之後我會寫 DEFCON 以及綜合起來這次我的心得。此篇是詳細報導,已經太長了,
沒法寫心得啦!
Thanks for reading!
轉貼自: http://armorize-cht.blogspot.com/2008/08/black-hat-2008_18.html
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.42.178
AntiVirus 近期熱門文章
PTT數位生活區 即時熱門文章