市場背景
在Internet大眾化及Web技術飛速演變的今天,線上安全所面臨的挑戰日益嚴峻。伴隨著線上信息和服務的可用性的提升,以及基子Web的攻擊和破壞的增長,安全風險達到了前所未有的高度。由於眾多安全工作集中在網路本身上面,Web應用程式幾乎被遺忘了。也許這是因為應用程式過去常常是在一台計算機上運行的獨立 程式,如果這台計算機安全的話,那么應用程式就是安全的。如今,情況大不一樣了,Web應用程式在多種不同的機器上運行:客戶端、Web伺服器、資料庫伺服器和套用伺服器。而且,因為他們一般可以讓所有的人使用,所以這些應用程式成為了眾多攻擊活動的後台旁路。
由於Web伺服器提供了幾種不同的方式將請求轉發給套用伺服器,並將修改過的或新的網頁發回給最終用戶,這使得非法闖入網路變得更加容易。
而且,許多程式設計師不知道如何開發安全的應用程式。他們的經驗也許是開發獨立應用程式或Intranet Web應用程式,這些應用程式沒有考慮到在安全缺陷被利用時可能會出現災難性後果。
其次,許多Web應用程式容易受到通過伺服器、應用程式和內部已開發的代碼進行的攻擊。這些攻擊行動直接通過了周邊防火牆安全措施,因為連線埠80或443(SSL,安全套接字協定層)必須開放,以便讓應用程式正常運行。Web應用程式攻擊包括對應用程式本身的DoS(拒絕服務)攻擊、改變網頁內容以及盜走企業的關鍵信息或用戶信息等。
常見漏洞
常見的Web套用安全漏洞
下面將列出一系列通常會出現的安全漏洞,並且簡單解釋一下這些漏洞是如何產生的。
已知弱點和錯誤配置
已知弱點包括Web套用使用的作業系統和第三方應用程式中的所有程式錯誤或者可以被利用的漏洞。這個問題也涉及到錯誤配置,包含有不安全的默認設定或管理員沒有進行安全配置的應用程式。一個很好的例子就是你的Web伺服器被配置成可以讓任何用戶從系統上的任何目錄路徑通過,這樣可能會導致泄露存儲在Web伺服器上的一些敏感信息,如口令、原始碼或客戶信息等。
隱藏欄位
在許多套用中,隱藏的HTML格式欄位被用來保存系統口令或商品價格。儘管其名稱如此,但這些欄位並不是很隱蔽的,任何在網頁上執行“查看原始碼”的人都能看見。許多Web套用允許惡意的用戶修改HTML源檔案中的這些欄位,為他們提供了以極小成本或無需成本購買商品的機會。這些攻擊行動之所以成功,是因為大多數套用沒有對返回網頁進行驗證;相反,它們認為輸入數據和輸出數據是一樣的。
後門和調試漏洞
開發人員常常建立一些後門並依靠調試來排除應用程式的故障。在開發過程中這樣做可以,但這些安全漏洞經常被留在一些放在Internet上的最終套用中。一些常見的後門使用戶不用口令就可以登錄或者訪問允許直接進行套用配置的特殊URL。
跨站點腳本編寫
一般來說,跨站點編寫腳本是將代碼插入由另一個源傳送的網頁之中的過程。利用跨站點編寫腳本的一種方式是通過HTML格式,將信息帖到公告牌上就是跨站點腳本編寫的一個很好範例。惡意的用戶會在公告牌上帖上包含有惡意的JavaScript代碼的信息。當用戶查看這個公告牌時,伺服器就會傳送HTML與這個惡意的用戶代碼一起顯示。客戶端的瀏覽器會執行該代碼,因為它認為這是來自Web伺服器的有效代碼。
參數篡改
參數篡改包括操縱URL字元串,以檢索用戶以其他方式得不到的信息。訪問Web套用的後端資料庫是通過常常包含在URL中的SQL調用來進行的。惡意的用戶可以操縱SQL代碼,以便將來有可能檢索一份包含所有用戶、口令、信用卡號的清單或者儲存在資料庫中的任何其他數據。
更改cookie
更改cookie指的是修改存儲在cookie中的數據。網站常常將一些包括用戶ID、口令、帳號等的cookie存儲到用戶系統上。通過改變這些值,惡意的用戶就可以訪問不屬於他們的帳戶。攻擊者也可以竊取用戶的cookie並訪問用戶的帳戶,而不必輸入ID和口令或進行其他驗證。
輸入信息控制
輸入信息檢查包括能夠通過控制由CGI腳本處理的HTML格式中的輸入信息來運行系統命令。例如,使用CGI腳本向另一個用戶傳送信息的形式可以被攻擊者控制來將伺服器的口令檔案郵寄給惡意的用戶或者刪除系統上的所有檔案。
緩衝區溢出
緩衝區溢出是惡意的用戶向伺服器傳送大量數據以使系統癱瘓的典型攻擊手段。該系統包括存儲這些數據的預置緩衝區。如果所收到的數據量大於緩衝區,則部分數據就會溢出到堆疊中。如果這些數據是代碼,系統隨後就會執行溢出到堆疊上的任何代碼。Web套用緩衝區溢出攻擊的典型例子也涉及到HTML檔案。如果HTML檔案上的一個欄位中的數據足夠的大,它就能創造一個緩衝器溢出條件。
直接訪問瀏覽
直接訪問瀏覽指直接訪問應該需要驗證的網頁。沒有正確配置的Web應用程式可以讓惡意的用戶直接訪問包括有敏感信息的URL或者使提供收費網頁的公司喪失收入。
Web套用安全兩步走
Web套用攻擊能夠給企業的財產、資源和聲譽造成重大破壞。雖然Web套用增加了企業受攻擊的危險,但有許多方法可以幫助減輕這一危險。首先,必須教育開發人員了解安全編碼方法。僅此項步驟就會消除大部分Web套用的安全問題。其次,堅持跟上所有廠商的最新安全補丁程式。如果不對已知的缺陷進行修補,和特洛伊木馬一樣,攻擊者就能很容易地利用你的Web應用程式穿過防火牆訪問Web伺服器、資料庫伺服器、套用伺服器等等。將這兩項步驟結合起來,就會大大減少Web套用受到攻擊的風險。同時管理人員必須採取嚴格措施,以保證不讓任何東西從這些漏洞中溜過去。