TGViewer
Hacker Lab Hacker Lab @hacker_lab_pro · 3.81K subscribers
Post #520 1.14K
Почему скорборд падает на 40-й минуте — и как это не допустить

🔥 300+ участников, динамический скоринг в CTFd, и база данных — SQLite по дефолту. Именно так выглядит рецепт катастрофы на реальном Jeopardy. Скорборд лёг через сорок минут после старта: динамический скоринг пересчитывал стоимость тасков при каждом сабмите, а SQLite просто не справился с нагрузкой. Итог — перезапуск, миграция на PostgreSQL, потеря двух раундов и час разборок в чате. Одна конфигурационная ошибка, которую тест за 10 минут поймал бы ещё до старта.

Организация CTF — это инженерная задача, а не «закинул таски на платформу и открыл регистрацию». Каждая деталь имеет значение.

⚙️ Три формата — три разных уровня боли

Jeopardy — самый доступный старт. Команды решают независимые таски из категорий web, crypto, pwn, reverse, forensics и других, сдают флаги вида flag{s0m3_t3xt} и получают очки. Масштабируется от 10 до 1000+ команд без изменения инфраструктуры. Главная трудность здесь — не сервера, а сами задания. Каждый таск нужно проверить на unintended-решения: один реальный кейс — таск по crypto за 500 очков решался командой strings на бинарнике, потому что автор забыл убрать дебаг-вывод. Второй автор нашёл бы это за минуту.

Attack-Defense — совсем другая история. Каждая команда получает идентичный уязвимый сервер (vulnbox) и одновременно атакует противников и защищает себя. Игра идёт по тикам — раундам длиной 1-5 минут. Отошёл на обед — потерял 20 тиков. Классическая ловушка: команда блокирует все входящие соединения через iptables -P INPUT DROP и радуется, что её «не сломают». Через тик gameserver фиксирует DOWN — и SLA-очки улетают в ноль. Нельзя просто выключить сервис и стать неуязвимым: в этом и есть главный баланс формата.

🛡 Скоринг: где ошибаются чаще всего

Статический скоринг прост: 100 очков за easy, 500 за hard. Но если организатор ошибся в оценке сложности и «хард» решили 80% команд — баланс турнирной таблицы рушится. Динамический скоринг решает эту проблему: чем больше команд решило таск, тем меньше он стоит. Но именно здесь живёт та самая история с SQLite — при большом потоке сабмитов база данных просто не выдерживает. Мигрируй на PostgreSQL до старта, а не во время.

💡 Хочешь разобрать полную механику скоринга, античит и выбор инфраструктуры — читай статью целиком.

https://codeby.net/threads/organizatsiya-ctf-sorevnovanii-formaty-skoring-i-antichit-na-praktike.92940/
  • ❤ 2
  • 👍 2
  • 🔥 2
  • 🫡 2
More from @hacker_lab_pro
  1. Oct 9, 2026Как прошла Кибербитва GIS DAYS 2026: подробности нашего участия в соревнованиях ➡️В прошло…
  2. Oct 6, 2026⚡️ Твоё резюме на codeby.net теперь прокачивается само. Пока ты решаешь задачи на HackerLa…
  3. Oct 3, 2026🚩 Новые задания на платформе HackerLab! 👩‍💻 Категория Pentest Machines (Linux) — Клёвое…
  4. Oct 2, 2026Команда HackerLab заняла 4 место на Кибербитве GIS DAYS 2026! 30 сентября и 1 октября в Са…
  5. Sep 29, 2026От 200 до 300 тысяч на руки за то, чтобы первым разбирать свежие CVE. METASCAN ищет пентес…
  6. Sep 27, 2026🚀 Ищем новых авторов курсов по информационной безопасности У нас большая и очень живая ау…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →