OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. ·...
Transcript of OWASP Top10 應用系統面臨多元資安風險 之教戰手則(下) · 2019. 3. 20. ·...
延續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
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
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
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