網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat...

7
32 財金資訊季刊∕No.752013.07 專題報導網頁應用程式安全設計及防護 網頁應用程式安全設計及防護 彭耀東∕安控部資源控管組組長 杜廣輝∕安控部資訊安全組高級工程師 一、前言 隨著網際網路服務應用日廣,網頁應用程 式的安全逐漸成為資訊安全領域的重要議題。 企業決定對外開放網頁應用程式服務時,就必 須體認網站代表企業洞開的門戶,不僅提供網 頁應用程式服務,同時也會面臨各種網際網路 攻擊的挑戰。駭客可能將攻擊行為隱藏在合法 的網頁請求內,躲過防火牆、入侵偵測系統或 其他防禦系統的偵測,堂而皇之進入企業內 部,或是以企業網站為跳板,攻擊其他受害者。 隨著網頁應用程式的服務規模與複雜程度日益 擴增,暴露在外的風險也相對提高;因此,企 業必須將網頁應用程式列入資訊安全防護的一 環,而如何架構安全的網頁應用程式,也是企 業不得不謹慎面對的課題。 開放網頁應用程式安全計畫(Open Web Application Security Project ,以下簡稱 OWASP)是一個世界性的開放社群非營利性 組織,主要工作是研議網頁應用程式安全的標 準、工具與技術文件,並致力於協助政府或企 業瞭解及改善網頁應用程式與服務的安全性。 Making application security visible 」是 OWASP 的使命,以期全球企業與個人皆能在 充分瞭解軟體安全風險的情況下做出決策。 OWASP 針對不同的軟體安全問題進行研究, 目前進行中的計畫超過 140 個,其中包括最知 名的 OWASP Top 10 WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10 計畫是有關網頁應用程 式安全性認知的文件,它列舉現今最嚴重的網 頁應用程式安全風險。OWASP 希望所有企業 或組織重視 OWASP Top 10 文件,並啟動相 關處理程序,以降低網頁應用程式的安全風 險。美國聯邦貿易委員會( Federal Trade Commission,簡稱 FTC)強烈建議所有企業 遵循 OWASP 發布的十大安全弱點防護原則, 美國國防部亦已將其列為最佳實務,信用卡國 際組織之資料安全標準更將之設為必要元件。 目前最新版的 OWASP Top 10 2010 公布,與前一版本(2007 年)不同之處在於 Top 10 是指十大風險,而不是十大常見漏洞。 評估風險等級也會考量圖 1 所示的因素及衝擊 程度,不再侷限於漏洞出現頻率的統計。 Threat Agent Attack Vector Weakness Prevalence Weakness Detectability Technical Impact Business Impact Easy Widespread Easy Severe Average Common Average Moderate Difficult Uncommon Difficult Minor 1 OWASP 風險評估方法論

Transcript of 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat...

Page 1: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

32 財金資訊季刊∕No.75∕2013.07

專題報導│網頁應用程式安全設計及防護

網頁應用程式安全設計及防護 彭耀東∕安控部資源控管組組長

杜廣輝∕安控部資訊安全組高級工程師

一、前言

隨著網際網路服務應用日廣,網頁應用程

式的安全逐漸成為資訊安全領域的重要議題。

企業決定對外開放網頁應用程式服務時,就必

須體認網站代表企業洞開的門戶,不僅提供網

頁應用程式服務,同時也會面臨各種網際網路

攻擊的挑戰。駭客可能將攻擊行為隱藏在合法

的網頁請求內,躲過防火牆、入侵偵測系統或

其他防禦系統的偵測,堂而皇之進入企業內

部,或是以企業網站為跳板,攻擊其他受害者。

隨著網頁應用程式的服務規模與複雜程度日益

擴增,暴露在外的風險也相對提高;因此,企

業必須將網頁應用程式列入資訊安全防護的一

環,而如何架構安全的網頁應用程式,也是企

業不得不謹慎面對的課題。

開放網頁應用程式安全計畫(Open Web

Application Security Project , 以 下 簡 稱

OWASP)是一個世界性的開放社群非營利性

組織,主要工作是研議網頁應用程式安全的標

準、工具與技術文件,並致力於協助政府或企

業瞭解及改善網頁應用程式與服務的安全性。

「 Making application security visible 」是

OWASP 的使命,以期全球企業與個人皆能在

