
Платформа обеспечения соответствия требованиям безопасности - SOC2, CMMC, ASVS, ISO27001, HIPAA, NIST CSF, NIST 800-53, CSC CIS 18, PCI DSS, SSF отслеживание
Gapps — это платформа для обеспечения соответствия требованиям безопасности, которая позволяет легко отслеживать ваш прогресс по различным фреймворкам безопасности.
❄️ Посетите сайт Gapps
🏠 Хотите связаться со мной? Присоединяйтесь к нашему discord
| Панель управления контролем |
|---|
![]() |
| Обзор проекта |
|---|
![]() |
| Отслеживание прогресса по контролам |
|---|
![]() |
Следуйте документации
[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?
Обычно это можно исправить, сбросив две переменные, если вы запускаете Gapps внутри Docker. Если вы хотите использовать внешнюю базу данных, см. следующий FAQ
unset SQLALCHEMY_DATABASE_URI
unset POSTGRES_HOST
Значение db1 является значением по умолчанию для имени пользователя, базы данных и пароля. Если вы хотите изменить его, замените db1 на соответствующие значения, а postgres — на хост.
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"
При первом запуске Gapps автоматически создает модели базы данных. Если вы хотите сбросить данные (например, удалить все данные), установите переменную окружения RESET_DB, например export RESET_DB=yes.
Иногда может потребоваться запустить Gapps вне Docker. Это можно сделать, запустив контейнер Postgres, а затем запустив Gapps в интерактивном режиме.
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
ИЛИ
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
Внимание — это приведет к удалению всех данных в базе данных!
docker exec -it gapps bash
python3 tools/check_db_connection.py
python3 tools/check_db_models.py
python3 manage.py init_db
1.) Отредактируйте файл docker-compose.yml, указав нужную версию из Docker Hub. Везде, где в файле compose увидите старую версию (должно быть 4 экземпляра), замените её на нужную версию. (например, bmarsh13/gapps:3.3.9 -> bmarsh13/gapps:3.4.0)
2.) docker-compose up -d
3.) Выполните миграцию базы данных при необходимости
Вы всегда можете создать новый фреймворк и элементы управления в интерфейсе, но это займет много времени. Вместо этого вы можете загрузить JSON-файл в Gapps.
Формат состоит из контролов и подконтролов. Фрагмент ниже показывает пример контрола с одним (1) подконтролом, но вы можете добавить столько, сколько хотите. Наличие подконтролов не обязательно (может быть ноль). Однако это может иметь смысл, если вы хотите разбить контрол на отслеживаемые действия. Возьмем, к примеру, фреймворк CIS 18. Вы можете поместить все 18 «доменов» как контролы, а контролы внутри каждого домена будут подконтролами в 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"
}
]
}
]
}
]
Затем сохраните приведенный выше формат JSON в файл (например, my_framework.json, но он должен заканчиваться на .json). Имя вашего фреймворка будет взято из имени файла при загрузке в Gapps (в данном случае my_framework). Сохраните файл в каталоге app/files/base_controls/. Вы также можете изменить каталог загрузки, задав переменную окружения FRAMEWORK_FOLDER. После того как новый фреймворк сохранен в файл и находится в каталоге фреймворков, вы можете создать нового Tenant в интерфейсе. Gapps автоматически загрузит ваш фреймворк. Если вы хотите добавить фреймворк в существующего Tenant, перейдите на страницу "Tenants", отредактируйте Tenant и нажмите кнопку "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
Вы можете сгенерировать API-токен, открыв следующий маршрут в вашем браузере
# 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
А вот как использовать токен для аутентификации (пример с curl)
TOKEN="TOKEN HERE"
curl <gapps-host>/api/v1/tenants -H "token: $TOKEN"