Mixeway / MixewayBackend

Mixeway is security orchestrator for vulnerability scanners which enable easy plug in integration with CICD pipelines. MixewayBackend project contains source code of backend with all plugin integrations writer in Spring Boot.
https://mixeway.io
GNU General Public License v3.0
14 stars 8 forks source link
backend devsecops devsecops-pipeline rest-api spring-boot vulnerability-management vulnerability-scanning

https://img.shields.io/badge/-changelog-blue.svg https://img.shields.io/badge/-changelog-blue.svg Quality Gate Status Security Rating

Mixeway Backend

About Mixeway:

Mixeway is an OpenSource software that is meant to simplify the process of security assurance of projects which are implemented using CICD procedures. Mixawey is not another vulnerability scanning software - it is security orchestration tool.

With number of plugins for Vulnerability Scanners :

With all this available, Mixeway provides functionalities to:

Elements of a system:

Mixeway Backend Description:

Mixeway Backend is a spring boot application that serves REST API both for UserInterface and independent tools for scan creation and runs. Backend application also contains vulnerability scanner plugins definitions. Each plugin contains at least 3 operations: configure scan, run scan and load vulnerabilities. This allows mixeway to be completely in charge of the scanning process which allows it to completely automize the vulnerability assessment process.

With Hashicorp Vault integration passwords for each security scanner (which is the most sensitive component) is properly secured.

High level informations can be found here

More detailed and technical docs are here

Hashicorp Vault integration:

Mixeway has to be able to reuse given passwords and api keys in order to use them with Vulnerability Scanning interactions.

Vault integration is optional but it is strongly recommended to be included - otherwise password for vulnerability scanners will be stored in plaintext.

Mixeway User Interface Tech stack:
Requirements:
Good to have:
Running in development mode:
  1. Make sure DB is up and running (You can use guide how to use postgres docker here https://hub.docker.com/_/postgres)
  2. Optionally make sure Vault is up and running (You can use guide how to use Vault docker here https://hub.docker.com/_/vault)
  3. Generate certificates and convert them to PKCS12 (yes certificates are required even in dev)
    openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
    openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12

    CACERTS file is also needed, make sure You have known the location of it. It can be found using tips here

Finnaly run

java -jar --server.ssl.trust-store=/etc/pki/cacerts \
          --server.ssl.trust-store-password=changeit \
          --server.ssl.key-store=/etc/pki/localhost.p12 \
          --server.ssl.key-store-password=changeit \
          --server.ssl.keyAlias=localhost \
          --spring.profiles.active=dev \
          --spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/mixer \
          --spring.datasource.username=mixewayuser \
          --spring.datasource.password=mixewaypassword \
          --spring.cloud.vault.token=ffffffff-ffff-ffff-ffff-ffffffffffff \
          --spring.cloud.vault.scheme=http \
          --spring.cloud.vault.port=8200 \
          --spring.cloud.vault.host=MixerVault

REST API will be exposed on port :8443

Auth methods

Mixeway supports multiple authentication methods:

GitHub OAuth

In order to enable GitHub OAuth make sure to properly register mixeway application at GitHub and then set variable:

Facebook SSO

In order to enable Facebook OAuth make sure to properly register mixeway application at Facebook and then set variable:

Keycloak SSO

In order to enable Facebook OAuth make sure to properly register mixeway application at Facebook and then set variable: