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
100
0
Share
Дмитрий Муковкин. Как мы делали SibirCTF. Проверяющая система
KrasCTF Meetup 2017, Красноярск
KrasCTF
November 18, 2017
More Decks by KrasCTF
See All by KrasCTF
Владимир Жираков. Канал утечки информации за счет ПЭМИН
krasctf
0
550
Данил Бородавкин. Приглядываем за Windows
krasctf
0
110
Александр Менщиков. Как мы делали Pentest CTF
krasctf
2
110
Павел Шипулин. KrasCTF: как передать наследство?
krasctf
0
110
Other Decks in Technology
See All in Technology
FlutterでPiP再生を実装した話
s9a17
0
250
解剖"React Native"
hacusk
0
110
「活動」は激変する。「ベース」は変わらない ~ 4つの軸で捉える_AI時代ソフトウェア開発マネジメント
sentokun
0
150
最大のアウトプット術は問題を作ること
ryoaccount
0
300
Cortex Code君、今日から内製化支援担当ね。
coco_se
0
260
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
0
160
ログ基盤・プラグイン・ダッシュボード、全部整えた。でも最後は人だった。
makikub
1
170
OPENLOGI Company Profile for engineer
hr01
1
62k
Webアクセシビリティは“もしも”に備える設計
tomokusaba
0
160
スケーリングを封じられたEC2を救いたい
senseofunity129
0
140
Strands Agents × Amazon Bedrock AgentCoreで パーソナルAIエージェントを作ろう
yokomachi
2
130
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
5
1.3k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Designing for humans not robots
tammielis
254
26k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Fireside Chat
paigeccino
42
3.9k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.5k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
Facilitating Awesome Meetings
lara
57
6.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
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/