感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程簡介
第一天
IT 資安與安全編碼
- 安全的本質
- 與 IT 資安相關的術語
- 風險的定義
- 不同層面的 IT 資安
- 不同應用領域的需求
- IT 資安 vs. 安全編碼
- 從脆弱性到病毒體和網路犯罪
- 安全缺失的本質
- 困難的原因
- 從受感染的電腦到定向攻擊
- 安全缺失的分類
- Landwehr 的分類法
- 七大惡劣王國 (The Seven Pernicious Kingdoms)
- OWASP Top Ten 2013
- OWASP Top Ten 2003 與 2013 比較
微軟®安全開發生命週期 (SDL) 簡介
- 議程
- 遭受攻擊的應用程式...
- 網路犯罪的演變
- 攻擊聚焦於應用程式
- 大多數脆弱性存在於較小的獨立軟體供應商 (ISV) 應用程式中
- 微軟 SDL 的起源...
- 微軟的安全時間軸...
- 哪些應用程式需要遵循 SDL?
- 微軟安全開發生命週期 (SDL)
- 微軟安全開發生命週期 (SDL)
- SDL 前期要求:安全教育
- 第一階段:需求
- 第二階段:設計
- 第三階段:實作
- 第四階段:驗證
- 第五階段:發佈 - 應變計畫
- 第五階段:發佈 - 最終安全審查
- 第五階段:發佈 - 封存
- SDL 後期要求:回應
- 內部業務應用程式 (LOB Apps) 的 SDL 流程指引
- 敏捷方法的 SDL 指引
- 安全軟體開發需要流程改進
安全設計原則
- 攻擊面
- 攻擊面縮減
- 攻擊面 - 範例
- 攻擊面分析
- 攻擊面縮減 - 範例
- 隱私
- 隱私
- 理解應用程式行為與關注點
- 深度防禦
- SDL 核心原則:深度防禦
- 深度防禦 - 範例
- 最低權限原則
- 最低權限 - 範例
- 安全預設值
- 安全預設值 - 範例
安全實作原則
- 議程
- 微軟安全開發生命週期 (SDL)
- 緩衝區溢位基礎
- Intel 80x86 處理器 - 主要暫存器
- 記憶體位址配置
- x86 上 C/C++ 的函數呼叫機制
- 本機變數與堆疊框架
- 堆疊溢位
- 堆疊上的緩衝區溢位
- 練習 - 簡介
- 練習 BOFIntro
- 練習 BOFIntro - 確定堆疊配置
- 練習 BOFIntro - 簡單的程式碼利用
- 輸入驗證
- 輸入驗證概念
- 整數問題
- 負整數的表示
- 整數溢位
- 算術溢位 - 猜猜輸出結果!
- 練習 IntOverflow
- Math.Abs(int.MinValue) 的值為何?
- 整數問題緩解
- 整數問題緩解
- 避免算術溢位 - 加法
- 避免算術溢位 - 乘法
- 在 C# 中使用 checked 關鍵字偵測溢位
- 練習 - 在 C# 中使用 checked 關鍵字
- C# 中由溢位觸發的例外狀況
- 案例研究 - .NET 中的整數溢位
- 現實世界的整數溢位脆弱性
- 利用整數溢位脆弱性
- 路徑遍歷脆弱性
- 路徑遍歷緩解
第二天
安全實作原則
- 注入
- 典型的 SQL 注入攻擊方法
- 盲注和基於時間的 SQL 注入
- SQL 注入保護方法
- 命令注入
- 驗證失敗 - 密碼管理
- 練習 - 雜湊密碼的弱點
- 密碼管理與儲存
- 用於密碼儲存的專用雜演算法
- 跨網站腳本 (XSS)
- 跨網站腳本 (XSS)
- CSS 注入
- 利用:通過其他 HTML 標籤注入
- XSS 預防
- 缺失的功能層級存取控制
- 過濾檔案上傳
- 實用密碼學
- 透過對稱式密碼學提供機密性
- 對稱加密演算法
- 區塊密碼 - 運作模式
- 雜湊或訊息摘要
- 雜演算法
- 訊息驗證碼 (MAC)
- 透過對稱金鑰提供完整性與真實性
- 透過公鑰加密提供機密性
- 經驗法則 - 私鑰的所有權
- 密碼管理中的常見錯誤
- 練習 - 硬編碼密碼
- 結論
安全驗證原則
- 功能測試 vs. 安全測試
- 資安脆弱性
- 優先順序
- 軟體開發生命週期 (SDLC) 中的安全測試
- 測試計畫步驟 (風險分析)
- 範圍界定與資訊收集
- 利害關係人
- 資產
- 攻擊面
- 測試的安全目標
- 威脅建模
- 威脅建模
- 攻擊者畫像
- 基於攻擊樹的威脅建模
- 基於誤用/濫用案例的威脅建模
- 誤用/濫用案例 - 簡單的網路商店範例
- 每個元素的 STRIDE 威脅建模方法 - MS SDL
- 識別安全目標
- 繪圖 - DFD 元素範例
- 資料流圖 - 範例
- 威脅列舉 - MS SDL 的 STRIDE 和 DFD 元素
- 風險分析 - 威脅分類
- DREAD 威脅/風險排名模型
- 安全測試技術與工具
- 一般測試方法
- SDLC 各階段的技術
- 程式碼審查
- 軟體安全程式碼審查
- 污點分析 (Taint analysis)
- 啟發式方法
- 靜態程式碼分析
- 靜態程式碼分析
- 練習 - 使用靜態程式碼分析工具
- 測試實作
- 手動執行時驗證
- 手動 vs. 自動化安全測試
- 滲透測試
- 壓力測試
- 模糊測試 (Fuzzing)
- 自動化安全測試 - 模糊測試
- 模糊測試的挑戰
- 網路脆弱性掃描器
- 練習 - 使用脆弱性掃描器
- 檢查與強化環境
- 常見脆弱性評分系統 - CVSS
- 脆弱性掃描器
- 公開資料庫
- 案例研究 - 表單驗證繞過
- NULL 字元終止脆弱性
- 程式碼中的表單驗證繞過脆弱性
- 利用表單驗證繞過
知識來源
- 安全編碼來源 - 入門套件
- 脆弱性資料庫
- MSDN 上的 .NET 安全編碼指南
- .NET 安全編碼秘訣表 (Cheat Sheets)
- 推薦書籍 - .NET 和 ASP.NET
14 小時
客戶評論 (3)
經驗分享,這是教師的訣竅和寶貴之處。
Carey Fan - Logitech
課程 - C/C++ Secure Coding
機器翻譯
培訓師的知識非常豐富,他清楚地知道自己在說什麼,並且能夠回答我們的問題
Adam - Fireup.PRO
課程 - Advanced Java Security
機器翻譯
主題非常前沿,我需要更新知識
Damilano Marco - SIAP s.r.l.
課程 - Secure Developer Java (Inc OWASP)
機器翻譯