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
97
Дмитрий Муковкин. Как мы делали SibirCTF. Проверяющая система
KrasCTF Meetup 2017, Красноярск
KrasCTF
November 18, 2017
Tweet
Share
More Decks by KrasCTF
See All by KrasCTF
Владимир Жираков. Канал утечки информации за счет ПЭМИН
krasctf
0
450
Данил Бородавкин. Приглядываем за Windows
krasctf
0
110
Александр Менщиков. Как мы делали Pentest CTF
krasctf
2
110
Павел Шипулин. KrasCTF: как передать наследство?
krasctf
0
110
Other Decks in Technology
See All in Technology
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
220
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
0
550
データエンジニアとして生存するために 〜界隈を盛り上げる「お祭り」が必要な理由〜 / data_summit_findy_Session_1
sansan_randd
1
920
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
370
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
180
SOTA競争から人間を超える画像認識へ
shinya7y
0
690
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.7k
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
250
AWSが好きすぎて、41歳でエンジニアになり、AAIを経由してAWSパートナー企業に入った話
yama3133
2
230
AIがコードを書いてくれるなら、新米エンジニアは何をする? / komekaigi2025
nkzn
24
17k
短期間でRAGシステムを実現 お客様と歩んだ生成AI内製化への道のり
taka0709
1
170
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
420
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Practical Orchestrator
shlominoach
190
11k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Agile that works and the tools we love
rasmusluckow
331
21k
Bash Introduction
62gerente
615
210k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
4 Signs Your Business is Dying
shpigford
186
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
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/