Summit2008/Sessions/Proposals/Writing Secure Software & Basic Hacking Techniques
Contents
Session Title
Writing Secure Software & Basic Hacking Techniques
Session Leader
Paul Nickerson
Introduction
Firefox has been known having good security, and it's important to keep up that image. To do so requires techniques for writing secure code. As software hacking evolves, so should the ways we prevent, detect, and fix bugs.
General Practices
Some basic practices can set the foundation for either writing secure or insecure software. I'll go over these as well as implementation examples.
Threat Modeling
Threat modeling is the basic process of identifying potential flaws in a program. Using data flow diagrams, it helps make preventing security flaws a visual task that can be a collaborative effort. Using proper, in-depth threat modeling techniques, most high-level design flaws can be avoided altogether.
Example:
S.T.R.I.D.E.
Stands for Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, and Elevation of privilege. This is a basically a checklist that can be used for threat modeling. I'll define each and show some examples.
Specific Firefox Attacks
Since Firefox has a lot of consistent behavior, some attacks can be consistent in the ways that they're found, e.g. making chrome attempt to access a javascript URL. Programmers can keep these behaviors and their attacks in mind to reduce bugs entering the codebase.