SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Taien內部資安講座 II
使安全成為軟體開發必要部分
        2013.01.16 @ Hiiir Inc.
  Taien Wang<taien_wang@hiiir.com>
英屬維京群島商時間軸科技股份有限公司新創事業部
大綱
•   使安全成為軟體開發必要部分
•   風險管理框架
•   七個接觸點
    – 程式碼審核
    – 體系結構風險分析
    – 滲透測試
    – 基於風險的安全測試
    – 濫用案例
    – 安全需求
    – 安全操作
•   實際導入經驗
軟體安全 - 向左移動

•   問題越早解決越好
Building Security In
使安全成為軟體開發必要部分
•   微軟

    – Security System Development Life Cycle, SSDLC

•   Gray McGraw

    – 軟體安全接觸點

    – Software Security: Building Security In
Security System Development Life Cycle




        800
        600
        400
        200
                               CVE
          0
軟體安全的三個基石
•   應用風險管理

    –    風險管理框架(Risk Management Framework, RMF)

•   軟體安全的接觸點

    –    微軟可信賴計算計畫(Mircosoft Trustworthy Computing Initiative)

    –    Gray McGraw接觸點: 程式碼審核, 體系結構風險分析, 滲透測試, 基於風險的安全測試, 濫
         用案例, 安全需求和安全操作

•   知識

    –    軟體安全知識: 原則, 方針, 規則, 弱點, 攻擊程序, 攻擊模式和歷史風險

    –    知識類: 說明性知識, 診斷性知識和歷史知識
軟體安全接觸點(Touchpoint)
BSI有誰在用

•   美國國土安全部-國家網路安全處(NCSD)

•   美國國家標準與技術研究所(NIST)

•   國際標準化組織(ISO)

•   電氣電子工程師協會(IEEE)
誰該實行軟體安全

•   開發人員都要有資安的素養

    – 建立一個軟體安全小組

    – 不要在安全人員中培養軟體安全人員

    – 從軟體人員中培養軟體安全人員



•   Bill Gate, "Trustworthy computing", 2002

    – 發給微軟員工的備忘錄
軟體安全在學術界情況
學校                                             課程
University of California at Davis              Introduction to Computer Security
University of Virginia                         Computer and Information Security
Johns Hopkins University                       Computer Security: An Intrusion Detection
                                               Approach
Princeton University
                                               Foundations of Computer and Information
Purdue University
                                               Security
Rice University
                                               Computer Incident Detection and
University of California at Berkeley           Response
Stanford University                            Cryptography and Data Security
Naval Postgraduate School                      Penetration Analysis
University of Idaho                            Advanced Topics in Security
Iowa State University
George Washington University
United States Military Academy at West Point
風險管理框架

•   理解商業環境

•   確定商業和技術風險

•   綜合考慮和確定風險級別

•   定義降低風險的策略

•   實施修復並驗證它們的正確性
七個接觸點

1. 程式碼審核

2. 體系結構風險分析

3. 滲透測試

4. 基於風險的安全測試

5. 濫用案例

6. 安全需求

7. 安全操作
1. 程式碼審核(1/3)
•   早期程式碼審核
    –   grep, find
    –   詞彙分析
    –   相關產品
          •   ITS4, Flawfinder, RATS
•   現在程式碼審核
    –   抽象語法樹(AST)
    –   相關產品
          •   阿碼科技: CodeSecure
                 –   http://www.armorize.com/codesecure/
          •   HP Fortify SCA
                 –   2010年8月17日, HP宣布收購Fortify Software
                 –   http://www8.hp.com/us/en/software-solutions/software.html?compURI=1338812/
          •   IBM: IBM Security AppScan Source
                 –   IBM收購Ounce Labs
                 –   http://www-01.ibm.com/software/rational/products/appscan/source/
1. 程式碼審核(2/3)
1. 程式碼審核(3/3)

