Защитить интеграцию отгрузок

КибербезопасностьBeginner
Практиковаться сейчас

Введение

Интеграция отгрузок читает ожидающие заказы и публикует обновления отправки. Текущий пример репозитория выглядит чистым, но удалённый API-ключ может ещё давать доступ. Вам нужно сдержать утечку и восстановить ожидающий запуск отправки.

Примените изученные методы: исследование Git, точечный отзыв, выбор областей, закрытую конфигурацию и бизнес-проверку. Завершите результат отправки, сохранив независимый монитор. Задание начинается в собственной подготовленной среде.

Восстановить интеграцию отгрузок

Текущая ситуация

Команда отправки использует подготовленный worker, читающий ожидающие заказы и публикующий обновления отправки. Например, после обработки пакета заказ O-201 должен получить состояние ready. Ключ удалили из текущего примера, но оповещение указывает, что его можно получить из истории. Пакет dispatch ожидает обработки. Независимый монитор доступности должен работать; временная пауза отправки допустима при сдерживании.

Используются тот же локальный учебный провайдер, методы Git, менеджер, формат INI и две роли терминала, что в лабораторных работах. Среда синтетическая и не требует внешнего аккаунта.

Используйте ключи этой VM, не предыдущей работы. Как в лабораториях с инструкциями, этот провайдер использует 401 для неверного или отозванного ключа, 403 для действительного ключа без нужной области, 200 для принятого чтения. Worker читает закрытый файл при каждом запуске; перезапуск сервиса не нужен.

Область работы

  • Workstation открывается в /home/labex/project/repository. Три коммита и shipping-example.ini содержат исторические свидетельства. Текущий пример не является конфигурацией выполнения.
  • Integration работает под keyworker в /home/labex/project. Закрытый файл — runtime/job.ini; неизменяемый worker — /opt/keylab/worker.py, принимающий имя пакета аргументом.
  • API расположен на http://127.0.0.1:8000. Key Manager использует токен оператора из /home/labex/.config/keylab/operator-token для управления ключами.
  • Независимый монитор использует lab_key_monitor_only для GET /v1/health.
Операция Требуемая область Бизнес-назначение
GET /v1/orders orders:read Чтение ожидающих заказов
POST /v1/shipment-updates shipment-updates:write Публикация состояний отправки
GET /v1/results orders:read Просмотр принятых пакетов
GET /v1/customers customers:read Независимый каталог клиентов
GET /v1/health health:read Отдельный монитор

Ваша цель

Исторически раскрытый ключ больше не даёт API-доступа. Неизменённый worker использует отдельную новую замену в закрытой конфигурации; принимающий сервис содержит полный результат dispatch под этой заменой. Доступ к каталогу клиентов для замены запрещён, независимый монитор исправен.

Критерии приёмки

  • Исторический ключ отозван и получает 401 при доступе к заказам, пока API остаётся доступным.
  • Настроенная замена активна, отличается от старого ключа и имеет ровно две бизнес-области отгрузки.
  • /home/labex/project/runtime/job.ini принадлежит keyworker, имеет режим 600 и читается этой служебной записью. Новый секрет отсутствует в файлах и коммитах репозитория.
  • Неизменённый worker прочитал назначенный dispatch настроенной заменой; API принял заказы O-201 и O-202, оба в состоянии ready, под тем же ID замены.
  • Замена получает 403 для каталога клиентов. Неизменённый ключ монитора получает 200 от конечной точки здоровья.

Подсказки

Где может остаться удалённый секрет?

Сравните текущий пример с прежними коммитами. Сопоставьте исторический ID с записью менеджера; одного отображаемого имени недостаточно.

Почему действительная замена продолжает ошибаться?

Worker выполняет входной и выходной запросы. Таблица помогает отличить недостаточную область от неверного или отозванного секрета. Переменная оболочки не обновляет закрытый файл выполнения.

Что доказывает восстановление?

Демонстрации или сообщения терминала недостаточно. Посмотрите назначенный пакет в принимающем API и сравните ID ключа с настроенной заменой. Не изменяйте подготовленный worker.

Резюме

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

✨ Проверить решение и практиковаться