Principles for secure design
Some of the slides and content are from Mike Hicks’ Coursera course
Principles for secure design Some of the slides and content are - - PowerPoint PPT Presentation
Principles for secure design Some of the slides and content are from Mike Hicks Coursera course Making secure software Making secure software Flawed approach : Design and build software, and ignore security at first Add security once
Some of the slides and content are from Mike Hicks’ Coursera course
ignore security at first
satisfied
ignore security at first
satisfied
the development process
Phases
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements Abuse Cases
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements Abuse Cases Architectural Risk Analysis
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements Abuse Cases Security-oriented Design Architectural Risk Analysis
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements Abuse Cases Code Review (with tools) Security-oriented Design Architectural Risk Analysis
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements Abuse Cases Code Review (with tools) Security-oriented Design Risk-based Security Tests Architectural Risk Analysis
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
Security Requirements Abuse Cases Code Review (with tools) Penetration Testing Security-oriented Design Risk-based Security Tests Architectural Risk Analysis
Phases Activities
Note that different SD processes have different phases and artifacts, but all involve the basics above. We’ll keep it simple and refer to these.
typical “software feature”?
assumed powers
assumed powers
how can you assess whether your design will repel that attacker?
Malicious user
Malicious user Co-located user
Malicious user Co-located user Compromised server
Malicious user Snooping Co-located user Compromised server
(IPsec), or encrypted application layer (SSL)
(IPsec), or encrypted application layer (SSL)
potential holes that the adversary can exploit
potential holes that the adversary can exploit
potential holes that the adversary can exploit
can infer application state
potential holes that the adversary can exploit
can infer application state
could be used eventually reveal a remote SSL secret key
allowing for a stronger adversary?
software should do
software should do
software should do
by, or modified by, another user, unless authorized
software should do
by, or modified by, another user, unless authorized
software should do
by, or modified by, another user, unless authorized
1.Users identify themselves using passwords,
software should do
by, or modified by, another user, unless authorized
1.Users identify themselves using passwords, 2.Passwords must be “strong,” and
software should do
by, or modified by, another user, unless authorized
1.Users identify themselves using passwords, 2.Passwords must be “strong,” and 3.The password database is only accessible to login program.
These relate identities (“principals”) to actions Authentication Authorization Audit-ability
These relate identities (“principals”) to actions Authentication Authorization Audit-ability How can a system tell who a user is
These relate identities (“principals”) to actions Authentication Authorization Audit-ability How can a system tell who a user is What we know What we have What we are >1 of the above = Mult-factor authentication
These relate identities (“principals”) to actions Authentication Authorization Audit-ability How can a system tell who a user is How can a system tell what a user is allowed to do What we know What we have What we are >1 of the above = Mult-factor authentication
These relate identities (“principals”) to actions Authentication Authorization Audit-ability How can a system tell who a user is How can a system tell what a user is allowed to do What we know What we have What we are >1 of the above = Mult-factor authentication Access control policies (defines) + Mediator (checks)
These relate identities (“principals”) to actions Authentication Authorization Audit-ability How can a system tell who a user is How can a system tell what a user is allowed to do How can a system tell what a user did What we know What we have What we are >1 of the above = Mult-factor authentication Access control policies (defines) + Mediator (checks)
These relate identities (“principals”) to actions Authentication Authorization Audit-ability How can a system tell who a user is How can a system tell what a user is allowed to do How can a system tell what a user did What we know What we have What we are >1 of the above = Mult-factor authentication Access control policies (defines) + Mediator (checks) Retain enough info to determine the circumstances of a breach
methods?
methods?
do, abuse cases describe what it should not do
do, abuse cases describe what it should not do
managers to modify an account’s interest rate
do, abuse cases describe what it should not do
managers to modify an account’s interest rate
a manager and thereby change the interest rate on an account
cases in which an adversary’s exercise of power could violate a security requirement
cases in which an adversary’s exercise of power could violate a security requirement
cases in which an adversary’s exercise of power could violate a security requirement
cases in which an adversary’s exercise of power could violate a security requirement
and learns all user passwords
cases in which an adversary’s exercise of power could violate a security requirement
and learns all user passwords
cases in which an adversary’s exercise of power could violate a security requirement
and learns all user passwords
message, effecting a bank withdrawal
cases in which an adversary’s exercise of power could violate a security requirement
and learns all user passwords
message, effecting a bank withdrawal
and bugs
50% of security problems are flaws
using a type-safe language, like Java
using a type-safe language, like Java
using a type-safe language, like Java
using a type-safe language, like Java
exploitation of one tab does not yield access to data in another
using a type-safe language, like Java
exploitation of one tab does not yield access to data in another
using a type-safe language, like Java
exploitation of one tab does not yield access to data in another
using a type-safe language, like Java
exploitation of one tab does not yield access to data in another
snapshotting
through obscurity)
Ensure complete mediation
Use separation of responsibility
Defense in depth
Account for human factors (“psychological acceptability”) (a) Users must buy into the security (b) The system must be usable
Account for human factors
Account for human factors
Account for human factors
Account for human factors
Kerkhoff’s principle