🐳 Масштабирование автоматизации безопасности с помощью Docker |

🐳 Масштабирование автоматизации безопасности с помощью Docker

Статьи

Что такое Docker?

Docker – это платформа с открытым исходным кодом, позволяющая разрабатывать, развертывать и управлять несколькими приложениями в рамках одной операционной системы.

Вместо того чтобы иметь множество отдельных серверов, настроенных и предназначенных для работы с конкретными приложениями, можно запускать все приложения с одного сервера, причем каждое приложение будет находиться в собственном контейнере.

Более подробную информацию о том, что такое Docker и как он работает, можно найти тут

🐳 Сканирование образов контейнеров на наличие уязвимостей с помощью Docker Scout

Как в настоящее время хакеры масштабируют автоматизацию

Сейчас многие хакеры размещают скрипты и приложения на виртуальных частных серверах (VPS).

Как вы можете себе представить, запуск нескольких скриптов на нескольких VPS быстро приводит к тому, что процесс автоматизации становится очень сложным.

Например, у вас может быть три небольших сервера, на которых выполняется перечисление поддоменов, три – сканирование портов, три – ядра и один – центральная база данных.

Таким образом, всего остается 10 серверов.

Единственный способ увеличения масштаба – это добавление новых серверов.

Каждый сервер увеличивает операционные накладные расходы.

Масштабирование автоматизации Docker

Автоматизация для этичного хакинга – отличный вариант использования микросервисов.

Масштабирование автоматизации с помощью Docker – это приближение к масштабированию автоматизации с помощью микросервисной архитектуры.

Микросервисная архитектура – это построение системы из небольших сервисов, которые работают независимо друг от друга для достижения общей цели.

Каждый этап рабочего процесса может быть изолированным микросервисом со своим собственным образом и контейнером Docker.

На одном VPS может быть развернуто несколько контейнеров Docker, что позволяет легко масштабировать систему путем развертывания большего количества контейнеров.

Рассмотрим пример построения микросервисной архитектуры с использованием Docker.

Например мы имеем базу данных для хранения данных, очередь Redis для распределения задач и VPS для размещения наших контейнеров Docker.

Задания Cron отправляют задачи в очередь до тех пор, пока не появится контейнер для их выполнения.

У нас есть 3 контейнера: один для пассивного перечисления поддоменов, один для резолва доменов и один для обнаружения HTTP-серверов.

Количество контейнеров может быть увеличено или уменьшено в зависимости от потребностей очереди Redis.

После выполнения задач результаты сохраняются в базе данных.

Для увеличения масштаба достаточно добавить дополнительные контейнеры.

Упрощение работы с Docker Compose

Docker Compose – это инструмент для запуска мультиконтейнерных приложений.

Он использует YAML-файлы для определения конфигурации контейнеров. После создания файла достаточно выполнить команду “docker-compose up”.

Для увеличения масштаба достаточно увеличить количество контейнеров в YAML-файле, а все остальное сделает Docker Compose.

Вот как выглядит файл Docker Compose.

Как масштабировать автоматизацию

Чтобы показать, как можно масштабировать автоматизацию, давайте создадим среду с одним контейнером и установим в него некоторые инструменты.

Мы будем использовать следующее:

Hakscale забрасывает команды в нашу очередь Redis и пересылает их в subfinder.

Для настройки нужны три файла в каталоге:

  • Dockerfile
  • docker-compose.yaml
  • hakscale-config.yaml

Dockerfile

FROM golang:1.19.2-alpine

# Adding git to install tools!
RUN apk update && apk add bash git

# Copy hakscale config file with Redis queue info!
COPY hakscale-config.yaml /root/.config/haktools/hakscale-config.yml

# Install hakscale from hakluke!
RUN go install github.com/hakluke/hakscale@latest

# Install subfinder from project discovery!
RUN go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

ENTRYPOINT hakscale pop -q blogDemo

docker-compose.yaml

version: “3.9”
services:
     subdomain_worker:
         image: subdomain_worker
         build:
           context: .
           dockerfile: Dockerfile
      network_mode: host

hakscale-config.yaml

redis:
host: <your-redis-host>
port: <your-redis-port>
password: <your-redis-password>

После того как очередь Redis развернута, три файла будут созданы в каталоге и настроен hakscale, можно запустить пример рабочего, выполнив команду `docker-compose up`.

После завершения сборки можно отправить на него команды.

Далее создайте файл с доменами, которые вы хотите протестировать, например:

cat testdomains.txt
example1.com
example2.com

Выполните команду `hakscale push -p “host:./testdomains.txt” -c “subfinder -d _host_” -t 20 -q blogDemo`.

В результате в очередь будут отправлены две команды.

Воркер подхватит их и начнет обрабатывать.

По окончании обработки он должен вывести результат обратно в очередь.

Воркер будет продолжать выполнять задания из очереди, пока не останется ни одного.

Затем он будет опрашивать, пока не появятся новые задания.

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

Заключение

Надеюсь, этот пример убедил вас в необходимости использования Docker при создании инфраструктуры автоматизации.

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий