Secure Software Development Dr. Asankhaya Sharma SIT
20-Feb-16 2
Secure Software Development • Consider security throughout the software development lifecycle – Requirements – Design – Implementation – Testing – Deployment 20-Feb-16 3
Requirements • Identify sensitive data and resources • Define security requirements for them – Confidentiality – Integrity – Availability • Consider threats and abuse cases that violate these requirements 20-Feb-16 4
Application Specific •Abuse/Misuse Cases •Threat Models •Attacks •Assets Generic •Common Best Practices •Legal •IT •Development Architectural Risk Analysis •Underlying Framework •Ambiguity Analysis •Fundamental Weakness Attack Patterns •Historical Risks •Vulnerabilities 20-Feb-16 5
Design • Apply principles for secure software design – Prevent, mitigate and detect possible attacks • Security principles – Favor Simplicity – Trust with Reluctance – Defend in Depth 20-Feb-16 6
20-Feb-16 7
Implementation • Apply coding rules that implement secure design • Use automated code review techniques to find potential vulnerabilities components – Static Analysis – Symbolic execution 20-Feb-16 8
20-Feb-16 9
Testing • Penetration Testing to find potential flaws in the real system – Fuzz testing • Employ attack patterns 20-Feb-16 10
Different methodologies • BSIMM (Building Security In – Maturity Model) – http://bsimm.com • Microsoft Security Development Lifecycle – https://www.microsoft.com/en-us/sdl/ • OpenSAMM Software Assurance Maturity Model – http://opensamm.org 20-Feb-16 11
20-Feb-16 12
Continuous Delivery of Software 20-Feb-16 13
20-Feb-16 14
Continuous Security • Requires security automation • Integrate into CD environment and tools – Source code management systems • GitHub, Bitbucket etc. – Build systems • Travis CI, Jenkins etc. • Audit third party component and open-source library usage 20-Feb-16 15
Takeaways • Security practices should be built in during the software development process • Continuous delivery needs continuous security 20-Feb-16 16
Thanks! • Questions? • Contact – @asankhaya 20-Feb-16 17

Secure Software Development