
Plataforma de cumplimiento de seguridad - SOC2, CMMC, ASVS, ISO27001, HIPAA, NIST CSF, NIST 800-53, CSC CIS 18, PCI DSS, seguimiento SSF
Gapps es una plataforma de cumplimiento de seguridad que facilita el seguimiento de tu progreso en varios marcos de seguridad.
❄️ Visita el sitio de Gapps
🏠 ¿Interesado en contactarme? Únete a nuestro discord
| Panel de control |
|---|
![]() |
| Resumen del proyecto |
|---|
![]() |
| Seguimiento del progreso de los controles |
|---|
![]() |
Sigue la documentación documentación
[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?
Generalmente se puede solucionar desactivando dos variables si se ejecuta dentro de Docker. Si deseas usar una base de datos externa, consulta la siguiente FAQ
unset SQLALCHEMY_DATABASE_URI
unset POSTGRES_HOST
El valor db1 es el valor predeterminado para el nombre de usuario, base de datos y contraseña. Si deseas cambiarlo, actualiza db1 con los valores respectivos y postgres para el 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"
Al iniciar Gapps por primera vez, creará automáticamente los modelos de base de datos. Si deseas restablecer los datos (por ejemplo, eliminar todos los datos), puedes configurar la variable de entorno RESET_DB como export RESET_DB=yes.
A veces es posible que desees ejecutar Gapps fuera de Docker. Puedes hacerlo iniciando el contenedor de Postgres y luego iniciando Gapps en primer plano.
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
O
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
Advertencia: ¡esto eliminará todos los datos de la base de datos!
docker exec -it gapps bash
python3 tools/check_db_connection.py
python3 tools/check_db_models.py
python3 manage.py init_db
1.) Edita el archivo docker-compose.yml con la versión deseada desde Docker Hub. Dondequiera que veas la versión anterior en el archivo compose (deberían ser 4 instancias), actualízala con la versión deseada. (ej. bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) Realizar migración de base de datos si es necesario
Siempre puedes crear un nuevo marco y controles dentro de la interfaz de usuario, pero esto llevaría mucho tiempo. En su lugar, puedes cargar un archivo JSON en Gapps.
El formato consiste en controles y subcontroles. El siguiente fragmento muestra un ejemplo de un control que tiene un (1) subcontrol, pero puedes agregar tantos como desees. No es un requisito tener subcontroles para un control (puedes tener cero). Sin embargo, puede tener sentido si deseas desglosar un control en acciones específicas que sean rastreables. Tomemos el marco CIS 18 como ejemplo. Podrías colocar los 18 "dominios" como controles y los controles dentro de cada dominio serían un subcontrol dentro de 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"
}
]
}
]
}
]
A continuación, guarda el formato JSON anterior en un archivo (por ejemplo, my_framework.json pero debe terminar en .json). El nombre de tu marco se tomará del nombre del archivo cuando Gapps lo cargue (my_framework en este caso). Guarda el archivo en el directorio app/files/base_controls/. También puedes cambiar el directorio de carga configurando la variable de entorno FRAMEWORK_FOLDER. Una vez que tu nuevo marco esté guardado en un archivo y ubicado en el directorio de marcos, puedes crear un nuevo Tenant dentro de la interfaz de usuario. Gapps cargará tu marco automáticamente. Si deseas agregar un marco a un Tenant existente, ve a la página "Tenants", edita el Tenant y haz clic en el botón "Reload Frameworks".