Secure Software Engineering


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Secure Software Engineering

  1. 1. Secure Software Engineering Soumyalatha Jamadarkhana
  2. 2. “Security Guru” Says <ul><ul><li>“We wouldn’t have to spend so much time and effort on network security if we didn’t have such bad software security” -Bruce Schneier </li></ul></ul>
  3. 3. Source of Security Problems <ul><li>“Time and time again security problems that are encountered come from errors in software.” -Terry Stanley, VP Security, Master Card </li></ul>
  4. 4. Hackers <ul><li>“Malicious hackers don’t create security holes; they simply exploit them. Security holes and vulnerabilities – the real root cause of the problem – are the result of bad software design and implementation.” </li></ul>
  5. 5. Industry Problem <ul><li>Software development is often rushed due to market pressures </li></ul><ul><ul><li>Being first to market </li></ul></ul><ul><ul><li>Get it done yesterday </li></ul></ul><ul><li>Features, not security, sell software </li></ul>
  6. 6. Complexity <ul><li>Software products are growing in size </li></ul><ul><li>Windows XP has 40 million lines of code </li></ul><ul><li>5-50 bugs per KLOC </li></ul><ul><li>10% of bugs result in security faults </li></ul>
  7. 7. Cost of Bad Software <ul><li>Cost to customer </li></ul><ul><ul><li>Loss of productivity </li></ul></ul><ul><ul><li>Cost to apply the fix </li></ul></ul><ul><ul><li>Theft of information </li></ul></ul><ul><li>Cost to the Company </li></ul><ul><ul><li>Harm to reputation </li></ul></ul><ul><ul><li>Loss of customers </li></ul></ul>
  8. 8. Implications <ul><li>Every software system deployed today must defend itself from malicious adversaries </li></ul><ul><ul><li>Financial Institutions </li></ul></ul><ul><ul><li>Internet aware client applications on PCs </li></ul></ul><ul><ul><li>Schools </li></ul></ul><ul><ul><li>Nuclear Power Plant Control System </li></ul></ul>
  9. 9. Secure Software Engineering <ul><li>Integrating security into the software development process </li></ul><ul><li>Security reviews at each stage: requirement, design, implementation </li></ul><ul><li>Also have defect removal filters at every stage. </li></ul><ul><li>Much easier and cheaper than retrofitting a system for security </li></ul>
  10. 11. Principles of Secure Software Engineering by Saltzer and Schroeder <ul><li>Least Privilege – Operate using fewest privileges </li></ul><ul><li>Economy of Mechanism/Simplicity – Simple design </li></ul><ul><li>Open Design-Mechanism should be public with secrecy of items like passwords. </li></ul><ul><li>Complete Mediation-Every access attempt must be checked. </li></ul>
  11. 12. Principles (contd) <ul><li>Fail-safe defaults – Default is denial of service. </li></ul><ul><li>Separation of privilege – Access to objects should depend on more than one condition </li></ul><ul><li>Least common Mechanism-Minimize the amount and use of shared mechanism </li></ul><ul><li>Psychological acceptability/Easy to use -The interface should be designed for ease of use </li></ul>
  12. 13. What We Don’t Know <ul><li>“Have you ever written a program section with a security hole? ” </li></ul>
  13. 14. What You Can Do <ul><li>Understand the causes of security vulnerabilities. </li></ul><ul><li>Common causes being buffer overflows, race conditions and any kind of defects in the software. </li></ul><ul><li>Learn the principles for building secure software </li></ul><ul><li>Secure the weakest link, not the easiest or most obvious one. </li></ul>
  14. 15. <ul><li>Assume your code will run in the most hostile environment. Design, write, and test your code accordingly </li></ul><ul><li>SDLC best practices include security risk analysis, secure design principles, threat modeling, static code analysis, testing methods such as Fuzz testing, ballista, penetration testing. </li></ul>
  15. 16. References <ul><li>Holger Peine, Rules of Thumb for Secure Software Engineering. </li></ul><ul><li>Processes to produce secure software-volume II </li></ul><ul><li> </li></ul>