Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename Stalker to Red Kite #302

Open
wants to merge 4 commits into
base: fixes/improvements
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This is a basic workflow to help you get started with Actions

name: Stalker
name: Red Kite

# Controls when the workflow will run
on:
Expand Down Expand Up @@ -50,13 +50,13 @@ jobs:
rm -rf /opt/hostedtoolcache/node

- name: Build test containers
run: devspace -p e2e --var="STALKER_ENVIRONMENT=tests" run-pipeline build -n stalker
run: devspace -p e2e --var="RK_ENVIRONMENT=tests" run-pipeline build -n stalker

- name: Deploy test containers
run: devspace -p e2e run-pipeline --var="STALKER_ENVIRONMENT=tests" jobs-manager-e2e-cicd-deploy -n stalker
run: devspace -p e2e run-pipeline --var="RK_ENVIRONMENT=tests" jobs-manager-e2e-cicd-deploy -n stalker

- name: Run tests
run: devspace -p e2e --var="STALKER_ENVIRONMENT=tests" run-pipeline jobs-manager-e2e-cicd-run -n stalker
run: devspace -p e2e --var="RK_ENVIRONMENT=tests" run-pipeline jobs-manager-e2e-cicd-run -n stalker

- name: Diagnosis
if: always()
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stalker-app-tests.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Stalker App
name: Red Kite App

on:
pull_request:
Expand Down
14 changes: 7 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Contributing to Stalker
# Contributing to Red Kite

To contribute to Stalker or to simply launch the application locally, follow this guide.
To contribute to Red Kite or to simply launch the application locally, follow this guide.

## Prerequisites

1. Install Docker
2. Install minikube
3. Install devspace

## Run Stalker
## Run Red Kite

### 1. Start your local K8s cluster

Expand Down Expand Up @@ -52,7 +52,7 @@ The output should look something like this.

### 2. Create personal configuration

By default, Stalker uses the variables from _[devspace.base.yaml](./devspace.base.yaml)_. To ensure a smooth experience, you must first create a copy of _[devspace.dev.yaml.template](./devspace.dev.yaml.template)_ and rename it as _devspace.dev.yaml_. This file will hold your personal configurations. Any variables defined in this file will override the ones found in _devspace.base.yaml_.
By default, Red Kite uses the variables from _[devspace.base.yaml](./devspace.base.yaml)_. To ensure a smooth experience, you must first create a copy of _[devspace.dev.yaml.template](./devspace.dev.yaml.template)_ and rename it as _devspace.dev.yaml_. This file will hold your personal configurations. Any variables defined in this file will override the ones found in _devspace.base.yaml_.

For instance, overwriting the `JM_ENVIRONMENT` variable with the value `dev` instead of the default `prod` will create a default account with the following credentials at startup.

Expand Down Expand Up @@ -88,15 +88,15 @@ From the repository root, run
devspace dev -n stalker
```

## Using Stalker
## Using Red Kite

### Logging in

Once all the containers have started, you're all set to access the application by visiting [http://localhost:4200](http://localhost:4200).

If you launched Stalker with the default configuration, Stalker will prompt you to create your first admin user.
If you launched Red Kite with the default configuration, Red Kite will prompt you to create your first admin user.

If you have launched Stalker with the `JM_ENVIRONMENT` variable set to `dev`, then you can use the following credentials:
If you have launched Red Kite with the `JM_ENVIRONMENT` variable set to `dev`, then you can use the following credentials:

```text
Username: admin@stalker.is
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Stalker
# Red Kite

