Secure Software Development

Cards (13)

  • The U.S. Department of Defense (DoD) launched a Software Assurance
    Initiative in 2003.
  • This initial process was led by Joe Jarzombek and was endorsed and
    supported by the Department of Homeland Security (DHS), which joined
    the program in 2004.
  • This program initiative resulted in the publication of the Secure Software
    Assurance (SwA) Common Body of Knowledge (CBK). A working group
    drawn from industry, government, and academia was formed to examine two key questions:
  • Economy of mechanism - Keep the design as simple and small as
    possible.
  • Fail-safe defaults - Base access decisions on permission rather than
    exclusion.
  • Complete mediation - Every access to every object must be checked
    for authority.
  • Open design - The design should not be secret, but rather depend on
    the possession of keys or passwords.
  • Separation of privilege - Where feasible, a protection mechanism
    should require two keys to unlock, rather than one.
  • Least privilege -Every program and every user of the system should
    operate using the least set of privileges necessary to complete the
    job.
  • Least common mechanism -Minimize mechanisms (or shared
    variables) common to more than one user and depended on by all
    users.
  • Psychological acceptability - It is essential that the human interface
    be designed for ease of use, so that users routinely and automatically
    apply the protection mechanisms correctly.
  • Some software development problems that result in software that is difficult or impossible to deploy in a secure fashion have been identified as “deadly sins in software security.”
  • These twenty problem areas in software development (which is also called software engineering) were originally categorized by John Viega,
    upon request of Amit Youran, who at the time was the Director of the Department of Homeland Security’s National Cyber Security Division.