# Gitleaks

**Auditor Job Name**: GitLab Gitleaks\
**Auditor image:** registry.gitlab.com/whitespots-public/security-images/secret-detection-gitlab:5\
**AppSec Portal Importer Name**: GitLab Gitleaks

**Auditor Job Name**: Gitleaks Scan\
**Auditor image:** registry.gitlab.com/whitespots-public/security-images/gitleaks:8.15.3\
**AppSec Portal Importer Name**: Gitleaks Scan

[Gitleaks](https://github.com/gitleaks/gitleaks) uses *regular expressions* to search for **specific patterns** of sensitive information. By default, it comes with a list of regular expressions that cover **common secrets**, but it can also be customized to match specific patterns.

One of the unique features of Gitleaks is its ability to scan not only the repository itself but also its **entire commit history**, making it a powerful tool for detecting information leaks that may have been committed in the past.

#### Curl example

{% code overflow="wrap" %}

```
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"
```

{% endcode %}

{% code overflow="wrap" %}

```
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"
```

{% endcode %}

In this command, the following parameters are used:

1. `-X POST`: specifies the HTTP method to be used (in this case, POST)
2. `-H "Authorization: Token <authorization_token>"`: specifies the [**authorization token**](https://docs.whitespots.io/appsec-portal/features/importing-reports-from-scanners-to-appsec-portal#authorization-token) obtained from AppSec Portal.
3. `-H "Content-Type: multipart/form-data"`: specifies the content type of the request.
4. `-F "file=@<report_file_path>"`: specifies the **path to the report file** generated by the scanner.
5. `-F "product_name=<product_name>"`: specifies the **name of the product** being scanned.
6. `-F "product_type=<product_type>"`: specifies the **type of the product** being scanned.
7. `-F "scanner_name=<scanner_name>"`: specifies the **name of the scanner** used to generate the report (GitLab Gitleaks or Gitleaks Scan)
8. `-F "branch=<branch_name>"`: (*optional*) specifies the name of the branch in the source code repository (if applicable) This parameter is particularly useful when you want to associate the scan results with a specific branch in your repository. If not provided, the scan will be associated with the default branch

Asset information, if an [auditor](https://docs.whitespots.io/auditor) is used

9. `-F "repository=<repository SSH URL>"`: If your product is **code** in a repository enter the address of your **repository** in a specific format, for example: <git@gitlab.com>:whitespots-public/appsec-portal.git
10. &#x20;`-F "docker_image=<registry address>"`: If your product is **image** enter the address of the **registry** where your product is located, for example: registry.gitlab.com/whitespots-public/appsec-portal/back/auto\_validator:latest
11. `-F "domain=<domain>"`: If your product is **web** enter the **domain name** of your product, for example: whitespots.io
12. `-F "host=<host>"`: If your product is **web** enter the **IP address** of your product, for example: 0.0.0.0

**Report example:**

```
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
```
