imageУже второй год подряд в городе Томске проводятся соревнования по информационной безопасности SibirCTF. В этом году к нам приехало в два раза больше команд, чем в том году, чего мы, конечно же, не ожидали. Поэтому мы хотели бы рассказать об этом мероприятии хабрасообществу.

Кратко о событии


Уже второй год, весной, мы проводим соревнования по информационной безопасности SibirCTF при поддержки Томского государственного университета систем управления и радиоэлектроники (ТУСУР), Администрации Томской области, межрегиональной общественной организации «АРСИБ», Сибирского регионального отделения учебно-методического объединения (СибРОУМО) вузов России по образованию в области информационной безопасности.

Соревнования проводились с 22 по 23 мая в рамках мероприятий Форума молодых ученых U-NOVUS – 2015. Формат игры стал уже традиционный Attack-Defense. В этом году участвовало 14 команд из разных городов СФО: Новосибирск, Омск, Красноярск, Барнаул, Томск. К нам даже хотели приехать команды из Самары и Дальнего Востока, но у них почему-то не получилось. Впрочем, конкуренция была и так высокая.

image

Организация соревнований


image
Техническую часть соревнований уже второй год подряд взяла на себя команда keva. Команда состоит в основном из студентов и выпускников ТУСУРа. За создание сервисов, организацию и настройку сети, настройку жюрейной системы, а также другие технические вопросы отвечали 10 человек.

Вся работа началась за 3 месяца до проведения мероприятия. Было принято решение использовать жюрейную систему Екатеринбургской команды HackerDom (после проведения соревнования было принято решение ее больше не использовать). Каждой команде выдавался доступ к виртуальной машине, на которой были запущены игровые сервисы. Жюрейная система также была запущена на виртуальной машине.

Оборудование


Понадобилось много оборудования. Но желание оптимизировать бюджет дало свои плоды. В итоге обошлись одним сервером для виртуальных машин (в прошлом году их было 2: игровой и резервный). Конфигурация серверов такова: 2 четырехядерных Xeon, 64 Гб ОЗУ, RAID массив на 8 Тб. В качестве головного маршрутизатора использовался Mikrotik RB1100X2AH. Агрегирующий коммутатор — Mikrotik серии CloudRouter Switch. В качестве коммутаторов доступа — россыпь различных D-link и 3Com. В прошлом году все коммутаторы и маршрутизаторы были Cisco (в этом году мы поддержали программу импортозамещения).

Сервисы


image
Основу любых соревнований CTF Attack-Defense составляют сервисы. Их качество, оригинальность во много определяют успех соревнований.

Подготовку сервисов мы начали за 3 месяца до старта. Нам хотелось сделать сервисы легкие в понимании (ведь уровень команд разный), но и достаточно сложные в нахождении и исправлении всех уязвимостей.

В итоге было принято решение разработать 4 сервиса: CryChat, O'Foody, CTFGram, EasyAs. Далее подробно о каждом из них.

CryChat

Сервис написан на языке PHP. Хотелось создать анонимный чат для двух пользователей для отсылки друг другу сообщений и файлов. Что актуально на сегодняшний день. Видео разбора сервиса:



O'Foody

Сервис написан на языке Perl. В сервисе присутствовало 4 уязвимости. Perl был выбран из-за высокой скорости разработки, а также из-за желание показать участникам, что на этом языке можно писать красивый код. В качестве БД использовался PostgreSQL. Видео разбора сервиса:



CTFGram

Сервис написан на языке Javascript. Основная идея сервиса аналог Instagram-a. Можно было регистрироваться, загружать свои фотографии, ставить лайки. Видео разбора сервиса:



EasyAs

Сервис написан на языке Python. Этот сервис предполагался как начальный и самый простой. Если вы посмотрите код, то поймете почему. Видео разбора сервиса:



Видео


Ролик от наших партнеров из АРСИБ:



Результаты


Результаты выглядят следующим образом:

image
  1. SuSlo.PAS
  2. Failers
  3. FTS
  4. Life
  5. Mustang
  6. OMAVIAT
  7. Sharlike
  8. SibirTSU
  9. Zanyato
  10. TIO
  11. Luck3rz
  12. Shikata ga nai
  13. Hell ZIP
  14. n57u n00bz

Команды Mustang и Shikata ga nai участвовали вне зачета.

SibirCTF 2016


В следующем году мы хотим многое сделать, у нас куча идей, новые форматы, приближенные к реальным ситуациям. Если у Вас есть какие-то предложения, то мы будем рады выслушать их.

Ждем вас в следующем году.

Ссылка на репозиторий: SibirCTF

Отдельное спасибо хотелось бы сказать АРСИБ за предоставленные фотографии.

P.S. Хотелось бы услышать мнение ХабраСообщества о сервисах, а также услышать впечатления от участников соревнования.