充分瞭解軟體安全風險的情況下做出決策。

OWASP 針對不同的軟體安全問題進行研究,

目前進行中的計畫超過 140 個,其中包括最知

名的 OWASP Top 10 及 WebGoat 練習平台

等。

二、OWASP TOP 10 簡介

OWASP Top 10 計畫是有關網頁應用程

式安全性認知的文件,它列舉現今最嚴重的網

頁應用程式安全風險。OWASP 希望所有企業

或組織重視 OWASP Top 10 文件,並啟動相

關處理程序,以降低網頁應用程式的安全風

險。美國聯邦貿易委員會(Federal Trade

Commission,簡稱 FTC)強烈建議所有企業

遵循 OWASP 發布的十大安全弱點防護原則,

美國國防部亦已將其列為最佳實務,信用卡國

際組織之資料安全標準更將之設為必要元件。

目前最新版的 OWASP Top 10於 2010 年

公布,與前一版本(2007 年)不同之處在於

Top 10 是指十大風險,而不是十大常見漏洞。

評估風險等級也會考量圖 1 所示的因素及衝擊

程度,不再侷限於漏洞出現頻率的統計。

Threat Agent

Attack Vector

Weakness Prevalence

Weakness Detectability

Technical Impact

Business Impact

Easy Widespread Easy Severe

Average Common Average Moderate? Difficult Uncommon Difficult Minor

圖 1 OWASP 風險評估方法論

Page 2: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

www.fisc.com.tw 33

網頁應用程式安全設計及防護│專題報導

以下逐一說明 OWASP Top 10 的十大風

險:

(一) Injection(注入攻擊)

例如作業系統、SQL (Structured Query

Language) 及 LDAP (Lightweight Directory

Access Protocol) 注入,攻擊方式是將不可信

的資料當成「命令」或「查詢」語句的一部分

傳送給轉譯器,以執行非預期的指令或存取未

經授權的資料。

防範方法:分離「命令」及「查詢」語句

的輸入資料。最好使用安全的應用程式介面

(Application Programming Interface, API),

不須提供參數或倚賴解譯器處理。若無法採用

安全的 API,則應避免使用特殊字元,並利用

檢查程式確認輸入資料的合理性。

(二) Cross Site Scripting(XSS,跨網站腳

本攻擊)

應用程式收到可疑資料,未經驗證或轉

譯,直接送給瀏覽器,就可能產生跨網站腳本

攻擊。

防範方法:開發者必須在程式中提供驗證

輸入資料的功能,例如:利用白名單或正面表

列方式,驗證輸入資料的合理性。

(三) Broken Authentication and Session

Management(失效的身分認證與連線

管理)

身分識別與連線管理相關應用程式設定不

正確,使攻擊者可以取得使用者的密碼、密鑰

或連線 token 等,以偽冒合法的使用者。

防範方法:建立單一強效的身分認證和連

線管理控制系統。

(四) Insecure Direct Object References(不

安全的物件參考)

程式人員暴露內部物件的引用參考

(Reference),攻擊者可以控制這些引用參

考,存取未經授權的資料。

防範方法:使用以用戶或連線為依據的非

直接物件參考方式,攻擊者無法推斷可利用的

資料。針對使用者進行存取檢核,確認經過合

理授權後,方可存取資料。

(五) Cross Site Request Forgery(CSRF,

跨網站冒名請求)

由成功登入的使用者發送偽造的 HTTP

(Hypertext Transfer Protocol) 請求到有漏洞

的網頁應用程式。

防範方法:在每個 HTTP 請求的主體或

URL (Uniform Resource Locator) 中添加不可

預測的 token(標記),對每一用戶連線(或

請求)而言,此 token 是唯一的。

(六) Security Misconfiguration(不安全的組

態設定)

應用程式、網頁伺服器(Web Server)及

資料庫等都必須妥善進行安全設定及更新,避

免使用系統預設值。

防範方法:建立快速的自動化流程,減少

建立新的安全環境所需的工作量;及時進行所

有應用程式的更新及修補,定期執行弱點掃描

及稽核,以發現設定錯誤或未及時更新的系統。

(七) Insecure Cryptographic Storage(不安

全的加密儲存)

許多應用程式未採用適當的加密或雜湊

(hash)演算法以保護敏感資訊,以致攻擊

