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網站的程序編寫存在問題,對用戶提交請求沒有進行適當的過濾,直接使用用戶提交上來的數據。
,阿里云官活動網址: 可以用20代金券,即102-20=82。
2、目錄遍歷漏洞
目錄遍歷漏洞是攻擊者向Web服務器發送請求,通過在URL中或在有特殊意義的目錄中附加“../”、或者附加“../”的一些變形(如“..”或“..//”甚至其編碼),導致攻擊者能夠訪問未授權的目錄,以及在Web服務器的根目錄以外執行命令。
3、命令執行漏洞
命令執行漏洞是通過URL發起請求,在Web服務器端執行未授權的命令,獲取系統信息,篡改系統配置,控制整個系統,使系統癱瘓等。
命令執行漏洞主要有兩種情況:
通過目錄遍歷漏洞有沒有惡意url庫,訪問系統文件夾,執行指定的系統命令;
攻擊者提交特殊的字符或者命令,Web程序沒有進行檢測或者繞過Web應用程序過濾,把用戶提交的請求作為指令進行解析有沒有惡意url庫,導致執行任意命令。
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語句進行聯合查詢、使用或語句插入或修改數據等,此外還可以利用一些內置函數輔助攻擊。
通過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的文件),并通過郵件或社會工程學等方式欺騙A訪問存在惡意的URL。當A使用C提供的URL訪問B網站時,由于B網站存在反射跨站腳本漏洞,嵌入到URL中的惡意腳本通過Web服務器返回給A,并在A瀏覽器中執行,A的敏感信息在完全不知情的情況下將發送給了C。
3、持久跨站腳本攻擊
B擁有一個Web站點,該站點允許用戶發布和瀏覽已發布的信息。C注意到B的站點具有持久跨站腳本漏洞,C發布一個熱點信息,吸引用戶閱讀。A一旦瀏覽該信息,其會話或者其它信息將被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整個設備運行的關鍵,該引擎使用了高效、準確的檢測算法,對通過設備的流量進行深層次的分析,并通過和攻擊特征進行匹配,檢測流量是否存在異常。如果流量沒有匹配到攻擊特征,則允許流量通過,不會妨礙正常的網絡業務,在準確防御的同時保證了正常業務的高效運行。