Git Product home page Git Product logo

heimdall_tools's Introduction

Heimdall Tools has been deprecated. See the new SAF CLI

Heimdall Tools

Overall Status Heimdall Tools Build

HeimdallTools supplies several methods to convert output from various tools to "Heimdall Data Format"(HDF) format to be viewable in Heimdall. The current converters are:

  1. aws_config_mapper - assess, audit, and evaluate AWS resources
  2. burpsuite_mapper - commercial dynamic analysis tool
  3. dbprotect_mapper - database vulnerability scanner
  4. fortify_mapper - commercial static code analysis tool
  5. jfrog_xray_mapper - package vulnerability scanner
  6. nessus_mapper - commercial security scanner (supports compliance and vulnerability scans from Tenable.sc and Tenable.io)
  7. netsparker_mapper - web application security scanner
  8. nikto_mapper - open-source web server scanner
  9. sarif_mapper - static analysis results interchange format
  10. scoutsuite_mapper - multi-cloud security auditing tool
  11. snyk_mapper - commercial package vulnerability scanner
  12. sonarqube_mapper - open-source static code analysis tool
  13. xccdf_results_mapper - extensible configuration checklist description results format
  14. scc_mapper - scap compliance checker format
  15. zap_mapper - OWASP ZAP - open-source dynamic code analysis tool

Want to recommend a mapper for another tool? Please use these steps:

  1. Create an issue, and email [email protected] citing the issue link so we can help
  2. Provide a sample output, preferably the most detailed the tool can provide, and also preferably in a machine-readable format, such as xml, json, or csv - whichever is natively available. If it is sensitive we'll work that in #3. (If it's an API only, we'll also just talk about it in #3)
  3. Let's arrange a time to take a close look at the data it provides to get an idea of all it has to offer. We'll suggest an initial mapping of the HDF core elements.
  4. Note: if the tool doesn't provide a NIST SP 800-53 reference, we've worked on mappings to other references such as CWE or OWASP Top 10.
  5. If the tool doesn't provide something for #4, or another core element such as impact, we'll help you identify a custom mapping approach.
  6. We'll help you decide how to preserve any other information (non-core elements) the tool provides to ensure that all of the original tool's intent comes through for the user when the data is viewed in Heimdall.
  7. Finally, We'll provide final peer review and support merging your pull request. We appreciate your contributions, but we're here to help!

How to Install Heimdall Tools:

Ruby 2.4 or higher (check using "ruby -v")

If installation of Ruby is required, perform these steps:

Linux Installation of Ruby

Installation on RHEL-based systems

To install Ruby using RVM (Ruby Version Manager):

sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool patch readline-devel sqlite-devel zlib-devel openssl-devel

sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL https://get.rvm.io | bash -s stable

source ~/.rvm/scripts/rvm

Finally, install the latest version of Ruby (stable), currently 2.6.x:

rvm install 2.6

rvm use 2.6 --default

Verify the installed version number:

ruby -v

ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]

Installation on Ubuntu-based systems

Installation of Heimdall Tools:

gem install heimdall_tools

Command line Usage

On the Command Line, heimdall_tools help will print a listing of all the command with a short description. For detailed help on any command, run heimdall_tools help [COMMAND]. Help can also be called with the -h, --help flags after any command, like heimdall_tools fortify_mapper -h.

For Docker usage, replace the heimdall_tools command with the correct Docker command below for your operating system:

  • On Linux and Mac: docker run -it -v$(pwd):/share mitre/heimdall_tools
  • On Windows CMD: docker run -it -v%cd%:/share mitre/heimdall_tools

Note that all of the above Docker commands will mount your current directory on the Docker container. Ensure that you have navigated to the directory you intend to convert files in before executing the command.

aws_config_mapper

aws_config_mapper pulls Ruby AWS SDK data to translate AWS Config Rule results into HDF format json to be viewable in Heimdall

AWS Config Rule Mapping:

The mapping of AWS Config Rules to 800-53 Controls was sourced from this link.

Authentication with AWS:

Developer Guide for configuring Ruby AWS SDK for authentication

USAGE: heimdall_tools aws_config_mapper [OPTIONS] -o

FLAGS:
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools aws_config_mapper -o aws_config_results_hdf.json