•   靜態程式碼分析流程
2. 體系結構風險分析(1/6)
簡介
•   風險分析
    –    在軟體開發生命週期的某個特殊階段中確定風險和對風險評鑑的活動
•   風險管理
    –    描述進行大量不連續的風險分析操作, 在整個開發過程中追蹤風險以及降低風險的策略性活動
•   術語
    –    資產 Asset
    –    風險 Risk
          •   風險 = 發生機率 * 影響
    –    威脅 Threat
    –    弱點 Vulnerability
    –    對策或者安全對策 Countermeasures and Safeguards
    –    影響 Impact
          •   可以從兩方面來分析:系統與法律
    –    發生機率 Probability
2. 體系結構風險分析(2/6)
舉例
•   被SQL Injetcion攻擊的風險

    – 一個系統要被成功的SQL Injetcion攻擊, 可能要具備以下兩個條件

       • 必須要有惡意駭客或自動化的SQL攻擊

       • 系統沒有做好SQL Injetcion字串淨化

    – 如此才會產生被入侵的狀況

       • 在此例中, 惡意駭客或自動化的SQL攻擊是外來的威脅,而系統沒
         有做好SQL Injetcion字串淨化,則是自身的弱點

       • 當其中一個要件不成立之時,都可能不會產生被入侵或攻擊之風險
2. 體系結構風險分析(3/6)
風險分析方法原型
•   盡可能地學習關於分析對象的知識
    –   閱讀和理解範圍, 體系結構檔案以及其他的設計素材
    –   與一組人員一起研究對象和討論解決方案
    –   確定系統邊界和資料敏感度/危險程度
    –   實際使用軟體
    –   研究程式碼和其他軟體工程
•   確定威脅,並得出關於攻擊源的共識
    –   討論軟體周圍環境的安全問題
    –   對產品的工作方式展開辯論, 並確定存在異議或者含糊的方面
    –   確定可能的弱點, 有時可使用工具或常見的弱點清單
    –   分析攻擊程式, 並開始討論可能的修改方法
    –   理解當前的和規劃的安全計畫
•   確定受到發生危害的可能性
    –   分析利用弱點進行的攻擊
    –   平衡控制威脅的數量, 並確定發生危害的可能性
•   進行影響分析
    –   確定對資產和商業目標的影響
    –   考慮對安全狀態的影響
2. 體系結構風險分析(4/6)
風險分析方法
•   基本步驟

    – 攻擊抵抗力分析

    – 不確定性分析

    – 弱點分析
2. 體系結構風險分析(5/6)
對風險評鑑
•   開發降低風險的策略

    – 推薦降低風險的對策

    – 報告所發現的內容

•   仔細地描述主要和次要的風險, 注意他們造成的影響

    – 提供一些基本資訊, 以說明如何使用降低風險的有限資源
2. 體系結構風險分析(6/6)

•   舉例
3. 滲透測試
•   開發環節的最後檢查而非最為安全狀態的最先檢查
•   幾乎所有滲透測試方法都依賴黑帽而非白帽
•   黑帽
     –   破壞方法(destructivealtivity), 攻擊與破解程式相關方法
•   白帽
     –   建設方法(constorutiveactivity) 設計與防禦功能相關的方法


•   PTES:Penetration Testing Execution Standard
     –   前期交互階段 Pre-engagement Interactions
     –   情報蒐集階段 Intelligence Gathering
     –   威脅建模階段 Threat Modeling
     –   漏洞分析階段 Vulnerability Analysis
     –   滲透攻擊階段 Exploitation
     –   後滲透攻擊階段 Post Exploitation
     –   報告階段 Reporting
     http://www.pentest-standard.org/index.php/Main_Page
4. 基於風險的安全測試(1/2)

•   為了管理安全風險

    – 創建安全濫用/誤用案例(以及安全特性和功能)

    – 列舉標準化的安全需求

    – 執行體系結構的風險分析

    – 制定基於風險的安全測試計畫

    – 執行靜態分析工具

    – 進行安全測試

    – 在最終環境中進行滲透測試

    – 在安全被破壞後進行清理
4. 基於風險的安全測試(2/2)

•   安全測試兩種不同方法

•   功能性安全測試

    – 測試安全機制以保證正確地實現了他們的功能

•   對抗性安全測試

    – 執行通過理解和模擬攻擊者的方法而設計的基於風險的安全測試
5. 濫用案例(1/2)
•   常見攻擊模式
•   OWASP Testing Guide 3.0
     –   設定管理(Configuration Management Testing)
     –   資訊收集(Information Gathering)
     –   驗證(Authentication Testing)
     –   連線管理(Session Management)
     –   授權測試(Authorization Testing)
     –   商業邏輯測試(Business logic testing)
     –   資料驗證測試(Data Validation Testing)
     –   Web Services
     –   AJAX
•   主動提供客戶安全保障SLA
     –   正確地實現安全特性(考慮加密和存取控制)
     –   查找已知的安全瑕疵並確認他們不再存在
     –   通過預先商定的第三方確認和驗證測試
     –   使用程式法分析工具
5. 濫用案例(2/2)

•   濫用案例開發

•   Abuse Case Development
6. 安全需求

•   資通安全三大基本目標

    – 機密性 Confidentiality

    – 完整性 Integrity

    – 可用性 Availability
7. 安全操作

•   需求: 濫用案例

•   設計: 商業風險分析

•   測試計畫: 安全測試

•   實現: 程式碼審核

•   系統測試: 滲透測試

•   實際部屬系統: 安全的配置與操作
實際導入的經驗

•   每一次的改善過程

    – 止血

    – 收穫最容易得到的成果

    – 打基礎

    – 建立核心競爭力

    – 開發獨特之處

    – 擴展有用的能力
工商時間: 企業可實際套用方法

•   評測與規劃: 建立Code Style與統一防禦架構

•   建造與試用: 實際導入Code Style並修繕指導方針

•   宣傳與改善: 持續修改架構之安全, 可用與效率等, 創建Hiiir獨特開發架構
參考資料

•   Gary McGraw, "Software Security: Building Security In", 2006

•   Microsoft, "Simplified Implementation of the Microsoft SDL",
    2010

•   Michael Howard and David LeBlanc, "Writing Secure Code,
    Second Edition", 2003

•   Common Vulnerabilities and Exposures

•   PTES: Penetration Testing Execution Standard
使安全成為軟體開發必要部分

Contenu connexe

Tendances

用戶端攻擊與防禦
用戶端攻擊與防禦用戶端攻擊與防禦
用戶端攻擊與防禦Taien Wang
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知Justin Lin
 
OWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOrange Tsai
 
議題二:Web應用程式安全防護
議題二:Web應用程式安全防護議題二:Web應用程式安全防護
議題二:Web應用程式安全防護Nicolas su
 
Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分Hiiir Lab
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教Bruce Chen
 
網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019Justin Lin
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」Orange Tsai
 
伺服器端攻擊與防禦III
伺服器端攻擊與防禦III伺服器端攻擊與防禦III
伺服器端攻擊與防禦IIITaien Wang
 
滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ NisraOrange Tsai
 
SITCON2021 Web Security 領航之路
SITCON2021  Web Security 領航之路SITCON2021  Web Security 領航之路
SITCON2021 Web Security 領航之路Tzu-Ting(Fei) Lin
 
滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)wanhung1911
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享ChinaNetCloud
 
伺服器端攻擊與防禦I
伺服器端攻擊與防禦I伺服器端攻擊與防禦I
伺服器端攻擊與防禦ITaien Wang
 
資訊安全入門
資訊安全入門資訊安全入門
資訊安全入門Tyler Chen
 
.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - Overview.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - OverviewChen-Tien Tsai
 
.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part IIChen-Tien Tsai
 

Tendances (17)

