← Все комнаты Путь «Защита (код)» →
СреднийЗащита (код) Код Осенний CTF

Утечка ключей

Прогресс комнаты 0 / 4
Задание 1Введение

Цель: Находить и скрывать секреты в тексте регулярными выражениями.

Перед публикацией логов нужно скрыть ключи доступа AWS. Напишите функцию mask_aws_keys(text): каждое вхождение AKIA + ровно 16 символов из A–Z0–9 замените на AKIA + 16 звёздочек. Поиск слева направо, без пересечений; символы после 16-го не трогать.

Задание 2Теория и инструменты

Ключи доступа AWS имеют узнаваемый формат: AKIA + 16 заглавных букв и цифр. Сканеры секретов (gitleaks, trufflehog) ищут такие шаблоны в коде и логах.

Маскирование перед публикацией логов — обычная практика защиты от утечек.

Инструменты

  • Python: re.sub
  • JS: String.prototype.replace с флагом g

Больше теории — в разделе «Обучение: Защита (код)».

Задание 3Практика: напишите код

Примеры

Пример 1
mask_aws_keys("aws_access_key_id = AKIAE3TN8CO9GXMDX8JF")
→ "aws_access_key_id = AKIA****************"
Пример 2
mask_aws_keys("no secrets here")
→ "no secrets here"

Ещё 6 скрытых тестов.

solution
Ctrl+Enter — отправить Войдите, чтобы отправить

Пошаговый план — открывайте по одному шагу

  1. 1
    Составьте регулярное выражение: AKIA + класс [0-9A-Z] ровно 16 раз.

Подсказки — каждая до решения стоит −25 очков

Задание 4Как защититься

Не храните ключи в коде, используйте роли IAM и менеджеры секретов, включите сканирование секретов в CI.

Разборы участников

Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.