This page gives a rough overview of the steps necessary to conduct an audit of a package.
The first step is to actually choose a package to examine, you should pick one that's more critical to security.
See the list of packages that we think are most important to audit for suggestions on how to make your decision.
One thing that should be made clear is that we are not trying to make sure that a package is only audited once. If many people choose to examine the same package this is a good thing, as it demonstrates that many people believe the package is security sensitive.
By allowing an essentially random selection of packages we simplify
coordination and we eliminate the problem of how can you trust person
X to do a good job?
(We don't need to as it is assumed that sooner
or later somebody else will choose to examine the same program).
After making your package selection you actually need to start the audit.
If you're not sure about the kind of problems you're looking for first start by reading a book on how to develop secure software.
The Secure Programming for Linux and Unix HOWTO has a lot of good information that can help you. Secure Coding: Principles & Practices by Mark G. Graff and Kenneth R. van Wyk is also an excellent book.
Although tools are imperfect, they can still be extremely helpful in finding likely vulnerabilities, See the auditing tools page for more information on some of the available auditing tools and how they are used.
As well as looking at the code itself it is a good idea to read the documentation of the package itself, and try installing it and using it.
This might allow you to think of ways to subvert the program in its typical operation.
If you do discover a problem within the package that you are examining it then you should report it. When reporting a security bug try to provide also a patch for it so that the developers can fix it in a timely fashion. There is no need to provide an attack sample (often called an exploit or proof of concept) since the patch should speak for itself, it is usually best to invest time in provide a proper patch that to provide a successful attack that exploits the bug.
Here is a list of recommended steps once you have found a security bug in Debian:
If you do not have a fix then the more detail you can give on the scope of the problem, the relative severity of the issue and any workarounds the better.
Notice that these steps might depend based on the risk associated with the vulnerability found. You need to assess the risk based on:
Different steps should be taken, for example, to report a local symlink attack that can only be used by authenticated users and only provides a way to damage the system than to report a remote buffer overflow that provides administrative privileges and is present in software which is in widespread use.
In most cases, as most security bugs shouldn't be disclosed generally until after they have been fixed do not report them via the standard Debian Bug Tracking System, instead first report the problem directly to the Security Team who will handle the release of an updated package and, once fixed, report them to the BTS.