用戶端攻擊與防禦
用戶端攻擊與防禦用戶端攻擊與防禦
用戶端攻擊與防禦
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知
 
OWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit Documentation
 
議題二:Web應用程式安全防護
議題二:Web應用程式安全防護議題二:Web應用程式安全防護
議題二:Web應用程式安全防護
 
Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 
網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」
 
伺服器端攻擊與防禦III
伺服器端攻擊與防禦III伺服器端攻擊與防禦III
伺服器端攻擊與防禦III
 
滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra
 
SITCON2021 Web Security 領航之路
SITCON2021  Web Security 領航之路SITCON2021  Web Security 領航之路
SITCON2021 Web Security 領航之路
 
滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
 
伺服器端攻擊與防禦I
伺服器端攻擊與防禦I伺服器端攻擊與防禦I
伺服器端攻擊與防禦I
 
資訊安全入門
資訊安全入門資訊安全入門
資訊安全入門
 
.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - Overview.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - Overview
 
.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II
 

Similaire à 使安全成為軟體開發必要部分

議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析Nicolas su
 
.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IVChen-Tien Tsai
 
HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】
HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】
HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】Hacks in Taiwan (HITCON)
 
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...Wales Chen
 
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 zhiyanhui
 
20210928 #118 - 給非營利組織的資安自保手冊
 20210928 #118 - 給非營利組織的資安自保手冊 20210928 #118 - 給非營利組織的資安自保手冊
20210928 #118 - 給非營利組織的資安自保手冊Net Tuesday Taiwan
 
基于大数据的Web攻击溯源
基于大数据的Web攻击溯源基于大数据的Web攻击溯源
基于大数据的Web攻击溯源正炎 高
 
From Principle to Practice
From Principle to PracticeFrom Principle to Practice
From Principle to PracticeJordan Pan
 
PIC_Experience2
PIC_Experience2PIC_Experience2
PIC_Experience2ray chen
 
2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)Jordan Pan
 
Compliance & IT
Compliance & ITCompliance & IT
Compliance & ITBilly Lee
 
Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012正炎 高
 
11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢
11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢
11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢T客邦
 
Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮NSFOCUS
 
F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義bv8af7
 
F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義bv8af7
 
如何因應連網商機下的資安風險
如何因應連網商機下的資安風險如何因應連網商機下的資安風險
如何因應連網商機下的資安風險Onward Security
 

Similaire à 使安全成為軟體開發必要部分 (20)

議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析
 
.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV
 
HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】
HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】
HITCON FreeTalk 2024 台灣駭客協會媒體小聚【議題一:資安地圖 - 資安領域與趨勢介紹】
 
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
 
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
 
20210928 #118 - 給非營利組織的資安自保手冊
 20210928 #118 - 給非營利組織的資安自保手冊 20210928 #118 - 給非營利組織的資安自保手冊
20210928 #118 - 給非營利組織的資安自保手冊
 
基于大数据的Web攻击溯源
基于大数据的Web攻击溯源基于大数据的Web攻击溯源
基于大数据的Web攻击溯源
 
網路安全管理
網路安全管理網路安全管理
網路安全管理
 
From Principle to Practice
From Principle to PracticeFrom Principle to Practice
From Principle to Practice
 
PIC_Experience2
PIC_Experience2PIC_Experience2
PIC_Experience2
 
2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)
 
Compliance & IT
Compliance & ITCompliance & IT
Compliance & IT
 
Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012
 
軟體安全防護大作戰
軟體安全防護大作戰軟體安全防護大作戰
軟體安全防護大作戰
 
11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢
11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢
11/21王團研究室—火線殺毒完全攻略—菁英課程:2010防毒新趨勢
 
Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮
 
F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義
 
F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義F:\960109資訊安全教育訓練講義
F:\960109資訊安全教育訓練講義
 
如何因應連網商機下的資安風險
如何因應連網商機下的資安風險如何因應連網商機下的資安風險
如何因應連網商機下的資安風險
 