burpsuite_mapper

burpsuite_mapper translates an BurpSuite Pro exported XML results file into HDF format json to be viewable in Heimdall

USAGE: heimdall_tools burpsuite_mapper [OPTIONS] -x  -o

FLAGS:
    -x                : path to BurpSuitePro exported XML results file.
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools burpsuite_mapper -x burpsuite_results.xml -o scan_results.json

dbprotect_mapper

dbprotect_mapper translates DBProtect report in Check Results Details format XML to HDF format JSON be viewed on Heimdall.

USAGE: heimdall_tools dbprotect_mapper [OPTIONS] -x  -o

FLAGS:
    -x            : path to DBProtect report XML file.
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools dbprotect_mapper -x check_results_details_report.xml -o db_protect_hdf.json

fortify_mapper

fortify_mapper translates an Fortify results FVDL file into HDF format json to be viewable in Heimdall

USAGE: heimdall_tools fortify_mapper [OPTIONS] -f  -o

FLAGS:
	-f --fvdl          : path to Fortify Scan FVDL file.
	-o --output        : path to output scan-results json.
	-V --verbose                     : verbose run [optional].

example: heimdall_tools fortify_mapper -f audit.fvdl -o scan_results.json

jfrog_xray_mapper

jfrog_xray_mapper translates an JFrog Xray results JSON file into HDF format JSON to be viewable in Heimdall

USAGE: heimdall_tools jfrog_xray_mapper [OPTIONS] -j  -o

FLAGS:
    -j            : path to xray results JSON file.
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools jfrog_xray_mapper -j xray_results.json -o xray_results_hdf.json

nessus_mapper

nessus_mapper translates a Nessus-exported XML results file into HDF format json to be viewable in Heimdall. Supports compliance and vulnerability scans from Tenable.sc and Tenable.io.

Note: A separate HDF JSON file is generated for each host reported in the Nessus Report.

USAGE: heimdall_tools nessus_mapper [OPTIONS] -x  -o

FLAGS:
    -x           : path to Nessus-exported XML results file.
    -o --output_prefix       : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools nessus_mapper -x nessus-results.xml -o test-env

netsparker_mapper

netsparker_mapper translates an Netsparker XML results file into HDF format JSON to be viewable in Heimdall.

The current iteration only works with Netsparker Enterprise Vulnerabilities Scan.

USAGE: heimdall_tools netsparker_mapper [OPTIONS] -x  -o

FLAGS:
    -x       : path to netsparker results XML file.
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools netsparker_mapper -x netsparker_results.xml -o netsparker_hdf.json

nikto_mapper

nikto_mapper translates an Nikto results JSON file into HDF format JSON to be viewable in Heimdall

Note: Current this mapper only support single target Nikto Scans.

USAGE: heimdall_tools nikto_mapper [OPTIONS] -x  -o

FLAGS:
    -j           : path to Nikto results JSON file.
    -o --output_prefix       : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools nikto_mapper -j nikto_results.json -o nikto_results.json

sarif_mapper

sarif_mapper translates a SARIF JSON file into HDF format JSON to be viewable in Heimdall

USAGE: heimdall_tools sarif_mapper [OPTIONS] -j  -o

FLAGS:
    -j           : path to SARIF results JSON file.
    -o --output_prefix       : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools sarif_mapper -j sarif_results.json -o sarif_results_hdf.json

scoutsuite_mapper

scoutsuite_mapper translates Scout Suite results from Javascript to HDF-formatted JSON so as to be viewable on Heimdall

Note: Currently this mapper only supports AWS.

USAGE: heimdall_tools scoutsuite_mapper -i  -o

FLAGS:
    -i --input -j --javascript  : path to Scout Suite results Javascript file.
    -o --output                 : path to output scan-results json.

example: heimdall_tools scoutsuite_mapper -i scoutsuite_results.js -o scoutsuite_hdf.json

snyk_mapper

snyk_mapper translates an Snyk results JSON file into HDF format json to be viewable in Heimdall

Note: A separate HDF JSON is generated for each project reported in the Snyk Report.

USAGE: heimdall_tools snyk_mapper [OPTIONS] -x  -o

