Signals | Fluid Attacks Help

Introduction

Signals is a comprehensive security assessment tool designed to replace the Internal Surface, making vulnerability reporting and progress tracking more efficient and user-friendly. It provides a modern PyQt5-based GUI for managing security testing workflows, tracking vulnerabilities, and automating reporting tasks.

Requirements

Make sure you have Nix installed.

API token

Make sure you have an API token from the platform and that you set its value in an environment variable named INTEGRATES_API_TOKEN.

SSH key configuration

Before running Signals, you need to configure SSH access to the GitLab repository.

Get the SSH key: Copy the SSH key contents from this Google Drive document.

Create an SSH key file

Option 1: If you don't have any SSH keys yet in ~/.ssh/

1. Create the file ~/.ssh/id_ed25519 and paste the key into it using any editor.
2. Set correct permissions:

chmod 600 ~/.ssh/id_ed25519

Option 2: If you have SSH keys
If you already have SSH keys in ~/.ssh/, create a separate key file for Universe:

1. Create the file ~/.ssh/universe_external and paste the key into it using any editor
2. Set correct permissions:

chmod 600 ~/.ssh/universe_external

Installation and usage

Method 1

Using default SSH key (id_ed25519):

1. Check if the SSH key is correct:

$ ssh -T git@gitlab.com

Welcome to GitLab, @dsalazaratfluid!


2. Execute and install Signals:

nix run "git+ssh://git@gitlab.com/fluidattacks/universe?dir=signals"

3. (Optional) Create an alias for easier execution:

alias signals='nix run "git+ssh://git@gitlab.com/fluidattacks/universe?dir=signals"'

signals


4. (Optional) Install using nix profile:

nix profile install "git+ssh://git@gitlab.com/fluidattacks/universe?dir=signals"

signals


Using custom SSH configuration (universe_external):

1. Create or edit ~/.ssh/config and add:

Host gitlab-universe
HostName gitlab.com
User git
IdentityFile ~/.ssh/universe_external
IdentitiesOnly yes

2. Set correct permissions:

chmod 600 ~/.ssh/config

3. Configure Git to automatically replace the official URL of the universe repository with the alias gitlab-universe. This ensures that Nix uses the correct SSH key (universe_external) defined in your ~/.ssh/config file.

git config --global url."git@gitlab-universe:fluidattacks/universe".insteadOf "git@gitlab.com:fluidattacks/universe"

4. Check if the SSH key is correct:

$ ssh -T git@gitlab-universe
Welcome to GitLab, @dsalazaratfluid!

5. Execute and install Signals:

nix run "git+ssh://git@gitlab-universe/fluidattacks/universe?dir=signals"

6. (Optional) Create an alias for easier execution:

alias signals='nix run "git+ssh://git@gitlab-universe/fluidattacks/universe?dir=signals"'
signals

7. (Optional) Install using nix profile:

nix profile install "git+ssh://git@gitlab-universe/fluidattacks/universe?dir=signals"
signals

Method 2

Using custom SSH configuration (universe_external):

1. After setting the key, test the SSH connection:

$ ssh -i ~/.ssh/universe_external -o IdentitiesOnly=yes -T git@gitlab.com
Welcome to GitLab, @dsalazaratfluid!

2. Execute Signals:

GIT_SSH_COMMAND="ssh -i ~/.ssh/universe_external -o IdentitiesOnly=yes" nix run "git+ssh://git@gitlab.com/fluidattacks/universe?dir=signals"

3. (Optional) Create an alias for easier execution:

alias signals='GIT_SSH_COMMAND="ssh -i ~/.ssh/universe_external -o IdentitiesOnly=yes" nix run "git+ssh://git@gitlab.com/fluidattacks/universe?dir=signals"'

signals


4. (Optional) Install using nix profile:

GIT_SSH_COMMAND="ssh -i ~/.ssh/universe_external -o IdentitiesOnly=yes" nix profile install "git+ssh://git@gitlab.com/fluidattacks/universe?dir=signals"

signals


Notes
Note: Using nix profile install will install a specific version. To get updates, you'll need to run nix profile upgrade or reinstall. Using nix run always fetches the latest version.

Use Signals

After configuration and installation, you can see how signals work here.

Contributing

Please read the contributing page first.

Development environment

Configure your development environment.

When prompted for an AWS role, choose dev, and when prompted for a development environment, pick signals.
Idea
Tip: Have an idea to simplify our architecture or noticed docs that could use some love? Don't hesitate to open an issue or submit improvements.