GithubHelp home page GithubHelp logo

isabella232 / sec-cvescan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from canonical/sec-cvescan

0.0 0.0 0.0 853 KB

Analyzes an Ubuntu system and checks for unpatched vulnerabilities.

License: GNU General Public License v3.0

Shell 7.60% XSLT 4.54% Python 87.86%

sec-cvescan's Introduction

CVEScan

GitHub license GitHub tag (latest by date) Build Status GitHub last commit cvescan

About

CVEScan analyzes an Ubuntu system to check whether all available security patches have been installed. CVEScan produces a clear, concise report that tells you which, if any, security patches an Ubuntu system may be missing.

In addition to scanning a local system, CVEScan can scan a package manifest file. This is useful in environments where CVEScan cannot be installed on every system.

Ubuntu Vulnerability Database JSON

The Ubuntu Security Team at Canonical regularly publishes a JSON file containing information about security updates for .deb packages. The source of the information is the Ubuntu CVE Tracker. The information contained in the JSON file is similar to the information published in the Ubuntu OVAL files, but the format is designed specifically for use by CVEScan.

Regarding v2.0.0 and Later

v2.0.0 is a complete rewrite of CVEScan. It boasts a clear, concise reporting format and a 10x performance improvement over v1.0.10. Additionally, this rewrite will allow developers to add new features and capabilities more quickly.

As might be expected with the release of a new major version, certain options and features included with v1.0.10 may no longer be available or may not function as they use to. If you absolutely must have the old version of CVEScan, you can install the snap and run cvescan.sh. This will run the deprecated v1.0.10 of CVEScan.

WARNING: v2.5.0 of CVEScan is the last version that will include the v1.0.10 bash implementation. If you are still using cvescan.sh, please move over to v2.5.0 of cvescan.

For more information about how v2.0.0 differs from v1.0.10, see the CHANGELOG.

Using CVEScan

CVEScan Demo

Options

CVEScan provides a number of options. See cvescan -h for more details.

usage: cvescan [-h] [--version] [-v] [-p {critical,high,medium,all}]
               [--db UBUNTU_DB_FILE] [-m MANIFEST_FILE] [--csv] [--json]
               [--syslog HOST:PORT] [--syslog-light HOST:PORT] [--show-links]
               [--unresolved] [-x] [-n] [-c CVE-IDENTIFIER] [-s]

Scan an Ubuntu system for known vulnerabilities

optional arguments:
  -h, --help            show this help message and exit
  --version             Show CVEScan's version number and exit
  -v, --verbose         enable verbose messages
  -p {critical,high,medium,all}, --priority {critical,high,medium,all}
                        filter output by CVE priority
  --db UBUNTU_DB_FILE   Specify an Ubuntu vulnerability datbase file to use instead
                        of downloading the latest from people.canonical.com.
  -m MANIFEST_FILE, --manifest MANIFEST_FILE
                        scan a package manifest file instead of the local system
  --csv                 format output as CSV
  --json                format output as JSON
  --syslog HOST:PORT    send JSON formatted output to a syslog server specified by
                        <host>:<port>
  --syslog-light HOST:PORT
                        send a simple log message to a syslog server specified by
                        <host>:<port>
  --show-links          include links to the Ubuntu CVE Tracker in the output
  --unresolved          include CVEs that have not yet been resolved in the output
  -x, --experimental    for users of Ubuntu Advantage, include eXperimental (also
                        called "alpha") in the output
  -n, --nagios          format output for use with Nagios NRPE
  -c CVE-IDENTIFIER, --cve CVE-IDENTIFIER
                        report whether or not this system is vulnerable to a
                        specific CVE.
  -s, --silent          do not print any output (only used with --cve)

Return Codes

In general, CVEScan's return codes indicate the following:

Return Code Description
0 The scan was successful and no CVEs affect this system.
1 An error occurred.
2 Invalid CLI options were specified.
3 The system is vulnerable to one or more CVEs.
4 The system is vulnerable to one or more CVEs and one or more patches are available.

When the --nagios option is specified, CVEScan's return codes indicate the following:

Return Code Description
0 The scan was successful and no CVEs affect this system.
1 The system is vulnerable to one or more CVEs.
2 The system is vulnerable to one or more CVEs and one or more patches are available OR invalid CLI options were specified.
3 An error occurred.

Generating and Scanning a Manifest File

A package manifest file can be generated by running dpkg-query -W > manifest.txt on any Ubuntu system. The manifest file can be copied to any system where CVEScan is installed. CVEScan can then generate a report based on the manifest file instead of the local system: cvescan -m manifest.txt

Installation

As a Snap

The recommended way to install CVEScan is with sudo snap install cvescan

From Source

Install in local environment

The following commands will install and run CVEScan from source:

$> sudo apt install python3-apt python3-pip
$> git clone https://github.com/canonical/sec-cvescan
$> pip3 install --user sec-cvescan/
$> ~/.local/bin/cvescan

Install in a virtualenv

The following commands will install and run CVEScan from source in a virtualenv:

$> sudo apt build-dep python3-apt
$> sudo apt install python3-pip git
$> pip3 install --user virtualenv
$> git clone https://github.com/canonical/sec-cvescan
$> ~/.local/bin/virtualenv -p python3 venv
$> source venv/bin/activate
$> pip3 install -e ./sec-cvescan[apt]
$> venv/bin/cvescan

Development

Running from Source

CVEScan can be run from the source code with python3 -m cvescan

Installing precommit hooks

To install the precommit hooks, run

pip3 install --user pre-commit
~/.local/bin/pre-commit install

Running the test suite

You can run the automated test suite by running

python3 setup.py test

An HTML code coverage report will be generated at ./htmlcov. You can view this with any web browser (e.g. firefox ./htmlcov/index.html).

Version numbers

This project adheres to Semantic Versioning.

The version number used by the setup.py, snapcraft.yaml, and cvescan --version argument is stored in cvescan/version.py and must be updated manually when a new version of CVEScan is released.

sec-cvescan's People

Contributors

arossbell avatar joemcmanus avatar markmorlino avatar mssalvatore avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.