Skip to content

Commit a53590c

Browse files
tooryxcopybara-github
authored andcommitted
Start advertising our (work-in-progress) live documentation at https://google.github.io/tsunami-security-scanner/
PiperOrigin-RevId: 665195494 Change-Id: I821fd5bc6b2a7b37e943b107f053b7563f55e670
1 parent 267bafd commit a53590c

File tree

4 files changed

+52
-50
lines changed

4 files changed

+52
-50
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Tsunami is a general purpose network security scanner with an extensible plugin
66
system for detecting high severity vulnerabilities with high confidence.
77

88
To learn more about Tsunami, visit our
9-
[documentation](https://github.com/google/tsunami-security-scanner/blob/master/docs/index.md).
9+
[documentation](https://google.github.io/tsunami-security-scanner/).
1010

1111
Tsunami relies heavily on its plugin system to provide basic scanning
1212
capabilities. All publicly available Tsunami plugins are hosted in a separate

docs/about/index.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## <a name="why_tsunami"></a>Why Tsunami?
2+
3+
When security vulnerabilities or misconfigurations are actively exploited by
4+
attackers, organizations need to react quickly in order to protect potentially
5+
vulnerable assets. As attackers increasingly invest in automation, the time
6+
window to react to a newly released, high severity vulnerability is usually
7+
measured in hours. This poses a significant challenge for large organizations
8+
with thousands or even millions of internet-connected systems. In such
9+
hyperscale environments, security vulnerabilities must be detected and ideally
10+
remediated in a fully automated fashion. To do so, information security teams
11+
need to have the ability to implement and roll out detectors for novel security
12+
issues at scale in a very short amount of time. Furthermore, it is important
13+
that the detection quality is consistently very high. To solve these challenges,
14+
we created Tsunami - an extensible network scanning engine for detecting high
15+
severity vulnerabilities with high confidence in an unauthenticated manner.
16+
17+
## <a name="goal"></a>Goals and Philosophy
18+
19+
* Tsunami supports small manually curated set of vulnerabilities
20+
* Tsunami detects high severity, RCE-like vulnerabilities, which often
21+
actively exploited in the wild
22+
* Tsunami generates scan results with high confidence and minimal
23+
false-positive rate.
24+
* Tsunami detectors are easy to implement.
25+
* Tsunami is easy to scale, executes fast and scans non-intrusively.
26+
27+
## <a name="naming"></a>Naming
28+
29+
The name "Tsunami" comes from the fact that this scanner is meant be used as part of a larger system to warn owners about automated "attack waves". Automated attacks are similar to tsunamis in the way that they come suddenly, without prior warning and can cause a lot of damage to organizations if no precautions are taken. The term "Tsunami Early Warning System Security Scanning Engine" is quite long and thus the name got abbreviated to Tsunami Scanning Engine, or Tsunami. Hence, the name is not an analogy to tsunamis itself, but to a system that detects them and warns everyone about them.

docs/index.md

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,17 @@
11
# Tsunami
22

3-
## <a name="why_tsunami"></a>Why Tsunami?
4-
5-
When security vulnerabilities or misconfigurations are actively exploited by
6-
attackers, organizations need to react quickly in order to protect potentially
7-
vulnerable assets. As attackers increasingly invest in automation, the time
8-
window to react to a newly released, high severity vulnerability is usually
9-
measured in hours. This poses a significant challenge for large organizations
10-
with thousands or even millions of internet-connected systems. In such
11-
hyperscale environments, security vulnerabilities must be detected and ideally
12-
remediated in a fully automated fashion. To do so, information security teams
13-
need to have the ability to implement and roll out detectors for novel security
14-
issues at scale in a very short amount of time. Furthermore, it is important
15-
that the detection quality is consistently very high. To solve these challenges,
16-
we created Tsunami - an extensible network scanning engine for detecting high
17-
severity vulnerabilities with high confidence in an unauthenticated manner.
18-
19-
## <a name="goal"></a>Goals and Philosophy
20-
21-
* Tsunami supports small manually curated set of vulnerabilities
22-
* Tsunami detects high severity, RCE-like vulnerabilities, which often
23-
actively exploited in the wild
24-
* Tsunami generates scan results with high confidence and minimal
25-
false-positive rate.
26-
* Tsunami detectors are easy to implement.
27-
* Tsunami is easy to scale, executes fast and scans non-intrusively.
3+
{% include_relative about/index.md %}
284

295
## <a name="orchestration"></a>How Tsunami Scan Works
306

31-
See [Tsunami Scan Orchestration](orchestration.md).
7+
See [Tsunami Scan Orchestration](/docs/orchestration.md).
328

339
## <a name="howto"></a>How do I ...
3410

35-
* ... [build and execute the scanner?](howto.md#build_n_execute)
36-
* ... [install Tsunami plugins?](howto.md#install_plugins)
37-
* ... [create a new Tsunami plugin?](howto.md#create_plugins)
11+
* ... [build and execute the scanner?](/docs/howto.md#build_n_execute)
12+
* ... [install Tsunami plugins?](/docs/howto.md#install_plugins)
13+
* ... [create a new Tsunami plugin?](/docs/howto.md#create_plugins)
3814
* ...
39-
[apply my plugins to certain types of services / software?](howto.md#filter_plugins)
40-
* ... [add command line arguments for my plugin?](howto.md#command_line)
41-
* ... [add configuration properties for my plugin?](howto.md#configuration)
42-
43-
## <a name="naming"></a>Naming
44-
45-
The name "Tsunami" comes from the fact that this scanner is meant be used as part of a larger system to warn owners about automated "attack waves". Automated attacks are similar to tsunamis in the way that they come suddenly, without prior warning and can cause a lot of damage to organizations if no precautions are taken. The term "Tsunami Early Warning System Security Scanning Engine" is quite long and thus the name got abbreviated to Tsunami Scanning Engine, or Tsunami. Hence, the name is not an analogy to tsunamis itself, but to a system that detects them and warns everyone about them.
15+
[apply my plugins to certain types of services / software?](/docs/howto.md#filter_plugins)
16+
* ... [add command line arguments for my plugin?](/docs/howto.md#command_line)
17+
* ... [add configuration properties for my plugin?](/docs/howto.md#configuration)

docs/orchestration.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
## Overview
44

5-
As of today, Tsunami follows a hardcoded 2-step process when scanning a publicly
6-
exposed network endpoint (see
7-
[Future Work](future_work.md#dynamic_orchestration) on the potential
8-
improvement on the workflow):
5+
Tsunami follows a hardcoded 2-step process when scanning a publicly
6+
exposed network endpoint:
97

10-
* **Reconnaissance**: In the first step, Tsunami identifies open ports and
8+
* **Reconnaissance**: First, Tsunami identifies open ports and
119
subsequently fingerprints protocols, services and other software running on
1210
the target host via a set of fingerprinting plugins. To not reinvent the
1311
wheel, Tsunami leverages existing tools such as [nmap](https://nmap.org/)
@@ -21,7 +19,7 @@ improvement on the workflow):
2119

2220
Following diagram shows the overall workflow for a Tsunami scan.
2321

24-
![orchestration](img/orchestration.svg)
22+
![orchestration](/docs/img/orchestration.svg)
2523

2624
## Reconnaissance
2725

@@ -47,8 +45,8 @@ purpose. This allows users to swap the port scanning implementations. To not
4745
reinvent the wheel, users could choose a Tsunami plugin wrapper around existing
4846
tools like [nmap](https://nmap.org/) or
4947
[masscan](https://github.com/robertdavidgraham/masscan). You may find useful
50-
`PortScanner` implementations can be found in
51-
[tsunami-security-scanner-plugins](https://github.com/google/tsunami-security-scanner-plugins)
48+
`PortScanner` implementations in
49+
[tsunami-security-scanner-plugins](https://github.com/google/tsunami-security-scanner-plugins/tree/master/google/portscan)
5250
repo.
5351

5452
### Fingerprinting Phase
@@ -67,10 +65,15 @@ required to identify these applications.
6765
`ServiceFingerprinter` is a special type of Tsunami plugin that allows users to
6866
define fingerprinters for a specific network service. By using filtering
6967
annotations (see
70-
[how to apply my plugins to certain types of services / software?](howto.md#filter_plugins)),
68+
[how to apply my plugins to certain types of services / software?](/docs/howto.md#filter_plugins)),
7169
Tsunami will be able to automatically invoke appropriate `ServiceFingerprinter`s
7270
when it identifies matching network services.
7371

72+
Tsunami only performs service fingerprinting for web services,
73+
using the
74+
[`WebServiceFingerprinter`](https://github.com/google/tsunami-security-scanner-plugins/blob/71c57f6bc151a3d97675d74c904a175172c77df4/google/fingerprinters/web/src/main/java/com/google/tsunami/plugins/fingerprinters/web/WebServiceFingerprinter.java)
75+
plugin.
76+
7477
### Reconnaissance Report
7578

7679
At the end of the reconnaissance step, Tsunami compiles both the port scanner
@@ -85,16 +88,14 @@ on the information gathered in the Reconnaissance step. `VulnDetector`'s
8588
detection logic could either be implemented as plain Java code, or as a separate
8689
binary / script using a different language like python or go. External binaries
8790
and scripts have to be executed as separate processes outside of Tsunami using
88-
Tsunami's command execution util. See
89-
[Future Work](future_work.md#multi_lang_plugins) for our design ideas of
90-
making Tsunami plugins language agnostic.
91+
Tsunami's command execution util.
9192

9293
### Detector Selection
9394

9495
Usually one `VulnDetector` only verifies one vulnerability and the vulnerability
9596
often only affects one type of network service or software. In order to avoid
9697
doing wasteful work, Tsunami allows plugins to be annotated by some filtering
97-
annotations (see [how-to guide](howto.md#filter_plugins) for details) to limit
98+
annotations (see [how-to guide](/docs/howto.md#filter_plugins) for details) to limit
9899
the scope of the plugin.
99100

100101
Then before the Vulnerability Verification step starts, Tsunami will select

0 commit comments

Comments
 (0)