Epp0716
Epp0716Epp0716
Epp0716
 

Plus de Taien Wang

[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊Taien Wang
 
[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術Taien Wang
 
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞Taien Wang
 
百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐Taien Wang
 
淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹Taien Wang
 
成長駭客 Growth Hacker
成長駭客 Growth Hacker成長駭客 Growth Hacker
成長駭客 Growth HackerTaien Wang
 
20160105 wnmp & phalcon micro app - part II
20160105   wnmp & phalcon micro app - part II20160105   wnmp & phalcon micro app - part II
20160105 wnmp & phalcon micro app - part IITaien Wang
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part ITaien Wang
 
我編程.我快樂
我編程.我快樂我編程.我快樂
我編程.我快樂Taien Wang
 
Scrum深入淺出
Scrum深入淺出Scrum深入淺出
Scrum深入淺出Taien Wang
 
淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)Taien Wang
 
淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術Taien Wang
 
PHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugPHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugTaien Wang
 

Plus de Taien Wang (13)

[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊
 
[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術
 
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
 
百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐
 
淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹
 
成長駭客 Growth Hacker
成長駭客 Growth Hacker成長駭客 Growth Hacker
成長駭客 Growth Hacker
 
20160105 wnmp & phalcon micro app - part II
20160105   wnmp & phalcon micro app - part II20160105   wnmp & phalcon micro app - part II
20160105 wnmp & phalcon micro app - part II
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I
 
我編程.我快樂
我編程.我快樂我編程.我快樂
我編程.我快樂
 
Scrum深入淺出
Scrum深入淺出Scrum深入淺出
Scrum深入淺出
 
淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)
 
淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術
 
PHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugPHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebug
 

使安全成為軟體開發必要部分

  • 1. Taien內部資安講座 II 使安全成為軟體開發必要部分 2013.01.16 @ Hiiir Inc. Taien Wang<taien_wang@hiiir.com> 英屬維京群島商時間軸科技股份有限公司新創事業部
  • 2. 大綱 • 使安全成為軟體開發必要部分 • 風險管理框架 • 七個接觸點 – 程式碼審核 – 體系結構風險分析 – 滲透測試 – 基於風險的安全測試 – 濫用案例 – 安全需求 – 安全操作 • 實際導入經驗
  • 3. 軟體安全 - 向左移動 • 問題越早解決越好
  • 4. Building Security In 使安全成為軟體開發必要部分 • 微軟 – Security System Development Life Cycle, SSDLC • Gray McGraw – 軟體安全接觸點 – Software Security: Building Security In
  • 5. Security System Development Life Cycle 800 600 400 200 CVE 0
  • 6. 軟體安全的三個基石 • 應用風險管理 – 風險管理框架(Risk Management Framework, RMF) • 軟體安全的接觸點 – 微軟可信賴計算計畫(Mircosoft Trustworthy Computing Initiative) – Gray McGraw接觸點: 程式碼審核, 體系結構風險分析, 滲透測試, 基於風險的安全測試, 濫 用案例, 安全需求和安全操作 • 知識 – 軟體安全知識: 原則, 方針, 規則, 弱點, 攻擊程序, 攻擊模式和歷史風險 – 知識類: 說明性知識, 診斷性知識和歷史知識
  • 8. BSI有誰在用 • 美國國土安全部-國家網路安全處(NCSD) • 美國國家標準與技術研究所(NIST) • 國際標準化組織(ISO) • 電氣電子工程師協會(IEEE)
  • 9. 誰該實行軟體安全 • 開發人員都要有資安的素養 – 建立一個軟體安全小組 – 不要在安全人員中培養軟體安全人員 – 從軟體人員中培養軟體安全人員 • Bill Gate, "Trustworthy computing", 2002 – 發給微軟員工的備忘錄
  • 10. 軟體安全在學術界情況 學校 課程 University of California at Davis Introduction to Computer Security University of Virginia Computer and Information Security Johns Hopkins University Computer Security: An Intrusion Detection Approach Princeton University Foundations of Computer and Information Purdue University Security Rice University Computer Incident Detection and University of California at Berkeley Response Stanford University Cryptography and Data Security Naval Postgraduate School Penetration Analysis University of Idaho Advanced Topics in Security Iowa State University George Washington University United States Military Academy at West Point
  • 11. 風險管理框架 • 理解商業環境 • 確定商業和技術風險 • 綜合考慮和確定風險級別 • 定義降低風險的策略 • 實施修復並驗證它們的正確性
  • 12. 七個接觸點 1. 程式碼審核 2. 體系結構風險分析 3. 滲透測試 4. 基於風險的安全測試 5. 濫用案例 6. 安全需求 7. 安全操作
  • 13. 1. 程式碼審核(1/3) • 早期程式碼審核 – grep, find – 詞彙分析 – 相關產品 • ITS4, Flawfinder, RATS • 現在程式碼審核 – 抽象語法樹(AST) – 相關產品 • 阿碼科技: CodeSecure – http://www.armorize.com/codesecure/ • HP Fortify SCA – 2010年8月17日, HP宣布收購Fortify Software – http://www8.hp.com/us/en/software-solutions/software.html?compURI=1338812/ • IBM: IBM Security AppScan Source – IBM收購Ounce Labs – http://www-01.ibm.com/software/rational/products/appscan/source/
  • 15. 1. 程式碼審核(3/3) • 靜態程式碼分析流程
  • 16. 2. 體系結構風險分析(1/6) 簡介 • 風險分析 – 在軟體開發生命週期的某個特殊階段中確定風險和對風險評鑑的活動 • 風險管理 – 描述進行大量不連續的風險分析操作, 在整個開發過程中追蹤風險以及降低風險的策略性活動 • 術語 – 資產 Asset – 風險 Risk • 風險 = 發生機率 * 影響 – 威脅 Threat – 弱點 Vulnerability – 對策或者安全對策 Countermeasures and Safeguards – 影響 Impact • 可以從兩方面來分析:系統與法律 – 發生機率 Probability
  • 17. 2. 體系結構風險分析(2/6) 舉例 • 被SQL Injetcion攻擊的風險 – 一個系統要被成功的SQL Injetcion攻擊, 可能要具備以下兩個條件 • 必須要有惡意駭客或自動化的SQL攻擊 • 系統沒有做好SQL Injetcion字串淨化 – 如此才會產生被入侵的狀況 • 在此例中, 惡意駭客或自動化的SQL攻擊是外來的威脅,而系統沒 有做好SQL Injetcion字串淨化,則是自身的弱點 • 當其中一個要件不成立之時,都可能不會產生被入侵或攻擊之風險
  • 18. 2. 體系結構風險分析(3/6) 風險分析方法原型 • 盡可能地學習關於分析對象的知識 – 閱讀和理解範圍, 體系結構檔案以及其他的設計素材 – 與一組人員一起研究對象和討論解決方案 – 確定系統邊界和資料敏感度/危險程度 – 實際使用軟體 – 研究程式碼和其他軟體工程 • 確定威脅,並得出關於攻擊源的共識 – 討論軟體周圍環境的安全問題 – 對產品的工作方式展開辯論, 並確定存在異議或者含糊的方面 – 確定可能的弱點, 有時可使用工具或常見的弱點清單 – 分析攻擊程式, 並開始討論可能的修改方法 – 理解當前的和規劃的安全計畫 • 確定受到發生危害的可能性 – 分析利用弱點進行的攻擊 – 平衡控制威脅的數量, 並確定發生危害的可能性 • 進行影響分析 – 確定對資產和商業目標的影響 – 考慮對安全狀態的影響
  • 19. 2. 體系結構風險分析(4/6) 風險分析方法 • 基本步驟 – 攻擊抵抗力分析 – 不確定性分析 – 弱點分析
  • 20. 2. 體系結構風險分析(5/6) 對風險評鑑 • 開發降低風險的策略 – 推薦降低風險的對策 – 報告所發現的內容 • 仔細地描述主要和次要的風險, 注意他們造成的影響 – 提供一些基本資訊, 以說明如何使用降低風險的有限資源
  • 22. 3. 滲透測試 • 開發環節的最後檢查而非最為安全狀態的最先檢查 • 幾乎所有滲透測試方法都依賴黑帽而非白帽 • 黑帽 – 破壞方法(destructivealtivity), 攻擊與破解程式相關方法 • 白帽 – 建設方法(constorutiveactivity) 設計與防禦功能相關的方法 • PTES:Penetration Testing Execution Standard – 前期交互階段 Pre-engagement Interactions – 情報蒐集階段 Intelligence Gathering – 威脅建模階段 Threat Modeling – 漏洞分析階段 Vulnerability Analysis – 滲透攻擊階段 Exploitation – 後滲透攻擊階段 Post Exploitation – 報告階段 Reporting http://www.pentest-standard.org/index.php/Main_Page
  • 23. 4. 基於風險的安全測試(1/2) • 為了管理安全風險 – 創建安全濫用/誤用案例(以及安全特性和功能) – 列舉標準化的安全需求 – 執行體系結構的風險分析 – 制定基於風險的安全測試計畫 – 執行靜態分析工具 – 進行安全測試 – 在最終環境中進行滲透測試 – 在安全被破壞後進行清理
  • 24. 4. 基於風險的安全測試(2/2) • 安全測試兩種不同方法 • 功能性安全測試 – 測試安全機制以保證正確地實現了他們的功能 • 對抗性安全測試 – 執行通過理解和模擬攻擊者的方法而設計的基於風險的安全測試
  • 25. 5. 濫用案例(1/2) • 常見攻擊模式 • OWASP Testing Guide 3.0 – 設定管理(Configuration Management Testing) – 資訊收集(Information Gathering) – 驗證(Authentication Testing) – 連線管理(Session Management) – 授權測試(Authorization Testing) – 商業邏輯測試(Business logic testing) – 資料驗證測試(Data Validation Testing) – Web Services – AJAX • 主動提供客戶安全保障SLA – 正確地實現安全特性(考慮加密和存取控制) – 查找已知的安全瑕疵並確認他們不再存在 – 通過預先商定的第三方確認和驗證測試 – 使用程式法分析工具
  • 26. 5. 濫用案例(2/2) • 濫用案例開發 • Abuse Case Development
  • 27. 6. 安全需求 • 資通安全三大基本目標 – 機密性 Confidentiality – 完整性 Integrity – 可用性 Availability
  • 28. 7. 安全操作 • 需求: 濫用案例 • 設計: 商業風險分析 • 測試計畫: 安全測試 • 實現: 程式碼審核 • 系統測試: 滲透測試 • 實際部屬系統: 安全的配置與操作
  • 29. 實際導入的經驗 • 每一次的改善過程 – 止血 – 收穫最容易得到的成果 – 打基礎 – 建立核心競爭力 – 開發獨特之處 – 擴展有用的能力
  • 30. 工商時間: 企業可實際套用方法 • 評測與規劃: 建立Code Style與統一防禦架構 • 建造與試用: 實際導入Code Style並修繕指導方針 • 宣傳與改善: 持續修改架構之安全, 可用與效率等, 創建Hiiir獨特開發架構
  • 31. 參考資料 • Gary McGraw, "Software Security: Building Security In", 2006 • Microsoft, "Simplified Implementation of the Microsoft SDL", 2010 • Michael Howard and David LeBlanc, "Writing Secure Code, Second Edition", 2003 • Common Vulnerabilities and Exposures • PTES: Penetration Testing Execution Standard