【WEB安全】常見WEB漏洞

    Web應用是指採用B/S架構、通過HTTP/HTTPS協議提供服務的統稱。隨著網際網路的廣泛使用,Web應用已經融入到日常生活中的各個方面:網上購物、網路銀行應用、證券股票交易、政府行政審批等等。在這些Web訪問中,大多數應用不是靜態的網頁瀏覽,而是涉及到伺服器側的動態處理。此時,如果Java、PHP、ASP等程式語言的程式設計人員的安全意識不足,對程式引數輸入等檢查不嚴格等,會導致Web應用安全問題層出不窮。

本文根據當前Web應用的安全情況,列舉了Web應用程式常見的攻擊原理及危害,並給出如何避免遭受Web攻擊的建議。  

Web應用漏洞原理

    Web應用攻擊是攻擊者通過瀏覽器或攻擊工具,在URL或者其它輸入區域(如表單等),向Web伺服器傳送特殊請求,從中發現Web應用程式存在的漏洞,從而進一步操縱和控制網站,檢視、修改未授權的資訊。

1.1 Web應用的漏洞分類

1、資訊洩露漏洞

      資訊洩露漏洞是由於Web伺服器或應用程式沒有正確處理一些特殊請求,洩露Web伺服器的一些敏感資訊,如使用者名稱、密碼、原始碼、伺服器資訊、配置資訊等。

造成資訊洩露主要有以下三種原因:

–Web伺服器配置存在問題,導致一些系統檔案或者配置檔案暴露在網際網路中;

–Web伺服器本身存在漏洞,在瀏覽器中輸入一些特殊的字元,可以訪問未授權的檔案或者動態指令碼檔案原始碼;

–Web網站的程式編寫存在問題,對使用者提交請求沒有進行適當的過濾,直接使用使用者提交上來的資料。