FLAGS:
    -j           : path to Snyk results JSON file.
    -o --output_prefix       : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools snyk_mapper -j snyk_results.json -o output-file-prefix

sonarqube_mapper

sonarqube_mapper pulls SonarQube results, for the specified project, from the API and outputs in HDF format Json to be viewed on Heimdall

USAGE: heimdall_tools sonarqube_mapper [OPTIONS] -n  -u  -o

FLAGS:
    -n --name          : Project Key of the project in SonarQube
    -u --api_url            : url of the SonarQube Server API. Typically ends with /api.
    --auth               : username:password or token [optional].
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example:

heimdall_tools sonarqube_mapper -n sonar_project_key -u http://sonar:9000/api -o scan_results.json

heimdall_tools sonarqube_mapper -n sonar_project_key -u http://sonar:9000/api --auth admin:admin -o scan_results.json

xccdf_results_mapper

Note: SCC outputs scan results in XCCDF-Results format.

xccdf_results_mapper translates an XCCDF_Results XML scan into HDF format json to be viewable in Heimdall.

USAGE: heimdall_tools xccdf_results_mapper [OPTIONS] -x  -o

FLAGS:
    -x            : path to XCCDF-Results XML file.
    -o --output        : path to output scan-results json.

example: heimdall_tools xccdf_results_mapper -x xccdf_results.xml -o scan_results.json

zap_mapper

zap_mapper translates OWASP ZAP results Json to HDF format Json be viewed on Heimdall

USAGE: heimdall_tools zap_mapper [OPTIONS] -j  -n  -o

FLAGS:
    -j --json              : path to OWASP ZAP results JSON file.
    -n --name             : URL of the site being evaluated.
    -o --output        : path to output scan-results json.
    -V --verbose                     : verbose run [optional].

example: heimdall_tools zap_mapper -j zap_results.json -n site_name -o scan_results.json

version

Prints out the gem version

USAGE: heimdall_tools version

Development

Submitting a PR

A complete PR should include 7 core elements:

  • A signed PR ( aka git commit -a -s )
  • Code for the new functionality
  • Updates to the CLI
  • New unit tests for the functionality
  • Updates to the docs and examples in README.md and ./docs/*
  • (if needed) Example / Template files ( metadata.yml,example.yml, etc )
    • Scripts / Scaffolding code for the Example / Template files ( generate_map is an example )
  • Example Output of the new functionality if it produces an artifact

Overview of our PR process

  1. open an issue on the main inspec_tools website noting the issues your PR will address
  2. fork the repo
  3. checkout your repo
  4. cd to the repo
  5. git co -b ``
  6. bundle install
  7. hack as you will
  8. test via rake
  9. ensure unit tests still function and add unit tests for your new feature
  10. add new docs to the README.md and to ./docs/examples
  11. update the CLI as needed and add in usage example
  12. (if needed) create and document any example or templates
  13. (if needed) create any supporing scripts
  14. (opt) gem build inspec_tools.gemspec
  15. (opt) gem install inspec_tools
  16. (opt) test via the installed gem
  17. git commit -a -s ``
  18. Open a PRs aginst the MITRE inspec_tools repo

Publishing a Release

If you are a maintainer, it is very easy to cut a release of this gem:

  1. Click on "Releases" and there should be a draft pending.
  2. Make sure the Tag version and Release title match!
  3. Add any additional notes can be added in the Description box.
  4. Click "Publish release".
  5. Release notes will be posted and a new gem will be pushed to Rubygems & Github Packages with the version you specified on step 2.

Testing

This gem was developed using the CLI Template, a generator tool that builds a starter CLI project.

There are a set of unit tests. Run rake test to run the tests.

To release a new version, update the version number in version.rb according to the Semantic Versioning Policy. Then, run bundle exec rake release which will create a git tag for the specified version, push git commits and tags, and push the .gem file to github.com.

License and Author

Authors

NOTICE

© 2018 The MITRE Corporation.

Approved for Public Release; Distribution Unlimited. Case Number 18-3678.

NOTICE

MITRE hereby grants express written permission to use, reproduce, distribute, modify, and otherwise leverage this software to the extent permitted by the licensed terms provided in the LICENSE.md file included with this project.

NOTICE

This software was produced for the U. S. Government under Contract Number HHSM-500-2012-00008I, and is subject to Federal Acquisition Regulation Clause 52.227-14, Rights in Data-General.

No other use other than that granted to the U. S. Government, or to those acting on behalf of the U. S. Government under that Clause is authorized without the express written permission of The MITRE Corporation.

For further information, please contact The MITRE Corporation, Contracts Management Office, 7515 Colshire Drive, McLean, VA 22102-7539, (703) 983-6000.

heimdall_tools's People

Contributors

aaronlippold avatar amndeep7 avatar bialogs avatar camdenmoors avatar djhaynes avatar ejaronne avatar jfarl avatar jkufro avatar jsa5593 avatar mirskiy avatar rbclark avatar rlin232 avatar rx294 avatar shaopeng-gh avatar wdower avatar zacharylc-mitre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heimdall_tools's Issues

Map Nessus Warnings and Errors properly

The Nessus to HDF (Heimdall converter) should take any Nessus "Warning" and "Error" checks and set them to "Not Reviewed" and "Profile Error", respectively. Currently these are set to Failed, which can lead folks to believe something has been tested, but it hasn't been.

Standard Format For Jfrog to Heimdall Tool

I have been attempting to use the aforementioned jfrog conversion functionality in this tool; however, the vulnerability reports that I have been putting into them do not work. Is there a sample or standard format available to see where this error is? As it confidential information about the company that I work for I am not able to share any of the samples I have been using.

Unable to Convert Fortify 19.2.0 FVDL file to HDF

I am trying to use Heimdall Tools to convert a Fortify FVDL file to HDF format json to be viewable in Heimdall. However, I am receiving the following error: "Invalid Fortify FVDL file provided Exception: undefined method 'new' for Nori:Module (RuntimeError)". I opened the FVDL file and it is a valid XML file. The FVDL file was created with Fortify version 19.2.0.

The complete output is listed below:
heimdall_tools fortify_mapper -f gopax.fvdl -o fortify-heimdall-results.json Traceback (most recent call last): 10: from /home/edorner/.rbenv/versions/2.7.0/bin/heimdall_tools:23:in

'
9: from /home/edorner/.rbenv/versions/2.7.0/bin/heimdall_tools:23:in load' 8: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/exe/heimdall_tools:14:in <top (required)>'
7: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor/base.rb:466:in start' 6: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/command.rb:46:in dispatch'
5: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor.rb:387:in dispatch' 4: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in invoke_command'
3: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor/command.rb:27:in run' 2: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/cli.rb:11:in fortify_mapper'
1: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/cli.rb:11:in new' /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/fortify_mapper.rb:14:in initialize': undefined method new' for Nori:Module (NoMethodError) 11: from /home/edorner/.rbenv/versions/2.7.0/bin/heimdall_tools:23:in '
10: from /home/edorner/.rbenv/versions/2.7.0/bin/heimdall_tools:23:in load' 9: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/exe/heimdall_tools:14:in <top (required)>'
8: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor/base.rb:466:in start' 7: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/command.rb:46:in dispatch'
6: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor.rb:387:in dispatch' 5: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in invoke_command'
4: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/thor-0.20.3/lib/thor/command.rb:27:in run' 3: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/cli.rb:11:in fortify_mapper'
2: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/cli.rb:11:in new' 1: from /home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/fortify_mapper.rb:13:in initialize'
/home/edorner/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/heimdall_tools-1.2.0/lib/heimdall_tools/fortify_mapper.rb:20:in rescue in initialize': Invalid Fortify FVDL file provided Exception: undefined method new' for Nori:Module (RuntimeError)`

Request New converters

Requesting new converters, in rough order of priority:

  1. Burp Suite Pro (likely their xml output)
  2. Nessus (Vulnerability scan - CVE and least functionality (SI-2, RA-5))
  3. Nikto (Dynamic Code Analysis software)
  4. NetSparker
  5. Sneak (package dependency checker (CVE))

When executing ZAP mapper ./lib/data/cwe-nist-mapping.csv can not be found

I was not able to execute the zap mapper to convert to HDF without getting an error message saying ./lib/data/cwe-nist-mapping.csv can not be found. I was able to to successfully run the zap mapper but only by being in the lib directory of the gem itself. There might be an error with the gem load path.

Heimdall_tools image issue with executing as gitlab-runners.

When I use the image in my gitlab-runner, I get this error
Executing "step_script" stage of the job script 00:01 Using docker image sha256:cc5c15ef29c6eed4a29e6036ce789a954d1d1b6088448389e44c881e5b0ee0db for gitlab.health.mil:5050/dsocc-iaas/mitre/heimdall_tools with digest gitlab.health.mil:5050/dsocc-iaas/mitre/heimdall_tools@sha256:6e7aa0e3d2de24b536787fa70ebe746f1e6323652b8ab545fb5c322b02ed40c6 ... Could not find command "sh".

For reference, I am using a docker executor.

Resolve CWE mapping error

Resolve CWE mapping error in case of empty cwe to nist mapping.
Affected mappers

  • burpsuite_mapper
  • jfrog_xray_mapper
  • burpsuite_mapper
  • nessus_mapper
  • snyk_mapper
  • zap_mapper

Add fields to Nessus STIG compliance mapper

Add the following HDF tags to output:

  • rid (parsed from Nessus' Rule-ID)
  • CCI (array from Nessus' CCI)
  • Stig_id (from Neuss' STIG-ID)

These are crucial to allow inspec2ckl to form proper .ckl files

Example data to parse in a .nessus xml:

cm:compliance-reference800-171|3.13.8,800-53|SC-8,800-53|SC-8(1),CAT|II,CCI|CCI-002418,CCI|CCI-002421,CN-L3|8.1.2.2(a),CN-L3|8.1.2.2(b),CN-L3|8.1.4.7(a),CN-L3|8.1.4.8(a),CN-L3|8.2.4.5(c),CN-L3|8.2.4.5(d),CN-L3|8.5.2.2,CSCv6|13,CSF|PR.DS-2,CSF|PR.DS-5,ISO/IEC-27001|A.10.1.1,ISO/IEC-27001|A.13.2.3,ITSG-33|SC-8,ITSG-33|SC-8(1),ITSG-33|SC-8a.,NESA|T4.3.1,NESA|T4.3.2,NESA|T4.5.1,NESA|T4.5.2,NESA|T7.3.3,NESA|T7.4.1,NIAv2|IE8,NIAv2|IE9,NIAv2|IE12,NIAv2|NS5d,NIAv2|NS6b,NIAv2|NS29,NIAv2|SS24,QCSC-v1|5.2.2,QCSC-v1|6.2,Rule-ID|SV-220915r569187_rule,STIG-ID|WN10-SO-000040,SWIFT-CSCv1|2.1,TBA-FIISB|29.1,Vuln-ID|V-220915</cm:compliance-reference>

Map 'Policy Compliance' entries for nessus_mapper

The current version of nessus_mapper maps all plugin families except 'Policy Compliance'

Add capacity to map Policy Compliance plugins as well
Task list

  • Identify STIG based plugins
  • Parse CAT severity for STIG based plugins
  • Parse NIST from compliance-reference for STIG based plugins
  • Parse Vuln-ID from compliance-reference for STIG based plugins
  • Use CAT severity to override plugin severity for STIG based plugins
  • Parse Title
  • Parse Checktext
  • Parse Title
  • Parse Results

xccdf_results_mapper undefined method `match'

Trying to convert some OpenSCAP produced XCCDF results XML into HDF using xccdf_results_mapper on two different systems and have received the following error message in each case.

[number6@localhost Documents]$ sudo docker run -it -v $(pwd):/share mitre/heimdall_tools xccdf_results_mapper -x rhel7scap_2.xml -o hdf_results.json
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Traceback (most recent call last):
13: from /usr/local/bundle/bin/heimdall_tools:23:in <main>' 12: from /usr/local/bundle/bin/heimdall_tools:23:in load'
11: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/exe/heimdall_tools:14:in <top (required)>' 10: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/base.rb:466:in start'
9: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/command.rb:44:in dispatch' 8: from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in dispatch'
7: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in invoke_command' 6: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in run'
5: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/cli.rb:49:in xccdf_results_mapper' 4: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/xccdf_results_mapper.rb:117:in to_hdf'
3: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/xccdf_results_mapper.rb:117:in each_with_index' 2: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/xccdf_results_mapper.rb:117:in each'
1: from /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/xccdf_results_mapper.rb:132:in block in to_hdf' /usr/local/bundle/gems/heimdall_tools-1.3.48.1.g88bd047/lib/heimdall_tools/xccdf_results_mapper.rb:93:in satisfies_parse': undefined method `match' for #Hash:0x00007f20ff9810d0 (NoMethodError)

Clarify Nessus scope

Change "nessus_mapper - commercial vulnerability scanner" to

"nessus_mapper - commercial security scanner (Heimdall_tools supports compliance and vulnerability scans from SC and IO"

Output in evaluation format, not profile

Currently fortify mapper formats the data as if it were a profile listing, because the data is all fails, no passes. Instead, recommend normal evaluation format, which will allow access to the SSP and CAAT functions in heimdall.

Error running `nessus_mapper` against exported scan file from tenable.io

I'm trying to import an agent scan triggered from tenable.io into Heimdall. I set up the scan in tenable as a compliance scan, targeting CIS Ubuntu Linux 18.04 LTS Server L2 v2.0.1:

image

However, the mapping fails. I believe this is because there is no preference for sc_version.

Here is a version of the .nessus file, with the actual results redacted: https://gist.github.com/pkaeding/0d81bb5b3528c2ca61c949afd446b395

Is it possible to get this to work with a scan from tenable.io? Perhaps there is an option I need to set in the scan settings? Or something to pass to heimdall_tools?

docker run -it -v ~/Downloads:/share mitre/heimdall_tools nessus_mapper -x /share/CIS_Ubuntu_18.04_L2.nessus -o staging -V
Traceback (most recent call last):
	11: from /usr/local/bundle/bin/heimdall_tools:23:in `<main>'
	10: from /usr/local/bundle/bin/heimdall_tools:23:in `load'
	 9: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/exe/heimdall_tools:14:in `<top (required)>'
	 8: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
	 7: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/command.rb:44:in `dispatch'
	 6: from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
	 5: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
	 4: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
	 3: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/cli.rb:54:in `nessus_mapper'
	 2: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/cli.rb:54:in `new'
	 1: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:50:in `initialize'
/usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:75:in `extract_scaninfo': undefined method `[]' for nil:NilClass (NoMethodError)
	12: from /usr/local/bundle/bin/heimdall_tools:23:in `<main>'
	11: from /usr/local/bundle/bin/heimdall_tools:23:in `load'
	10: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/exe/heimdall_tools:14:in `<top (required)>'
	 9: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
	 8: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/command.rb:44:in `dispatch'
	 7: from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
	 6: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
	 5: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
	 4: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/cli.rb:54:in `nessus_mapper'
	 3: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/cli.rb:54:in `new'
	 2: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:50:in `initialize'
	 1: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:70:in `extract_scaninfo'
/usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:78:in `rescue in extract_scaninfo': Invalid Nessus XML file provided Exception: undefined method `[]' for nil:NilClass (RuntimeError)
	11: from /usr/local/bundle/bin/heimdall_tools:23:in `<main>'
	10: from /usr/local/bundle/bin/heimdall_tools:23:in `load'
	 9: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/exe/heimdall_tools:14:in `<top (required)>'
	 8: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
	 7: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/command.rb:44:in `dispatch'
	 6: from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
	 5: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
	 4: from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
	 3: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/cli.rb:54:in `nessus_mapper'
	 2: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/cli.rb:54:in `new'
	 1: from /usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:46:in `initialize'
/usr/local/bundle/gems/heimdall_tools-1.3.40.3.gdd4e448/lib/heimdall_tools/nessus_mapper.rb:52:in `rescue in initialize': Invalid Nessus XML file provided Exception: Invalid Nessus XML file provided Exception: undefined method `[]' for nil:NilClass (RuntimeError)

Add '--input / -i' as options and clean up documentation

Instead of doing -x or -j or whatever, just simplify the situation and add/recommend -i since there are no other input files (though there are occasionally other arguments/options, but none of them use -i). First step would be to add the two as additional aliases to whatever's already there, and then in a later major version bump we can drop support for all the non i ones.

Also, the documentation needs to be cleaned up/improved in several regards: use the banner option from thor, clean up the english, sometimes it says --option_prefix even though it ought to be --option, etc.

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.