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