Apache HTTP Web服務(wù)器保持安全的秘訣
Apache HTTP服務(wù)器是世界上最常見的Web服務(wù)器軟件,這點(diǎn)是明擺著的。據(jù)最近一項(xiàng)調(diào)查顯示,全世界運(yùn)行Apache HTTP的網(wǎng)站數(shù)量超過4.2億個(gè)。鑒于數(shù)字如此驚人,我們自然很好奇地想了解Apache背后的更多詳情。
我們Pingdom網(wǎng)站的人員都是Apache HTTP Web服務(wù)器的擁躉,因?yàn)槲覀冇盟鼇磉\(yùn)行我們的主網(wǎng)站Pingdom.com。所以我們逮住機(jī)會、興致勃勃地采訪William A. Rowe Jr。也就不足為奇了,前不久他還在完全志愿者組成的Apache軟件基金會擔(dān)任HTTP服務(wù)器項(xiàng)目副總裁一職。他在近12年一直效力于Apache軟件基金會,擔(dān)任過不同崗位,包括2007年至2009年任職基金會董事。
一種錯誤的想法:開源不大安全
首先,我們向Bill(注:William的昵稱)拋出了人們通常所持的這個(gè)想法:由于在Apache HTTP服務(wù)器等開源項(xiàng)目中,源代碼向公眾開放,所以這意味著開源不大安全。這種觀點(diǎn)認(rèn)為,實(shí)際上,誰要是想鉆運(yùn)行開源軟件的系統(tǒng)的空子,只要查看代碼,就能弄清楚如何闖入進(jìn)去。另一方面,閉源軟件天生要來得更安全,因?yàn)榇a不是誰都可以隨隨便便查看的。
Bill答復(fù):“很顯然,這是一種錯誤的認(rèn)識。”
他繼續(xù)說:“公開披露自己的部分源代碼,這其實(shí)是像微軟這些閉源產(chǎn)品開發(fā)公司最不擔(dān)心的。它們更加擔(dān)心的是有人用間諜手段刺探源代碼,或者通過滲透測試發(fā)現(xiàn)軟件缺陷(bug);這種情況下,它們不知道自己的源代碼在接受審查。”
他解釋,如今,針對軟件的安全審查在很大程度上實(shí)現(xiàn)了自動化。Bill說:“誰都可以進(jìn)行這樣的審查;由于審查是自動化的,所以可以重現(xiàn)。”
Apache HTTP服務(wù)器用戶社區(qū)經(jīng)常被邀請進(jìn)行這樣的審查,自動掃描代碼,一旦發(fā)現(xiàn)了異常,就提醒相應(yīng)的項(xiàng)目組。發(fā)現(xiàn)的異常有可能是明確的安全漏洞,也可能不是明確的安全漏洞,但是應(yīng)予以關(guān)注,因?yàn)樗赡軙蔀橐粋(gè)明確的安全漏洞。
Bill的觀點(diǎn)是,黑客針對二進(jìn)制代碼做這樣的事不是重大問題,無論二進(jìn)制代碼是用閉源代碼編寫的,還是用開源代碼編寫的。他表示,簡而言之,壞人在繼續(xù)搗鼓閉源產(chǎn)品,正如他們在以同樣的手法搗鼓開源產(chǎn)品。
針對逆向工程和反編譯等方面的牢騷在安全領(lǐng)域其實(shí)算不得什么
他補(bǔ)充說:“針對逆向工程和反編譯等方面的牢騷在安全領(lǐng)域其實(shí)算不得什么;實(shí)際上,對研究安全人員來說只會適得其反。安全研究人員在努力化解問題。要是沒有源代碼,也就缺乏必要的透明度了,那樣他們無法搞清楚可以采取什么化解措施,一開始就避免問題,或者無法搞清楚他們已經(jīng)發(fā)現(xiàn)的漏洞有什么樣的實(shí)際影響。”
你可能會認(rèn)為,Bill為其中一個(gè)比較知名的開源軟件項(xiàng)目工作了這么久,其立場肯定會偏袒一方。別犯想當(dāng)然的毛病,那樣很容易擯棄他的觀點(diǎn)。
他的觀點(diǎn)是,閉源軟件實(shí)際上妨礙了安全研究人員了解安全漏洞的范圍。Bill表示,如何找出安全漏洞在開源與閉源之間區(qū)別不是很大。這往往就是這個(gè)過程:建立任意模式,然后看看會不會引起未預(yù)期的后果。
Apache在內(nèi)部如何處理安全問題?
隨后我們稍稍改變了話題的方向,著重探討總體上的Apache基金會和具體上的HTTP項(xiàng)目在內(nèi)部如何處理安全問題。
在Apache肩負(fù)處理安全問題這個(gè)重任的是Apache軟件基金會安全小組(ASF Security Team),Bill是這個(gè)團(tuán)隊(duì)的成員之一。他表示,開始,“我們還以為只會接到關(guān)于httpd的安全事件報(bào)告。但情況很快就發(fā)生了變化。”
安全團(tuán)隊(duì)的規(guī)模慢慢擴(kuò)大到了隨時(shí)都有5名活躍成員,臨時(shí)委員會有10名成員。Bill解釋:“我們實(shí)際上扮演了調(diào)度員的角色。”
至少在外人看來,這個(gè)過程似乎很簡單:“團(tuán)隊(duì)確認(rèn)我們確實(shí)遇到了酷似安全事件報(bào)告的問題,對不是安全事件報(bào)告的任何問題進(jìn)行排查,然后將排查結(jié)果交給相應(yīng)的人員或部門。”
“如果我們接到公眾反饋上來的零日安全漏洞,或者實(shí)際的重現(xiàn)情形--通過另一家機(jī)構(gòu)悄悄傳遞給我們,我們隨后會轉(zhuǎn)交給某個(gè)相應(yīng)的Apache項(xiàng)目;我們成為了這個(gè)項(xiàng)目的資源中心,幫助他們了解你與報(bào)告這個(gè)事件的那一方如何互動。”
然后,視項(xiàng)目會不會重現(xiàn)報(bào)告的安全漏洞而定,安全團(tuán)隊(duì)幫助項(xiàng)目應(yīng)對安全研究人員(通常是報(bào)告安全漏洞的那個(gè)人或那家組織)。Bill解釋:“我們對他們說,嘿,在我的下一個(gè)版本中,我們會拿出修復(fù)程序,你在那個(gè)時(shí)間點(diǎn)之前別用這個(gè)版本,這是我們的時(shí)間表。”
我們并沒有試圖有意隱藏我們的代碼執(zhí)行什么樣的功能
“我們并沒有試圖有意隱藏我們的代碼執(zhí)行什么樣的功能,而我們能做的就是修補(bǔ)漏洞,我們只是說自己在修復(fù)軟件缺陷,而不是把任何注意力引向這個(gè)事實(shí):舊代碼中存在安全問題,安全問題是這個(gè)樣子。”
據(jù)Bill聲稱,有些人在密切關(guān)注重大開源項(xiàng)目(如Linux內(nèi)核、httpd及其他項(xiàng)目)提交的代碼,一心尋找在不遠(yuǎn)的將來可能堵上的漏洞。Bill解釋:“如果他們能找到我們正努力堵上的漏洞,他們想找到機(jī)會窗口,以便可以鉆這個(gè)安全漏洞的空子。”
“所以我們扮演的是資源中心,盡量化解困惑、化解每一個(gè)項(xiàng)目的壓力--我們在任何時(shí)間有100個(gè)左右的項(xiàng)目,每個(gè)項(xiàng)目都在處理各自的安全問題,無論是在排查安全問題,還是迅速處理安全問題。”
我們還應(yīng)補(bǔ)充一下,安全團(tuán)隊(duì)在努力幫助確認(rèn)看起來像特定問題域問題的某些問題,比如最近的散列安全漏洞(http://arstechnica.com/business/news/2011/12/huge-portions-of-web-vulnerable-to-hashing-denial-of-service-attack.ars)。隨后,安全團(tuán)隊(duì)會查看其他Apache項(xiàng)目可能會受到什么影響,團(tuán)隊(duì)可以在多大程度上與別人共享有關(guān)的安全報(bào)告,即便受直接影響最大的那個(gè)項(xiàng)目正在處理當(dāng)前的安全漏洞。
個(gè)人能選擇感興趣的事來做
無論從哪個(gè)標(biāo)準(zhǔn)來看,Apache HTTP都是一個(gè)成熟的軟件項(xiàng)目,在問世近17年后,最近迎來了版本2.4.我們請Bill回顧一下他在Apache基金會和HTTP項(xiàng)目時(shí)候的情況,現(xiàn)在安全方面是不是在占用更多的時(shí)間。
項(xiàng)目越成熟,你在表面上的變化方面談?wù)摰迷蕉唷?
他簡短有力的回答是:“當(dāng)然就歷史久遠(yuǎn)的項(xiàng)目而言,就我個(gè)人而言,答案是肯定的。項(xiàng)目越成熟,你在表面上的變化方面談?wù)摰迷蕉啵l(fā)布新的特性方面談?wù)摰迷缴伲瑫悠蛴诰S護(hù)狀態(tài),這里來些優(yōu)化,那里有些安全問題。”
“而Apache上下的每個(gè)人都可以選擇感興趣的事來做;我是指,所有的代碼開發(fā)者、所有的代碼捐獻(xiàn)者都被鼓勵致力于項(xiàng)目中對他們個(gè)人來說最有興趣的那些方面。在一些情況下,那是付錢請他們做的工作;在另一些情況下,那也是對他們的雇主或下游客戶來說最感興趣的工作。”
Bill表示,這意味著,在HTTP項(xiàng)目或其他任何項(xiàng)目從事安全方面工作的人往往是傾向于對安全、漏洞和維護(hù)有著濃厚興趣的那些人。他解釋:“他們只想開發(fā)出那些修復(fù)程序,然后發(fā)布給公眾。”
“我們通過關(guān)注調(diào)查來了解整體情況。”
眼看我們的采訪就要結(jié)束,與Bill的討論再次將方向轉(zhuǎn)向Apache主導(dǎo)Web服務(wù)器軟件市場的現(xiàn)實(shí)。據(jù)NetCraft最近的服務(wù)器調(diào)查顯示(http://news.netcraft.com/archives/2012/03/05/march-2012-web-server-survey.html),運(yùn)行Apache HTTP的網(wǎng)站占總量的65%以上。
我們問Bill是不是平時(shí)在看諸如此類的調(diào)查和統(tǒng)計(jì)數(shù)字。
Bill笑著說:“作為一家基金會,不去看。但是我們確實(shí)有一些具體的公眾人員,他們對名聲和營銷很關(guān)注。當(dāng)然,我們醉心于確保Apache和Apache基金會有好的名聲,維持好的名聲,為此我們致力于開發(fā)優(yōu)秀代碼。但是只有知道我們在開發(fā)優(yōu)秀代碼的人才關(guān)心這個(gè)。”
當(dāng)然,我們醉心于確保Apache和Apache基金會有好的名聲,維持好的名聲,為此我們致力于開發(fā)優(yōu)秀代碼。
在這個(gè)龐大的現(xiàn)有用戶群中,版本2的Apache HTTP占了92.2%。更具體地說,今年2月底的一項(xiàng)調(diào)查顯示(https://blogs.apache.org/httpd/entry/apache_http_server_usage_survey),最常見的Apache HTTP版本是2.2,占了89.2%。
Bill更感興趣的是這些數(shù)字,而不是市場份額占多少百分比。他表示,他主要關(guān)注升級周期和升級方面的滯后:“我關(guān)注2月的那項(xiàng)調(diào)查;我可以看到,2.2.3仍得到廣泛采用;這個(gè)版本的代碼至今已有五個(gè)年頭了,”他說。
Bill解釋:“我們在關(guān)注紅帽或其他核心操作系統(tǒng)發(fā)行版,它們推出了重大版本,人們在安裝它,其實(shí)不想更改。而從安全的角度來看,那些2.2.3版本不是特別容易受到攻擊,因?yàn)樗鼈円呀?jīng)打上了一系列增量補(bǔ)丁。”
Bill在接下來的一兩個(gè)月會關(guān)注升級和降級模式。他會研究人們在如何采用版本2.4,然后研究那些升級的人當(dāng)中有多少比例在一段時(shí)間后會回到之前的版本。
關(guān)鍵字:服務(wù)器、安全、升級、網(wǎng)站
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解