2、目錄遍歷漏洞

     目錄遍歷漏洞是攻擊者向Web伺服器傳送請求,通過在URL中或在有特殊意義的目錄中附加“../”、或者附加“../”的一些變形(如“..\”或“..//”甚至其編碼),導致攻擊者能夠訪問未授權的目錄,以及在Web伺服器的根目錄以外執行命令。

3、命令執行漏洞

      命令執行漏洞是通過URL發起請求,在Web伺服器端執行未授權的命令,獲取系統資訊,篡改系統配置,控制整個系統,使系統癱瘓等。

命令執行漏洞主要有兩種情況:

     –通過目錄遍歷漏洞,訪問系統資料夾,執行指定的系統命令;

    –攻擊者提交特殊的字元或者命令,Web程式沒有進行檢測或者繞過Web應用程式過濾,把使用者提交的請求作為指令進行解析,導致執行任意命令。

4、檔案包含漏洞

    檔案包含漏洞是由攻擊者向Web伺服器傳送請求時,在URL新增非法引數,Web伺服器端程式變數過濾不嚴,把非法的檔名作為引數處理。這些非法的檔名可以是伺服器本地的某個檔案,也可以是遠端的某個惡意檔案。由於這種漏洞是由PHP變數過濾不嚴導致的,所以只有基於PHP開發的Web應用程式才有可能存在檔案包含漏洞。

5、SQL隱碼攻擊漏洞

    SQL隱碼攻擊漏洞是由於Web應用程式沒有對使用者輸入資料的合法性進行判斷,攻擊者通過Web頁面的輸入區域(如URL、表單等) ,用精心構造的SQL語句插入特殊字元和指令,通過和資料庫互動獲得私密資訊或者篡改資料庫資訊。SQL隱碼攻擊在Web攻擊中非常流行,攻擊者可以利用SQL隱碼攻擊漏洞獲得管理員許可權,在網頁上加掛木馬和各種惡意程式,盜取企業和使用者敏感資訊。

6、跨站指令碼漏洞

    跨站指令碼漏洞是因為Web應用程式時沒有對使用者提交的語句和變數進行過濾或限制,攻擊者通過Web頁面的輸入區域向資料庫或HTML頁面中提交惡意程式碼,當使用者開啟有惡意程式碼的連結或頁面時,惡意程式碼通過瀏覽器自動執行,從而達到攻擊的目的。跨站指令碼漏洞危害很大,尤其是目前被廣泛使用的網路銀行,通過跨站指令碼漏洞攻擊者可以冒充受害者訪問使用者重要賬戶,盜竊企業重要資訊。

    根據前期各個漏洞研究機構的調查顯示,SQL隱碼攻擊漏洞和跨站指令碼漏洞的普遍程度排名前兩位,造成的危害也更加巨大。

1.2 SQL隱碼攻擊原理

    SQL隱碼攻擊是通過構造巧妙的SQL語句,同網頁提交的內容結合起來進行注入攻擊。比較常用的手段有使用註釋符號、恆等式(如1=1)、使用union語句進行聯合查詢、使用insert或update語句插入或修改資料等,此外還可以利用一些內建函式輔助攻擊。

通過SQL隱碼攻擊漏洞攻擊網站的步驟一般如下:

第一步:探測網站是否存在SQL隱碼攻擊漏洞。

第二步:探測後臺資料庫的型別。

第三步:根據後臺資料庫的型別,探測系統表的資訊。

第四步:探測存在的表資訊。

第五步:探測表中存在的列資訊。

第六步:探測表中的資料資訊。

1.3 跨站指令碼攻擊原理

    跨站指令碼攻擊的目的是盜走客戶端敏感資訊,冒充受害者訪問使用者的重要賬戶。跨站指令碼攻擊主要有以下三種形式: 

1、本地跨站指令碼攻擊

    B給A傳送一個惡意構造的Web URL,A點選檢視了這個URL,並將該頁面儲存到本地硬碟(或B構造的網頁中存在這樣的功能)。A在本地執行該網頁,網頁中嵌入的惡意指令碼可以A電腦上執行A持有的許可權下的所有命令。

2、反射跨站指令碼攻擊

    A經常瀏覽某個網站,此網站為B所擁有。A使用使用者名稱/密碼登入B網站,B網站儲存下A的敏感資訊(如銀行帳戶資訊等)。C發現B的站點包含反射跨站指令碼漏洞,編寫一個利用漏洞的URL,域名為B網站,在URL後面嵌入了惡意指令碼(如獲取A的cookie檔案),並通過郵件或社會工程學等方式欺騙A訪問存在惡意的URL。當A使用C提供的URL訪問B網站時,由於B網站存在反射跨站指令碼漏洞,嵌入到URL中的惡意指令碼通過Web伺服器返回給A,並在A瀏覽器中執行,A的敏感資訊在完全不知情的情況下將傳送給了C。

3、持久跨站指令碼攻擊

    B擁有一個Web站點,該站點允許使用者釋出和瀏覽已釋出的資訊。C注意到B的站點具有持久跨站指令碼漏洞,C釋出一個熱點資訊,吸引使用者閱讀。A一旦瀏覽該資訊,其會話cookies或者其它資訊將被C盜走。永續性跨站指令碼攻擊一般出現在論壇、留言簿等網頁,攻擊者通過留言,將攻擊資料寫入伺服器資料庫中,瀏覽該留言的使用者的資訊都會被洩漏。

Web應用漏洞的防禦實現

對於以上常見的Web應用漏洞漏洞,可以從如下幾個方面入手進行防禦:

    1)對 Web應用開發者而言

    大部分Web應用常見漏洞,都是在Web應用開發中,開發者沒有對使用者輸入的引數進行檢測或者檢測不嚴格造成的。所以,Web應用開發者應該樹立很強的安全意識,開發中編寫安全程式碼;對使用者提交的URL、查詢關鍵字、HTTP頭、POST資料等進行嚴格的檢測和限制,只接受一定長度範圍內、採用適當格式及編碼的字元,阻塞、過濾或者忽略其它的任何字元。通過編寫安全的Web應用程式碼,可以消除絕大部分的Web應用安全問題。

    2) 對Web網站管理員而言

    作為負責網站日常維護管理工作Web管理員,應該及時跟蹤並安裝最新的、支撐Web網站執行的各種軟體的安全補丁,確保攻擊者無法通過軟體漏洞對網站進行攻擊。

除了軟體本身的漏洞外,Web伺服器、資料庫等不正確的配置也可能導致Web應用安全問題。Web網站管理員應該對網站各種軟體配置進行仔細檢測,降低安全問題的出現可能。

