Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

.NET Security Application/Web Development - Part IV

187 views

Published on

Community sharing session for how to development secure web application.

Published in: Software
  • Be the first to comment

.NET Security Application/Web Development - Part IV

  1. 1. .NET 安全應用程式開發 – 開發與檢測工具 .NET Security Application Development – Part IV Blackie Tsai blackie1019@gmail.com August 2018
  2. 2. 課程大綱 • 開發與檢測工具介紹 • 安全軟體開發生命週期
  3. 3. 工具介紹
  4. 4. 早期發現、早期治療 • 資安在開發期及測試期的缺陷,損害只占上線前期的1/100,000 • 此可知資安在越前面的階段執行,損害代價越小: • 組織內的資安專家/設備,多專長在網路/作業系統/伺服器等基礎建設 • 應用程式功能愈來愈多,架構愈來愈複雜,時程壓力又大,程式人員往往不瞭解/ 忽視安全問題 • 即使被告知應用系統漏洞,可能也不曉得從何處理起 • 處理應用程式安全問題變成上線的瓶頸 • 無法密集委外檢測Web應用程式是否有新的漏洞 • 網站是否符合政府/產業資安法規 • 委外開發的Web應用程式,難以驗收其安全性
  5. 5. Visual Studio Integrated Plug-in • VS2010 - VS2017 • Dotfuscator - PreEmptive Protection • ReSharper • VS2017 • Microsoft Code Analysis 2017 • VS2015 - VS2017 • Security Code Scan • VS2010 - VS2015 • Roslyn Security Guard • VS2005 - VS2008 • CAT.NET
  6. 6. • A set of roslyn analyzers that aim to help security audits on .NET applications • Bug patterns • Code fixes • VS integration • Taint analysis • Continuous integration • Open-source • https://dotnet-security-guard.github.io/ Roslyn Security Guard
  7. 7. • Detects various security vulnerability patterns: • SQL Injection, Cross-Site Scripting (XSS), • Cross-Site Request Forgery (CSRF), • XML external Entity Injection (XXE). • Taint analysis to track user input data. • One click refactoring for some vulnerabilities. • Analyzes .NET and .NET Core projects in a background (intelligence) or during a build. • Continuous Integration (CI) through MSBuild. • Open-source • https://security-code-scan.github.io/ Security Code Scan
  8. 8. SQL Server - 弱點評量 • 僅支援 SQL Server Management Studio (SSMS) v17.4 或之後的版本. • 支援 SQL Server 2008 - SQL Server 2017 • 支援 SQL Server 2000 與 SQL Server 2005, 但部分功能會失效
  9. 9. SonarQube • Continuous Code Quality • Code Smells • Bugs • Vulnerabilities • 評量標準 • Reliability • Security • Maintainability • Coverage • Duplication • Size • https://www.sonarqube.org/ • https://github.com/SonarSource/sonar-csharp
  10. 10. 整合所有流程
  11. 11. Open VAS • 是開放式漏洞評估系統,其核心部分是一個服務器。該服務器包括一套網 絡漏洞測試程序,可以檢測遠程系統和應用程序中的安全問題 http://www.openvas.org/
  12. 12. Microsoft Baseline Security Analyze • 是一個簡單易用的工具,可協助中小型企業判斷其安全性狀態是否符合 Microsoft 的安全性建議,並會根據結果提供具體的矯正指示。使用 MBSA 偵測一般常犯的安全性設定錯誤和電腦系統所遺漏的安全性更新, 以增強您的安全性管理流程。 • 安全更新(security updates) • 匯整服務包(rollups and service packs) • 系統安全設定和組態 • Internet Information Server • SQL Server • Office https://www.microsoft.com/en-us/download/details.aspx?id=7558
  13. 13. 其他資訊 • Microsoft Technical Security Notifications • Security Update Email Alerts • E-mail: Security Notification Service • Security Advisories Alerts • E-mail: Security Notification Service Comprehensive Edition • RSS: Security Advisories • Web Site: Security Advisories • Microsoft Security Response Center Blog Alerts • RSS: MSRC Blog • Windows 的 Security 安全性更新 OS patch • NET Framework 的 Security 安全性更新 Hotfix • 升級 .NET Framework Version
  14. 14. 安全軟體開發生命週期
  15. 15. Microsoft SDL 培訓 • 核心訓練 需求 • 分析安全與隱私風險 • 定義品質門檻 設計 • 風險朔模 • 資安層級分析 執行 • 指定工具 • 強制禁止的功能 • 靜態分析 驗證 • 隨機測試 • 驗證威脅模型與攻擊 層級 發佈 • 回應計畫 • 最終安全回顧 • 發佈版本 回應 • 執行回應
  16. 16. 威脅模型化(Threat modeling) • 尋找系統潛在威脅以建立對抗的策略,以建立安全的系統 • 攻擊者導向(Attacker-centric) • 攻擊者導向的威脅模型分析是以一位攻擊者為出發點,評估攻擊者的目的與他們如 何達成目的 • 軟體導向(Software-centric) • 思考點是系統的設計方式與系統的運作目的,並尋找對此系統或其內部模組相關類 型的攻擊方式 • 資產導向(Asset-centric) • 資產導向的分析方式是從系統所託管的資源著手分析
  17. 17. 白帽滲透測試 • 黑箱測試:測試者除了知道網站或軟體的名稱外,對目標一無所知 • 白箱測試:測試者完全了解網絡組態與應用程式架構,也能進入網絡和使 用相關裝置甚至修改程式原始碼 • 灰箱測試:測試者掌握若干資訊和某程度的進入權。企業選擇什麼類型的 測試,取決於它最想保護什麼、最擔心什麼類型的敵人,以及它估計敵人 會蒐集多少資訊來發動惡意攻擊。
  18. 18. 滲透測試(Penetration Testing) • 模擬各種駭客攻擊的手法,以無害的方式去測試運行中的Web應用程式, 根據系統的回應,判斷系統是否存在各種安全性問題,並按照問題的輕重 緩急順序,提供可立即處理問題的建議做法 • 特點: • 檢測範圍較廣。無論後端使用什麼程式語言、運行在什麼平台、使用什麼DB都能 檢測 • 就像駭客用工具找漏洞一樣,直接使用系統,準確度較高 • 不需提供任何程式碼 • 限制:以檢測OS, Web系統和Web Service為主
  19. 19. 源碼檢測(Source Code Analysis) • 分析提供的原始碼,以理論模式去判斷系統是否存在各種安全性問題,指 出有安全問題的原始碼位置,並按照問題的輕重緩急順序,提供可立即處 理問題的建議做法 • 特點: • 找出程式碼的安全漏洞,直接點出有問題的程式碼,加快開發人員進行問題的修正 • 不侷限於Web系統 • 不需要先部署系統,讓系統運行 • 限制:工具必須完整認識受測系統採用的開發語言(例:Java,.NET, C++)及開發架構 (例:Struts,Spring)
  20. 20. 公司整體安全政策 • 例如資訊安全, 安全流程規範, 數位資產防護, USB/行動電腦使用規範等 • 這樣的培訓通常會在新員工入職舉辦, 或是定期公司以宣傳的方式進行, • 網路安全從業人員對於網路安全業務的處理, 會有更其他網路安全從業要 求的培訓, • 除了一般常見的軟體安全技術, 例如: 安全編碼 or 安全需求等 • 主要在於必須要識別出關鍵的安全需求風險 • 哪些軟體的設計會導致安全合規的障礙或是缺失必須要識別出, 提煉出相關軟體的 安全需求, 安全設計, 確認清單
  21. 21. 安全架構設計與安全設計 • 安全架構設計 • 軟體的安全指的是透過 SDL (Secure Development Lifecyle)保障軟體的安全 • 安全設計 • 包含整體性攻擊與威脅防護的安全設計方案
  22. 22. 威脅分析 • 在設計階段時會進行威脅分析的討論, 針對每個模組進行 STRIDE 的威脅 與防護的分析 • 隨著時間的累積, 會累積一定的資料庫 • 必須避免流於形式, 為了符合流程而只是做拷貝複製類似模組的威脅分析 • 必須厘清現有的削減措施與建議消減措施以便落地于產品開發中 • 必須與團隊溝通達成實作的平衡 • 安全工程師 • 開發工程師 • 業務單位 • 成本、風險與威脅、急迫性與嚴重性 • 80/20 法則
  23. 23. 安全編碼 • 針對開發的語言確保編譯安全, 安全編碼掃描工具使用, 加密演算法使用等 • 值得參考的安全編碼規範有 • CWE • OWASP
  24. 24. 網路法規, 個人隱私保護與商業需求 • 歐洲 GDPR 個人隱私資料保護法的實施, 讓個人隱私資料保護成為各互聯 網企業的顯學 • 在中國有<網路安全法> 確保隱私資料外洩 • 國際上也有ISO-27001, ISO-20000 等既有國際法規 • 商業安全需求 • 客戶 • 法規 • 行業 OWASP, NIST, CSA • 安全認證 • 業務場景衍生

×