Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Дмитрий Муковкин. Как мы делали SibirCTF. Прове...

KrasCTF
November 18, 2017

Дмитрий Муковкин. Как мы делали SibirCTF. Проверяющая система

KrasCTF Meetup 2017, Красноярск

KrasCTF

November 18, 2017
Tweet

More Decks by KrasCTF

Other Decks in Technology

Transcript

  1. SibirCTF уже 4 года `14 6 команд 1 день 9

    команд 1 день 12 команд 3 дня 16 команд 4 дня `15 `16 `17
  2. 2014 год: проба сил • Проверяющая система написана на C++

    • 3 сервиса • Тестировалась на 2 командах • Писалась в “кратчайшие” сроки
  3. 2015 год: забыли про патч-корды • Решили взять чужую платформу,

    а не писать свою • Количество сервисов - 4
  4. 2015 год: забыли про патч-корды • Подняли после обеда •

    Почти написали свою собственную за час
  5. 2015 год: ошибки Нужно выбирать “правильных” людей на ключевые позиции.

    Необходимо постоянно следить за ходом работы этого человека. Если вы берете чужую разработку, то должны глубоко изучить её.
  6. 2016 год: пишем сами • Написали собственную платформу на Python

    • Тестировали в течении 2-3 месяцев • Написали 4 сервиса
  7. 2016 год: пишем сами • Ни разу не упала •

    Внештатных ситуаций не произошло
  8. 2017 год: все лучше и лучше Делаем упор на сервисы.

    Сервисы становятся “взламываемыми”
  9. 2017 год: итоги Нагрузка вырастает в несколько раз Обнаруживаются слабые

    места в платформе Стабильные платформа, сервисы - это еще не все. Необходимо думать об визуализации.
  10. Архитектура • Модуль генерации флагов и постановки задач • Модуль

    работы с чекерами • Модуль приемки флагов • Скорборд
  11. Модуль генерации флагов и постановки задач • Генерирует флаги •

    Создает задачи и отправляет в очередь • Начисляет очки защиты
  12. Модуль приемки флагов • Определяет команду • Проверяет сданный флаг

    • Если все условия выполняются, то начисляется очко атаки
  13. Итоги • Это не сложно, если ты обладаешь достаточными компетенциями

    • Но более ответственно (очень много точек отказа) • Нужно много-много тестировать • Облажаться - это тоже опыт