
Plataforma de conformidade de segurança - SOC2, CMMC, ASVS, ISO27001, HIPAA, NIST CSF, NIST 800-53, CSC CIS 18, PCI DSS, rastreamento SSF
Gapps é uma plataforma de conformidade de segurança que facilita o acompanhamento do seu progresso em relação a vários frameworks de segurança.
❄️ Veja o site do Gapps
🏠 Interessado em entrar em contato? Junte-se ao nosso discord
| Painel de Controles |
|---|
![]() |
| Visão Geral do Projeto |
|---|
![]() |
| Acompanhe o Progresso dos Controles |
|---|
![]() |
Siga a documentação documentação
[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?
Geralmente pode ser corrigido desativando duas variáveis se estiver rodando dentro do docker. Se você quiser usar um banco de dados externo, veja o próximo FAQ
unset SQLALCHEMY_DATABASE_URI
unset POSTGRES_HOST
O valor db1 é o valor padrão para o nome de usuário, banco de dados e senha. Se você quiser alterá-lo, atualize db1 com os respectivos valores e postgres para o 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"
Ao iniciar o Gapps pela primeira vez, ele criará automaticamente os modelos do banco de dados. Se você quiser redefinir os dados (por exemplo, excluir todos os dados), pode definir a variável de ambiente RESET_DB, como export RESET_DB=yes.
Às vezes, você pode querer executar o Gapps fora do Docker. Você pode fazer isso iniciando o contêiner Postgres e, em seguida, iniciando o Gapps em primeiro 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
OU
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
Aviso - isso apagará todos os dados do banco de dados!
docker exec -it gapps bash
python3 tools/check_db_connection.py
python3 tools/check_db_models.py
python3 manage.py init_db
1.) Edite o arquivo docker-compose.yml com a versão desejada do Docker Hub. Onde quer que você veja a versão antiga no arquivo compose (deve ser 4 instâncias), atualize com a versão desejada. (ex.: bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) Realizar migração do banco de dados se necessário
Você sempre pode criar um novo Framework e controles na interface - mas isso levaria muito tempo. Em vez disso, você pode carregar um arquivo JSON no Gapps.
O formato consiste em controles e subcontroles. O trecho abaixo mostra um exemplo de um controle com um (1) subcontrole, mas você pode adicionar quantos desejar. Não é obrigatório ter subcontroles para um controle (você pode ter zero). No entanto, pode fazer sentido se você quiser dividir um controle em ações específicas que sejam rastreáveis. Vamos pegar o framework CIS 18 como exemplo. Você poderia colocar todos os 18 "domínios" como controles e os controles dentro de cada domínio seriam um subcontrole no 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"
}
]
}
]
}
]
Em seguida, salve o formato JSON acima em um arquivo (como my_framework.json mas deve terminar com .json). O nome do seu framework será retirado do nome do arquivo quando o Gapps carregá-lo (my_framework neste caso). Salve o arquivo no diretório app/files/base_controls/. Você também pode alterar o diretório de carregamento definindo a variável de ambiente FRAMEWORK_FOLDER. Depois que seu novo framework for salvo em um arquivo e estiver no diretório de frameworks, você pode criar um novo Tenant na interface. O Gapps carregará seu framework automaticamente. Se você quiser adicionar um framework a um Tenant existente, vá para a página "Tenants", edite o Tenant e clique no botão "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
Você pode gerar um token de API acessando a seguinte rota no seu navegador
# 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
E aqui está como usar o token para autenticar (curl como exemplo)
TOKEN="TOKEN HERE"
curl <gapps-host>/api/v1/tenants -H "token: $TOKEN"