Cips 2016 0309
Cips 2016 0309
Cips 2016 0309
Questions?
Building Secure Systems
Deepu Chandran
LDRA 1
1
Characteristics of Secure Systems
Dependable
Dependability
• Executes predictably
Trustworthiness
• Operates correctly
Trustworthiness
Survivability
• Minimal vulnerabilities that
can be exploited
• No malicious logic
Survivability
• Resists or tolerates known Secure
and novel attacks
• Quick recovery
Software
Survivability Software
Dependability Trustworthiness
(Resilience) Security
2
Standards/Organisations
Technology Trends
• Steady growth of devices connected to IP networks
• Continued miniaturization of silicon chips, coupled with decreasing
prices of components
• Wearable wireless sensors as well as in-body sensors are
expected to increase in demand over the next six years
Source: Grand View Research - Embedded System Market Analysis And Segment Forecasts To 2020
5
IEEE 12207
6
Where did it started … ?
7
7 7
Software Security Exploits in the Wild
8
Tracking Security Vulnerabilities &
Exposures
• CVE database
• NIST National Vulnerability Database
Repositories • Open Source Vulnerability Database
of Information • SANS Institutes’ Top 20 list
• OWASP Top 10
9
Pervasive Problems
Input Validation
Buffer Overflows
Data Type Overflows
SQL Injection
Errors and Exceptions
10
Understanding Quality and Security
Software Software
Security quality
12
12 12
Building Security into the SDLC
Acceptance
Requirements
Testing
System
System Design
Testing
Architecture Integration
Design Testing
Coding
13
Build in - Security from Requirements
14
14 14
Building Security into the SDLC
Acceptance
Requirements Testing
System
System Design
Testing
Architecture Integration
g
Design Testing
Security starts with Requirements
- Security feature defined
- Assurance activities defined
Module DesignUnit Testing
Coding
15
Building In Security ..
16
Security in Design
17
17 17
Building Security into the SDLC
Acceptance
A cceptance
Requirements
R equirements risk with a secure system & architecture design
Manage Testing
T esting
System System
Design Testing
Architecture Integration
Design Testing
Module
Unit Testing
U
Design
Coding
18
Security by Design
Partition 3
Partition 1
Partition 2
Security
Security
Security
Microkernel
Microprocessor
19
MILS Architecture
Separation Independent
Run trusted and Evaluation of
trustworthy Controlled Flow of security
components together
Information components and
trusted
composition
20
Security in Communication
Non Reliance of
Encryption
untrusted Inputs
Encrypt data
before sending Validate inputs
out
21
Code Reviews – Secure Coding
22
22 22
Building Security into the SDLC
Acceptance
Requirements
Testing
Greatest ROI
yStatic
System
S stem D
st Analysis
esign used during implementation
Design yshelps:
System
Sy te
em
- Identify potential vulnerabilities Testing
T esting
- Eliminate latent errors
- Creation of software that is easy to verify
Architecture
Ar
Archit
hitecture IIntegration
ntegration
on
Design Testing
Coding
23
Automating Secure Standards Adherence
24
MITRE CWE and CVE
CWE Drivers
MITRE not-for-Profit organization runs multiple
Federally funded R&D Centers
Co-sponsored by Cybersecurity and
Communications
26
Coding Standards Model Compliance
with Tools
27
Test for Security Requirements
28
28 28
Building Security into the SDLC
Acceptance
Requirements
Testing
Architecture Integration
Design Testing
Unit
Module Design
sign
Testing
Coding
29
Typical Decomposition within DOORS
30
Traceability Throughout the Lifecycle
31
Developing, Executing, and Reviewing
Tests
32
Returning Data Back to DOORS
33
What is Structural Coverage?
34
Types of Coverage
• Statement Coverage
• Branch Decision Coverage
• Modified Condition / Decision Coverage (MC/DC)
• Data Coupling and Control Coupling Coverage
• Object Code Coverage
• Linear Code Sequence And Jump Coverage –
Test Path (LCSAJ)
35
Visualising Structural Coverage
37
Modified Condition / Decision Coverage
This only really comes into its own for 4 or more conditions as the
number of combinations increases exponentially
38
CWE Structural Coverage
39
Test Effectiveness and Software Security
Requirements based
testing is necessary to
ensure security
• Structural coverage lets us
know if the software has been
tested (Test Effectiveness)
• Structural coverage against
requirements based test
expose poor requirements, test,
and implementation
• Different levels of coverage
• Statement, Branch, MC/DC
• Integration with targets
40
Robustness Testing
41
Robustness Testing Practices
42
Building Your Secure Products
Questions?
44
For further information:
www.ldra.com info@ldra.com
45