Nick Lewis(CISSP,GCWN))是一名信息安全分析師。他主要負責風險管理項目,并支持該項目的技術PCI法規遵從計劃。2002年,Nick獲得密歇根州立大學的電信理學碩士學位;2005年,又獲得Norwich大學的信息安全保障理學碩士學位。在他09年加入目前的組織之前,Nick曾在波士頓兒童醫院、哈佛醫學院初級兒科教學醫院,以及Internet2和密歇根州立大學工作。
問:我聽到了很多關于PHP應用程序的漏洞以及攻擊者如何利用PHP超全局變量來執行Web攻擊的消息。您能否解釋一下什么是PHP超全局變量及其帶來的風險?
答:首先,我們來看一點背景知識:超文本預處理器已經存在超過10年,它是迄今為止最重要的web應用程序編程語言。它的最初設計考慮了功能與易用性。然而,雖然PHP已經使用了這么多年,但它有著“劣跡斑斑”的安全漏洞記錄。研究人員甚至創建了HardenedPHP項目來幫助企業保護應用程序和網頁。
雖然我們已經發現并修復了很多PHP漏洞,但很多這些漏洞給許多常用web應用程序帶來威脅,并需要web應用程序開發人員能夠使用最新版本的PHP.其他編程語言(例如微軟的Active Server Pages或者ASP)沒有這些類型的漏洞,因而不需要開發人員或系統管理人員總是使用最新版本的語言來保持應用程序的安全性,減少了升級和培訓的需求,從而降低了開發成本。無論使用什么編程語言,我們仍然需要使用安全開發實踐。
在2000年8月,PHP超全局變量被引入來禁用PHPregister global功能--因為它造成了PHP和web應用程序的重大安全問題。PHP超全局變量是PHP腳本中可用的內置變量,它可以存儲數據,這些數據可以在整個腳本中使用。因為不安全的設計,這個棄用的功能廣泛地被攻擊者濫用。
應用程序安全供應商Imperva在其報告中描述了超全局變量帶來的風險。其中一個風險是,超全局變量可能被輸入惡意數據,隨后這些數據可能被攻擊者以不安全的方式被利用。
兩個關鍵信息是,正如Imperva所指出,對于任何PHP應用程序,沒有什么理由來提供超全局參數,要求應用程序提供這些參數的請求應該被阻止。為此,檢查以確保你的web應用程序防火墻部署了規則來自動阻止這些請求,當這種事情發生時,應該發出警報,因為這很可能是有針對性攻擊的標志。