Measure tracking tool for the implementation of information security measures in projects
5.8K
MV-Tool is for tracking measures in information security. If information security is to be implemented according to BSI IT Grundschutz or another procedure or standard, many information security measures need to be implemented.
MV-Tool supports this process insofar as concrete implementation steps (measures) can be determined for each information security requirement. The implementation of these measures can later be tracked in an issue tracker. Currently, only JIRA by Atlassian is supported as issue tracker.
Before you can run the MV-Tool in a Docker container, you have to configure it. This is done by a configuration file. This is very simple and contains only a few entries:
jira:
url: http://localhost:2990/jira
database:
url: sqlite:///mvtool.db
uvicorn:
log_level: error
log_filename: mvtool.log
The connection to JIRA is mandatory for using the MV-Tool. The MV-Tool does not have its own user management, but uses that of the JIRA instance to which it is connected.
To connect to JIRA, simply specify the URL to your JIRA instance in the configuration file. For example, to access a JIRA instance that you have installed locally on your computer, the configuration might look like this:
jira:
url: http://localhost:2990/jira
Users log in to the MV-Tool with their JIRA credentials. The MV-Tool uses these credentials to authenticate with the JSON API of the JIRA instance via HTTP Basic Auth. To make this work, JSON API access must have been enabled in your JIRA instance. The credentials are not stored by the MV-Tool on the server side. The MV-Tool does not manage server-side user sessions. The user session is only managed on the client side.
If you use JIRA as a cloud service, you can only use HTTP Basic Auth in a limited way. Authentication is in this case not possible with your normal JIRA password. Instead of your password you have to use an access token. You need to generate this token in your JIRA user profile.
MV-Tool uses jira-python to access JIRA. For more information on authentication, see the jira-python documentation.
Only SQLite and PostgreSQL are currently supported as databases. You should use PostgreSQL if you want to use MV-Tool in production. MV-Tool is significantly slower with SQLite than with PostgreSQL. SQLite is therefore not suitable in production.
MV-Tool uses SQLAlchemy as the ORM mapper. The database URLs (connect strings) must therefore be specified so that SQLAlchemy understands them:
A connection to a SQLite database file might look like the following in your configuration file:
database:
url: sqlite:///mvtool.db
The database file mvtool.db addressed in this example is created automatically if it does not exist. It is stored in the Docker container under /usr/src/api/mvtool.db.
Logging is important so that bugs can be noticed and fixed in future versions of the MV-Tool. Therefore, you should set up logging and save log files outside the Docker container as well. Regarding logging, there are the following configuration options:
critical, error, warning, info, debug, trace and the default value error.mvtool.log.The logging configuration may look like the following in your configuration file:
uvicorn:
log_level: error
log_filename: mvtool.log
The log file is stored in the Docker container at /usr/src/api/mvtool.log. Contents of the log file are not deleted. New log entries are appended to an existing file.
The use of SSL / HTTPS is higly recommended. A self-signed certificate can be used for testing. For productive use, a certificate signed by a trusted authority, such as Let's Encrypt, is recommended.
A self-signed certificate can be easily generated with the following command on Linux and macOS. A password for the private key (key.pem) must be specified in any case, otherwise the command will fail. -subj '/CN=localhost' has to be adjusted to the hostname you are using if it is not localhost.
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -subj '/CN=localhost'
When certificate (e.g. cert.pem) and key file (e.g. key.pem) are available, these files should be copied / mounted into the Docker container under /usr/src/api/. After that, SSL can be configured as follows:
uvicorn:
ssl_keyfile: key.pem
ssl_keyfile_password: password
ssl_certfile: cert.pem
Important: After restarting the Docker container, the MV tool can no longer be accessed via HTTP. HTTPS must be used instead.
Save your configuration in a file (e.g. config.yml) and then execute the following commands to create the container, copy your configuration into the container and finally start the container.
docker container create --name mv-tool -p 4200:8000 hutschen/mv-tool
docker container cp config.yml mv-tool:/usr/src/api/config.yml
docker container start mv-tool
Content type
Image
Digest
sha256:ae477045b…
Size
69 MB
Last updated
about 1 month ago
docker pull hutschen/mv-tool