淺談OWASP Top10 開放網路軟體安全計畫十大弱點

淺談OWASP Top10 開放網路軟體安全計畫十大弱點

淺談OWASP Top10 開放網路軟體安全計畫十大弱點

SDLC軟體開發生命週期的資訊安全解決方案(系列一)
 

叡揚資訊 文件管理暨商業智慧事業處產品顧問

2007年1月30日幾乎所有的平面及電子媒體均以"銀行網銀有假貨!金管會呼籲民眾小心,以免破財"為題刊登做為頭條新聞。其內容大致為,『近來發現有駭客疑似使用「網路釣魚」的方式,以不同網址複製網頁內容,仿冒網路銀行網頁,讓民眾誤以為是真的銀行網頁,藉以竊取銀行客戶的個人資料,取得銀行帳號及密碼;如果民眾疏於確認網址,將可能被竊取個人資料,進而盜走個人存款。』
上述的事件凸顯出資訊安全防護的重要性,然而,資安事件頻傳可不是台灣的專利,「道高一尺,魔高一丈」,全球各行各業都面臨資訊安全的威脅,這一點可以從全球知名的OWASP組織在今年年初所提出的『十大網路應用系統安全安全弱點』就可看出端倪。期盼藉由這個機會與讀者們分享如何有效防堵資訊安全漏洞等議題,以期建構一SecuredWeb Application的作業環境。

OWASP簡介

開放網路軟體安全計畫,簡稱OWASP (Open Web Application Security Project)是一個開放社群、非營利性組織,全球目前有82個分會,其主要目標是研議協助解決網路軟體安全之標準、工具與技術文件,長期致力於協助政府或企業瞭解並改善應用程式的安全性。美國聯邦貿易委員會(FTC)更強烈建議所有企業務必遵循OWASP所發佈的十大網路弱點防護守則,美國國防部亦將此守則列為最佳實務,就連國際信用卡資料安全技術PCI標準更將其列為必要元件。

目前OWASP有30多個進行中的計畫,包括最知名的OWASP Top 10(OWASP十大網路應用系統安全安全弱點)、WebGoat(代罪羔羊)練習平台、安全PHP/Java/ASP.Net等計畫,針對不同的軟體安全問題在進行討論與研究。

OWASP十大網路應用系統安全弱點說明:

OWASP Top10主要目的,是將最常見的網路應用系統安全弱點,教育開發者(Developers)、設計者(Designers)、架構師(Architects)和組織(Organizations),提供基本的方法保護防止這些弱點,是軟體開發安全計劃最好的開始。

1. Cross Site Scripting(XSS):當應用程式未將使用者提供的資料先審核或進行內容編碼,就直接將資料傳輸到網路瀏覽器,即可能發生XSS問題。XSS能讓攻擊者直接在受害者的網路瀏覽器上執行Script,攻擊者便可以hijack user sessions、或竄改網站內容等。

2. Injection Flaws :在網路應用程式,SQL Injection裡很常見。Injection之所以會發生,是因為使用者提供的資料傳輸到一個interpreter,此被當成指令(Command)或是查詢(Query)。攻擊者就能用惡意的資料欺騙interpreter,而達到執行指令或是竄改資料的目的。

3. Insecure Remote File Include:有弱點的程式碼讓攻擊者可附加惡意程式及資料,甚至導致毀滅性的攻擊,例如整個伺服器被入侵。

4. Insecure Direct Object Reference:Direct object reference發生的原因是因為開發者暴露了reference to an internal implementation object,像是檔案、檔案夾、或資料庫的record,或是key,來作為URL或是Form的參數。攻擊者可藉由操作這些references擅自進入其他objects中。

5. Cross Site Request Forgery(CSRF):CSRF攻擊強迫受害者登入的瀏覽器傳輸pre-authenticated request 給有弱點的網路應用程式,接著強迫受害者瀏覽器執行對攻擊者有好處的的行為。

6. Information Leakage and Improper Error Handling:應用程式可能洩漏關於程式的configuration訊息,程式內部的運轉模式,或者透過多種應用問題違犯隱私。攻擊者利用這個程式弱點侵犯隱私,或者更進一步的攻擊。

