Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
picatz committed Jan 2, 2023
1 parent 15368d9 commit d02bda4
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@

Implements static [taint analysis](https://en.wikipedia.org/wiki/Taint_checking) for Go programs.

Taint analysis is a technique for identifying and tracking the flow of sensitive data through a program.
It can be used to identify potential security vulnerabilities, such as SQL injection attacks or cross-site
scripting (XSS) attacks, by identifying sources of sensitive data in the program and tracking how this data
is used and transformed as it flows through the code.
Taint analysis is a technique for identifying the flow of sensitive data through a program.
It can be used to identify potential security vulnerabilities, such as SQL injection or
cross-site scripting (XSS) attacks, by understanding how this data is used and transformed
as it flows through the code.

A "**source**" is a point in the program where sensitive data originates, typically from user
input, such as data entered into a form on a web page, or data loaded from an external source.
A "**sink**" is a point in the program where sensitive data is used or transmitted to exploit
the program.

## Example

This code generates a function call graph rooted at a program's `main` function and
then runs taint analysis on it. If the program uses `database/sql`, the taint analysis
will determine if the program is vulnerable to SQL injection.
will determine if the program is vulnerable to SQL injection such that any of the given
sources reach the given sinks.

```go
cg, _ := callgraph.New(mainFn, buildSSA.SrcFuncs...)
Expand Down

0 comments on commit d02bda4

Please sign in to comment.