安全程式開發(OWASP TOP 10)
安全程式開發
近幾年應用程式所產生的安全漏洞數量已經明顯高於網路與作業系統層級的總和,其中尤其以 Web 相關的應用程式為最大宗。所以在程式的開發上面,我們可以通過一些常見的規範來幫助我們提升安全性。
OWASP TOP 10
開放網路軟體安全計畫,簡稱OWASP (Open Web Application Security Project)OWASP是一個開放社群、非營利性組織,全球目前有82個分會,其主要目標是研議協助解決網路軟體安全之標準、工具與技術文件,長期致力於協助政府或企業瞭解並改善應用程式的安全性。
根據了從數以百計的組織和超過10萬個實際應用程式和API中收集的漏洞。 前10大風險項是根據這些流行數據選擇和優先排序,並結合了對可利用性、可檢測性和影響程度的一致性評估而形成。
應用程式安全風險
攻擊者可以通過應用程序中許多不同的路徑方法去危害您的業務或者企業組織。
每種路徑方法都代表了一種風險, 這些風險將根據等級去評估是否值得投入成本去修正。
OWASP 網站介紹
在網站裡可以看到每一項弱點的詳細分析(httphttps://owasp.org/www-project-top-ten/)
OWASP TOP 10 (2017)
- A1:2017 – Injection. (注入)
- A3:2017 – Broken Authentication. (失效的身份認證)
- A3:2017 – Sensitive Data Exposure. (敏感資料泄漏)
- A4:2017 – XML External Entities (XXE). (XML外部實體XXE)
- A5:2017 – Broken Access Control. (失效的訪問控制)
- A6:2017 – Security Misconfiguration. (安全配置錯誤)
- A7:2017 – Cross-Site Scripting (XSS). (跨站腳本XSS)
- A8:2017 – Insecure Deserialization. (不安全的反序列化)
- A9:2017 – Using Components with Known Vulnerabilities. (使用含有已知漏洞的組件)
- A10:2017 – Insufficient Logging & Monitoring. (不足的日志記錄和監控)
SONAR 應用
在SonarQube的應用上可以針對OWASP TOP 10 去做分析。
1.可以在SonarQube的Issues裡面看到針對OWASP TOP 10 的分類
點進去可以看到修正方法
2.SonarQube Enterprise版本可以看到OWASP TOP 10 的報告
3.Security Plugin For SonarQube透過付費的Plugin也可以看到OWASP的報告
OPEN SOURCE 掃描
由於SonarQube無法針對引用的dependencies 掃描,如果我們需要檢測A9:2017 – Using Components with Known Vulnerabilities.的話可以使用一些OPEN SOURCE掃描工具去修正。
1.Snyc(https://app.snyk.io/)
必須在Snyc的網站上看所以需要使用者建立帳號
Dependencies Tree 分析得很清楚可以了解到是引用哪個dependencies才導致的弱點
修正方法
支援各大Repository
2.White Source Bolt(https://www.whitesourcesoftware.com/free-developer-tools/bolt/)
透過Scan會直接將掃出產生在Repository的Issues裡面不需要在新建帳號
可以使用Issues 的本身功能如指派...等
可以直接在裡面看的漏洞的分析及處理建議
目前支援GITHUB跟AZURE
結論
以上透過認識OWASP TOP 10 及修正方法後,將使我們的程式安全性更高且可以在開發初期就能修正漏洞以減少在上線後的修復成本。