Комментарии (13)


  1. yegreS
    24.07.2015 15:20

    а можно подробнее чем не понравилась система HackerDom? Я так понимаю команды только студенческие? Как происходил отбор команд?


    1. Nostr
      24.07.2015 17:54

      Не имею отношения ни к организаторам SibirCTF ни к участникам, но могу высказать свое мнение по использованию жюрейки хакердома на региональных соревнованиях.
      Дело в том, что формат начисления баллов через SLA, который дает огоньку на крупных турнирах вроде RuCTFE, не очень себя показывает на маленьких турнирах (порядка 10 команд) и особенно с командами новичками.
      Проблемы динамики набора баллов и обнулений для команд с низким уровнем подготовки приводят к тому, что они «не понимают что происходит». Старая схема с attack+defence в этом контексте более применима.


    1. Proger10
      24.07.2015 19:41

      Падала она периодически. У меня есть фотка на фоне «упавших у всех сервисов». На самом деле просто чекер очередной раз сдох.
      Команды были студенческие, да.


      1. shipko Автор
        24.07.2015 22:44

        Система не падала, были проблемы с работой сервисов (как я уже писал, не было никакой документации по созданию сервисов), для их отладки нам приходилось их временами перезагружать.


    1. shipko Автор
      24.07.2015 22:41

      Система устанавливается очень долго. В процессе запуска у нас были большие проблемы с запуском скорборда (требовались какие-то непонятные модули, которые установились с помощью танца с бубном)
      Не понравилось, что вся информация заносилась руками через текстовые файлы. У нас есть API и front-end для нее, мы хотели бы запускать систему, загружать данные именно через эту связку.
      Ну и напоследок нет никакой документации с ней (что очень критично, если нужно быстро развернуться).
      Команды были студенческие, как помню, хотя к нам хотели приехать школьники из Новосибирска.
      Отбора как такового не было. Из-за этого количество команд изначально было неизвестно. В следующем году планируется отбор.


      1. yegreS
        24.07.2015 23:34

        а не думали приглашать более-мение известные команды?


        1. shipko Автор
          25.07.2015 15:47
          +1

          Если участники команды считают, что уровень соревнований будет приемлем, то они сами подадут заявку.
          Наша задача не приглашение известных команд, а объединение участников (начинающих и опытных), обмен опытом, а в целом, развитие CTF в Сибири и на Дальнем Востоке.


  1. axilirator
    24.07.2015 18:18

    Небольшое дополнение от участников. Начну с критики.
    1) Изначально не был установлен формат флагов. Сразу после взлома сервиса CryChat мы попытались отправить их на сервер жюри. Результат: «Incorrect flag». Спустя час или больше длина флагов изменилась, и сервис приема флагов заработал. За 3 месяца Вы не смогли настроить сервис сдачи флагов?
    2) Согласно правилам, соревнования длятся около 8 часов и подразумевают наличие постоянно работающего скорборда. Однако, данное чудо заработало только к концу соревнований, а затем вообще ни с того ни с сего сломалось. :(
    3) Насколько правильно работали чекеры сервисов? После исправления уязвимостей в двух сервисах сервера нашей команды, мы занимались анализом оставшихся, а также атакой на серверы соперников. Как только заработал скорборд, оба сервиса светились зеленым цветом, что означало корректное их функционирование и отсутствие уязвимостей. После падения скорборда и его чудесного возвращения в аптайм два исправленных нами сервиса и еще один нетронутый нами сервис светились как «Unavailable». В результате чего мы потеряли возможность сдачи флагов. Не смотря на демонстрацию аптайма и корректной функциональности сервисов организаторам соревнований с нашей стороны, мы активно теряли позиции на скорборде.
    Из понравившегося: очень вкусно кормили, спасибо!


    1. DarkByte
      24.07.2015 18:39
      +1

      Судя по статье, за 3 месяца до начала сервисы только начали писать, судя по собственному опыту проведения регионального CTF, заканчивали в последние минуты до начала игры, а закончили к середине игры. Помнится как то закончил писать свой сервис ещё за месяц до начала, локально всё протестировал и считал что был готов, но собрать готовы образ со всеми сервисами удалось только в последнюю ночь, и вдруг оказалось, что у сервиса различное поведение на х86 и 64 архитектурах, в итоге исправлял сервис вместе со всеми :)


    1. Proger10
      24.07.2015 19:52

      Как только заработал скорборд, оба сервиса светились зеленым цветом, что означало корректное их функционирование и отсутствие уязвимостей

      Неа, вот тут вот неа. Уязвимости чекер не проверяет.
      Вообще то, что у других сервисы работали означает, что что-то делалось не так. Насколько помню проблемы у чекера были с easyas и с периодическим падением. А так работал более менее.


      1. shipko Автор
        24.07.2015 22:52

        Да, например ситуация с сервисом CTFgram оставалась загадкой до конца соревнований.
        А неработоспособность сервиса EasyAs компенсировалась наличием в ней критической уязвимости, которую многие команды эксплуатировали успешно.
        Как помнится, одной команде залили 13 ключей для доступа.
        Так что я считаю, что сервисы были неплохие.


  1. Proger10
    25.07.2015 17:53

    Есть такой вопрос к организаторам: во время открытия мероприятия говорилось что якобы победитель соревнования также едет на RuCTF без прохождения квалсов (что особенно актуально, если учесть что вместо них вроде опять будет RuCTFE =) ). Актуально?


    1. shipko Автор
      26.07.2015 20:48

      Мы сейчас в процессе обсуждения с руководством RuCTF.