
Sicherheits-Compliance-Plattform - SOC2, CMMC, ASVS, ISO27001, HIPAA, NIST CSF, NIST 800-53, CSC CIS 18, PCI DSS, SSF Tracking
Gapps ist eine Sicherheits-Compliance-Plattform, die es einfach macht, Ihren Fortschritt bei verschiedenen Sicherheits-Frameworks zu verfolgen.
❄️ Besuchen Sie die Gapps-Website
🏠 Interessiert an Kontaktaufnahme? Bitte treten Sie unserem Discord bei.
| Kontroll-Dashboard |
|---|
![]() |
| Projektübersicht |
|---|
![]() |
| Fortschritt der Kontrollen verfolgen |
|---|
![]() |
Folgen Sie der Dokumentation documentation
[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?
Kann normalerweise behoben werden, indem zwei Variablen zurückgesetzt werden, wenn die Ausführung innerhalb von Docker erfolgt. Wenn Sie eine externe Datenbank verwenden möchten, siehe das nächste FAQ.
unset SQLALCHEMY_DATABASE_URI
unset POSTGRES_HOST
Der Wert db1 ist der Standardwert für Benutzername, Datenbank und Passwort. Wenn Sie ihn ändern möchten, ersetzen Sie db1 durch die entsprechenden Werte und postgres für den 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"
Beim ersten Start von Gapps werden automatisch die Datenbankmodelle erstellt. Wenn Sie die Daten zurücksetzen möchten (z.B. alle Daten löschen), können Sie die Umgebungsvariable RESET_DB setzen, z.B. export RESET_DB=yes.
Manchmal möchten Sie Gapps außerhalb von Docker ausführen. Dies können Sie tun, indem Sie den Postgres-Container starten und dann Gapps im Vordergrund starten.
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.sh aus.docker compose up aus.docker exec -e ONESHOT=yes gapps env
docker exec -e INIT_MIGRATE=yes -e MIGRATE=yes -e ONESHOT=yes gapps bash run.sh
OR
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
Warnung – dies löscht alle Daten in der Datenbank!
docker exec -it gapps bash
python3 tools/check_db_connection.py
python3 tools/check_db_models.py
python3 manage.py init_db
1.) Bearbeiten Sie die docker-compose.yml Datei mit der gewünschten Version von Docker Hub. Überall, wo Sie die alte Version in der Compose-Datei sehen (sollte 4 Vorkommen sein), aktualisieren Sie sie mit der gewünschten Version. (z.B. bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) Datenbankmigration durchführen falls erforderlich
Sie können jederzeit ein neues Framework und Steuerelemente innerhalb der UI erstellen – dies würde jedoch lange dauern. Stattdessen können Sie eine JSON-Datei in Gapps laden.
Das Format besteht aus Steuerelementen (Controls) und Untersteuerelementen (Subcontrols). Der untenstehende Ausschnitt zeigt ein Beispiel eines Steuerelements mit einem (1) Untersteuerelement, Sie können jedoch so viele hinzufügen, wie Sie möchten. Es ist nicht erforderlich, Untersteuerelemente für ein Steuerelement zu haben (Sie können null haben). Es kann jedoch sinnvoll sein, wenn Sie ein Steuerelement in spezifische, nachverfolgbare Aktionen unterteilen möchten. Nehmen wir das CIS 18-Framework als Beispiel. Sie könnten alle 18 "Domänen" als Steuerelemente platzieren und die Steuerelemente innerhalb jeder Domäne wären ein Untersteuerelement 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"
}
]
}
]
}
]
Speichern Sie das obige JSON-Format in einer Datei (z.B. my_framework.json; sie muss mit .json enden). Der Name Ihres Frameworks wird vom Dateinamen übernommen, wenn Gapps es lädt (in diesem Fall my_framework). Speichern Sie die Datei im Verzeichnis app/files/base_controls/. Sie können das Ladeverzeichnis auch ändern, indem Sie die Umgebungsvariable FRAMEWORK_FOLDER setzen. Sobald Ihr neues Framework in einer Datei gespeichert und im Framework-Verzeichnis abgelegt ist, können Sie einen neuen Mandanten (Tenant) in der UI erstellen. Gapps wird Ihr Framework automatisch laden. Wenn Sie ein Framework zu einem bestehenden Mandanten hinzufügen möchten, gehen Sie zur Seite "Tenants", bearbeiten Sie den Mandanten und klicken Sie auf die Schaltfläche "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
Sie können einen API-Token generieren, indem Sie die folgende Route in Ihrem Browser aufrufen.
# 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
Und hier ist, wie Sie den Token zur Authentifizierung verwenden (curl als Beispiel).
TOKEN="TOKEN HERE"
curl <gapps-host>/api/v1/tenants -H "token: $TOKEN"