1
0
Fork 0
mirror of https://github.com/gocsaf/csaf.git synced 2025-12-22 11:55:40 +01:00
Tools to download or provide CSAF2 (Common Security Advisory Framework) documents.
Find a file
2022-05-10 16:38:34 +02:00
.github/workflows Add github action for integration test 2022-04-28 15:06:45 +02:00
cmd Rename some variables 2022-05-04 15:39:22 +02:00
csaf Make extraction of fields optional 2022-05-10 16:38:34 +02:00
docs For issue #83 2022-04-29 08:52:39 +02:00
LICENSES Improve Phrasing and move 3rdpartylicenses one up. 2021-12-16 16:26:08 +01:00
util Make extraction of fields optional 2022-05-10 16:38:34 +02:00
3rdpartylicenses.md Improve Phrasing and move 3rdpartylicenses one up. 2021-12-16 16:26:08 +01:00
go.mod Added support for entering passwords interactively. 2021-12-07 11:38:14 +01:00
go.sum Added support for entering passwords interactively. 2021-12-07 11:38:14 +01:00
Makefile Add dist Makefile target 2022-04-29 11:42:10 +02:00
README.md Declare status alpha. 2022-04-29 12:28:58 +02:00

csaf_distribution

WIP: A proof of concept for a CSAF trusted provider, checker and aggregator.

Status: Alpha (about 90% functionality is there)

Setup

  • A recent version of Go (1.17+) should be installed. Go installation

  • Clone the repository git clone https://github.com/csaf-poc/csaf_distribution.git

  • Build Go components Makefile supplies the following targets:

    • Build For GNU/Linux System: make build_linux
    • Build For Windows System (cross build): make build_win
    • Build For both linux and windows: make build
    • Build from a specific github tag by passing the intended tag to the BUILDTAG variable. E.g. make BUILDTAG=v1.0.0 build or make BUILDTAG=1 build_linux. The special value 1 means checking out the highest github tag for the build.
    • Remove the generated binaries und their directories: make mostlyclean

Binaries will be placed in directories named like bin-linux-amd64/ and bin-windows-amd64/.

csaf_uploader

csaf_uploader is a command line tool that uploads CSAF documents to the trusted provider (CSAF_Provider). Following options are supported:

Options Description
-a, --action=[upload|create] Action to perform (default: upload)
-u, --url=URL URL of the CSAF provider (default:https://localhost/cgi-bin/csaf_provider.go)
-t, --tlp=[csaf|white|green|amber|red] TLP of the feed (default: csaf)
-x, --external-signed CSAF files are signed externally. Assumes .asc files beside CSAF files
-k, --key=KEY-FILE OpenPGP key to sign the CSAF files
-p, --password=PASSWORD Authentication password for accessing the CSAF provider
-P, --passphrase=PASSPHRASE Passphrase to unlock the OpenPGP key
-i, --password-interactive Enter password interactively
-I, --passphrase-interacive Enter passphrase interactively
-c, --config=INI-FILE Path to config ini file
--insecure Do not check TLS certificates from provider
--client-cert TLS client certificate file (PEM encoded data)
--client-key TLS client private key file (PEM encoded data)
-h, --help Show help

E.g. creating the initial directiories and files

./csaf_uploader -a create  -u http://localhost/cgi-bin/csaf_provider.go

E.g. uploading a csaf-document

./csaf_uploader -a upload -I -t white -u http://localhost/cgi-bin/csaf_provider.go  CSAF-document-1.json

which asks to enter password interactively.

csaf_uploader can be started with a config file like following:

./csaf_provider -c conf.ini

config.ini :

action=create
u=http://localhost/cgi-bin/csaf_provider.go

csaf_checker

Provider checker is a tool for testing a CSAF trusted provider according to Section 7 of the CSAF standard.
Usage example: ./csaf_checker example.com -f html -o check-results.html

License

  • csaf_distribution is licensed as Free Software under MIT License.

  • See the specific source files for details, the license itself can be found in the directory LICENSES/.

  • Contains third party Free Software components under licenses that to our best knowledge are compatible at time of adding the dependency, 3rdpartylicenses.md has the details.

  • Check the source file of each schema under /csaf/schema/ to see the source and license of each one.