


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