感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程時長 14 時間:
課程簡介
第一天
IT 安全與安全編碼
- 安全的性質
- IT 安全相關術語
- 風險的定義
- IT 安全的不同面向
- 不同應用領域的要求
- IT 安全 vs. 安全編碼
-
從漏洞到殭屍網路和網路犯罪
- 安全缺陷的性質
- 困難的原因
- 從受感染的電腦到目標攻擊
-
安全缺陷的分類
- Landwehr 分類法
- 七大惡性領域 (The Seven Pernicious Kingdoms)
- OWASP Top Ten 2013
- OWASP Top Ten 比較 2003 – 2013
簡介 Microsoft® 安全開發生命週期 (SDL)
- 議程
-
遭受攻擊的應用...
- 網路犯罪的演變
- 攻擊聚焦於應用程序
- 大多數漏洞存在於較小的 ISV 應用中
-
Microsoft SDL 的起源...
- Microsoft 安全時間軸...
- 哪些應用需要遵循 SDL?
-
Microsoft 安全開發生命週期 (SDL)
- Microsoft 安全開發生命週期 (SDL)
- SDL 前置要求:安全培訓
- 第一階段:需求
- 第二階段:設計
- 第三階段:實現
- 第四階段:驗證
- 第五階段:發布 – 回應計劃
- 第五階段:發布 – 最終安全審查
- 第五階段:發布 – 存檔
- SDL 後續要求:回應
- LOB 應用的 SDL 流程指導
- 敏捷方法學的 SDL 指導
- 安全軟體開發需要流程改進
安全設計原則
-
攻擊面
- 攻擊面減少
- 攻擊面 – 範例
- 攻擊面分析
- 攻擊面減少 – 範例
-
隱私
- 隱私
- 理解應用行為與顧慮
-
縱深防禦
- SDL 核心原則:縱深防禦
- 縱深防禦 – 範例
-
最小權限原則
- 最小權限 – 範例
-
安全預設值
- 安全預設值 – 範例
安全實現原則
- 議程
- Microsoft 安全開發生命週期 (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 中的安全測試
- 測試規劃步驟(風險分析)
-
範圍界定和資訊收集
- 利害關係人
- 資產
- 攻擊面
- 測試的安全目標
-
威脅建模
- 威脅建模
- 攻擊者檔案
- 基於攻擊樹的威脅建模
- 基於濫用/誤用案例的威脅建模
- 濫用/誤用案例 – 簡單 Web 商店範例
- 基於元素的 STRIDE 威脅建模方法 – MS SDL
- 識別安全目標
- 圖表 – DFD 元素範例
- 資料流圖 – 範例
- 威脅枚舉 – MS SDL 的 STRIDE 和 DFD 元素
- 風險分析 – 威脅分類
- DREAD 威脅/風險排名模型
-
安全測試技術和工具
- 一般測試方法
- SDLC 各步驟的技術
-
程式碼審查
- 針對軟體安全的程式碼審查
- 污點分析
- 啟發式方法
-
靜態程式碼分析
- 靜態程式碼分析
- 練習 – 使用靜態程式碼分析工具
-
測試實現
- 手動執行時驗證
- 手動 vs. 自動安全測試
- 滲透測試
- 壓力測試
-
模糊測試 (Fuzzing)
- 自動安全測試 - 模糊測試
- 模糊測試的挑戰
-
Web 漏洞掃描器
- 練習 – 使用漏洞掃描器
-
檢查和加固環境
- 常見漏洞評分系統 – CVSS
- 漏洞掃描器
- 公開資料庫
-
案例研究 – Forms 認證繞過
- NULL 字元終止漏洞
- 程式碼中的 Forms 認證繞過漏洞
- 利用 Forms 認證繞過
知識來源
- 安全編碼來源 – 入門套件
- 漏洞資料庫
- MSDN 上的 .NET 安全編碼指南
- .NET 安全編碼速查表
- 推薦書籍 – .NET 和 ASP.NET
客戶評論 (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)
機器翻譯