Software Security Pillars
-
Defense in Depth
- Data
- Application (This course’s focus)
- Host
- Internal network
- Perimeter
- Physical
- Policies, procedures, awareness
-
Shifting security to the left
- Dev → Test → Staging → Production
- Bring security in.
Pillar I: Risk Management
- Risk Management = identifying what could go wrong.
- Risk = Probability x Impact
- Security Risk = Probability of an exploit x value of an asset
- Asset = anything that requires confidentiality, integrity, or
availability.
- Domain-specific
- Domain-independent
- Intangible properties
- Factors that affect the probability of an exploit
- number of vulnerabilities
- scope of the project
- targeted attacks (number of malicious actors)
- Risk Management Framework
- Understand the business context
- Identify the business and technical risks
- Synthesize, prioritize, and rank the risks
- Define the risk mitigation strategy
- Carry out fixes and validate.
- All in a business context!
Pillar II: Touchpoints
- Constructive and Destructive activities on the artifacts
- Touchpoint 1: Code Reviews
- Touchpoint 2: Architectural Risk Analysis
- Touchpoint 3: Penetration Testing
- Touchpoint 4: Risk-Based Security Testing
- Touchpoint 5: Abuse Cases
- UML User Case Diagram
- Creating Anti-Requirements
- Touchpoint 6: Security Requirements