Page 3: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

34 財金資訊季刊∕No.75∕2013.07

專題報導│網頁應用程式安全設計及防護

者可輕易讀取。

防範方法:異地備份資料須加密,加密金

鑰和資料須分開管理和備份。使用適當而高強

度的標準加密演算法和密鑰,並防範非法存取

密鑰。使用高強度的標準雜湊演算法,以合理

的「salt」隨機位元串保護密碼。

(八) Failure to Restrict URL Access(未限

制 URL 存取)

應用程式每次存取受保護的 URL 時,必須

檢查存取權限,否則攻擊者可假造 URL 以存取

這些受保護的頁面。

防範方法:採行保護機制,確保每個頁面

的存取都須經過適當的身分認證和授權,以防

範未經授權的 URL 存取。通常這種保護機制是

由外部元件提供,預設拒絕所有存取行為。針

對每個頁面,應明確授予特定的使用者角色與

存取權限。

(九) Insufficient Transport Layer Protec-

tion(傳輸層保護不足)

應用程式未有效保護網路敏感資訊的機密

性及完整性,如未加密或認證、演算法強度不

足或憑證過期等。

防範方法:所有敏感網頁均須使用 SSL

(Secure Socket Layer),並將非 SSL 請求導向

對應的 SSL 網頁。所有敏感 Cookie(小型文

字檔)都須設置“secure(安全)”標誌。SSL

應使用強度較高(如符合 FIPS 140-2 標準)

( FIPS : Federal Information Processing

Standards,聯邦資料處理標準)的演算法。確

保憑證的有效性,排除過期及被廢除的情況。

後端和其他連線銜接也應使用 SSL 或其他加

密技術。

(十) Unvalidated Redirects and Forwards

(未驗證的重新導向或轉送)

網頁應用程式經常將使用者重新導向或轉

送其他網頁,如未經適當認證,攻擊者將使受

害者連接到釣魚網站或惡意網頁。

防範方法:避免使用重新導向和轉送;如

真有需要,則在計算目標時,不應涉及使用者

參數。如果無法避免使用參數,應確保對於當

時的使用者而言,參數值是有效且經過授權的。

OWASP 組織集合許多應用程式安全專家

的心力,建立各種免費及公開的資源(如表 1

所示),提供組織及程式開發人員可依循的準

則,以期降低程式開發人員認知不足所產生的

風險,建立安全的網頁應用程式。

表 1 OWASP 應用程式資源

項 目 OWASP 資源

應用程式需求 OWASP Application Security Verification Standard (ASVS)

應用程式架構 OWASP Developer’s Guide

標準安全控制 OWASP Enterprise Security API (ESAPI)

安全發展之生命週期 OWASP Software Assurance Maturity Model (SAMM)

應用程式安全教育 OWASP Educational Presentations

Page 4: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

www.fisc.com.tw 35

網頁應用程式安全設計及防護│專題報導

三、網頁應用程式安全防護

支付卡產業資料安全標準(Payment Card

Industry Data Security Standard,以下簡稱

PCI DSS)是國際組織針對信用卡、轉帳卡及

現金卡等支付卡所共同訂定的交易安全準則,

目前最新版本為 V2.0,所有支付卡相關商家

(merchants)和服務供應商(Service pro-

viders)都必須遵循。

PCI DSS 的 Requirement 6.6 是業界公認

網頁應用程式安全防護的有效機制,它規定所

有公開使用的網頁應用程式都必須採行(任選

其一)下列防護方式:一是每年定期或於程式

變更時,以人工或自動檢核工具進行程式源碼

檢測;二是在網頁應用程式前端建置網頁應用

程式防火牆(Web Application Firewall,以下

簡稱 WAF)。

程式源碼檢測的主要目的是確保程式開發

人員所撰寫的程式碼符合安全性要求,例如:

避免 Buffer Overflow(緩衝區溢位)或前一節

介紹的 OWASP Top 10 風險。此方式雖可從

源頭解決安全性問題,但在應用程式變動頻繁

的環境中,將會耗用大量人力及時間,且開發

人員完成修正後,尚須進行測試驗證,以及安

排適當的變更上線時程,就安全防護而言,可

能緩不濟急。

OWASP Code Review安全發展計畫為程

式源碼檢測建立可行的實作架構,目前已

