Leaktopus – Keep Your Source Code Under Control
Discription

[![](https://blogger.googleusercontent.com/img/a/AVvXsEjwepVjOYic17vJd7-z6Dxa-PuoPvndyFPkIPiWIrYS5bwapyZQMrmQdBaGNywphCTrmgaLp06COgw8Tcl6XtWYgaY0lOFTqUMTKmHGwig5BTb_3JAyBFcoCg03EcGya4MRuFU0HoQNz_HiE4JaAKz4W8Q8z0mSprDBoN5gOvUjfhdDr1imfC1pQktrwg=w320-h320)]()

Keep your source code under control.

### **Key Features**

* **Plug&Play** – one line installation with Docker.

* **Scan various sources** containing a set of keywords, e.g. `ORGANIZATION-NAME.com`.

Currently supports:

* GitHub
* Repositories
* Gists _(coming soon)_
* Paste sites (e.g., PasteBin) _(coming soon)_
* **Filter results** with a built-in heuristic engine.

* **Enhance results with IOLs** (Indicators Of Leak):

* Secrets in the found sources (including Git repos commits history):
* With [Shhgit]( “Shhgit” ) (using a customized rules list).
* With [TruffleHog]( “TruffleHog” ).
* URIs (Including indication of your organization’s domains)
* Emails (Including indication of your organization’s email addresses)
* Contributors
* Sensitive keywords (e.g., canary token, internal domains)
* Allows to **ignore** public sources, (e.g., “junk” [repositories]( “repositories” ) by web crawlers).

* **OOTB ignore list** of common “junk” sources.

* **Acknowledge a leak**, and only get notified if the source has been modified since the previous scan.

* **Built-in ELK** to search for data in leaks (including full index of Git repositories with IOLs).

* **Notify on new leaks**

* MS Teams Webhook.
* Slack Bot.
* Cortex XSOAR® (by Palo Alto Networks) Integration _(WIP)_.

## Technology Stack

* Fully Dockerized.
* API-first Python Flask backend.
* Decoupled Vue.js (3.x) frontend.
* SQLite DB.
* Async tasks with Celery + Redis queues.

## Prerequisites

* Docker-Compose

## Installation

* Clone the repository
* Create a local .env file

cd Leaktopus
cp .env.example .env

* Edit .env according to your local setup (see the internal comments).
* Run Leaktopus

docker-compose up -d

* Initiate the installation sequence by accessing the installation API. Just open https://{LEAKTOPUS_HOST}:8000/api/install in your browser.
* Check that the API is up and running at https://{LEAKTOPUS_HOST}:8000/up
* The UI should be available at https://{LEAKTOPUS_HOST}:8080

### Using Github App

In addition to the basic personal [access token]( “access token” ) option, Leaktopus supports Github App authentication. Using Github App is recommended due to the increased rate limits.

1. To use Github App authentication, you need to create a Github App and install it on your organization/account. See [Github’s documentation]( “Github’s documentation” ) for more details.

2. After creating the app, you need to set the following environment variables:

* `GITHUB_USE_APP=True`
* `GITHUB_APP_ID`
* `GITHUB_INSTALLATION_ID` – The installation id can be found in [your app installation]( “your app installation” ).
* `GITHUB_APP_PRIVATE_KEY_PATH` (defaults to `/app/private-key.pem`)
3. Mount the private key file to the [container]( “container” ) (see `docker-compose.yml` for an example). `./leaktopus_backend/private-key.pem:/app/private-key.pem`

_* Note that `GITHUB_ACCESS_TOKEN` will be ignored if `GITHUB_USE_APP` is set to `True`._

## Updating Leaktopus

If you wish to update your Leaktopus version (pulling a newer version), just follow the next steps.

* Pull the latest version.

git pull

* Rebuild Docker images (data won’t be deleted).

# Force image recreation
docker-compose up –force-recreate –build

* Run the DB update by calling its API (should be required after some updates). https://{LEAKTOPUS_HOST}/api/updatedb

## Results Filtering Heuristic Engine

The built-in heuristic engine is filtering the search results to reduce false positives by:

* Content:
* More than X emails containing non-organizational domains.
* More than X URIs containing non-organizational domains.
* Metadata:
* More than X stars.
* More than X forks.
* Sources ignore list.

## API Documentation

OpenAPI documentation is available in https://{LEAKTOPUS_HOST}:8000/apidocs.

## Leaktopus Services

Service | Port | Mandatory/Optional
—|—|—
Backend (API) | 8000 | Mandatory
Backend (Worker) | N/A | Mandatory
Redis | 6379 | Mandatory
Frontend | 8080 | Optional
Elasticsearch | 9200 | Optional
Logstash | 5000 | Optional
Kibana | 5601 | Optional

_The above can be customized by using a custom docker-compose.yml file._

## Security Notes

As for now, Leaktopus does not provide any [authentication]( “authentication” ) mechanism. Make sure that you are not [exposing]( “exposing” ) it to the world, and doing your best to **restrict access to your Leaktopus instance(s)**.

## Contributing

Contributions are very welcomed.

Please follow our [contribution guidelines and documentation]( “contribution guidelines and documentation” ).

**[Download Leaktopus]( “Download Leaktopus” )**Read More

Back to Main

Subscribe for the latest news: