OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. ·...

4
84 期叡揚 e 論壇「應用系統面臨多 元資安風險之教戰手則(上)」談生 活資安與自SSDLC著手的資安概念,教戰手 ()則是和大家說明從 OWASP Top10 著手 時,應用程式開發該注意的安全事項,希望 能與軟體開發從業人員分享交流,更提供使 用者自我防範管理的方向。 OWASP TOP 10 談安全程式教戰手則 OWASPOpen Web Application Security Project )為專門研究網站應用程式的弱點 組織,其歸納出開發人員常犯的前十大弱 點。本文中我們將以 .NET 程式為說明範 本。 應用系統面臨多元資安風險 之教戰手則(下) OWASP Top10 談安全程式開發 撰文 | 叡揚資訊 資訊安全事業處 專案支援經理 鄭鈞元 A1 Injection 注入式弱點 SQL InjectionCommand InjectionXML Injection ⋯等注入式攻擊手法。如圖示, SQL Injection 簡單說是程式碼 SQL 語法字串 將傳入變數作條件組合引發的問題。 由於輸入介面上無任何驗證處理,故當攻 擊者發現問題並輸入不當資料,便產生即 使密碼輸入錯誤也可正常登入運作的狀 況,避開帳密驗證。 以登入網頁為例,輸入使用 者帳號及密碼並傳入 SQL 語法組合。 January 2017 | 叡揚e論壇 第85期 | 29 資訊中心管理 Column Data Center Management

Transcript of OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. ·...

Page 1: OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. · OWASP(Open Web Application Security Project)為專門研究網站應用程式的弱點

延續84 期叡揚 e 論壇「應用系統面臨多

元資安風險之教戰手則(上)」談生

活資安與自SSDLC著手的資安概念,教戰手

則(下)則是和大家說明從 OWASP Top10 著手

時,應用程式開發該注意的安全事項,希望

能與軟體開發從業人員分享交流,更提供使

用者自我防範管理的方向。

從 OWASP TOP 10談安全程式教戰手則

OWASP(Open Web Application Security

Project)為專門研究網站應用程式的弱點

組織,其歸納出開發人員常犯的前十大弱

點。本文中我們將以 .NET 程式為說明範

本。

應用系統面臨多元資安風險之教戰手則(下)

從OWASP Top10談安全程式開發

撰文 | 叡揚資訊 資訊安全事業處 專案支援經理 鄭鈞元

A1 Injection 注入式弱點

含 SQL Injection、Command Injection、XML

Injection ⋯等注入式攻擊手法。如圖示,

SQL Injection 簡單說是程式碼 SQL 語法字串

將傳入變數作條件組合引發的問題。

由於輸入介面上無任何驗證處理,故當攻

擊者發現問題並輸入不當資料,便產生即

使密碼輸入錯誤也可正常登入運作的狀

況,避開帳密驗證。

以登入網頁為例,輸入使用者帳號及密碼並傳入 SQL 語法組合。

January 2017 | 叡揚e論壇 第85期 | 29

資訊中心管理Column

Data C

enter Managem

ent

Page 2: OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. · OWASP(Open Web Application Security Project)為專門研究網站應用程式的弱點

Data Center Management

進階攻擊為利用 Second Order SQL Injection 取

得權限提升或變更系統管理者密碼,甚至摧毀

資料庫造成重大影響。而對程式開發者來說,

A2 Broken Authentication and Session Management 身分驗證及 Session 管理上的缺失

早期忘記密碼時以提示功能告知,當提問答案

容易被猜到時將提升取得密碼機率,因此建議

採用 two factor authentication(2FA) 加強安

全驗證,也就是至少含以下兩種認證因子:

● Something you know:身分證字號、密

碼、出生地及其他所知道的事。

● Something you have:動態密碼鎖、鑰匙、

晶片卡及其他所擁有的事物。

● Something you are:性別、指紋、視網膜

及其他天生的特徵。

密碼存入資料庫需以雜湊(Hash)單向加密方

式儲存,確保密碼的隱密性。通常開發人員會

忽略掉雜湊加密需加上「鹽巴」(Salt),這

作法可避免駭客使用字典檔方式破解密碼。

雜湊(Hash)雜湊是電腦科學中一種對資料的處理方法,

透過特定函數 /演算法將檢索項目與用來檢索的索引串聯起來,生成便於搜索的資料結

構。雜湊常用於資訊安全,資料透過演算法

計算,產生的資料指紋,經常用來識別檔案

與資料是否有被竄改,以確保檔案與資料確

實是由原創者所提供。

由於經雜湊演算法所計算出來的數值具有不

可逆(無法逆向演算回原本的數值)的性

質,因此可有效的保護密碼。

鹽巴(Salt)鹽巴在密碼學中,是指通過在密碼任意固定

位置插入特定的字串,讓雜湊後的結果和使

用原始密碼的結果不相符,這種過程稱之為

「加鹽」。

Tips

透過參數化查詢、過濾掉 SQL 溢出字元、使

用 ORM 技術等皆可處理 SQL Injection的問

題。

SQL Injection 程 式 碼( 組 合 結果 SQL 命令為可執行恆等式成立 ('1'='1') 的語法)。

Hash with salt:當輸入 bob 時,經雜湊後可看到不同的顯示結果。

| 叡揚e論壇 第85期 | January 201730

Page 3: OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. · OWASP(Open Web Application Security Project)為專門研究網站應用程式的弱點

A3 Cross Site Scripting(XXS)跨網站腳本攻擊)

網站型應用系統大部分都有此弱點。攻擊者

通常會使用JavaScript 先在網上注入惡意腳本

程式碼(Script),當使用者造訪具弱點的網

站時,瀏覽器會讀取惡意腳本程式碼執行,

利用弱點竊取用戶 cookie;如發生上述提到

因存取 cookie 讓 Session ID 被冒用時,甚

至可做到鍵盤側錄(key log)將輸入資料記

下。

Session 是記錄網頁上的狀態資訊,當登入

後 Session ID 會記錄在 Cookie 中,如 Session

ID 不變,攻擊者可由釣魚網站誘騙,利用

固定 Session ID (Session Fixation) 成功進

入系統,因此程式開發者需保護 Cookie,

透過調整系統設定檔(w e b . c o n f i g)將

httpOnlyCookies 設定 true 讓 javascript 無法

讀取,或透過圖示的範本程式碼,在使用者

登入成功後,立即更換 Session ID 避免固定

值問題。

此程式碼代表登入後改變SeesionID,並重新取得新SeesionID。

Session ID 固定造成問題。

January 2017 | 叡揚e論壇 第85期 | 31

資訊中心管理Column

Data C

enter Managem

ent

Page 4: OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. · OWASP(Open Web Application Security Project)為專門研究網站應用程式的弱點

Data Center Management

A4 Insecure Direct Object References 不安全的物件參考

擁有上傳檔案功能的網頁,如不限定其上傳檔

案類型,攻擊者可把惡意程式傳入系統並透過

釣魚信件將 URL 提供給受害者。

另一常犯問題是下載路徑參照,攻擊者更改

原使用者下載路徑參數,以操控路徑(Path

Traversal)至根目錄下抓取系統設定檔案,竊

取設定檔的資料庫連線帳密等資訊,再者搜尋

引擎可藉由不安全參考設計找到利用 url 參數

來讀取敏感性的文件。

A5 Security Mis-configuration 安全上設定錯誤

一般而言系統出廠設定有「預設值」,但使用

者常忽略更改,加上大多設備沒特別要求需修

改,容易將系統敏感資訊暴露!且網站應用伺

服器常將錯誤訊息顯示在畫面上,雖對開發人

員來說是很好的除錯,有時卻反讓駭客得到更

多資訊。

因篇幅關係, A6 - A10 風險內容請至「叡揚資

安電子報第 0136 期」完整介紹。

網站弱點可分為直接讀取網站時便執行惡意腳

本程式碼的 Reflected XSS 及透過不可信賴的

來源如資料庫或檔案執行程式碼的 Stored XSS

(或稱 Persistent XSS,常於留言板發生);對

開發者來說,只要懂原理便十分容易解決,如

微軟於 .NET 開發平台內附的 Encoder,即可

用 HtmlEncode 轉換字元來避免惡意腳本程式

碼的輸入。

不安全物件參考惡意程式:受害者可能因沒注意信件連結網址是惡意程式而去執行。

未配置錯誤處理頁面導致系統敏感資訊暴露。

| 叡揚e論壇 第85期 | January 201732