kejames 學習筆記本

這裡是Kejames的筆記本,歡迎各位網友給予指教,謝謝。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

網站程式安全 - 技術門檻高, 攻擊門檻低! 企業棄守!!

Posted on 2007-09-15 22:14  Kejames  阅读(181)  评论(0)    收藏  举报
從資安論壇中看到的文章,覺得很不錯。

在寫網站程式的朋友們不仿花些時間看看吧^_^

網站程式安全 - 技術門檻高, 攻擊門檻低! 企業棄守!!


網站為什麼被HACK!? 看這邊...

近來看到國內的資安雜誌開始探討有關Web Services及Web Applications此類應用程式在比例上大多皆有嚴重安全上漏洞。但是筆者身為資安顧問,不禁要替所有的IT主管提出一點質疑: 因為看完這些文章之後,IT主管還是無法掌握到確切的方向來降低其網站上應用程式可能被攻擊的弱點。

目前透過網際網路提供服務與交易的政府機關,金融機構,民間企業與日俱增。網站應用程式提供的功能愈來愈多,交易金額也不斷向上攀升。在台灣幾乎所有的銀行皆已提供on-line金融業務,數個知名線上購物網站的業務也都不錯。然而這一類型的網際網路業務都還有相當大的成長空間,只是目前大眾普遍還是認為提供線上金融交易的網站在安全上還是有待加強的!

防火牆 ≠ 網站安全
講到這邊您可能要納悶的想:我已經裝了防火牆,入侵偵測系統,用了防毒軟體,網站也已經使用了SSL來加密了,甚至還把腦人的系統漏洞補丁(patch)都安裝上了;還有什麼問題可以讓您的網站不安全呢?本文要探討的是目前為國內大多數IT資安人甚至顧問都(刻意)忽略的“網站程式安全漏洞”- Web Application Security Vulnerabilities!

很重要的一件事實必須先提醒您: 攻擊網站應用程式是完全不會受到防火牆阻擋的!! 所以還是把您腦海中“防火牆 = 網站安全”的錯誤觀念先放一旁吧!
(為什麼說這個議題被所有人忽略,甚至是刻意地無視於它的存在呢?因為您幾乎找不到懂這項技術的專業人員。)

哇!書本上學不到,難怪我不懂
首先我們可以回想一下,在幾十年的程式設計歷史與經驗累積之後,現今的應用程式中的漏洞還是繼續被發現。更糟糕的是,同樣的漏洞每隔一段時間竟一遍又一遍的重現。我們一直未能由以往的錯誤中學習並改進,因此造成了太多的漏洞。駭客組織卻不斷地研究整理這些程式缺失。這就是為什麼針對網站應用程式的攻擊越來越多。

有一本國外很棒的資安書籍用一句話點出當今網站程式安全漏洞百出的原因:“坊間程式設計的書籍絕口不談程式安全(secure coding), 而為數眾多的資訊安全書更籍絕口不談程式設計”。 理所當然地,這造成目前所有為您開發網站程式的programmers幾乎都不瞭解什麼是Web Application Attacks。更不用談及要如何減少網站程式在設計上的漏洞了。

程式安全問題並非是新議題。您一定很痛恨每個月要patch為數不少的Microsoft,Sun Solaris或Linux伺服器吧?只因為他們一直沒有把這麼多人使用的作業系統設計的安全一點。

這些大公司花這麼多心思都還無法將其軟體設計的更安全一點,那麼您可曾想過您公司自行開發(或委外開發)的程式,特別是暴露在Internet的網站程式是否安全呢?網站應用程式如果不安全的話,全世界的人都有可能找到其漏洞,進而加以利用及攻擊。這不僅將企業的客戶(資料)置於險地,更將企業本身的商譽置於險地。

本文標題的最後四個字“企業棄守”是針對這個議題目前整體環境專業能力不足的最佳寫照。不信的話,請您解釋下列常見的網站程式攻擊手法。什麼是:
? OS Command Injection
? SQL Injection
? Cross-Site Scripting
? Cookie Stealing
? Session Hijacking
(空口說說而舉不出技術實例的可不算喔Smile

這些專有名詞不少專家都懂,但是很少有人真正看過或做親自測試過並能將其正面的經驗以清楚易懂的方式傳授給第一線程式開發人員,使大家能在一開始coding之前至少就知道哪些弱點應該盡力避免。(Seeing is Believing 眼見為憑)

如此看來,問題的癥結在於目前市場上缺少這類的課程能100%專注於Web Application Vulnerabilities以有效的實做範例讓程式設計人員能親身經歷,甚至實際操作攻擊演練,進而真正體會到此議題的重要性。

最常發生且最容易被攻擊的網站應用程式弱點
未經檢查的輸入 Un-validated Input
存取控制缺失 Broken Access Control
Broken Authentication 驗證缺失及session管理
跨站程式 (XSS) Cross-Site Scripting
緩衝溢出 Buffer Overflow
注入式漏洞 Injection Flaws
不當的錯誤處理 Error Handling
拒絕服務 (DoS) Denial of Service

技術門檻高 攻擊門檻低 企業勿棄守 教育訓練是重點
在筆者的Lab測試環境中,攻擊這一類程式弱點通常要花點時間收集及分析資料,而執行功擊程序本身一般只需幾分鐘即可成功,有些甚至只要幾秒鐘!在您覺得要強化網站程式安全已經很困難的當下,得知駭客要攻擊這些弱點卻是相當容易的,無疑是雪上加霜。

解決這些問題並沒有萬能藥。公司需要改變程式開發文化,訓練開發人員,改變軟體發展控制流程,並且使用合適的技術。但當務之急則是,要儘快教育程式開發人員有哪些應用程式設計上的缺失或弱點是經常被重覆,也最常被攻擊利用的。如此才有可能在日後盡量避免再犯同樣的錯誤。

結論
的確,如何強化網站應用程式安全是一項門檻頗高的挑戰(難怪顧問公司也不想碰這一塊),但是企業機關一天無法確認其網站程式無明顯上述弱點就必須不斷擔心已經有人在利用這些弱點了。如果您不想棄守投降,您可與筆者聯絡。筆者可於一天的教育課程中讓您的組織對這個大問號有充分的瞭解,並親身經歷駭客的各種攻擊手法。經過此課程後您的程式開發人員將有足夠的基本常識去找出現有系統是否有類似弱點,並瞭解降低程式設計弱點之正確觀念與邏輯。

當然您也可以選擇筆者所走過的路 – 研讀個7,8本書籍再去美國聽幾場真正專家的演講或課程。回家後再自己架個網站,浪費幾個月時間學習做模擬測試攻擊。

老實說國內到現在對這個議題都還不甚瞭解,而筆者早在2003年DefCon-11就已經聽到了一場值回票價的專家演講。我們還真是落後國外至少2~3年呢!!

出處:http://forum.icst.org.tw/phpBB2/viewtopic.php?t=8042