// GLOSSARY

Glossary: taint tracking, sources, sinks and the terms around them

Every term below is defined in one sentence that stands on its own, so you can quote it in a review, a ticket or a question. The same words are used on the dashboard, in the user guide and in the research articles.

the vocabulary

How EyalSec works

Taint trackingalso: taint analysis, dynamic taint analysis

Taint tracking is a runtime technique that marks data from untrusted sources and follows it through every transformation until it reaches a dangerous operation.

How EyalSec works ->
Untrusted dataalso: taint, tainted data

Untrusted data, also called tainted data or taint, is any data a program received from outside, such as a network request or a file.

Taint sources ->
Sourcealso: taint source

A source is a place where untrusted data enters a program, such as a network socket, a file, standard input or an environment variable.

Taint sources ->
Sinkalso: dangerous sink

A sink is a dangerous operation where untrusted data can do harm, such as running a shell command, sending a database query or evaluating code.

Sinks ->
Eventalso: finding, detection

An event is EyalSec's record that untrusted data reached a sink, with the operation, the line of code, the value and its origin.

Events ->
es-pythonalso: EyalSec Python

es-python is the EyalSec Python runtime: you run your programs with es-python instead of python, and it reports untrusted data reaching a sink.

Running es-python ->
Report modealso: Report, Observe mode

Report mode records each flow of untrusted data into a sink as an event on the dashboard and lets the program keep running.

Report and Raise ->
Report and Raise modealso: Report and Raise, Raise, Protect mode

Report and Raise mode records the event and also stops the operation, raising a Python RuntimeError instead of running it.

Report and Raise ->
Sanitizeralso: sanitization, neutralized

A sanitizer is a step that makes untrusted data safe for one particular operation, such as binding it as a query parameter or escaping it for the context it will be used in, so it reaches the sink as a value rather than as code.

Suppressed events ->
Runtime detectionalso: runtime security, runtime protection

Runtime detection is finding a vulnerability by watching the program as it runs on real input, so a finding is an operation that actually happened, with the data that really reached it.

How EyalSec works ->
es-chromiumalso: the EyalSec browser

es-chromium is the EyalSec browser, a desktop browser for security testing that follows page input through the page's JavaScript and reports the DOM-based cross-site scripting flows that really happened in the page.

es-chromium ->
what es-python reports

Vulnerability classes

SQL injectionalso: SQLi

SQL injection is a flaw where data an attacker controls becomes part of the text of a SQL statement, so the database runs a query the developer never wrote.

SQL injection in Python ->
Command injectionalso: OS command injection, shell injection

Command injection is a flaw where data an attacker controls ends up in an operating-system command the program runs, so the attacker gets to run commands of their own with the program's privileges.

Command injection in Python ->
Code injectionalso: eval injection, remote code execution

Code injection is a flaw where data an attacker controls is run as Python code, through eval(), exec(), a dynamic import or a name-based lookup, so the attacker can do anything the program can.

Code injection in Python ->
Insecure deserializationalso: unsafe deserialization, pickle injection

Insecure deserialization is a flaw where a program rebuilds Python objects from bytes an attacker controls, and the rebuilding itself runs attacker-chosen code, before the program ever looks at the result.

Insecure deserialization in Python ->
Path traversalalso: directory traversal

Path traversal is a flaw where data an attacker controls decides which file the program opens, letting them escape the directory the program meant to stay in and read or write files elsewhere.

Path traversal in Python ->
Server-side request forgery (SSRF)also: SSRF

Server-side request forgery is a flaw where an attacker makes the server itself send a request to a destination of their choosing, reaching internal services and cloud metadata that the attacker could never reach directly.

SSRF in Python ->
ReDoS (regular expression denial of service)also: catastrophic backtracking

ReDoS is a flaw where a regular expression takes time that grows explosively on certain inputs, so an attacker can hang a request, or a whole worker, with a short string.

ReDoS in Python ->
Server-side template injection (SSTI)also: SSTI, template injection

Server-side template injection is a flaw where data an attacker controls becomes part of a template's source instead of its data, so the template engine evaluates the attacker's expressions on the server.

SSTI in Python ->
the tools beside it

Tool categories

WAF (web application firewall)also: web application firewall

A WAF (web application firewall) is a filter that inspects HTTP requests at the network edge and blocks the ones that match known attack patterns before they reach the application.

Where a WAF can and cannot see ->
RASP (runtime application self-protection)also: runtime application self-protection

RASP (runtime application self-protection) is a category of security agent that runs with an application and watches the requests it handles for attacks as they happen.

How EyalSec compares ->
SAST (static application security testing)also: static analysis, static application security testing

SAST (static application security testing) analyses source code without running it, to find patterns that can lead to vulnerabilities while the code is still being written.

How EyalSec compares ->
DAST (dynamic application security testing)also: dynamic application security testing, web scanner

DAST (dynamic application security testing) tests a running application from the outside, sending crafted requests and judging from the responses whether an attack succeeded.

How EyalSec compares ->
SCA (software composition analysis)also: dependency scanning, software composition analysis

SCA (software composition analysis) inventories the third-party packages an application depends on and matches their versions against known vulnerabilities.

Third-party dependencies ->
IAST (interactive application security testing)also: interactive application security testing

IAST (interactive application security testing) instruments an application while tests or a scanner exercise it, so it can watch data move through the code during that run.

How EyalSec compares ->

See a source reach a sink in your own code.

Book a live demo
EyalSec Pricing Docs Security Research Vulnerabilities Security glossary About Contact עברית Login Book a live demo