Detect critical vulnerabilities in the application with Google Tsunami Security Scanner

Tram Ho

About Tsunami

Tsunami is a tool used to scan network in your application to detect security holes in your application, with the ability to expand to use with many plugins. Tsunami depends on the plugins provided to scan for vulnerabilities, which are stored in google / tsunami-security-scanner-plugins .

Tsunami is in pre-alpha version.

Why should you use Tsunami?

At a time when security gaps or misconfigured exploits are exploited and attacked by hackers, we must respond quickly to protect sensitive information and application resources. As hackers gradually automated the exploitation of the flaw, a serious flaw took only a few hours for the hacker to detect. This presents a major challenge for application developers, in such a situation, the vulnerabilities need to be detected and fixed automatically. To do this, the Information Security team needs to implement and deploy new security issue detection tools in a short time. Moreover, the quality of the detection tool must always be the best possible, so Tsunami – a network scanning tool to detect vulnerabilities with high reliability.

Target

  • Tsunami supports the manual management of flaw sets
  • Tsunami discovered vulnerabilities, RCE vulnerabilities, those that were frequently exploited online.
  • Tsunami produces a highly reliable scan result file with minimal false-positives.
  • Tsunami detectors are easily implemented.
  • Tsunami easy to read, fast scan speed.

How does Tsunami scan?

Tsunami Scan Orchestration

Overview

Tsunami follows a 2-step process when scanning network endpoints:

  • Reconnaissance: In the first step, Tsunami identifies open ports and fingerprints protocols, services and software that is run on the host using the fingerprinting plugin. This step Tsunami uses pre-built tools like nmap …
  • Vulnerability verification: Based on the data in the previous step, Tsunami continues to use the vulnerability plugins corresponding to the services found and performs the verification of which vulnerabilities are unintentional.

Overall Scanning Workflow

Reconnaissance

At this step, Tsunami explores and collects as much information about the goal as possible, including:

  • open ports
  • protocols
  • network services and banners
  • The software is vulnerable to vulnerabilities and corresponding versions.
Port Scanning phase

Tsunami performs port scanning to verify open ports, protocols and network services on the target. The result of the scan is the PortScanReport protobuf, which contains all of NetworkServices from PortScanner .

PortScanner is a special Tsunami plugin designed with the task for Port Scanning step. This allows users to change the scanning method more easily. Users can choose wrapped plugins from existing tools like nmap or masscan.

Fingerprinting stage

PortScaner usually only verifies ordinary services, when scanning hosts with complex network services (such as web servers), the scanner needs to perform a more Fingerprinting phase to get more information about the network services expose.

For example, the scan target can deploy multiple web applications on the same port 443 / TCP with nginx for reverse proxy, /blog for WordPress application, /forum for phpBB, … PortScanner can tell us the port 443 is running nginx, so Web Application Fingerprinter with a comprehensive crawler is required to identify other applications. ServiceFingerprinter is Tsunami’s plugin that allows users to verify the fingerprinter for the network service by filtering annotations, and Tsunami will be able to automatically deploy ServiceFIngerprinter when it realizes the similarities.

Reconnaissance Report

In the final step in Reconnaissance, Tsunami will compile the results of the above two stages into the ReconnaissanceReport protobuf for the Vulnerability Verification step.

Vulnerability Verification

In this step, Tsunami will execute the VulnDetector plugins in parallel to verify the holes on the scan target based on the results collected from the Reconnaissance step. VulnDetector ‘s detection logic is implemented from Java or binary / scripts from other programming languages ​​like Python or Go. Scripts should be executed independently in proccesses by the Tsunami people by taking advantage of Tsunami’s command.

Detector Selection

VulnDetector usually only verifies one type of flaw and the vulnerability only affects a network service or software, to avoid executing detectors on network services that do not exist in the system, Tsunami allows plugins to filter annotations. , to limit the detection of the plugin. Before Vulnerability Verification starts, Tsunami will choose the corresponding VulnDetector to run on network services and software, unnecessary VulnDetector will not work during the scan.

Install and use

Install the necessary tools

Install nmap , ncrack :

Scan the application

Run this command to install Tsunami and the plugin to the $HOME/tsunami/repos :

The installation is done, now just run the command to Tsunami scan 127.0.0.1 only.


Ok, after 15 minutes of waiting, Tsunami also finished scanning, due to privacy issues, so I asked not to publish the Vuln Report’s information. You can test it and see the result at /tmp/tsunami-output.json .

Conclusion

I have just run the test on the server, but Tsunami seems to scan quite detailed so it has not been done for a long time. But it is also acceptable, the more carefully scanned, the less mercy =)) Currently Tsunami is in the pre-alpha version, hopefully in the stable version there will be more plugins added, scanning many types of holes. more gaping.

References

Share the news now

Source : Viblo