Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Дмитрий Муковкин. Как мы делали SibirCTF. Прове...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
KrasCTF
November 18, 2017
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Дмитрий Муковкин. Как мы делали SibirCTF. Проверяющая система
KrasCTF Meetup 2017, Красноярск
KrasCTF
November 18, 2017
More Decks by KrasCTF
See All by KrasCTF
Владимир Жираков. Канал утечки информации за счет ПЭМИН
krasctf
0
600
Данил Бородавкин. Приглядываем за Windows
krasctf
0
120
Александр Менщиков. Как мы делали Pentest CTF
krasctf
2
120
Павел Шипулин. KrasCTF: как передать наследство?
krasctf
0
130
Other Decks in Technology
See All in Technology
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
170
夫婦で子育てするための育児標準化
codmoninc
PRO
0
460
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
170
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3.1k
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
230
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
480
hackers_champloo_2026_tidb
makocchi
0
170
Kiro Crewで「みのるん式」仕事術やってみた
minorun365
PRO
3
740
WasmをRustにする
sansantech
PRO
0
280
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
Metadata - Section 1: HTML Basics
mohab1
0
120
フィンテック養成勉強会#68
finengine
0
150
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
440
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
830
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Abbi's Birthday
coloredviolet
4
10k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Building Applications with DynamoDB
mza
96
7.2k
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/