劉建亮 喬興華
(航空工業(yè)沈陽飛機工業(yè)(集團)有限公司,遼寧 沈陽110000)
在生活中有很多需要使用到腳本技術的時候,給人們的工作以及生活帶來了一定的便利。但是,在便利的背后卻隱藏著巨大的安全隱患,使多數網頁系統(tǒng)中都含有跨站腳本漏洞,給攻擊者實施跨站腳本攻擊的機會。根據相關調查數據顯示,跨站腳本攻擊屬于應用風險最高的網絡漏洞之一,已經成為目前網絡安全管理中的重要內容之一。隨著網絡技術的快速普及,很多政府部門以及事業(yè)單位都開始使用網上信息系統(tǒng),使工作以及信息傳遞變得更加及時、高效。如果攻擊者利用跨站腳本對網站進行攻擊,會使網站丟失大量的數據和信息。因此,需要多吸納相關的專業(yè)人才,對網絡系統(tǒng)進行定時的維護和檢查,做好跨站腳本攻擊的防范。
跨站腳本攻擊一種惡意危害網絡環(huán)境的行為,是指攻擊者使用正常登錄的身份來登錄網站,并利用該網站出現的漏洞來對目標服務器進行攻擊[1]。在攻擊過程中,攻擊者會利用漏洞輸入惡意的程序代碼,如果網站并沒有對上傳信息進行嚴格檢驗,那么當有其他用戶訪問這一網站或者頁面的時候,瀏覽器會在后臺自動加載代碼,并按照這段代碼進行運行,最終完成對目標的跨站腳本攻擊。由此可見,跨站腳本攻擊屬于一種間接攻擊,與SQL 注入攻擊這一類直接攻擊的方法是不同的。跨站腳本攻擊會利用服務器的漏洞來攻擊用戶,這也是跨站腳本攻擊中“站”的含義,這給登錄網站用戶的安全和隱私造成了嚴重的威脅。
跨站腳本攻擊是以為網站的漏洞為基礎的,而跨站腳本攻擊觸發(fā)這些漏洞的機制主要分為以下三個類型:第一,利用超文本標記語言所攜帶的標簽屬性進行觸發(fā),例如當超文本標記語言的標簽屬性為img 時就可能會觸發(fā)跨站腳本漏洞;第二,利用超文本標記語言事件進行觸發(fā)。超文本標記語言是一種特殊的帶有標識性的語言,其中會被定義多種事件,例如鼠標事件或者鍵盤事件,當這些事件被觸發(fā)之后很有可能會給跨站腳本攻擊帶來機會;第三,當攻擊者直接在網站中輸入相應的腳本標記之后,就會直接觸發(fā)跨站腳本漏洞,威脅到用戶的信息和數據安全[2]。
跨站腳本攻擊的攻擊主要有兩種攻擊模式:第一,是Reflection 跨站腳本攻擊,在這種攻擊模式下,攻擊者是對攻擊用戶實施誘騙來讓攻擊用戶點擊鏈接,進而對用戶進行攻擊。當被攻擊的用戶在正常情況下登錄網站之后,在登錄過程中所產生的小型文本文件會含有一些會話的標識內容。在被攻擊用戶登錄完成之后,攻擊者會向用戶發(fā)送鏈接,進而誘導被攻擊用戶進行點擊。如果被攻擊用戶點擊這一鏈接之后,攻擊者所編寫的跨站腳本會變成一種請求參數,進而被上傳到帶有跨站腳本漏洞的網頁服務器之中。由于服務器無法正常識別這種信息,會將其當做簡單的文本進行返回,當被攻擊用戶的瀏覽器將攻擊者所編寫的跨站腳本進行執(zhí)行操作后,被攻擊者的信息就會傳到攻擊者手中,使攻擊者完成信息盜取[3]。第二,是Stored跨站腳本攻擊,這是一種與上述第一種跨站腳本攻擊類型有很大不同的攻擊形式。在實施這種攻擊類型之后,攻擊者需要向網頁提交兩次請求,第一主要是構造跨站腳本,將其發(fā)送至網頁的服務器之上進行保存,第二次是攻擊者將自己偽裝成為被攻擊者發(fā)送請求,使被攻擊者所使用的瀏覽器能夠執(zhí)行這些腳本。這一種攻擊模式也是在被攻擊用戶登錄網站之后,讓用戶自主瀏覽帶有腳本攻擊內容的頁面,網站將這一頁面內容返回給被攻擊的用戶之后,被攻擊代表用戶就會進行自動加載跨站腳本攻擊中的代碼,將被攻擊的用戶的信息傳送給攻擊者。
攻擊效果主要有以下三種:第一,會讓攻擊者竊取到小型的文本文件,這種攻擊模式的主要目標就是盜取網頁中的小型文本信息,進而從這些信息中提取相應的用戶的隱私信息。第二,對被攻擊者進行釣魚攻擊,是由跨站腳本攻擊的實施者構造一個假的網頁頁面或者與原有的網頁地址相同的鏈接,使被攻擊者在誘騙下點擊鏈接[4]。第三,是一種在網絡蠕蟲基礎上所實施的跨站腳本攻擊,這種攻擊模式中包含著發(fā)現漏洞、蠕蟲傳播、蠕蟲控制以及蠕蟲攻擊這四個攻擊階段。這種攻擊效果比前兩種要更強,能夠直接對網頁本身造成攻擊,在一定程度上擴大了跨站腳本攻擊的范圍,增加了網頁中的安全問題。面對不斷提高的跨站腳本攻擊技術,相關網頁或者網絡的安全管理人員,也需要不斷的研發(fā)防范措施,保證能夠給用戶提供良好的、安全的網絡環(huán)境。
跨站腳本攻擊作為一種危害網站以及用戶的攻擊手段,需要從網站以及用戶兩處端口進行防范,最大程度的降低跨站腳本攻擊的出現可能性,給用戶的網絡使用帶來重要的保障。跨站腳本攻擊是利用用戶在網站中的活動來進行攻擊的,因此首先需要使網頁中的程序代碼編寫變得更加規(guī)范,減少跨站腳本漏洞的出現,不再給攻擊者能夠實施跨站腳本攻擊的機會[5]。在編寫網頁程序中的代碼時,需要將用戶所提交信息中的個別字符進行過濾,對跨站腳本攻擊中經常使用的字符進行嚴查。在使用這種方式時,需要注意到超文本標識語言所攜帶的標簽,不斷的更新用戶所不合規(guī)則的編碼,利用單引號、大于號、小于號等。其次,當網頁接受到用戶請求之后需要對用戶進行反饋,在反饋的過程中需要再次檢查用戶提交數據中的信息,將用戶所輸入的一些較為敏感的字符進行替換,例如,>屬于一種特殊的編碼,在這種情況下可以使用十進制編碼來進行替換。最終,對用戶能夠輸入的字符長度進行限制,降低用戶使用跨站腳本攻擊的幾率。
在用戶端進行防范時,首先需要用戶在主觀上有一定的防范意識,不要亂點網頁中的提示鏈接,特別時在瀏覽網頁文章的過程中,不能隨意點進鏈接。其次,可以提高自己所使用的瀏覽器的安全等級,將瀏覽器設置為禁止跨站腳本運行,對網頁的權限進行限制。用戶也需要及時對瀏覽器進行更新,提升瀏覽器的防范功能。最后,在電腦中安裝防病毒的軟件,如防火墻系統(tǒng),利用這些軟件來阻擋跨站腳本攻擊[6]。
隨著各種網絡技術以及軟件的應用,導致跨站腳本攻擊的危害性也被擴大,攻擊的后果也逐漸增大。跨站腳本攻擊主要是一種利用原本網頁中的代碼漏洞進而攻擊網站以及數據庫的手段,對網絡健康造成了一定的威脅。這種跨站腳本攻擊方式不僅可以對網頁中的數據進行盜取,同時還可能會危害到登錄網站的用戶的安全。個別用戶在使用被攻擊的網站時,會自動加載攻擊者所上傳的腳本代碼,進而獲取到用戶的信息。面對這種跨站腳本攻擊,需要通過在客戶端以及用戶端兩處進行防范,加大對跨站腳本攻擊的防范力度,保證信息的安全性,凈化網絡環(huán)境。