quinta-feira, 12 de maio de 2016

SW Design, SW Construction: Security as a Design Quality Attribute ("5 lines" summary)

Some topics on Security (the "5 lines" summary with a little bit more than 5 lines): As a systems analyst, system architect, software developer and tester (SPA Engineer) you must:

- Read on security related to the technologies you'll be using for producing the final information system being developed (i.e. the solution):
  • C++, C, Java, ... - there are full books on the security topic 
  • JEE, .Net and other enterprise application frameworks
  • RDBMS and other entity persistence means 
  • Other common core system components like...
    • App. Servers (JBoss and the like)
    • Web Servers (Apache, IIS and the like)
  • Operating Systems 
  • Anything else (that your system reuses: drivers, hardware, ...). 

- Make sure everything above is patched (regularly) and that whatever you program (and configure) is secure in the light of what you (regularly) read.

Remember to:
- Subscribe newsletters on the topic (of follow the proper newfeeds / groups) to help you keeping updated
- Use the proper frameworks for helping you on security as a process, for example:
The OWASP Application Security Verification Standard (ASVS) Project provides a basis for testing web application technical security controls and also provides developers with a list of requirements for secure development.
- Use the proper tools to help you (executing security assessments) before release. Raise all relevant [code] issues found.
- Reuse the invaluable resources (with guidelines and concrete checklists for specific technologies) like the following (take your time exploring them properly and use whatever suits you):
The bottom line: 
Security is a process: You change a line of code (or a system component) and you could have changed the security characteristics of your system as a whole. Remember that a system is as strong as its weakest link (and you don't want to have been working on that weakest part).

(@2016-11-15: minor rephrases, formatting)