7. Broken Authentication and Session Management:Account credentials和session tokens 因經常沒有受到正確及嚴密的保護。而被攻擊者使用密碼、或keys,或是authenticationtokens來冒用其他使用者的身份。

8. Insecure Cryptographic Storage:網路應用程式很少正常使用cryptographic functions來保護資料,使得攻擊者有機可乘並冒用其他使用者身份,進行其他犯罪行為,如盜刷信用卡等。

9. Insecure Communications:保護敏感的通訊資料是必要的,但應用程式卻經常忽略以「加密」方式來保護網路通訊。

10. Failure to Restrict URL Access:應用程式敏感地區是被保護的Links或是URLs,而這些是不會提供給未被授權的使用者。這也容易讓攻擊者利用這項弱點進入,並進行未被授權的行為。
(資料來源:摘錄於OWASP網站http://www.owasp.com)

依據Gartner Group的研究報告指出,目前的駭客攻擊有75%都發生在應用系統層面,預估在2009年有80%的企業都會面臨應用系統的安全事件。然而,企業投資在應用系統安全防護的經費,卻只佔資安總投資的10%而已。要知道防火牆、防毒軟體或入侵偵測系統皆無法完整修復應用系統安全的漏洞,唯有從應用系統本身著手分析、測試及強化防禦才是根本的解決之道。

我們建議所有參與軟體開發或是將軟體外包之單位,特別需要在軟體開發生命週期中,注意軟體資訊安全的議題。我們整理了軟體開發生命週期中從設計、開發、測試及上線維運各階段對資訊安全的需求,簡單歸納如下:

  • 設計階段:清楚定義資訊安全政策。
  • 開發階段:能針對原始碼做安全漏洞掃描,再將發現的安全漏洞依嚴重程度做等級分類,能追蹤問題及提供修復建議,並有稽核機制做審查及追蹤修復狀況,軟體開發若能及早發現問題,遂能降低修復成本及預防重複性的錯誤。
  • 測試階段:模擬駭客進行滲透測試及追蹤安全根源,確保測試完整度。
  • 上線維運階段:能即時、有效的強化已上線的應用系統,提供防禦功能,監控及追蹤攻擊。

Fortify應用軟體安全解決方案產品簡介

Fortify Manager中央管理:提供企業安全規則管理,同時支援多個專案追蹤,測量軟體安全風險,提供即時安全警報,及靈活富彈性的儀表板式概略到詳細的安全報告。

Fortify Source Code Analysis:SCA超過150種的弱點規則,提供準確及完整的原始碼安全掃瞄,擁有專利的Data Flow、Control Flow、Structural、Configuration、Semantic分析引擎提供完整和準確的分析。SCA並通過與Findbugs的整合,提供超過200種程式的正確寫法分析,支援大規模的程式能一次掃描二千萬行原始碼。

Fortify Tracer:加強人工或自動安全測試,提供與安全性有關的功能、API及測試覆蓋的分析報告,能使黑箱滲透測試的結果更容易被理解,也進一步提高滲透測試的覆蓋範圍。

Fortify Tester:應用在測試階段,讓黑箱測試變成可量化及更易修復安全漏洞;且Tester能針對Web 應用程式發動模擬攻擊,測試如SQL injection、XSS 等OWASP 10大漏洞問題,對Web 伺服器及應用程式進行漏洞掃描。

Fortify Defender:在營運期階段,針對已上線的Web應用程式提供保護、修復及監控。Defender接近零影響的高運作效能,能為運作中的應用程式進行執行期的安全分析,提供廣泛而充分的安全事件報告,即時監測各種攻擊為安全事件進時間性關連分析。

叡揚資訊代理美國Fortify軟體產品是一套領先資安市場的軟體安全解決方案。在國內,科技龍頭台積電已導入Fortify Solution,來強化及確保企業資訊安全,其他如金管會檢查局、關稅總局等也都使用Fortify來保護單位資產及強化應用系統安全。

 

轉載自 https://www.gss.com.tw/index.php/focus/eis/59-eis48/290-owasp-top10