【摘要】隨著“互聯(lián)網(wǎng)+”時代的到來,互聯(lián)網(wǎng)在人們生活中扮演著越來越重要的角色?;ヂ?lián)網(wǎng)滲透到人們的生活的同時,隨之而來的是頻頻發(fā)生的網(wǎng)絡(luò)安全問題。因此,網(wǎng)絡(luò)安全問題日趨重要。面對高發(fā)的網(wǎng)絡(luò)安全問題,如何有效的減少Web應(yīng)用程序中的各種漏洞以及當非法用戶對Web應(yīng)用程序進行攻擊時,系統(tǒng)應(yīng)做出怎樣的反攻擊用以確保Web應(yīng)用程序能夠正常運行。
【關(guān)鍵詞】網(wǎng)絡(luò)安全;Web漏洞;防御機制;滲透測試
一、前言
隨著網(wǎng)上購物、網(wǎng)上支付的普遍化,我們卻面臨著各種各樣的網(wǎng)絡(luò)安全威脅。計算機病毒、網(wǎng)絡(luò)詐騙、數(shù)據(jù)丟失和隱私泄露等問題在時時刻刻地困擾著我們。信用卡、銀行卡顯然對黑客有著極大的誘惑力,不斷出現(xiàn)非法信用卡交易網(wǎng)站對盜來的信用卡通過論壇、用戶反饋和賣家評價等進行交易。我們的個人信息、各種密碼、電話號碼、電子郵件賬戶等在無意間就被泄露出去,這給我們的生活帶來了極大的困擾。于是構(gòu)建一個良好的網(wǎng)絡(luò)環(huán)境,對于病毒和系統(tǒng)漏洞做好安全防范以及及時查殺病毒和修復(fù)漏洞就顯得尤為重要。為了避免計算機網(wǎng)絡(luò)遭遇惡意軟件、病毒和黑客攻擊,就必須要做好計算機網(wǎng)絡(luò)安全維護和防護。
二、Web應(yīng)用程序的安全現(xiàn)狀的分析
互聯(lián)網(wǎng)發(fā)展的早期是由Web站點構(gòu)成的,這些站點中大多存儲的是靜態(tài)文本。Web瀏覽器出現(xiàn)之后,用Web瀏覽器來檢索、顯示儲存在Web站點中的文檔。早期的互聯(lián)網(wǎng)發(fā)展模式中,信息的流向只是服務(wù)器向瀏覽器的單方向傳送。大多數(shù)站點對所有用戶同等對待,提供同樣的服務(wù)與信息,而且不驗證使用該站點的用戶是否合法。網(wǎng)絡(luò)安全隱患主要與Web服務(wù)器中軟件的漏洞有關(guān)。因此,非法用戶通過修改服務(wù)器上的文件,篡改Web站點存儲的靜態(tài)文本,用來傳播非法的信息;或者利用服務(wù)器的存儲容量和帶寬搭載非法軟件,對非法軟件進行傳播?;ヂ?lián)網(wǎng)發(fā)展到今天已經(jīng)發(fā)生了很大的變化,如今Web上的大多數(shù)站點實際上是應(yīng)用程序。這些應(yīng)用程序功能強大,不僅有注冊、登錄、金融交易、搜索等功能,而且能夠在瀏覽器與服務(wù)器之間進行雙向信息傳遞。用戶通過瀏覽器獲取的信息以動態(tài)形式生成,而且通常能夠滿足各用戶的特殊需求。其中,處理的許多信息屬于私密和高度敏感的信息。雖然Web應(yīng)用程序在不斷地發(fā)展,但新的安全隱患也隨之產(chǎn)生。安全漏洞隨著應(yīng)用程序不同而有所差異。很多應(yīng)用程序的開發(fā)人員對他們自己編寫的代碼中潛在安全隱患也不是很清楚。通常Web應(yīng)用程序要與相應(yīng)的存儲著私密數(shù)據(jù)的數(shù)據(jù)庫建立連接的,一旦非法用戶發(fā)現(xiàn)并利用應(yīng)用程序中的漏洞,將會引起很多的安全問題。試想,如果Web應(yīng)用程序會將用戶的信息泄露給任一利用“特殊技術(shù)”的非法訪問者,用戶將會使用該Web應(yīng)用程序嗎?
三、網(wǎng)絡(luò)安全常見問題
常見的Web網(wǎng)絡(luò)安全問題主要有:注入攻擊和跨站腳本攻擊、跨站請求偽造、不完善的身份驗證措施等漏洞。
1、注入攻擊和跨站腳本攻擊。注入攻擊有很多形式,包括SQL注入、HTML注入、操作系統(tǒng)、電子郵件和LDAP注入等。攻擊者利用這些漏洞在使用網(wǎng)絡(luò)訪問的同時,將一些非法數(shù)據(jù)“悄無聲息”地發(fā)送給要攻擊的網(wǎng)站,這些非法數(shù)據(jù)能讓應(yīng)用程序執(zhí)行一些特殊命令或訪問一些敏感數(shù)據(jù)。下面重點介紹SQL注入。
所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串中去,最終達到欺騙服務(wù)器執(zhí)行惡意的SQL命令的一種入侵方式。比如,曾經(jīng)有很多影視網(wǎng)站泄露VIP會員密碼大多就是通過Web表單遞交查詢字符暴露出的,這類表單特別容易受到SQL注入式攻擊。
跨站腳本(XSS)攻擊會將客戶端腳本代碼(如JavaScript)注入到Web應(yīng)用的輸出中,從而攻擊應(yīng)用的用戶。只要訪問受攻擊的輸出或頁面,瀏覽器就會執(zhí)行代碼,讓攻擊者劫持用戶會話,將用戶重定向到一個惡意站點或者破壞網(wǎng)頁顯示效果。XSS攻擊很可能出現(xiàn)在動態(tài)生成的頁面內(nèi)容中,通常應(yīng)用會接受用戶提供的數(shù)據(jù)而沒有正確驗證或轉(zhuǎn)碼。
2、跨站請求偽造(CSRF):利用這種漏洞,攻擊者可以誘使用戶在無意中使用自己的用戶權(quán)限對應(yīng)用程序執(zhí)行操作。惡意Web站點可以利用該漏洞,通過受害用戶與應(yīng)用程序進行交互,執(zhí)行用戶并不打算執(zhí)行的操作。如果應(yīng)用程序完全依賴HTTP cookie傳送會話令牌,它很容易受到跨站請求偽造攻擊。
3、不完善的身份驗證措施:這類漏洞包括應(yīng)用程序登錄機制中的各種缺陷,可能會使攻擊者破解保密性不強的密碼、發(fā)動蠻力攻擊或完全避開登錄。
4、如何有效地應(yīng)對網(wǎng)絡(luò)安全問題。針對Web應(yīng)用程序所受到的某種形式的攻擊,防御者應(yīng)采取相應(yīng)的安全機制來應(yīng)對攻擊者發(fā)起的攻擊。針對注入攻擊和跨站腳本攻擊、跨站請求偽造、不完善的身份驗證措施這些漏洞,以下是應(yīng)用程序應(yīng)對惡意用戶所采取的一些主要防御機制。
(1)注入攻擊和跨站腳本攻擊:為了防御注入攻擊和XSS攻擊,應(yīng)用程序應(yīng)該設(shè)置為在不清楚數(shù)據(jù)的安全性的情況下,默認所有數(shù)據(jù)——無論是來自表單、URL、Cookie或應(yīng)用的數(shù)據(jù)庫,都是不可信來源。要檢查所有處理用戶提供數(shù)據(jù)的代碼,保證它是有效的。驗證函數(shù)需要清理所有可能有惡意作用的字符或字符串,然后再將它傳給腳本和數(shù)據(jù)庫。要檢查輸入數(shù)據(jù)的類型、長度、格式和范圍。此外,一定要檢查所有從客戶端接受的值,進行過濾和編碼,然后再傳回給用戶。
(2)防止CSFR漏洞:防范CSRF攻擊的標準方法,是將HTTP cookie與其他追蹤令牌的方法相結(jié)合。這類方法通常采用其他通過HTTP隱藏表單字段傳輸?shù)牧钆啤T诿看翁峤徽埱髸r,應(yīng)用程序除確認會話cookie外,還核實表單是否傳送了正確的令牌。如果攻擊者無法確定該令牌的值,就無法構(gòu)建跨領(lǐng)域請求,也就無法執(zhí)行所需的操作。
(3)為了發(fā)現(xiàn)身份驗證問題,網(wǎng)站維護過程中,要執(zhí)行代碼檢查和滲透測試。可以使用自動化代碼和漏洞掃描程序,發(fā)現(xiàn)潛在的安全問題。有一些地方通常需要特別注意,其中包括會話身份標識的處理方式和用戶修改用戶身份信息的方法。
網(wǎng)絡(luò)安全隱患無處不在,用戶應(yīng)掌握防范間諜軟件、木馬程序和病毒的有效方法,安裝高效的防毒殺毒程序,建立系統(tǒng)化的安全防御機制,做好上網(wǎng)時的安全防御和監(jiān)控。
四、結(jié)語
大約將近20年的時間互聯(lián)網(wǎng)已經(jīng)由靜態(tài)信息倉庫發(fā)展為功能強大的應(yīng)用程序,能夠處理敏感的數(shù)據(jù)并執(zhí)行用于輸出實際結(jié)果的高度功能化的應(yīng)用程序。在這個發(fā)展過程中,多種因素造成了當前絕大多數(shù)Web應(yīng)用程序所面臨的安全保護不足的狀況。任何情況下,如果一個應(yīng)用程序必須接受并處理可能為惡意的未經(jīng)驗證的數(shù)據(jù),就會產(chǎn)生Web應(yīng)用程序面臨的核心問題,即用戶可以提交任意輸入。當前Web應(yīng)用程序安全狀況的所有證據(jù)表明,這個問題尚未得到很好的解決,而且不管是對部署Web應(yīng)用程序的組織還是訪問他們的用戶而言,針對Web應(yīng)用程序的攻擊都是一個嚴重的威脅。
【參考文獻】
[1] 鐘晨鳴, 徐少培, 著. Web前端黑客技術(shù)揭秘[M]. 北京:電子工業(yè)出版社, 2013.1.
[2] 風云工作室, 編著. 黑客攻防實戰(zhàn)從入門到精通[M]. 北京:化學工業(yè)出版社, 2015.10.
[3] 吳長坤, 著. 黑客攻防入門與實戰(zhàn)[M]. 北京:企業(yè)管理出版社, 2010.5.
【作者簡介】
周金萍(1992—),女,河南漯河人,蘭州市榆中縣西北民族大學軟件工程專業(yè)本科生。