此外,Web管理員還應該定期審計Web伺服器日誌,檢測是否存在異常訪問,及早發現潛在的安全問題。

    3)使用網路防攻擊裝置

    前兩種為事前預防方式,是比較理想化的情況。然而在現實中,Web應用系統的漏洞還是不可避免的存在:部分Web網站已經存在大量的安全漏洞,而Web開發者和網站管理員並沒有意識到或發現這些安全漏洞。由於Web應用是採用HTTP協議,普通的防火牆裝置無法對Web類攻擊進行防禦,因此可以使用IPS入侵防禦裝置來實現安全防護。

H3C IPS Web攻擊防禦

    H3C IPS入侵防禦裝置有一套完整的Web攻擊防禦框架,能夠及時發現各種已經暴露的和潛在的Web攻擊。下圖為對於Web攻擊的總體防禦框架。

 圖1:Web攻擊防禦框架

    H3C IPS採用基於特徵識別的方式識別並阻斷各種攻擊。IPS裝置有一個完整的特徵庫,並可定期以手工與自動的方式對特徵庫進行升級。當網路流量進入IPS後,IPS首先對報文進行預處理,檢測報文是否正確,即滿足協議定義要求,沒有錯誤欄位;如果報文正確,則進入深度檢測引擎。該引擎是IPS檢測的核心模組,對通過IPS裝置的Web流量進行深層次的分析,並與IPS攻擊庫中的特徵進行匹配,檢測Web流量是否存在異常;如果發現流量匹配了攻擊特徵,IPS則阻斷網路流量並上報日誌;否則,網路流量順利通過。

    此Web攻擊防禦框架有如下幾個特點:

    1) 構造完整的Web攻擊檢測模型,準確識別各種Web攻擊

    針對Web攻擊的特點,考慮到各種Web攻擊的原理和形態,在不同漏洞模型之上開發出通用的、層次化的Web攻擊檢測模型,並融合到特徵庫中。這些模型抽象出Web攻擊的一般形態,對主流的攻擊能夠準確識別,使得模型通用化。

    2) 檢測方式靈活,可以準確識別變形的Web攻擊

    在實際攻擊中,攻擊者為了逃避防攻擊裝置的檢測,經常對Web攻擊進行變形,如採用URL編碼技術、修改引數等。H3C根據Web應用漏洞發生的原理、攻擊方式和攻擊目標,對攻擊特徵進行了擴充套件。即使攻擊者修改攻擊引數、格式、語句等內容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得IPS的防禦範圍擴大,防禦的靈活性也顯著增強,極大的減少了漏報情況的出現。

    3) 確保對最新漏洞及技術的跟蹤,有效阻止最新的攻擊

    隨著Web攻擊出現的頻率日益增高,其危害有逐步擴充套件的趨勢。這對IPS裝置在防禦的深度和廣度上提出了更高的要求,不僅要能夠防禦已有的Web攻擊,更要有效的阻止最新出現的、未公佈的攻擊。目前,H3C已經建立起一套完整的攻防試驗環境,可以及時發現潛在Web安全漏洞。同時還在繼續跟蹤最新的Web攻擊技術和工具,及時更新Web攻擊的特徵庫,第一時間釋出最新的Web漏洞應對措施,確保使用者的網路不受到攻擊。

    4) 保證正常業務的高效執行

    檢測引擎是IPS整個裝置執行的關鍵,該引擎使用了高效、準確的檢測演算法,對通過裝置的流量進行深層次的分析,並通過和攻擊特徵進行匹配,檢測流量是否存在異常。如果流量沒有匹配到攻擊特徵,則允許流量通過,不會妨礙正常的網路業務,在準確防禦的同時保證了正常業務的高效執行。

結束語

    網際網路和Web技術廣泛使用,使Web應用安全所面臨的挑戰日益嚴峻,Web系統時時刻刻都在遭受各種攻擊的威脅,在這種情況下,需要制定一個完整的Web攻擊防禦解決方案,通過安全的Web應用程式、Web伺服器軟體、Web防攻擊裝置共同配合,確保整個網站的安全。任何一個簡單的漏洞、疏忽都會造成整個網站受到攻擊,造成巨大損失。此外 ,Web攻擊防禦是一個長期持續的工作,隨著Web技術的發展和更新,Web攻擊手段也不斷髮展,針對這些最新的安全威脅,需要及時調整Web安全防護策略,確保Web攻擊防禦的主動性,使Web網站在一個安全的環境中為企業和客戶服務。