Rostelecom Security Labs

SecureCode Review — Hardcoded Config Secret

Разработчик хардкожил API-ключ биллинга прямо в Java-класс. Найди строку с секретом, объясни риски и предложи перенос в безопасное хранилище.

📚 Теория: Нельзя хардкодить ключи (раскрыть)

Почему так делают?

Разработчик спешил и зашил ключ прямо в класс, чтобы «быстрее протестировать». В итоге ключ попадает в Git, логи и билды.

⚠️ Любой, у кого есть доступ к репозиторию или jar, видит секрет.

Чем это грозит?

Утечки API-ключей ведут к списанию средств, компрометации клиентов и блокировке поставщика.

🔐 Секреты должны храниться в Secret Manager, Vault или ENV.

1. Коммит

Ключ попадает в Git и историю.

2. Сборка

В jar/war ключ доступен любому QA или злоумышленнику.

3. Утечка

Сервис-агрессор перехватывает ключ и совершает запросы от вашего имени.

Как надо: считывать ключ из переменных окружения, HashiCorp Vault, AWS Secrets Manager или Kubernetes Secrets. В коде должна быть лишь ссылка на источник, но не сам секрет.

Контекст

Сервис работает с биллингом и использует API ключ для аутентификации. Чтобы «упростить», разработчик сохранил ключ в поле класса, после чего код оказался в Git. Твоя задача — показать, почему это критично.

Сниппет

Загружаем сниппет…

Code Review

Проверка флага

После ревью зафиксируй флаг, чтобы дашборд засчитал лабораторию.