Gitleaks

Gitleaks - это мощный инструмент с открытым исходным кодом, который поможет вам найти и устранить утечку конфиденциальной информации в ваших Git-репозиториях.

Название задания в Auditor: GitLab Gitleaks Образ в Auditor: registry.gitlab.com/whitespots-public/security-images/secret-detection-gitlab:5 Название импортера в Security Center: GitLab Gitleaks

Название задания в Auditor: Gitleaks Scan Образ в Auditor: registry.gitlab.com/whitespots-public/security-images/gitleaks:8.15.3 Название импортера в Security Center: Gitleaks Scan

Gitleaks использует регулярные выражения для поиска определенных шаблонов конфиденциальной информации. По умолчанию он поставляется со списком регулярных выражений, которые охватывают типичные секреты, но его можно настроить на поиск конкретных шаблонов.

Одной из уникальных особенностей Gitleaks является возможность сканирования не только самого репозитория, но и всей его истории коммитов, что делает его мощным инструментом для обнаружения утечек информации, которые могли быть совершены в прошлых коммитах.

Пример команды Curl

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./gl-secret-detection-report.json" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=GitLab Gitleaks" -F "branch=dev" -F "repository=git@gitlab.com:whitespots-public/appsec-portal.git"
curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./gitleaks.json" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=Gitleaks Scan" -F "branch=dev" -F "repository=git@gitlab.com:whitespots-public/appsec-portal.git"

В этой команде используются следующие параметры:

  1. -X POST: задает используемый метод HTTP (в данном случае POST).

  2. -H "Authorization: Token <authorization_token>": задает токен авторизации, полученный от Security Center.

  3. -H "Content-Type: multipart/form-data": задает тип содержимого запроса.

  4. -F "file=@<report_file_path>": задает путь к файлу отчета, создаваемого сканером.

  5. -F "product_name=<product_name>": задает название сканируемого продукта.

  6. -F "product_type=<product_type>": задает тип сканируемого продукта.

  7. -F "scanner_name=<scanner_name>": задает имя сканера, используемого для создания отчета (Bandit Scan или GitLab Bandit)

  8. -F "branch=<branch_name>": (необязательно) указывает имя ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определенной веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию

Информация об активах, если используется Auditor

  1. -F "repository=<repository SSH URL>": Если ваш продукт хранится в репозитории, введите адрес репозитория в определенном формате, например: git@gitlab.com:whitespots-public/appsec-portal.git

  2. -F "docker_image=<registry address>": Если ваш продукт является образом, введите адрес реестра, в котором находится ваш продукт, например: registry.gitlab.com/whitespots-public/appsec-portal/back/auto_validator:latest

  3. -F "domain=<domain>": Если ваш продукт является веб-продуктом, введите доменное имя вашего продукта, например: cybercodereview.ru

  4. -F "host=<host>": Если ваш продукт является веб-продуктом, введите IP-адрес вашего продукта, например: 0.0.0.0

Пример отчета:

Finding:     aws_secret="AKIAIMNOJVGFDXXXE4OA"
RuleID:      aws-access-token
Secret       AKIAIMNOJVGFDXXXE4OA
Entropy:     3.65
File:        checks_test.go
Line:        37
Commit:      ec2fc9d6cb0954fb3b57201cf6133c48d8ca0d29
Author:      Zachary Rice
Email:       z@email.com
Date:        2018-01-28T17:39:00Z
Fingerprint: ec2fc9d6cb0954fb3b57201cf6133c48d8ca0d29:checks_test.go:aws-access-token:37

Last updated