課程簡介

第1天

  • IT 安全和安全編碼
    • 安全的性質
    • IT 安全相關術語
    • 風險定義
    • IT 安全的不同方面
    • 不同應用領域的要求
    • IT 安全與安全編碼
    • 從漏洞到殭屍網路和網路犯罪
      • 安全漏洞的性質
      • 困難的原因
      • 從受感染的電腦到有針對性的攻擊
    • 安全漏洞的分類
      • 蘭德維爾分類法
      • 七惡王國
      • OWASP 2013 年前十名
      • OWASP 2003 – 2013 年十大比較
  • Microsoft ® 安全開發生命週期 (SDL) 簡介
    • 議程
    • 應用程式受到攻擊...
      • 網路犯罪的演變
      • 攻擊主要針對應用程式
      • 大多數漏洞位於較小的ISV應用程式中
    • Microsoft SDL 的起源...
      • 安全時程表在 Microsoft...
      • 哪些應用程式需要遵循 SDL?
    • Microsoft 安全開發生命週期 (SDL)
      • Microsoft 安全開發生命週期 (SDL)
      • SDL 入學前要求:安全培訓
      • 第一階段:要求
      • 第二階段:設計
      • 第三階段:實施
      • 第四階段:驗證
      • 第五階段:發佈 – 回應計劃
      • 第五階段:發佈 – 最終安全審查
      • 第五階段:發佈 – 存檔
      • SDL 后要求:回應
      • 適用於 LOB 應用程式的 SDL 流程指南
      • Agile 方法的 SDL 指南
      • 安全的軟體開發需要改進流程
  • 安全設計原則
    • 攻擊面
      • 攻擊面減少
      • 攻擊面 – 示例
      • 攻擊面分析
      • 攻擊面減少 – 示例
    • 隱私
      • 隱私
      • 瞭解應用程式行為和關注點
    • 深度防禦
      • SDL 核心原則:深度防禦
      • 縱深防禦 – 示例
    • 最小許可權原則
      • 最低許可權 – 示例
    • 安全預設值
      • 安全預設值 – 示例
  • 安全實施原則
    • 議程
    • Microsoft 安全開發生命週期 (SDL)
    • 緩衝區溢出基礎知識
      • Intel 80x86 處理器 – 主寄存器
      • 記憶體地址佈局
      • 在 x86 上 C/C++ 中的函數調用機制
      • 局部變數和堆棧幀
      • 堆疊溢出
        • 堆疊上的緩衝區溢出
        • 練習 – 簡介
        • 練習BOFIntro
        • 練習 BOFIntro – 確定堆疊佈局
        • 練習BOFIntro – 一個簡單的漏洞
    • 輸入驗證
      • 輸入驗證概念
      • 整數問題
        • 負整數的表示
        • 整數溢出
        • 算術溢出 – 猜猜輸出!
        • 練習 IntOverflow
        • What is the value of Math.Abs(int.MinValue)?
      • 整數問題緩解
        • 整數問題緩解
        • 避免算術溢出 – 加法
        • 避免算術溢出 – 乘法
        • 在 C# 中檢測帶有 checked 關鍵字的溢出
        • 練習 – 在 C# 中使用 checked 關鍵字
        • C# 中的溢出觸發的異常
      • 案例研究 – .NET 中的整數溢出
        • 現實世界的整數溢出漏洞
        • 利用整數溢出漏洞
      • 路徑遍歷漏洞
        • 路徑遍歷緩解

第2天

  • 安全實施原則
    • 注射
      • 典型的 SQL 注入攻擊方法
      • 盲注和基於時間的 SQL 注射
      • SQL 注射保護方法
      • 命令注入
    • 身份驗證失效 - 密碼管理
      • 練習 – 哈希密碼的弱點
      • 密碼管理和存儲
      • 用於密碼存儲的特殊用途哈希演算法
    • 跨網站文稿 (XSS)
      • 跨網站文稿 (XSS)
      • CSS 注射
      • 利用漏洞:通過其他 HTML 標籤注入
      • XSS 預防
    • 缺少函數級訪問控制
      • 篩選檔上傳
    • 實用密碼學
      • 通過對稱加密技術提供機密性
      • 對稱加密演算法
      • 群組密碼 – 操作模式
      • 哈希或消息摘要
      • 哈希演算法
      • 訊息認證代碼 (MAC)
      • 使用對稱金鑰提供完整性和真實性
      • 通過公鑰加密提供機密性
      • 經驗法則 – 擁有私鑰
      • 密碼管理中的典型錯誤
      • 練習 – 硬編碼密碼
      • 結論
  • 安全驗證原則
    • 功能測試與安全測試
    • 安全漏洞
    • 優先順序
    • SDLC 中的安全測試
    • 測試計劃的步驟(風險分析)
    • 範圍界定和資訊收集
      • 利益相關者
      • 資產
      • 攻擊面
      • 測試的安全目標
    • 威脅建模
      • 威脅建模
      • 攻擊者配置檔
      • 基於攻擊樹的威脅建模
      • 基於誤用/濫用案例的威脅建模
      • 誤用/濫用案例 – 一個簡單的網上商店示例
      • 威脅建模的 STRIDE 每元素方法 – MS SDL
      • 確定安全目標
      • 圖表 – DFD 元素示例
      • 數據流圖 – 示例
      • 威脅枚舉 – MS SDL 的 STRIDE 和 DFD 元素
      • 風險分析 – 威脅分類
      • DREAD 威脅/風險排名模型
    • 安全測試技術和工具
      • 一般測試方法
      • SDLC 各個步驟的技術
    • 代碼審查
      • 軟體安全代碼審查
      • 污點分析
      • 啟發式
    • 靜態代碼分析
      • 靜態代碼分析
      • 靜態代碼分析
      • 練習 – 使用靜態代碼分析工具
    • 測試實現
      • 手動運行時驗證
      • 手動與自動安全測試
      • 滲透測試
      • 壓力測試
    • 模糊
      • 自動安全測試 - 模糊測試
      • 模糊測試的挑戰
    • Web 漏洞掃描程式
      • 練習 – 使用漏洞掃描程式
    • 檢查和強化環境
      • 通用漏洞評分系統 – CVSS
      • 漏洞掃描程式
      • 公共資料庫
    • 案例研究 – Forms 身份驗證繞過
      • NULL 位元組終止漏洞
      • 代碼中的 Forms Authentication Bypass 漏洞
      • 利用 Forms 身份驗證繞過
  • 知識來源
    • 安全的編碼源 – 入門套件
    • 漏洞資料庫
    • MSDN 上的 .NET 安全編碼準則
    • .NET 安全編碼備忘單
    • 推薦書籍 – .NET 和 ASP.NET
 14 時間:

人數


每位參與者的報價

客戶評論 (5)

Provisional Upcoming Courses (Require 5+ participants)

課程分類