docs(security): чек-лист безопасности игрового контура (аудит живого стенда)

15 пунктов, отмечаются [ ]/[x]. Критичное найдено воспроизведением на
testfront.binom.pw, не чтением кода:
- close_bet проверяет только нижнюю границу окна (now >= expire_time) —
  верхней нет, ставка висит open бесконечно, момент расчёта выбирает
  вызывающий /close;
- в шлюзе нет авто-закрытия (единственный setInterval — WS-heartbeat);
- /bet, /close, /faucet открыты наружу без авторизации; faucet выдал
  5 SOL + 10000 фантиков при SMART_ALLOW_AIRDROP=1 в боевом поде;
- эксплойт воспроизведён: ставка DOWN (entry=9998000000) висела open >2 мин
  после экспирации 15с и закрыта при exitPrice=9997000000 -> payout_done.
Плюс: множитель 1.3x требует 77% винрейта, запертые средства в ваулте,
равные цены не финализируют ставку, NATS без auth, релейер — точка доверия.
This commit is contained in:
2026-09-13 12:40:51 +03:00
parent 30f851fb87
commit 18ecbb42b3
3 changed files with 55 additions and 0 deletions
+1
View File
@@ -105,3 +105,4 @@
## Ссылки (дополнено 2026-09-13)
- Цена: `docs/PRICE-NATS.md`, диаграмма `docs/diagrams/price-flow.puml`
- **Безопасность: `docs/SECURITY.md` — чек-лист (15 открытых пунктов, аудит живого стенда 2026-09-13)**