有.Net 及 Java 的執行準則,其他語言則尚未

完備,詳情請參閱 https://www.owasp.org/

index.php/Category:OWASP_Code_Review_

Project。

若考量時效壓力,建置 WAF 是目前較可

行的防護方式,其優點如下:

(一) 建立企業網頁應用程式之單一入口防護閘

道,執行全面弱點防護,降低各網頁應用

程式單獨防護所需的人力與物力。

(二) 由專業廠商協助開發安全防護機制,迅速

因應推陳出新的攻擊方式,降低後端網頁

應用程式遭受攻擊的可能性。

(三) 程式開發人員可專注於業務邏輯的開發,

以符合企業營運需求。網頁應用程式如有

弱點,因前端已有 WAF 的防護,程式開

發人員可以有較充裕的時間進行修正。

OWASP 也設有 WAF 的安全發展計畫,開

放源碼(Open Source)模組 ModSecurity 的

角色類似檢測網站流量內容,以保護網頁應用

程式安全的防火牆,亦即軟體式 WAF。程式碼

可由 http://www.modsecurity.org/download 下

載,相關文件請參閱 http://modsecurity.org/

documentation。

ModSecurity 可以有不同的部署方式,各

有其優缺點,如圖 2 所示。

ModSecurity 是 WAF 模組,內部預設的規

則很少。為了提升實用性,以便使用者能充分

利用 ModSecurity,Trustwave’s SpiderLabs

提供了一套經過驗證的免費規則集(OWASP

ModSecurity Core Rule Set),可以防護使用

者自行撰寫的 Web 程式,避免一些常見的漏洞

遭濫用。Trustwave’s SpiderLabs 另提供進階

的核心規則集,但每年須依防護的網頁伺服器

數量付費使用。

ModSecurity 費用較低,企業內部人員可

依實際情況開發,但面對變化可能無法快速因

應,較適用於變動不頻繁的環境(例如網頁應

用程式不常改版)。商業 WAF 費用較高,但

具有自動學習分析機制,能從用戶端與網頁應

用程式的交互作用中學習創建安全規則,產品

背後更有一群專家致力於防範層出不窮的新種

Page 5: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

36 財金資訊季刊∕No.75∕2013.07

專題報導│網頁應用程式安全設計及防護

攻擊,可以快速修補系統漏洞,適用於金融交

易或含重要資料的環境。

網頁應用程式的安全防護機制勢在必行,

解決方案不只一種,企業可依據自身的需求、

運作模式、能力及經費限制,選用適當可行的

方案,以維護企業網站伺服器正常運作,避免

機敏資料外洩,或者淪為惡意程式感染的跳

板,造成企業財產與商譽的損失。

部 署 方 式 優 點 缺 點

嵌入 Web Server 無須改變 Web 架構,易於建置。 ModSecurity 與 Web Server 共用資

源,增加系統負荷。

反向 Proxy 單一 ModSecurity 可保護後端多個

Web Server。

須調整網路架構,而 ModSecurity

可能成為故障點或瓶頸。

離線 不影響系統營運。 僅供偵測之用。

圖 2 ModSecurity 架構

四、網頁應用程式安全測試

要強化網頁應用程式安全測試,必須瞭解

網頁應用程式的運作方式及可能的弱點,而

OWASP 組織的網頁應用程式安全測試指引

(Test Guide)即可供有志於瞭解網頁應用程

式安全性測試的人員有所依循。

OWASP 測試計畫的目標是協助人員瞭解

測試網頁應用程式的五個 W(亦即 What、

Why、When、Where、How),企業可以參考

它所建構的整體測試框架(Testing Frame-

work),發展自己的測試計畫,並改善流程。

(一) 網頁應用程式安全測試框架

OWASP 的網頁應用程式安全測試框架是

適合企業彈性運用的典型測試框架,也是一種

可應用於軟體開發生命週期(Software De-

velopment Life Cycle,簡稱 SDLC)各項作業

的參考性框架,企業可以自行修改延伸,以符

合自單位之企業文化及開發流程。此測試框架

包含以下活動(Activity):

Apache

ModSecurity

Mod_proxy

http, ajp

Application Server

Web Application

Apache

ModSecurity

Web Application (PHP, CGI, Python, …)

Apache

Web Application

ModSecurity

Inside the webserver itself

