← Назад в блог

Программирование и скриптинг для кибербезопасности: часть 2 — создаём безопасную bash-лабораторию

Опубликовано
4 мин чтения
--- просмотров

Введение

Продолжая наше путешествие в скриптинг для безопасности, часть 2 переходит от теории к практике. Ты выберешь дистрибутив Linux, проверишь настройку лаборатории и напишешь короткий bash-скрипт, который создаёт рабочую директорию для будущих упражнений по автоматизации. Каждый шаг подчёркивает, почему выбор окружения, права доступа и работа с путями важны, когда security-команды масштабируют свой инструментарий.

Цели обучения

  • Сравнивать распространённые Linux-дистрибутивы, ориентированные на безопасность, и обосновывать выбор для лабораторной работы.
  • Проверять сессию терминала с помощью pwd/ls, чтобы подтвердить понимание директории и готовность шелла.
  • Реализовывать bash-скрипт, который создаёт структурированные рабочие пространства, логирует активность и применяет ограничительные права доступа.
  • Объяснять компромиссы между относительными и абсолютными путями в административной автоматизации.

Сценарий: создаём лабораторию автоматизации Dharma

В Dharma команда автоматизации готовит песочницу, где аналитики могут прототипировать скрипты перед их отправкой на production-серверы. Твоё задание — заложить базу: выбрать образ операционной системы, задокументировать начальный вид файловой системы и подготовить переиспользуемый скрипт, который каждый участник команды сможет запустить, чтобы воспроизвести структуру директорий. Скриншоты ниже фиксируют выбранный дистрибутив и подтверждение shell-окружения.

Выбранный дистрибутив

HW 2

Лаборатория работает на Ubuntu 22.04 LTS (в данном случае — через WSL2). Ubuntu находит баланс между стабильностью, широкой поддержкой пакетов и совместимостью с security-инструментами. Его LTS-цикл обещает регулярные обновления безопасности без разрушительных изменений, что делает его надёжной основой для учебных заданий по автоматизации.

Проверка терминала — pwd и ls

HW 2

Захват промпта вместе с pwd и ls документирует рабочую директорию (/home/dharma) и подтверждает, что ожидаемые файлы (в том числе diagnostico.sh) доступны. Это доказательство важно, когда коллеги по команде воспроизводят воркфлоу или проверяют твою настройку.

Проектируем скрипт diagnostico.sh

Онбординг-набор включает утилитарный скрипт, который готовит рабочее пространство seguridad, фиксирует базовую активность и перечисляет содержимое директории для быстрой проверки. Ниже — аннотированная версия, которую ты будешь поддерживать в системе контроля версий.

#!/usr/bin/env bash
set -euo pipefail

BASE_DIR="$HOME/seguridad"

# Create the working directory if it is missing.
mkdir -p "$BASE_DIR"

# Ensure the activity log exists and is empty for this run.
: > "$BASE_DIR/registro.log"

# Produce a current listing from inside the workspace.
cd "$BASE_DIR"
ls -la > listado.txt

# Append a timestamp entry so we know when the script was executed.
echo "Execution: $(date)" >> registro.log

echo "Done. Files generated at: $BASE_DIR"

Почему эти решения важны

  • Абсолютный базовый путь ($HOME/seguridad). Привязка рабочего пространства к домашней директории оператора избавляет от сюрпризов из-за разных точек запуска и упрощает управление правами доступа.
  • set -euo pipefail. Скрипт быстро завершается при неопределённых переменных или ошибках команд, предотвращая частично выполненное состояние, которое могло бы запутать последующие запуски.
  • Идемпотентное создание директории и лога. Использование mkdir -p и оператора усечения : делает скрипт безопасным для многократного запуска без устаревших данных.
  • Захват листинга. Сохранение вывода ls -la в listado.txt создаёт артефакт, который аудиторы могут просмотреть без повторного запуска скрипта.
  • Логирование меток времени. registro.log дополнительно служит быстрым журналом аудита, показывающим, когда рабочее пространство было инициализировано или обновлено.
  • Права доступа. После скачивания или клонирования скрипта запусти chmod 700 diagnostico.sh. Ограничение выполнения только владельцем защищает от подмены и случайного запуска другими пользователями на общих хостах.

Доказательство выполнения

HW 3

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

Размышление: пути и портируемость

В этом упражнении абсолютные пути обеспечивают предсказуемость: каждый запуск нацелен на $HOME/seguridad независимо от текущей директории вызывающего. Относительные пути могут быть полезны внутри рабочего пространства — например, для обращения к ./listado.txt после того, как скрипт сменил директорию. Продуманное сочетание обоих подходов сохраняет портируемость скрипта, гарантируя при этом, что критичные операции всегда разрешаются корректно.

Следующие шаги

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

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок