技術交流

資通 Fortify 源碼檢測完美防堵網路軟體資安漏洞

更新於

在網頁程式開發過程中,最少不了的就是源碼檢測作業,透過對原始碼的檢查,可即早發現隱藏的網頁問題。然而常見的人力檢測方式,不僅檢測效率不佳,還非常耗費人事成本,資通代理的 Fortify 企業資安監測方案,能運用靜態源碼檢測分析工具(Fortify Static Code Analyzer,Fortify SCA),協助開發人員透過自動化源碼檢測輕鬆控管程式品質及安全,檢測效率是人工檢測的 1000 倍以上,除了大幅縮短不必要的時間浪費,也能精準提升源碼的檢測水準!

駭客手法的演變與網頁應用系統發展息息相關,在 Web 1.0 的年代(約 1990~2000 年),當時網站大都是靜態發佈資訊網站,所以駭客攻擊型態也大多僅止於網頁置換,其目的只為「博取名聲」。時序來到了 Pre-Web 2.0 年代(約 2000~2004 年),動態網頁應用系統開始盛行,駭客攻擊目標也開始轉移到了網頁伺服器上的機敏資料,包括:帳號、密碼、信用卡號、交易紀錄…等等。到了 Web 2.0(約 2004 年)以後,網站設計開始著重與使用者互動,人人都成了高度網路互動下的世界公民,從個人電腦可以找到許多凡走過必留下的痕跡,而這也造就了駭客們對客戶端個人電腦的濃厚興趣。

常見的資安威脅

我們可以從 OWASP(The Open Web Application Security Project,開放網路軟體安全計畫)所發佈的 2013 TOP 10 資安威脅了解。

  • 注入攻擊(Injection):攻擊者發送的惡意資訊被傳送到伺服器,用以組成 SQL、OS、LDAP 等指令,以破壞系統或竊取資訊。
  • 失效的身分認證和連線管理(Broken Authentication and Session Management):身分認證和連線管理功能未獲正確實作,因此攻擊者得以攻擊漏洞去冒用使用者身份。
  • 跨站腳本程式攻擊(Cross-Site Scripting):應用系統未經適當的攔截或跳脫處理就直接將攻擊者透過頁面欄位輸入的惡意腳本程式碼傳送至使用者的瀏覽器執行。攻擊者將可藉此漏洞在使用者瀏覽器上為所欲為。
  • 不安全的直接物件參考(Insecure Direct Object References):應用系統設計直接暴露了網站內部的實體資源,例如:檔案、目錄或者資料庫金鑰。若這些資源未有適當存取控制或保護時,就會被攻擊者竊取。
  • 不當的安全組態設定(Security Misconfiguration):唯有對應用系統、框架、伺服器、資料庫、平台…等等進行適當的安全組態配置,才會有安全的網頁應用系統。僅使用預設配置(例如預設帳號、密碼或者範例系統)往往會造成許多漏洞。
  • 機敏資料暴露(Sensitive Data Exposure):許多應用系統並未適當保護機敏資料,例如:信用卡號、稅籍號碼、身份證號、銀行帳戶…等。攻擊者可能會竊取或竄改這些資料以進行詐騙、冒用身份或其他犯罪行為。機敏資料需要受到額外保護,例如:儲存或傳輸過程的加密,以及與瀏覽器之間交換機敏資料時的特殊預防措施。
  • 缺少功能級別的存取控制(Missing Function Level Access Control):大部份網頁應用系統都會在使用者端控制使用者介面只呈現出具有使用權限的功能。但如果伺服器端請求未做功能級別的存取控制,攻擊者將可能偽造客戶端請求,對伺服器端進行未經授權的功能操作。
  • 跨站冒名請求(Cross Site Request Forgery):藉由已登入用戶瀏覽器去對應用系統伺服器端送出偽造的 HTTP 請求,因為包括該用戶的連線 cookie 和其他認證訊息都會被送到存在這種漏洞的伺服器端,因此這些偽造的請求都會被認為是合法的請求而觸發相應處理及回應。
  • 使用已知漏洞元件(Using Components with Known Vulnerabilities):第三方的元件、框架或模組,經常是擁有完整的系統執行權限,所以一旦有已知漏洞被利用,往往可能造成嚴重的資料遭竊或系統被綁架。
  • 未經驗證的重新導向與轉送(Unvalidated Redirects and Forwards):應用系統的重新導向或轉送動作,若未經過適當驗證,就有可能會被攻擊者利用來轉送到未經授權頁面或者被重新導向到惡意網站。

防護措施

從以上的資安威脅來看,攻擊大都來自應用層而非網路層,也就是說光保護好網路是遠遠不夠的,應用層的安全更應該要受到正視。源碼檢測的落實是做好應用層資安防護的關鍵,不應該在整個專案開發生命週期內缺席。傳統人工源碼檢測必須高度依賴高素質的程式設計人力,其成本效益太低且不易維持檢測品質。

採用譬如 Fortify SCA 之類的自動化源碼檢測工具,因其快速、高涵蓋率、高精確度的特性,相對是較為聰明的選擇。

閱讀更多