Summit2008/Sessions/Proposals/Writing Secure Software & Basic Hacking Techniques

From MozillaWiki
Jump to: navigation, search

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: threatmodel.png

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.