Within a Reverse proxy

out-of-line ina passive setup

Page 6: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

www.fisc.com.tw 37

網頁應用程式安全設計及防護│專題報導

1. Phase 1:開發程式前置作業

(1) Phase 1A:審視政策與標準

(2) Phase 1B:建立指標與衡量準則(確保可

追蹤性)

2. Phase 2:定義與設計

(1) Phase 2A:審視安全需求

(2) Phase 2B:審視系統設計與架構

(3) Phase 2C:建立與審視 UML 模型

(4) Phase 2D:建立與審視威脅模型

3. Phase 3:程式開發

(1) Phase 3A:程式碼排練(Code Walk-

through)

(2) Phase 3B:程式碼審查

4. Phase 4:部署使用

(1) Phase 4A:應用程式滲透測試

(2) Phase 4B:組態管理測試

5. Phase 5:維護與運作

(1) Phase 5A:運作管理與審視

(2) Phase 5B:定期健康檢查

(3) Phase 5C:變更驗證

(二) 網頁應用程式安全測試方法論

OWASP Test Guide 的網頁應用程式安全

測試方法論是經由滲透測試發現應用程式的弱

點。OWASP 組織持續蒐集相關測試技術,並

隨時更新 Test Guide。OWASP 的網頁應用程

式滲透測試採用黑箱(Black-Box)測試;換言

之,測試人員在測試之前,對於所測試的網頁

應用程式幾乎是一無所知。OWASP 將滲透測

試分為被動模式及主動模式兩個階段:

1. 被動模式(Passive Mode)

此模式係針對測試目標進行資訊蒐集

(Information Gathering),在有限的已知資

訊下,盡可能蒐集測試目標相關資訊,包括網

頁應用程式邏輯、網站進入點等,為下一階段

(主動模式)的測試作業預做準備。

2. 主動模式(Active Mode)

OWASP Test Guide 將此模式分為以下 9

類,對應 66 項控制措施,範圍涵蓋(但不限

於)OWASP Top 10 揭示的安全弱點:

(1) Configuration Management Testing (CM)

組態管理測試

(2) Authentication Testing (AT) 身分驗證測

(3) Session Management Testing (SM)連線

管理測試

(4) Authorization Testing (AZ)授權測試

(5) Business Logic Testing (BL)業務邏輯測試

(6) Data Validation Testing (DV)資料驗證測試

(7) Testing for Denial of Service (DS)阻斷服

務測試

(8) Web Services Testing (WS)網路服務測試

(9) AJAX Testing (AJ) AJAX 控制項測試

66 項控制措施可視為發現不同類型安全

漏洞的技巧,Web 安全測試人員可依據需求,

選用所需的控制措施。詳細的網頁應用程式安

全性測試項目請參閱可於 OWASP官方網站下

載的 OWASP Test Guide。

五、結語

以往各企業機構較專注於維護網路免受外

界攻擊(如建置防火牆),如今網頁應用程式

Page 7: 網頁應用程式安全設計及防護 - 財金資訊 ... · 名的OWASP Top 10及WebGoat 練習平台 等。 二、OWASP TOP 10 簡介 OWASP Top 10計畫是有關網頁應用程

38 財金資訊季刊∕No.75∕2013.07

專題報導│網頁應用程式安全設計及防護

安全已成為各國政府及企業機構共同重視的核

心議題。企業內部的主要營運作業常仰賴程式

開發人員開發提供,過程中如能投注部分心力,

注意相關檢核事項,減少程式本身的漏洞,再

搭配由 WAF、入侵偵測系統及防火牆等所建構

的縱深防禦機制,可提高系統整體的安全性。

安全意識是一把兩面刃,如能知己知彼,

瞭解攻擊者如何操作,有助於建構對應的防禦

措施。OWASP 組織近年持續推動網頁應用程

式安全相關議題,提出許多計畫及文件,

OWASP Top 10 是該組織及熱心人士持續發展

修正的成果。OWASP 開發的應用程式皆以開

放源碼的方式提供各界參考,企業在強化網頁

應用程式安全的進程中,可隨時查閱 OWASP

相關計畫,瞭解發展重點及進度,再對照企業

內部的資安防護措施,以確立持續強化的方向。

參考文獻∕資料來源:

1. http://www.owasp.org 2. http://www.appsecusa.org