Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Дмитрий Муковкин. Как мы делали SibirCTF. Проверяющая система
Search
KrasCTF
November 18, 2017
Technology
0
72
Дмитрий Муковкин. Как мы делали SibirCTF. Проверяющая система
KrasCTF Meetup 2017, Красноярск
KrasCTF
November 18, 2017
Tweet
Share
More Decks by KrasCTF
See All by KrasCTF
Владимир Жираков. Канал утечки информации за счет ПЭМИН
krasctf
0
340
Данил Бородавкин. Приглядываем за Windows
krasctf
0
89
Александр Менщиков. Как мы делали Pentest CTF
krasctf
2
84
Павел Шипулин. KrasCTF: как передать наследство?
krasctf
0
76
Other Decks in Technology
See All in Technology
JSON攻略法.pdf
miyakemito
8
5.1k
競技としてのKaggle、役に立つKaggle
yu4u
5
2.1k
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
170
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
生産性向上チームの紹介
cybozuinsideout
PRO
1
890
現代CSSフレームワークの内部実装とその仕組み
poteboy
8
3.7k
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
640
One engineer company with Ruby on Rails
rstankov
2
310
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
380
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
620
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
1
250
MapLibreとAmazon Location Service
dayjournal
1
160
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Building an army of robots
kneath
300
41k
Become a Pro
speakerdeck
PRO
11
4.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
In The Pink: A Labor of Love
frogandcode
138
21k
Gamification - CAS2011
davidbonilla
76
4.6k
GraphQLとの向き合い方2022年版
quramy
32
12k
Building Your Own Lightsaber
phodgson
99
5.7k
Transcript
Как мы делали SibirCTF Проверяющая система
Кто ты вообще?
О чем хотелось рассказать • Менеджмент соревнований • Проверяющая система
О чем будет рассказано 1. История проверяющих систем на SibirCTF
2. Технологии 3. Проблемы
О чем будет рассказано Все это сугубо личное мнение
SibirCTF уже 4 года `14 6 команд 1 день 9
команд 1 день 12 команд 3 дня 16 команд 4 дня `15 `16 `17
2014 год: проба сил • Проверяющая система написана на C++
• 3 сервиса • Тестировалась на 2 командах • Писалась в “кратчайшие” сроки
2014 год: проба сил Упала через несколько минут после старта
2014 год: проба сил • Все проблемы были исправлены за
полчаса • Отработала стабильно
2014 год: вынесенные уроки Необходимо тестировать все заранее, предусмотрев все
возможные случаи
2014 год: вынесенные уроки Необходимо тестировать все заранее, предусмотрев все
возможные случаи
2015 год: забыли про патч-корды • Решили взять чужую платформу,
а не писать свою • Количество сервисов - 4
2015 год: забыли про патч-корды • Подняли после обеда •
Почти написали свою собственную за час
2015 год: ошибки Нужно выбирать “правильных” людей на ключевые позиции.
Необходимо постоянно следить за ходом работы этого человека. Если вы берете чужую разработку, то должны глубоко изучить её.
2016 год: пишем сами • Написали собственную платформу на Python
• Тестировали в течении 2-3 месяцев • Написали 4 сервиса
2016 год: пишем сами • Ни разу не упала •
Внештатных ситуаций не произошло
2016 год: выводы Проверяющая система это еще не все. Не
стоит забывать про сервисы.
2017 год: все лучше и лучше Делаем упор на сервисы.
Сервисы становятся “взламываемыми”
2017 год: итоги Нагрузка вырастает в несколько раз Обнаруживаются слабые
места в платформе Стабильные платформа, сервисы - это еще не все. Необходимо думать об визуализации.
2017 год: итоги Нужно делать ШОУ!
Что вообще за attack-defense
Стек Python Почему? • Распространенность • Огромное количество библиотек •
...
Архитектура • Модуль генерации флагов и постановки задач • Модуль
работы с чекерами • Модуль приемки флагов • Скорборд
База данных
Скорборд Flask Не забыли включить мультипоточность
Модуль генерации флагов и постановки задач • Генерирует флаги •
Создает задачи и отправляет в очередь • Начисляет очки защиты
Модуль работы с чекерами
RabbitMQ Платформа, реализующая систему обмена сообщениями между компонентами программной системы
на основе стандарта AMQP
Модуль приемки флагов • Определяет команду • Проверяет сданный флаг
• Если все условия выполняются, то начисляется очко атаки
Итоги • Это не сложно, если ты обладаешь достаточными компетенциями
• Но более ответственно (очень много точек отказа) • Нужно много-много тестировать • Облажаться - это тоже опыт
Итоги https://github.com/KevaTeam/ctf-attack-defense/