感謝您提交詢問!我們的一位團隊成員將在短時間內與您聯繫。
感謝您提交預訂!我們的一位團隊成員將在短時間內與您聯繫。
課程時長 14 時間:
課程簡介
第一天
資訊系統安全與安全編程
- 安全的本質
- 資訊系統安全相關術語
- 風險的定義
- 資訊系統安全的不同面向
- 不同應用領域的要求
- 資訊系統安全與安全編程的區別
-
從漏洞到殭屍網路與網絡犯罪
- 安全缺陷的本質
- 困難的原因
- 從受感染的計算機到定向攻擊
-
安全缺陷的分類
- Landwehr的分類法
- 七大惡性領域(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 處理器 – 主要寄存器
- 內存地址佈局
- C/C++在x86上的函數調用機制
- 局部變量與堆棧幀
-
堆棧溢位
- 堆棧上的緩衝區溢位
- 練習 – 介紹
- 練習 BOFIntro
- 練習 BOFIntro – 確定堆棧佈局
- 練習 BOFIntro – 簡單利用
-
輸入驗證
- 輸入驗證概念
-
整數問題
- 負整數的表示
- 整數溢位
- 算術溢位 – 猜測輸出!
- 練習 IntOverflow
- Math.Abs(int.MinValue) 的值是多少?
-
整數問題緩解
- 整數問題緩解
- 避免算術溢位 – 加法
- 避免算術溢位 – 乘法
- 使用C#中的checked關鍵字檢測溢位
- 練習 – 在C#中使用checked關鍵字
- C#中由溢位引發的異常
-
案例研究 – .NET中的整數溢位
- 真實世界的整數溢位漏洞
- 利用整數溢位漏洞
-
路徑遍歷漏洞
- 路徑遍歷緩解
第二天
安全實現原則
-
注入
- 典型的SQL注入攻擊方法
- 盲注與基於時間的SQL注入
- SQL注入防護方法
- 命令注入
-
認證失敗 - 密碼管理
- 練習 – 哈希密碼的弱點
- 密碼管理與存儲
- 用於密碼存儲的專用哈希算法
-
跨站腳本攻擊(XSS)
- 跨站腳本攻擊(XSS)
- CSS注入
- 利用:通過其他HTML標籤注入
- XSS防禦
-
缺少函數級訪問控制
- 文件上傳過濾
-
實用密碼學
- 使用對稱密碼學提供機密性
- 對稱加密算法
- 分組密碼 – 運算模式
- 哈希或消息摘要
- 哈希算法
- 消息認證碼(MAC)
- 使用對稱密鑰提供完整性與真實性
- 使用公鑰加密提供機密性
- 準則 – 私鑰的持有
- 密碼管理中的典型錯誤
- 練習 – 硬編碼密碼
- 結論
安全驗證原則
- 功能測試與安全測試
- 安全漏洞
- 優先級排序
- SDLC中的安全測試
- 測試計劃步驟(風險分析)
-
範圍確定與信息收集
- 利益相關者
- 資產
- 攻擊表面
- 測試的安全目標
-
威脅建模
- 威脅建模
- 攻擊者檔案
- 基於攻擊樹的威脅建模
- 基於誤用/濫用場景的威脅建模
- 誤用/濫用場景 – 簡單Web商店範例
- 基於STRIDE每個元素的MS SDL威脅建模方法
- 識別安全目標
- 圖表 – DFD元素範例
- 數據流圖 – 範例
- 威脅列舉 – MS SDL的STRIDE和DFD元素
- 風險分析 – 威脅分類
- DREAD威脅/風險評分模型
-
安全測試技術與工具
- 一般測試方法
- SDLC各階段的技術
-
代碼審查
- 軟體安全的代碼審查
- 污點分析
- 啟發式方法
-
靜態代碼分析
- 靜態代碼分析
- 練習 – 使用靜態代碼分析工具
-
實現測試
- 手動運行時驗證
- 手動與自動安全測試
- 滲透測試
- 壓力測試
-
模糊測試
- 自動安全測試 - 模糊測試
- 模糊測試的挑戰
-
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)
機器翻譯