不計(jì)其數(shù)的黑客們游蕩在因特網(wǎng)中來欺騙那些容易上當(dāng)?shù)挠脩?。它們多年使用著重?fù)的攻擊手段,毫無創(chuàng)新地利用著我們懶惰、誤判和一些犯二的行為。
不過每年,惡意軟件研究人員總會(huì)遇到一些引人側(cè)目的攻擊手段。這些攻擊手段在不斷拓展惡意攻擊的范圍。新的攻擊手段都是不按套路出牌的,盡管這些手段在被研究看透之后其實(shí)很簡單。
在90年代的微軟宏病毒悄悄地把文檔中的零都替換成了大寫字母O,使得很多數(shù)字格式直接變成了文本格式。這些變化在大多數(shù)情況下可能都不會(huì)被發(fā)現(xiàn)。直到備份系統(tǒng)的時(shí)候,管理員發(fā)現(xiàn)文檔里面,居然只有一堆令人抓狂的看似正常的錯(cuò)誤數(shù)據(jù)。
現(xiàn)在,最巧妙的攻擊就是秘密的并且不被發(fā)現(xiàn)。這里有一些最新的比較有名的攻擊技術(shù)激起了我的興趣,同時(shí)也從中學(xué)到很多經(jīng)驗(yàn)。其中的一些都非常巧妙地借鑒了過去的一些惡意軟件的思路,不過現(xiàn)在都非常流行,甚至可以唬住即使是最精明的用戶。
No.1 無線熱點(diǎn)(AP)偽造
沒有其他攻擊的實(shí)現(xiàn)會(huì)比偽造熱點(diǎn)更簡單。每個(gè)人都使用軟件或無線網(wǎng)卡把自己偽造成一個(gè)無線熱點(diǎn),然后再把流量天衣無縫地中轉(zhuǎn)到真正的熱點(diǎn)上。
想想你每次去咖啡廳、機(jī)場(chǎng)或者一些公共場(chǎng)所,然后都會(huì)連接那里的免費(fèi)網(wǎng)絡(luò)。黑客在星巴克可以把它們的偽造熱點(diǎn)叫做“星巴克 free wifi”或者在機(jī)場(chǎng)可以叫“機(jī)場(chǎng)免費(fèi)熱點(diǎn)”,然后幾分鐘內(nèi)路人都會(huì)很自覺地連到這個(gè)“免費(fèi)熱點(diǎn)”上。黑客可以從受害者和遠(yuǎn)程主機(jī)通信的數(shù)據(jù)流中嗅探出未加密數(shù)據(jù)。你可能會(huì)很驚訝這么多數(shù)據(jù),甚至是密碼居然都是明文傳送的。
更邪惡的是黑客可以偽造出一個(gè)注冊(cè)頁面,告訴接入偽造熱點(diǎn)的用戶要注冊(cè)才能使用。普通用戶很可能常常會(huì)到處用一個(gè)通用的賬號(hào)名或者郵箱以及一個(gè)通用密碼。黑客然后可以用這些賬號(hào)和密碼的組合在大網(wǎng)站上進(jìn)行嘗試,比如Facebook, Twitter, Amazon, iTunes等等。這些受害者可能還不知道發(fā)生了什么。
經(jīng)驗(yàn):千萬不要相信一個(gè)公共無線熱點(diǎn)。因?yàn)橛行┍C苄畔⒁矔?huì)通過無線網(wǎng)絡(luò)傳輸??紤]用VPN傳輸所有數(shù)據(jù),并且不要在公共站點(diǎn)和私有站點(diǎn)重復(fù)使用同一個(gè)密碼。
No.2 Cookie竊取
Cookie是一個(gè)很美妙的發(fā)明,它能夠記錄我們的訪問狀態(tài)。這些小文本,由網(wǎng)站傳輸給我們的機(jī)器,幫助網(wǎng)站或者服務(wù)跟蹤我們的一個(gè)或多個(gè)訪問,舉個(gè)例子,讓我們更輕松地就能買到牛仔褲(譯者注:購物車?yán)锩娴纳唐烦34娣旁赾ookie中),我們?yōu)槭裁磿?huì)不喜歡呢?
答:現(xiàn)在越來越多的黑客竊取我們的cookie來冒充我們。當(dāng)然了,對(duì)服務(wù)器來說,它們是被授權(quán)的,服務(wù)器以為它們像我們一樣輸入了有效的賬號(hào)和密碼。
當(dāng)然,cookie竊取似乎從這個(gè)發(fā)明誕生就出現(xiàn)了,但是有些工具讓這個(gè)攻擊變得很容易,點(diǎn)幾下鼠標(biāo)就搞定了。比如firesheep,是一個(gè)火狐插件讓人們可以輕松竊取別人的明文cookie。當(dāng)接入一個(gè)偽造熱點(diǎn)或在共享網(wǎng)絡(luò)中時(shí)(譯者注:這兩種情況可以嗅探其他主機(jī)的網(wǎng)絡(luò)流量),cookie劫持似乎就更加輕而易舉了。firesheep能夠顯示能找到的cookie的名字和位置,然后只要鼠標(biāo)一點(diǎn),就能劫持這個(gè)會(huì)話(Github地址 ?中文教程)。
更糟糕的是,現(xiàn)在黑客還能憑空嗅探出有SSL保護(hù)的cookie。在2011年9月,BEAST攻擊被證實(shí)可以破解https加密的cookie。經(jīng)過進(jìn)一步的改進(jìn)和完善,出現(xiàn)了CRIME攻擊,讓竊取和利用加密的cookie更加容易。
每新的cookie攻擊出現(xiàn),網(wǎng)站和應(yīng)用的開發(fā)人員被告知如何去保護(hù)它們的用戶。有些時(shí)候,這個(gè)答案是使用最新的加密技術(shù),另外一些時(shí)候是,禁用一些不常用的特性。這其中的關(guān)鍵點(diǎn)在于網(wǎng)站開發(fā)者要安全開發(fā)來降低cookie被竊取的可能性,如果你的網(wǎng)站幾年都沒有更新加密保護(hù)措施,那么你可能已經(jīng)處于風(fēng)險(xiǎn)之中。
經(jīng)驗(yàn):即使是加密的cookie也是會(huì)被竊取的,網(wǎng)站的連接要用最新的加密方式。你的https站點(diǎn)必須使用包括TLS V1.2在內(nèi)的最新加密措施。
No.3 文件名欺騙
惡意軟件從一開始就使用文件名欺騙來誘引用戶執(zhí)行惡意代碼。最早的例子是將文件命名成鼓勵(lì)不知情的受害者去點(diǎn)擊(比如美女熱圖等),并使用文件的多重后綴來隱藏自己(比如美女熱圖.jpg.exe)。直到現(xiàn)在,windows和其他的操作系統(tǒng)還是默認(rèn)地隱藏了臭名昭著的文件后綴,讓 美女熱圖.jpg.exe 看起來是 美女熱圖.jpg。
幾年前,惡意軟件和病毒常是“伴隨型病毒”,依賴于windows的一個(gè)鮮為人知的特性即使你輸入執(zhí)行病毒.exe,windows仍然會(huì)去尋找,如果找到了,直接執(zhí)行病毒.com來替代。伴隨型病毒會(huì)尋找硬盤上所有的exe文件,然后創(chuàng)建一個(gè)同名的文件,但是是com后綴的。微軟很久前就已經(jīng)修復(fù)了這個(gè)漏洞,不過這個(gè)被早期的黑客用來隱藏病毒,現(xiàn)在種類繁多的病毒感染方式也可以算從這個(gè)模式演化過來的(譯者注:比如熊貓燒香通過感染PE文件頭來感染所有exe文件)。
目前一種更復(fù)雜的文件名欺騙方式是通過Unicode字符在視覺上去欺騙,現(xiàn)在舉個(gè)例子,Unicode的RLO控制符可以讓文本變成從右到左的模式,這樣我們就可以在很多系統(tǒng)里面使用障眼法,把 美女熱圖avi.exe 變成 美女熱圖exe.avi。
經(jīng)驗(yàn):無論在什么時(shí)候,在執(zhí)行文件之前,都最好確保你看到完整的文件名。
No.4 路徑還是路徑
另外有一個(gè)有趣的隱藏技巧是“絕對(duì)路徑和相對(duì)路徑”。在早期Windows(Windows XP、2003或更早)及其他的一些操作系統(tǒng),如果你鍵入一個(gè)文件名然后按下回車或者讓操作系統(tǒng)按照你的需要去尋找一個(gè)文件,系統(tǒng)通常會(huì)最先當(dāng)前文件夾或者目錄位置開始查找。盡管這種做法看起來效率高并且無害,但是卻會(huì)被黑客所利用。
舉一個(gè)例子,你想運(yùn)行一個(gè)內(nèi)置的無害的計(jì)算器(calc.exe),你可以很簡單打開一個(gè)命令行,然后敲人calc.exe,然后回車。
但是惡意軟件可以創(chuàng)建一個(gè)名為 calc.exe 的文件隱藏在當(dāng)前目錄下或者你的home目錄,當(dāng)你想執(zhí)行clac.exe的時(shí)候,系統(tǒng)會(huì)先執(zhí)行這個(gè)惡意的clac.exe程序。
做滲透測(cè)試的時(shí)候,我非常喜歡這個(gè)系統(tǒng)缺陷。通常,我入侵一個(gè)主機(jī)之后需要進(jìn)行提權(quán)。我可能會(huì)把一個(gè)已知的未打補(bǔ)丁的程序,放入一個(gè)臨時(shí)文件夾。多數(shù)情況下,我可能只需要一個(gè)可執(zhí)行文件或者dll文件,不用管那一整個(gè)程序。然后我在程序中輸入這個(gè)文件名,然后Windows就會(huì)加載這個(gè)臨時(shí)文件夾中這個(gè)惡意程序。我喜歡這個(gè),我可以攻陷一個(gè)沒有漏洞的系統(tǒng)僅憑那個(gè)壞文件。
Linux、Unix及BSD系統(tǒng)在10年前就修復(fù)了這個(gè)問題,Windows則是在2006年后才在Windows Vista/2008修復(fù)了這個(gè)問題,雖然這個(gè)問題在早期版本中仍然為了程序的向上兼容而存在。同時(shí),這些年微軟一直在警告和教育開發(fā)者使用絕對(duì)路徑。但是直到現(xiàn)在,仍然有上萬個(gè)早期程序還存在這個(gè)問題,黑客比任何人都清楚。
經(jīng)驗(yàn):使用絕對(duì)路徑執(zhí)行程序。
No.5 Host文件重定向
相信現(xiàn)在大多數(shù)用戶還不知道存在一個(gè)和DNS相關(guān)的文件叫做hosts(譯者注:看來天朝內(nèi)hosts文件知識(shí)的普及率比國外高,原因你懂的)。在windows中,它下位于C:WINDOWSSYSTEM32DRIVERSETC中, Hosts文件包含域名和對(duì)應(yīng)的IP地址。 Hosts文件最初被當(dāng)做DNS使用,能夠獲得域名IP映射關(guān)系,還不用請(qǐng)求DNS服務(wù)器執(zhí)行遞歸查詢。不過大多數(shù)情況下, DNS功能就夠用了,大多數(shù)人不會(huì)去管那個(gè)雖然存在的hosts文件。
惡意軟件最喜歡篡改host文件,所以,當(dāng)有人訪問一個(gè)比較熱門的域名(比如google.com),它們會(huì)被指向一個(gè)惡意的IP。這個(gè)惡意網(wǎng)站常常會(huì)復(fù)制原站的所有內(nèi)容來達(dá)到釣取賬號(hào)密碼的目的,而受害者肯定不知道其中的貓膩,因?yàn)橛蛎钦_的(譯者注:hosts文件的優(yōu)先級(jí)高于DNS)。
這個(gè)漏洞現(xiàn)在仍然被廣泛利用。
教訓(xùn):如果你不能確定是否被惡意重定向,請(qǐng)檢查你的hosts文件。
No.6 水坑攻擊
水坑攻擊正如其名,那是一個(gè)坑,而且是一個(gè)會(huì)濺起水花臟到自己的水坑。在這些攻擊中,黑客會(huì)利用它們的目標(biāo),常常會(huì)在某個(gè)特定的地方工作這一現(xiàn)狀,污染那個(gè)地方的網(wǎng)絡(luò)來達(dá)到目的。
舉一個(gè)例子,很多大公司都自己的咖啡廳、酒吧或者餐廳,那些地方一定很受公司員工的歡迎。黑客會(huì)偽造無線熱點(diǎn)(No.1)來試圖獲得盡可能多的賬號(hào)及密碼?;蛘吆诳蜁?huì)篡改這些員工常用網(wǎng)站入口來達(dá)到同樣的目的。這種情況,黑客將會(huì)更加輕松加愉快,因?yàn)榇鄹牡哪繕?biāo)常常是公眾門戶或者社交門戶(比如微博),而不用擔(dān)心公司內(nèi)部平臺(tái)一些安全機(jī)制。
水坑攻擊在今年成了一個(gè)大新聞,幾個(gè)大的科技公司,包括Apple、Facebook、微軟以及其他的公司因?yàn)橐恍┏S玫拈_發(fā)者網(wǎng)站而淪陷。這些開發(fā)者網(wǎng)站被感染惡意的js代碼重定向,將惡意軟件(有些是0day)植入在開發(fā)者的電腦上,而這些開發(fā)者恰好又是員工,電腦常常接入外人進(jìn)不去的公司內(nèi)部網(wǎng)絡(luò)。
經(jīng)驗(yàn):讓員工們意識(shí)到一個(gè)受歡迎的”水坑”通常會(huì)是黑客的目標(biāo)。
No.7 誘餌替換
這是其中一個(gè)比較有趣的攻擊手段,叫做誘餌替換(譯者注:這個(gè)手段被用于各行各業(yè))。受害者看似是下載了一個(gè)很棒的軟件,其實(shí)它的內(nèi)容被替換成了惡意軟件,例子比比皆是。(譯者注:這個(gè)我深有體會(huì),你去下載站,你可以看到若干個(gè)“下載”,如果你真正很乖地去都點(diǎn)開,你會(huì)下到很多廣告流氓軟件)。
很常見的例子就是黑客在一些受歡迎的網(wǎng)站上面購買廣告位。當(dāng)網(wǎng)站確認(rèn)廣告的時(shí)候,這些廣告鏈接都是無害的,然后網(wǎng)站收了廣告費(fèi)批準(zhǔn)了廣告。這些壞家伙就把廣告鏈接替換成惡意鏈接。然后通常在訪問了惡意鏈接之后,它們還會(huì)檢測(cè)用戶點(diǎn)擊來源,天衣無縫地把它們指回到原來的廣告上去,并且惡意鏈接還可以隨時(shí)更新。
我見過的最有意思的誘餌替換就是那些壞家伙創(chuàng)造了一些實(shí)用的免費(fèi)內(nèi)容,任何人都可以用,然后這些免費(fèi)的東西都會(huì)包含一個(gè)許可條款:只要保留原文鏈接,就能保持免費(fèi)。不知情的人引用了之后保留這個(gè)原始鏈接(譯者注:這個(gè)攻擊在中國可能不會(huì)太奏效,因?yàn)闂l款可能不太符合中國國情,大家懂的)。通常原文鏈接也不會(huì)包含太多東西,一些圖像或者其他細(xì)碎的東西。不過在被上千次引用后,黑客會(huì)把原文鏈接的內(nèi)容替換成惡意內(nèi)容,比如js重定向。
經(jīng)驗(yàn):當(dāng)心那些不受你控制的內(nèi)容,因?yàn)樗鼈兛赡芊址昼娋吞鎿Q成了惡意內(nèi)容。