
Piattaforma di conformità alla sicurezza - SOC2, CMMC, ASVS, ISO27001, HIPAA, NIST CSF, NIST 800-53, CSC CIS 18, PCI DSS, SSF tracking
Gapps è una piattaforma di conformità alla sicurezza che semplifica il monitoraggio dei tuoi progressi rispetto a vari framework di sicurezza.
❄️ Visita il sito di Gapps
🏠 Sei interessato a contattarmi? Unisciti al nostro Discord
| Dashboard dei controlli |
|---|
![]() |
| Panoramica del progetto |
|---|
![]() |
| Monitoraggio dei progressi dei controlli |
|---|
![]() |
Segui la documentazione
[INFO] Checking if we can connect to the database server: postgresql://db1:db1@localhost/db1
[ERROR] could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Cannot assign requested address
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
Di solito può essere risolto rimuovendo due variabili se eseguito all'interno di Docker. Se si desidera utilizzare un database esterno, consultare il prossimo FAQ
unset SQLALCHEMY_DATABASE_URI
unset POSTGRES_HOST
Il valore db1 è il valore predefinito per il nome utente, il database e la password. Se si desidera modificarlo, aggiornare db1 con i rispettivi valori e postgres per l'host.
export POSTGRES_HOST=${POSTGRES_HOST:-postgres}
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-db1}
export POSTGRES_USER=${POSTGRES_USER:-db1}
export POSTGRES_DB=${POSTGRES_DB:-db1}
export SQLALCHEMY_DATABASE_URI="postgresql://db1:db1@postgres/db1"
Quando si avvia Gapps per la prima volta, vengono creati automaticamente i modelli del database. Se si desidera resettare i dati (ad es. cancellare tutti i dati), è possibile impostare la variabile d'ambiente RESET_DB come export RESET_DB=yes.
A volte potresti voler eseguire Gapps al di fuori di Docker. Puoi farlo avviando il container Postgres e quindi avviando Gapps in primo piano.
docker-compose up -d postgresexport POSTGRES_HOST=${POSTGRES_HOST:-localhost}
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-db1}
export POSTGRES_USER=${POSTGRES_USER:-db1}
export POSTGRES_DB=${POSTGRES_DB:-db1}
export SQLALCHEMY_DATABASE_URI="postgresql://db1:db1@localhost/db1"
export FLASK_CONFIG=development;bash run.shdocker compose updocker exec -e ONESHOT=yes gapps env
docker exec -e INIT_MIGRATE=yes -e MIGRATE=yes -e ONESHOT=yes gapps bash run.sh
OPPURE
docker-compose up -d
docker exec -it gapps bash
python3 manage.py db migrate
python3 manage.py db stamp head
python3 manage.py db upgrade
exit
Attenzione - questo cancellerà tutti i dati nel database!
docker exec -it gapps bash
python3 tools/check_db_connection.py
python3 tools/check_db_models.py
python3 manage.py init_db
1.) Modifica il file docker-compose.yml con la versione desiderata da Docker Hub. Ovunque vedi la vecchia versione nel file compose (dovrebbero essere 4 istanze), aggiornala con la versione desiderata. (es. bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) Esegui la migrazione del database se necessario
Puoi sempre creare un nuovo Framework e controlli tramite l'interfaccia utente, ma richiederebbe molto tempo. Invece, puoi caricare un file JSON in Gapps.
Il formato consiste in controlli e sottocontrolli. Lo snippet seguente mostra un esempio di controllo con un (1) sottocontrollo, ma puoi aggiungerne quanti ne desideri. Non è obbligatorio avere sottocontrolli per un controllo (puoi averne zero). Tuttavia, può avere senso se si desidera suddividere un controllo in azioni specifiche tracciabili. Prendiamo come esempio il framework CIS 18. Potresti inserire tutti i 18 "domini" come controlli e i controlli all'interno di ciascun dominio sarebbero un sottocontrollo in Gapps.
[
{
"name": "Limit information system access to authorized users, processes acting on behalf of authorized users or",
"description": "Maintain list of authorized users defining their identity and associated role and sync with sys",
"guidance": "List approved users, services, and devices, and have logical controls in place to prevent unauthor",
"ref_code": "AC.L1-3.1.1",
"system_level": false,
"subcategory": "Identity & Access Management (IAM)",
"category": "Access Control",
"dti": "easy",
"dtc": "easy",
"meta": {},
"subcontrols": [
{
"ref_code": "3.1.1.a",
"name": "Authorized users are identified.",
"description": "Authorized users are identified.",
"meta": {},
"tasks": [
{
"title": "title of the task",
"description": "description of the task"
}
]
}
]
}
]
Successivamente, salva il formato JSON sopra in un file (ad esempio my_framework.json ma deve terminare con .json). Il nome del tuo framework verrà preso dal nome del file quando Gapps lo carica (my_framework in questo caso). Salva il file nella directory app/files/base_controls/. Puoi anche cambiare la directory di caricamento impostando la variabile d'ambiente FRAMEWORK_FOLDER. Una volta che il tuo nuovo framework è stato salvato in un file e si trova nella directory dei framework, puoi creare un nuovo Tenant tramite l'interfaccia utente. Gapps caricherà automaticamente il tuo framework. Se desideri aggiungere un framework a un Tenant esistente, vai alla pagina "Tenants", modifica il Tenant e clicca sul pulsante "Reload Frameworks".
docker build -t gapps:3.4.3 .
docker tag gapps:3.4.3 bmarsh13/gapps:3.4.3
docker push bmarsh13/gapps:3.4.3
Puoi generare un token API visualizzando il seguente percorso nel tuo browser
# Create token that expires in 15 minutes
<gapps-host>/api/v1/token
# Create token that expires in 30 seconds
<gapps-host>/api/v1/token?expiration=30
# Create token that never expires
<gapps-host>/api/v1/token?expiration=0
Ecco come utilizzare il token per l'autenticazione (curl come esempio)
TOKEN="TOKEN HERE"
curl <gapps-host>/api/v1/tenants -H "token: $TOKEN"