Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Secure Software Engineering


Published on

  • Be the first to comment

  • Be the first to like this

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>