feat(gateway): enable GATEWAY_HONEYTOKEN + GF_SMTP_ENABLED on both contours #169

Merged
developer merged 1 commits from feature/enable-honeytoken into development 2026-07-03 20:16:44 +00:00
Owner

Что

Включение двух вещей, что были dormant (по твоему запросу).

GATEWAY_HONEYTOKEN (нужен код — прокидка env):

  • Ловушка есть в gateway+compose, но GATEWAY_HONEYTOKEN нигде не подавался → всегда пустой (инертный). Прокинул per-contour TEST_/PROD_GATEWAY_HONEYTOKEN (secret) в ci-deploy, prod-deploy и prod-rollback (prod — через общий write-prod-env.sh).
  • Пустой секрет = трап выкл (без :?) — деплой безопасен ДО того, как заведёшь значение. Не hard-cutover.
  • Prod (ban on): presenting → 24h IP-бан + алярм. Test (ban off): лог + метрика gateway_abuse_banned_total{reason=honeytoken}.

GF_SMTP_ENABLED (без кода): выставил TEST_/PROD_GF_SMTP_ENABLED=true через API. Эффект — со следующего деплоя контура (этот PR его и привезёт на test).

От тебя (секреты — hard-cutover не требуется)

Завести 2 секрета, чтобы вооружить ловушку (можно после мержа, трап встанет на следующем деплое):

  • TEST_GATEWAY_HONEYTOKEN, PROD_GATEWAY_HONEYTOKEN — непубличное opaque-значение вида bearer-токена; подсади его как приманку там, где сканящий атакующий найдёт (иначе трап никого не поймает). Разные значения на контур (изоляция).

Проверено

bash -n, YAML×3, dry-run write-prod-env.sh (honeytoken в выводе; пустой = пустая строка, без ошибки), рефы во всех 3 workflow, docker compose config база+prod-overlay валиден.

Caveat

Grafana-алерты на TEST теперь тоже шлются (в TEST_SERVICE_EMAIL=gmail) — возможен шум на тестовых флапах. Скажи, если убрать test (верну TEST_GF_SMTP_ENABLED=false).

## Что Включение двух вещей, что были dormant (по твоему запросу). **GATEWAY_HONEYTOKEN** (нужен код — прокидка env): - Ловушка есть в gateway+compose, но `GATEWAY_HONEYTOKEN` нигде не подавался → всегда пустой (инертный). Прокинул per-contour `TEST_/PROD_GATEWAY_HONEYTOKEN` (secret) в ci-deploy, prod-deploy и prod-rollback (prod — через общий `write-prod-env.sh`). - Пустой секрет = трап выкл (без `:?`) — деплой безопасен ДО того, как заведёшь значение. Не hard-cutover. - Prod (ban on): presenting → 24h IP-бан + алярм. Test (ban off): лог + метрика `gateway_abuse_banned_total{reason=honeytoken}`. **GF_SMTP_ENABLED** (без кода): выставил `TEST_/PROD_GF_SMTP_ENABLED=true` через API. Эффект — со следующего деплоя контура (этот PR его и привезёт на test). ## От тебя (секреты — hard-cutover не требуется) Завести 2 секрета, чтобы вооружить ловушку (можно после мержа, трап встанет на следующем деплое): - `TEST_GATEWAY_HONEYTOKEN`, `PROD_GATEWAY_HONEYTOKEN` — непубличное opaque-значение вида bearer-токена; **подсади его как приманку** там, где сканящий атакующий найдёт (иначе трап никого не поймает). Разные значения на контур (изоляция). ## Проверено `bash -n`, YAML×3, dry-run write-prod-env.sh (honeytoken в выводе; пустой = пустая строка, без ошибки), рефы во всех 3 workflow, `docker compose config` база+prod-overlay валиден. ## Caveat Grafana-алерты на TEST теперь тоже шлются (в `TEST_SERVICE_EMAIL`=gmail) — возможен шум на тестовых флапах. Скажи, если убрать test (верну `TEST_GF_SMTP_ENABLED=false`).
developer added 1 commit 2026-07-03 19:36:44 +00:00
feat(gateway): wire GATEWAY_HONEYTOKEN through the deploy
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 10s
CI / integration (pull_request) Successful in 20s
CI / ui (pull_request) Successful in 1m6s
CI / conformance (pull_request) Successful in 10s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m44s
a0021d1994
The planted honeytoken bearer trap already existed in the gateway + compose, but
no workflow fed GATEWAY_HONEYTOKEN, so it was always empty (inert). Wire the
per-contour TEST_/PROD_GATEWAY_HONEYTOKEN secret into the ci deploy, prod-deploy
and prod-rollback env (the prod path via the shared deploy/write-prod-env.sh),
document it (deploy/README + .env.example), and fix the stale compose comment.

Empty secret = trap off (no ":?" guard), so a deploy is safe before the operator
sets the value + plants the bait. On prod (IP ban on) presenting it earns a 24h
ban + alarm; on test (ban off) it logs + a ban metric.

GF_SMTP_ENABLED is enabled separately via the TEST_/PROD_GF_SMTP_ENABLED Gitea
variables (=true) — no code change.
owner approved these changes 2026-07-03 20:13:50 +00:00
developer merged commit 3ef18d33b6 into development 2026-07-03 20:16:44 +00:00
developer deleted branch feature/enable-honeytoken 2026-07-03 20:16:44 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#169