Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Writing Secure CodeDecember 2002
Publisher:
  • Microsoft Press
  • Div. of Microsoft Corp. One Microsoft Way Redmond, WA
  • United States
ISBN:978-0-7356-1722-3
Published:01 December 2002
Pages:
650
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

Keep black-hat hackers at bay with the tips and techniques in this entertaining, eye-opening book! Developers will learn how to padlock their applications throughout the entire development process-from designing secure applications to writing robust code that can withstand repeated attacks to testing applications for security flaws. Short, easily digested chapters reveal proven principles, strategies, and coding techniques. The authors-two battle-scarred veterans who have solved some of the industry's toughest security problems-provide sample code in several languages. This edition includes updated information about threat modeling, designing a security process, international issues, file-system issues, adding privacy to applications, and performing security code reviews. It also includes enhanced coverage of buffer overruns, Microsoft(r) .NET security, and Microsoft ActiveX(r) development, plus practical checklists for developers, testers, and program managers.

Cited By

  1. Codabux Z, Zakia Sultana K and Chowdhury M (2024). A catalog of metrics at source code level for vulnerability prediction, Journal of Software: Evolution and Process, 36:7, Online publication date: 14-Jul-2024.
  2. Khalil S, Bahsi H and Korõtko T (2024). Threat modeling of industrial control systems, Computers and Security, 136:C, Online publication date: 1-Jan-2024.
  3. ACM
    Ezenwoye O and Liu Y Integrating vulnerability risk into the software process Proceedings of the 2022 ACM Southeast Conference, (91-98)
  4. Valero C, Gil A, Gonzalez-Usach R, Julian M, Fico G, Arredondo M, Stavropoulos T, Strantsalis D, Voulgaridis A, Roca F, Jara A, Serrano M, Zappa A, Khan Y, Guillen S, Sala P, Belsa A, Votis K and Palau C (2021). AIoTES, Computer Communications, 177:C, (96-111), Online publication date: 1-Sep-2021.
  5. Jouini M, Ben Arfa Rabai L and Khedri R (2021). A quantitative assessment of security risks based on a multifaceted classification approach, International Journal of Information Security, 20:4, (493-510), Online publication date: 1-Aug-2021.
  6. Ferro L, Marrella A and Catarci T A Human Factor Approach to Threat Modeling HCI for Cybersecurity, Privacy and Trust, (139-157)
  7. Siavvas M, Kehagias D, Tzovaras D and Gelenbe E (2021). A hierarchical model for quantifying software security based on static analysis alerts and software metrics, Software Quality Journal, 29:2, (431-507), Online publication date: 1-Jun-2021.
  8. Sultana K, Anu V and Chong T (2020). Using software metrics for predicting vulnerable classes and methods in Java projects, Journal of Software: Evolution and Process, 33:3, Online publication date: 3-Mar-2021.
  9. Mitropoulos D, Sotiropoulos T, Koutsovasilis N and Spinellis D (2019). PDGuard: an architecture for the control and secure processing of personal data, International Journal of Information Security, 19:4, (479-498), Online publication date: 1-Aug-2020.
  10. Ferro L and Sapio F Another Week at the Office (AWATO) – An Interactive Serious Game for Threat Modeling Human Factors HCI for Cybersecurity, Privacy and Trust, (123-142)
  11. ACM
    Parker J, Hicks M, Ruef A, Mazurek M, Levin D, Votipka D, Mardziel P and Fulton K (2020). Build It, Break It, Fix It, ACM Transactions on Privacy and Security, 23:2, (1-36), Online publication date: 22-May-2020.
  12. ACM
    Rindell K, Bernsmed K and Jaatun M Managing Security in Software Proceedings of the 14th International Conference on Availability, Reliability and Security, (1-8)
  13. Salva S and Regainia L (2019). An approach for guiding developers in the choice of security solutions and in the generation of concrete test cases, Software Quality Journal, 27:2, (675-701), Online publication date: 1-Jun-2019.
  14. Zhang X, Wang X and Kang Y (2018). Trustworthiness requirement‐oriented software process modeling, Journal of Software: Evolution and Process, 30:12, Online publication date: 12-Dec-2018.
  15. ACM
    Monteuuis J, Boudguiga A, Zhang J, Labiod H, Servel A and Urien P SARA Proceedings of the 4th ACM Workshop on Cyber-Physical System Security, (3-14)
  16. Peclat R and Ramos G (2018). Semantic Analysis for Identifying Security Concerns in Software Procurement Edicts, New Generation Computing, 36:1, (21-40), Online publication date: 1-Jan-2018.
  17. ACM
    Taylor B and Kaza S (2016). Security Injections@Towson, ACM Transactions on Computing Education, 16:4, (1-20), Online publication date: 13-Oct-2016.
  18. Ramachandran M (2016). Software security requirements management as an emerging cloud computing service, International Journal of Information Management: The Journal for Information Professionals, 36:4, (580-590), Online publication date: 1-Aug-2016.
  19. Ponde P and Shirwaikar S (2016). An Exploratory Study of the Security Design Pattern Landscape and their Classification, International Journal of Secure Software Engineering, 7:3, (26-43), Online publication date: 1-Jul-2016.
  20. Asghar H, Anwar Z and Latif K (2016). A deliberately insecure RDF-based Semantic Web application framework for teaching SPARQL/SPARUL injection attacks and defense mechanisms, Computers and Security, 58:C, (63-82), Online publication date: 1-May-2016.
  21. ACM
    Anand P, Ryoo J, Kim H and Kim E Threat Assessment in the Cloud Environment Proceedings of the 10th International Conference on Ubiquitous Information Management and Communication, (1-8)
  22. Masri W and Sleiman S (2015). SQLPIL, Security and Communication Networks, 8:15, (2545-2560), Online publication date: 1-Oct-2015.
  23. ACM
    Hill R and Donaldson D Bridging the Trust Gap Proceedings of the 2015 New Security Paradigms Workshop, (148-155)
  24. ACM
    Kaur N and Kaur P (2014). Mitigation of SQL Injection Attacks using Threat Modeling, ACM SIGSOFT Software Engineering Notes, 39:6, (1-6), Online publication date: 9-Dec-2014.
  25. ACM
    Tasch M, Khondoker R, Marx R and Bayarou K Security Analysis of Security Applications for Software Defined Networks Proceedings of the 10th Asian Internet Engineering Conference, (23-30)
  26. ACM
    Klingel D, Khondoker R, Marx R and Bayarou K Security Analysis of Software Defined Networking Architectures Proceedings of the 10th Asian Internet Engineering Conference, (15-22)
  27. ACM
    Lipford H, Thomas T, Chu B and Murphy-Hill E Interactive Code Annotation for Security Vulnerability Detection Proceedings of the 2014 ACM Workshop on Security Information Workers, (17-22)
  28. (2014). DAG-based attack and defense modeling, Computer Science Review, 13:C, (1-38), Online publication date: 1-Nov-2014.
  29. Li X, He K, Feng Z and Xu G (2014). Unified threat model for analyzing and evaluating software threats, Security and Communication Networks, 7:10, (1454-1466), Online publication date: 1-Oct-2014.
  30. ACM
    Anikeev M and Freiling F Preventing malicious data harvesting from deallocated memory areas Proceedings of the 6th International Conference on Security of Information and Networks, (448-449)
  31. Vanciu R and Abi-Antoun M Finding architectural flaws using constraints Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering, (334-344)
  32. ACM
    Doupé A, Cui W, Jakubowski M, Peinado M, Kruegel C and Vigna G deDacota Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security, (1205-1216)
  33. Preschern C, Kajtazovic N and Kreiner C Security analysis of safety patterns Proceedings of the 20th Conference on Pattern Languages of Programs, (1-38)
  34. ACM
    Bedi P, Gandotra V, Singhal A, Narang H and Sharma S (2013). Mitigating multi-threats optimally in proactive threat management, ACM SIGSOFT Software Engineering Notes, 38:1, (1-7), Online publication date: 23-Jan-2013.
  35. Aïmeur E, Brassard G, Gambs S and Schönfeld D (2012). P3ERS, Transactions on Data Privacy, 5:3, (553-578), Online publication date: 1-Dec-2012.
  36. ACM
    Sasirekha N and Hemalatha M An improved secure code encryption approach based on indexed table Proceedings of the International Conference on Advances in Computing, Communications and Informatics, (1136-1142)
  37. Balcerek B, Frankowski G, Kwiecie$#324; A, Smutnicki A and Teodorczyk M Security best practices Building a National Distributed e-Infrastructure - PL-Grid, (128-141)
  38. ACM
    Kainerstorfer M, Sametinger J and Wiesauer A Software security for small development teams Proceedings of the 13th International Conference on Information Integration and Web-based Applications and Services, (305-310)
  39. ACM
    Langsworth A (2011). Using static analysis tools to detect and correct non-compliant cryptography, ACM SIGSOFT Software Engineering Notes, 36:6, (1-7), Online publication date: 14-Nov-2011.
  40. ACM
    Gandotra V, Archana Singhal A and Bedi P (2011). Layered security architecture for threat management using multi-agent system, ACM SIGSOFT Software Engineering Notes, 36:5, (1-11), Online publication date: 30-Sep-2011.
  41. ACM
    Arthur R and Olsen D (2011). XICE windowing toolkit, ACM Transactions on Computer-Human Interaction, 18:3, (1-46), Online publication date: 1-Jul-2011.
  42. ACM
    El Ariss O and Xu D Modeling security attacks with statecharts Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS, (123-132)
  43. ACM
    Abadi A, Feldman Y and Shomrat M Code-motion for API migration Proceedings of the 4th Workshop on Refactoring Tools, (1-7)
  44. ACM
    Neto A and Vieira M Towards benchmarking the trustworthiness of web applications code Proceedings of the 13th European Workshop on Dependable Computing, (29-34)
  45. ACM
    D'Antonio S, Coppolino L, Elia I and Formicola V Security issues of a phasor data concentrator for smart grid infrastructure Proceedings of the 13th European Workshop on Dependable Computing, (3-8)
  46. Li N, Xie T, Jin M and Liu C (2010). Perturbation-based user-input-validation testing of web applications, Journal of Systems and Software, 83:11, (2263-2274), Online publication date: 1-Nov-2010.
  47. ACM
    Abi-Antoun M and Barnes J Analyzing security architectures Proceedings of the IEEE/ACM international conference on Automated software engineering, (3-12)
  48. Gollmann D Secure applications without secure infrastructures Proceedings of the 5th international conference on Mathematical methods, models and architectures for computer network security, (21-31)
  49. Conrad J, Alves-Foss J and Lee S (2010). Analyzing uncertainty in TG protection graphs with TG/MC, Journal of Computer Security, 18:5, (667-699), Online publication date: 1-Sep-2010.
  50. Baca D and Petersen K Prioritizing countermeasures through the countermeasure method for software security (CM-Sec) Proceedings of the 11th international conference on Product-Focused Software Process Improvement, (176-190)
  51. ACM
    Ciampa A, Visaggio C and Di Penta M A heuristic-based approach for detecting SQL-injection vulnerabilities in web applications Proceedings of the 2010 ICSE Workshop on Software Engineering for Secure Systems, (43-49)
  52. ACM
    Al-Azzani S and Bahsoon R Using implied scenarios in security testing Proceedings of the 2010 ICSE Workshop on Software Engineering for Secure Systems, (15-21)
  53. Whitson G (2010). Teaching federated identity in computer and information science, Journal of Computing Sciences in Colleges, 25:5, (89-96), Online publication date: 1-May-2010.
  54. Miller J and Huynh T (2010). Practical elimination of external interaction vulnerabilities in web applications, Journal of Web Engineering, 9:1, (1-24), Online publication date: 1-Mar-2010.
  55. Park C, Lee J, Seo S and Kim B Assuring software security against buffer overflow attacks in embedded software development life cycle Proceedings of the 12th international conference on Advanced communication technology, (787-790)
  56. Halkidis S, Chatzigeorgiou A and Stephanides G Moving from Requirements to Design Confronting Security Issues Proceedings of the Confederated International Conferences, CoopIS, DOA, IS, and ODBASE 2009 on On the Move to Meaningful Internet Systems: Part II, (798-814)
  57. ACM
    Dorrendorf L, Gutterman Z and Pinkas B (2009). Cryptanalysis of the random number generator of the Windows operating system, ACM Transactions on Information and System Security, 13:1, (1-32), Online publication date: 1-Oct-2009.
  58. Mourad A, Soeanu A, Laverdière M and Debbabi M (2009). New aspect-oriented constructs for security hardening concerns, Computers and Security, 28:6, (341-358), Online publication date: 1-Sep-2009.
  59. Jang C, Kim J, Jang H, Park S, Jang B, Kim B and Choi E Rule-based auditing system for software security assurance Proceedings of the first international conference on Ubiquitous and future networks, (198-202)
  60. Mitropoulos D and Spinellis D (2009). SDriver, Computers and Security, 28:3-4, (121-129), Online publication date: 1-May-2009.
  61. ACM
    Gadaleta F, Younan Y, Jacobs B, Joosen W, De Neve E and Beosier N Instruction-level countermeasures against stack-based buffer overflow attacks Proceedings of the 1st EuroSys Workshop on Virtualization Technology for Dependable Systems, (7-12)
  62. ACM
    Okubo T and Tanaka H Web security patterns for analysis and design Proceedings of the 15th Conference on Pattern Languages of Programs, (1-13)
  63. ACM
    Futcher L and von Solms R Guidelines for secure software development Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology, (56-65)
  64. Liu Q and Zhang Y (2008). TFTP vulnerability finding technique based on fuzzing, Computer Communications, 31:14, (3420-3426), Online publication date: 1-Sep-2008.
  65. Drewry W and Ormandy T Insecure context switching Proceedings of the 2nd conference on USENIX Workshop on offensive technologies, (1-10)
  66. Mourad A, Laverdière M and Debbabi M (2008). An aspect-oriented approach for the systematic security hardening of code, Computers and Security, 27:3-4, (101-114), Online publication date: 1-May-2008.
  67. Cappaert J, Preneel B, Anckaert B, Madou M and De Bosschere K Towards tamper resistant code encryption Proceedings of the 4th international conference on Information security practice and experience, (86-100)
  68. Meier J Do not model the attacker Proceedings of the 16th International conference on Security protocols, (25-35)
  69. Garcia-Alfaro J and Navarro-Arribas G Prevention of cross-site scripting attacks on current web applications Proceedings of the 2007 OTM confederated international conference on On the move to meaningful internet systems: CoopIS, DOA, ODBASE, GADA, and IS - Volume Part II, (1770-1784)
  70. Garcia-Alfaro J and Navarro-Arribas G Prevention of Cross-Site Scripting Attacks on Current Web Applications On the Move to Meaningful Internet Systems 2007: CoopIS, DOA, ODBASE, GADA, and IS, (1770-1784)
  71. Shtern V Integrating security-related coding techniques into programming practice Proceedings of the 11th IASTED International Conference on Software Engineering and Applications, (564-569)
  72. ACM
    Abi-Antoun M, Wang D and Torr P Checking threat modeling data flow diagrams for implementation conformance and security Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (393-396)
  73. Piazzalunga U, Salvaneschi P, Balducci F, Jacomuzzi P and Moroncelli C (2007). Security Strength Measurement for Dongle-Protected Software, IEEE Security and Privacy, 5:6, (32-40), Online publication date: 1-Nov-2007.
  74. ACM
    Dorrendorf L, Gutterman Z and Pinkas B Cryptanalysis of the windows random number generator Proceedings of the 14th ACM conference on Computer and communications security, (476-485)
  75. ACM
    Roichman A and Gudes E Fine-grained access control to web databases Proceedings of the 12th ACM symposium on Access control models and technologies, (31-40)
  76. Gregoire J, Buyens K, Win B, Scandariato R and Joosen W On the Secure Software Development Process Proceedings of the Third International Workshop on Software Engineering for Secure Systems
  77. Wang L, Wong E and Xu D A Threat Model Driven Approach for Security Testing Proceedings of the Third International Workshop on Software Engineering for Secure Systems
  78. Chen Y Stakeholder Value Driven Threat Modeling for Off the Shelf Based Systems Companion to the proceedings of the 29th International Conference on Software Engineering, (91-92)
  79. Peeters J and Dyson P (2007). Cost-Effective Security, IEEE Security and Privacy, 5:3, (85-87), Online publication date: 1-May-2007.
  80. Marks D and Stinson M (2007). Security trumps efficiency, Journal of Computing Sciences in Colleges, 22:4, (162-169), Online publication date: 1-Apr-2007.
  81. ACM
    Bistarelli S, Fioravanti F and Peretti P Using CP-nets as a guide for countermeasure selection Proceedings of the 2007 ACM symposium on Applied computing, (300-304)
  82. ACM
    Halfond W, Orso A and Manolios P Using positive tainting and syntax-aware evaluation to counter SQL injection attacks Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, (175-185)
  83. Halkidis S, Chatzigeorgiou A and Stephanides G Quantitative evaluation of systems with security patterns using a fuzzy approach Proceedings of the 2006 international conference on On the Move to Meaningful Internet Systems: AWeSOMe, CAMS, COMINF, IS, KSinBIT, MIOS-CIAO, MONET - Volume Part I, (554-564)
  84. ACM
    Taylor B and Azadegan S Threading secure coding principles and risk analysis into the undergraduate computer science and information systems curriculum Proceedings of the 3rd annual conference on Information security curriculum development, (24-29)
  85. ACM
    Walden J and Frank C Secure software engineering teaching modules Proceedings of the 3rd annual conference on Information security curriculum development, (19-23)
  86. Bistarelli S, Dall'Aglio M and Peretti P Strategic games on defense trees Proceedings of the 4th international conference on Formal aspects in security and trust, (1-15)
  87. Essafi M and Ghezala H Addressing software application security issues Proceedings of the 10th WSEAS international conference on Computers, (361-366)
  88. Halkidis S, Chatzigeorgiou A and Stephanides G (2006). A qualitative analysis of software security patterns, Computers and Security, 25:5, (379-392), Online publication date: 1-Jul-2006.
  89. ACM
    Bruschi D, De Win B and Monga M Software engineering for secure systems Proceedings of the 28th international conference on Software engineering, (1007-1008)
  90. ACM
    Halfond W and Orso A Preventing SQL injection attacks using AMNESIA Proceedings of the 28th international conference on Software engineering, (795-798)
  91. ACM
    Ardi S, Byers D and Shahmehri N Towards a structured unified process for software security Proceedings of the 2006 international workshop on Software engineering for secure systems, (3-10)
  92. Nebenzahl D, Sagiv M and Wool A (2006). Install-Time Vaccination of Windows Executables to Defend against Stack Smashing Attacks, IEEE Transactions on Dependable and Secure Computing, 3:1, (78-90), Online publication date: 1-Jan-2006.
  93. Seo S, You J, Kim Y, Choi J, Lee S and Kim B Building security requirements using state transition diagram at security threat location Proceedings of the 2005 international conference on Computational Intelligence and Security - Volume Part II, (451-456)
  94. ACM
    Xu D and Nygard K A threat-driven approach to modeling and verifying secure software Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, (342-346)
  95. ACM
    Halfond W and Orso A AMNESIA Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, (174-183)
  96. ACM
    Wang A Web-based interactive courseware for information security Proceedings of the 6th conference on Information technology education, (199-204)
  97. ACM
    Coburn J, Ravi S, Raghunathan A and Chakradhar S SECA Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems, (78-89)
  98. ACM
    Arora D, Raghunathan A, Ravi S and Jha N Enhancing security through hardware-assisted run-time validation of program data properties Proceedings of the 3rd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, (190-195)
  99. Bierman G, Meijer E and Schulte W The essence of data access in Cω Proceedings of the 19th European conference on Object-Oriented Programming, (287-311)
  100. ACM
    Conti G, Ahamad M and Stasko J Attacking information visualization system usability overloading and deceiving the human Proceedings of the 2005 symposium on Usable privacy and security, (89-100)
  101. ACM
    Halfond W and Orso A (2005). Combining static analysis and runtime monitoring to counter SQL-injection attacks, ACM SIGSOFT Software Engineering Notes, 30:4, (1-7), Online publication date: 1-Jul-2005.
  102. ACM
    Gegick M and Williams L (2005). Matching attack patterns to security vulnerabilities in software-intensive system designs, ACM SIGSOFT Software Engineering Notes, 30:4, (1-7), Online publication date: 1-Jul-2005.
  103. ACM
    Viega J (2005). Building security requirements with CLASP, ACM SIGSOFT Software Engineering Notes, 30:4, (1-7), Online publication date: 1-Jul-2005.
  104. Ray H, Vemuri R and Kantubhukta H (2005). Toward an Automated Attack Model for Red Teams, IEEE Security and Privacy, 3:4, (18-25), Online publication date: 1-Jul-2005.
  105. Apvrille A and Pourzandi M (2005). Secure Software Development by Example, IEEE Security and Privacy, 3:4, (10-17), Online publication date: 1-Jul-2005.
  106. Naugler D (2005). Using regular expressions in Java, Journal of Computing Sciences in Colleges, 20:6, (29-30), Online publication date: 1-Jun-2005.
  107. ACM
    Peine H Rules of thumb for secure software engineering Proceedings of the 27th international conference on Software engineering, (702-703)
  108. ACM
    Bruschi D, De Win B and Monga M Software engineering for secure systems Proceedings of the 27th international conference on Software engineering, (681-681)
  109. ACM
    McClure R and Krüger I SQL DOM Proceedings of the 27th international conference on Software engineering, (88-96)
  110. Condit J and Necula G Data slicing Proceedings of the 14th international conference on Compiler Construction, (172-187)
  111. Arora D, Ravi S, Raghunathan A and Jha N Secure Embedded Processing through Hardware-Assisted Run-Time Monitoring Proceedings of the conference on Design, Automation and Test in Europe - Volume 1, (178-183)
  112. ACM
    Stobie K (2005). Too Darned Big to Test, Queue, 3:1, (30-37), Online publication date: 1-Feb-2005.
  113. Thompson H (2005). Application Penetration Testing, IEEE Security and Privacy, 3:1, (66-69), Online publication date: 1-Jan-2005.
  114. Howard M (2004). Building More Secure Software with Improved Development Processes, IEEE Security and Privacy, 2:6, (63-65), Online publication date: 1-Nov-2004.
  115. ACM
    Ravi S, Raghunathan A, Kocher P and Hattangady S (2004). Security in embedded systems, ACM Transactions on Embedded Computing Systems, 3:3, (461-491), Online publication date: 1-Aug-2004.
  116. Arce I and McGraw G (2004). Guest Editors' Introduction, IEEE Security and Privacy, 2:4, (17-19), Online publication date: 1-Jul-2004.
  117. ACM
    Tevis J and Hamilton J Methods for the prevention, detection and removal of software security vulnerabilities Proceedings of the 42nd annual ACM Southeast Conference, (197-202)
  118. ACM
    Brechner E Things they would not teach me of in college Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (134-136)
  119. Gilliam D, Wolfe T, Sherif J and Bishop M Software Security Checklist for the Software Life Cycle Proceedings of the Twelfth International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises
  120. Ezenwoye O Integrating Security into Computer Science Curriculum 2019 IEEE Frontiers in Education Conference (FIE), (1-8)
Contributors

Recommendations