flawfinder/README

50 lines
2.4 KiB
Plaintext
Raw Normal View History

This is "flawfinder" by David A. Wheeler, <dwheeler@dwheeler.com>.
2014-08-03 04:36:00 +02:00
Flawfinder is a simple program that scans C/C++ source code and reports
potential security flaws. It can be a useful tool for examining software
for vulnerabilities, and it can also serve as a simple introduction to
static source code analysis tools more generally. It is designed to
be easy to install and use. Flawfinder supports the Common Weakness
Enumeration (CWE) and is officially CWE-Compatible.
For more information, see:
http://www.dwheeler.com/flawfinder
2014-08-03 20:01:30 +02:00
Flawfinder is designed for use on Unix/Linux/POSIX systems
(including Cygwin, Linux-based systems, MacOS, and *BSDs) as a
command line tool. It requires Python 2.7 or Python 3.
2014-08-03 20:01:30 +02:00
If you just want to *use* it, you can install flawfinder with
Python's "pip" or with your system's package manager (flawfinder has
packages for many systems). It also supports easily installation
following usual "make install" source installation conventions.
The file INSTALL.txt has more detailed installation instructions.
2014-08-03 20:01:30 +02:00
You don't HAVE to install it to run it, but it's easiest that way.
To run flawfinder, just give it a list of source files or directories to
example. For example, to examine all files in "src/" and down recursively:
2014-08-03 20:01:30 +02:00
flawfinder src/
2014-08-03 20:01:30 +02:00
The manual page (flawfinder.1 or flawfinder.pdf) describes how to use
flawfinder (including its various options) and related information
(such as how it supports CWE). For example, the "--html" option generates
output in HTML format. The "--help" option gives a brief list of options.
More technically, flawfinder uses lexical scanning to find tokens
(such as function names) that suggest likely vulnerabilities, estimates their
level of risk (e.g., by the text of function calls), and reports the results.
Flawfinder does not use or have access to information about control flow,
data flow, or data types. Thus, flawfinder will necessarily
produce many false positives for vulnerabilities and fail to report
many vulnerabilities. On the other hand, flawfinder can find
vulnerabilities in programs that cannot be built or cannot be linked.
Flawfinder also doesn't get as confused by macro definitions
and other oddities that more sophisticated tools have trouble with.
2014-08-03 04:36:00 +02:00
We love contributions! For more information on contributing, see
the file CONTRIBUTING.md.
Flawfinder is released under the GNU GPL license version 2 or later (GPL-2.0+).
2014-08-03 20:01:30 +02:00
See the COPYING file for license information.