> Interested in Stalker for your business? [We offer enterprise deployments!](https://red-kite.io/product.html)
> Interested in Red Kite for your business? [We offer enterprise deployments!](https://red-kite.io/product.html)

Stalker is an Attack Surface Management (ASM) tool with a big focus on extensibility. It streamlines and automates reconnaissance operations while giving you the flexibility to expand its functionalities. Its web interface enables easy data access and sharing with all stakeholders.
Red Kite is an Attack Surface Management (ASM) tool with a big focus on extensibility. It streamlines and automates reconnaissance operations while giving you the flexibility to expand its functionalities. Its web interface enables easy data access and sharing with all stakeholders.

Stalker is powered by Kubernetes, enabling virtually infinite horizontal scaling. Combined with its flexibility, it makes it the ideal tool for hands-on security professionals committed to staying in full control while getting a clear picture of their attack surface.
Red Kite is powered by Kubernetes, enabling virtually infinite horizontal scaling. Combined with its flexibility, it makes it the ideal tool for hands-on security professionals committed to staying in full control while getting a clear picture of their attack surface.

Stalker's API can be used by third-party tools for automated consumption.
Red Kite's API can be used by third-party tools for automated consumption.

> Aditionnal information is available in the [documentation](https://wiki.stalker.red-kite.io/)
8 changes: 4 additions & 4 deletions devspace.base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: stalker-vars-base

vars:
# General
STALKER_VERSION: "Stalker 0.0.2 alpha"
RK_VERSION: "Stalker 0.0.2 alpha"
Aboisier marked this conversation as resolved.
Show resolved Hide resolved
UPDATE_IMAGE_TAGS: true

# openssl genrsa -out private.pem 2048; cat private.pem | base64 -w 0
Expand All @@ -16,8 +16,8 @@ vars:
CERTIFICATES: "certificates.yml"
RESOURCE_QUOTA: "resource-quota.yml"
DOCKERFILE_NAME: Dockerfile.dev # For development
STALKER_PORT: 4200
STALKER_URL: "http://localhost:${STALKER_PORT}"
RK_PORT: 4200
RK_URL: "http://localhost:${RK_PORT}"

# Mongo
MONGO_K8S_NODE_SELECTOR: "{}"
Expand Down Expand Up @@ -58,7 +58,7 @@ vars:
CRON_K8S_NODE_SELECTOR: "{}"
CRON_MONGO_KEY_PASSWORD: qtawxARQ0TCQQPbUxDjSZcmuk
CRON_MONGO_ADDRESS: mongodb://${MONGO_CRON_USER}:${MONGO_CRON_PASSWORD}@mongo-mongodb-headless:27017/
STALKER_CRON_API_TOKEN: "123456" # Jobs Manager's cron subscriptions notification API token for the cron service
RK_CRON_API_TOKEN: "123456" # Jobs Manager's cron subscriptions notification API token for the cron service

# UI
FRONTEND_VERSION: latest
Expand Down
2 changes: 1 addition & 1 deletion devspace.dev.yaml.template
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: v2beta1
name: stalker-vars-dev

vars:
STALKER_APP_BASE_URL: https://your-base-url
RK_APP_BASE_URL: https://your-base-url

### Mailing-related configs
# A comma-separated list of email addresses. Acts as an exclusive allow-list in dev, and as a block-list in production
Expand Down
38 changes: 19 additions & 19 deletions devspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ version: v2beta1
name: stalker

vars:
STALKER_ENVIRONMENT: dev
RK_ENVIRONMENT: dev

imports:
- path: devspace.dev.yaml
enabled: $(is_equal ${STALKER_ENVIRONMENT} "dev")
enabled: $(is_equal ${RK_ENVIRONMENT} "dev")
- path: devspace.tests.yaml
enabled: $(is_equal ${STALKER_ENVIRONMENT} "tests")
enabled: $(is_equal ${RK_ENVIRONMENT} "tests")
- path: devspace.prod.yaml
enabled: $(is_equal ${STALKER_ENVIRONMENT} "prod-community")
enabled: $(is_equal ${RK_ENVIRONMENT} "prod-community")
- path: devspace.base.yaml

pipelines:
Expand Down Expand Up @@ -223,22 +223,22 @@ deployments:
value: ${JM_REFRESH_SECRET}
- name: KAFKA_URI
value: ${KAFKA_URI}
- name: STALKER_URL
value: ${STALKER_URL}
- name: RK_URL
value: ${RK_URL}
- name: MONGO_REPLICA_SET_NAME
value: ${MONGO_REPLICA_SET_NAME}
- name: JM_ENVIRONMENT
value: ${JM_ENVIRONMENT}
- name: STALKER_CRON_API_TOKEN
value: ${STALKER_CRON_API_TOKEN}
- name: RK_CRON_API_TOKEN
value: ${RK_CRON_API_TOKEN}
- name: SECRET_PUBLIC_RSA_KEY
value: ${SECRET_PUBLIC_RSA_KEY}
- name: JM_MONGO_KEY_PASSWORD
value: ${JM_MONGO_KEY_PASSWORD}
- name: JM_KAFKA_KEY_PASSWORD
value: ${JM_KAFKA_KEY_PASSWORD}
- name: STALKER_VERSION
value: ${STALKER_VERSION}
- name: RK_VERSION
value: ${RK_VERSION}
- name: EMAIL_SENDER
value: ${JM_EMAIL_SENDER}
- name: MAILJET_API_KEY
Expand All @@ -247,8 +247,8 @@ deployments:
value: ${JM_MAILJET_API_SECRET}
- name: EMAIL_RECIPIENTS_FILTER_LIST
value: ${JM_EMAIL_RECIPIENTS_FILTER_LIST}
- name: STALKER_APP_BASE_URL
value: ${STALKER_APP_BASE_URL}
- name: RK_APP_BASE_URL
value: ${RK_APP_BASE_URL}

volumeMounts:
- containerPath: /certs
Expand Down Expand Up @@ -290,8 +290,8 @@ deployments:
value: ${JM_ENVIRONMENT} # Follows the same environment as JM since they work together
- name: JM_URL
value: ${JM_URL}
- name: STALKER_CRON_API_TOKEN
value: ${STALKER_CRON_API_TOKEN}
- name: RK_CRON_API_TOKEN
value: ${RK_CRON_API_TOKEN}
- name: CRON_MONGO_KEY_PASSWORD
value: ${CRON_MONGO_KEY_PASSWORD}

Expand Down Expand Up @@ -815,7 +815,7 @@ profiles:
- name: e2e
activation:
- vars:
STALKER_ENVIRONMENT: tests
RK_ENVIRONMENT: tests

patches:
- op: replace
Expand All @@ -829,7 +829,7 @@ profiles:
- name: prod
activation:
- vars:
STALKER_ENVIRONMENT: "^prod-?.*$"
RK_ENVIRONMENT: "^prod-?.*$"

patches:
# Orchestrator modifications
Expand Down Expand Up @@ -864,8 +864,8 @@ profiles:
- op: replace
path: dev.ui.ports
value:
- port: "${STALKER_PORT}:443"
bindAddress: ${STALKER_BIND_ADDRESS}
- port: "${RK_PORT}:443"
bindAddress: ${RK_BIND_ADDRESS}

- op: replace
path: dev.ui.resources
Expand Down Expand Up @@ -930,5 +930,5 @@ profiles:

ports:
- containerPort: 443
port: ${STALKER_PORT}
port: ${RK_PORT}
protocol: TCP
2 changes: 1 addition & 1 deletion docs/docs/advanced/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"position": 3,
"link": {
"type": "generated-index",
"description": "Learn about Stalker's internal workings."
"description": "Learn about Red Kite's internal workings."
}
}
12 changes: 6 additions & 6 deletions docs/docs/advanced/architecture.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
sidebar_position: 1
title: Network Architecture
description: An overview of Stalker's network architecture
description: An overview of Red Kite's network architecture
---

# Network Architecture

The Stalker application is deployed in a Kubernetes cluster on a one instance per cluster basis.
The Red Kite application is deployed in a Kubernetes cluster on a one instance per cluster basis.
[Kubernetes network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/) are used to segment the different
pods. The Stalker jobs, which are [Kubernetes Jobs](https://kubernetes.io/docs/concepts/workloads/controllers/job/), are run in their own
pods. The Red Kite jobs, which are [Kubernetes Jobs](https://kubernetes.io/docs/concepts/workloads/controllers/job/), are run in their own
namespace called `stalker-jobs` to isolate them.

> A **default deny all** network policy is in place for the `stalker`, `stalker-jobs` and `default` namespaces. Any pod in these namespaces
Expand All @@ -18,7 +18,7 @@ namespace called `stalker-jobs` to isolate them.

Microsegmentation is implemented throughout the cluster in the production environment following this graph:

![Production Stalker Network Architecture](/img/prod_network_architecture.png)
![Production Red Kite Network Architecture](/img/prod_network_architecture.png)

The following table goes over the main aspects of the graph :

Expand All @@ -32,13 +32,13 @@ The following table goes over the main aspects of the graph :
| Orchestrator | 80 | 53 (DNS), 443 (K8s API), 9092 (Kafka) |
| Jobs | Deny All | 80 (Orchestrator), 0.0.0.0/0 except 169.254.169.254, 172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8 |

> You can access your local production Stalker instance through https://127.0.0.1:8443/
> You can access your local production Red Kite instance through https://127.0.0.1:8443/

## Development

Microsegmentation is implemented throughout the cluster in the dev environment following this graph:

![Development Stalker Network Architecture](/img/stalker_dev_arch.drawio.png)
![Development v Network Architecture](/img/red_kite_dev_arch.drawio.png)

The following table goes over the main aspects of the graph :

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/advanced/releasing.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
sidebar_position: 2
title: Releasing
description: Description of Stalker's release process
description: Description of Red Kite's release process
---

# Releasing

In this guide, you will be provided with clear instructions on how to release a new version of Stalker.
In this guide, you will be provided with clear instructions on how to release a new version of Red Kite.

Micro-services and frontend have their own release cycle and version number. The software versions follow to the principles of semantic
versioning, as outlined in https://semver.org. To indicate alpha or beta versions, the suffixes "-alpha.0", "alpha.1", "beta.0", etc. are
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/concepts/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"position": 2,
"link": {
"type": "generated-index",
"description": "Learn the most important Stalker concepts."
"description": "Learn the most important Red Kite concepts."
}
}
10 changes: 5 additions & 5 deletions docs/docs/concepts/findings.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: What are findings and how to use them

# Findings

Findings are pieces of information attached to a project and a core entity like a domain, a host or a port. They are reported by the jobs to the Orchestrator using Stalker's software development kit (SDK).
Findings are pieces of information attached to a project and a core entity like a domain, a host or a port. They are reported by the jobs to the Orchestrator using Red Kite's software development kit (SDK).

Findings come in different shapes and forms. Some findings will create new core entities, others may simply add data to existing ones.

Expand Down Expand Up @@ -128,7 +128,7 @@ Which is equivalent to the following python code, but with more metadata:
## HostnameIpFinding

The `HostnameIpFinding` is usually the result of resolving a hostname to an ip address. The hostname, `domainName`, must resolve to the IP
address, and it has to be already known to Stalker as a valid domain. The hostname ip finding will create or update a host and attaches it
address, and it has to be already known to Red Kite as a valid domain. The hostname ip finding will create or update a host and attaches it
to the given existing domain.

| Field | Description |
Expand Down Expand Up @@ -163,7 +163,7 @@ log_finding(
## PortFinding

The `PortFinding` is usually the result of a port scanning job. It signals that an open port, either `tcp` or `udp`, has been found on the
host specified through the `ip` value. The `ip` must already be known to Stalker as a valid host. A port finding creates or updates a port
host specified through the `ip` value. The `ip` must already be known to Red Kite as a valid host. A port finding creates or updates a port
and attaches it to the given host.

| Field | Description |
Expand Down Expand Up @@ -207,9 +207,9 @@ log_finding(

The `WebsiteFinding` will create a website resource. Websites are made from 4 characteristics: an IP address, a domain name, a port number and a path. Only the IP address and the port are mandatory. The domain can be empty and the path will default to `/`.

To create a website, it must reference an existing port of a project. To reference a domain as well, it must also be a domain already known to Stalker.
To create a website, it must reference an existing port of a project. To reference a domain as well, it must also be a domain already known to Red Kite.

It signals that an open port running an http(s) service, either `tcp` or `udp`, has been found on the host specified through the `ip` value. The `ip` must already be known to Stalker as a valid host. A port finding creates or updates a port
It signals that an open port running an http(s) service, either `tcp` or `udp`, has been found on the host specified through the `ip` value. The `ip` must already be known to Red Kite as a valid host. A port finding creates or updates a port
and attaches it to the given host.

> Emitting a `PortServiceFinding` with a `serviceName` of `http` and `https` will result in creating a `WebsiteFinding` per domain linked to the host, and one with an empty domain. [Learn more about PortServiceFinding and websites](#portservicefinding-and-websites)
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/concepts/jobs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: What are jobs and how to use them

# Jobs

A job is the way for Stalker to find new information. It is started by Stalker and runs in a contained environment. Different jobs will
A job is the way for Red Kite to find new information. It is started by Red Kite and runs in a contained environment. Different jobs will
generate different findings. It is possible to reference a Finding's output variable as a job parameter. A job parameter is one of a job's
input variables.

Expand All @@ -16,7 +16,7 @@ A job can generate multiple findings of one or many finding types.

## Built-in jobs

The built-in jobs come with a fresh Stalker installation. They can be fully modified and also reverted to their original value. They go
The built-in jobs come with a fresh Red Kite installation. They can be fully modified and also reverted to their original value. They go
hand-in-hand with the built-in subscriptions. Keep in mind that altering a built-in job's name may break a built-in subscription. That
subscription would need to be adapted to the new name.

Expand Down
Loading
Loading