Pull to refresh
149.51
Инфосистемы Джет
российская ИТ-компания

Чем запомнились Volga CTF 2020

Reading time 7 min
Views 3.4K
Всем привет! Меня зовут Маша, вместе с командой Jet CSIRT я помогаю крупным компаниям выстраивать защиту от злоумышленников. Помимо работы, учусь в Самарском национальном исследовательском университете им. Королева и помогаю в организации некоторых ИТ-мероприятий в своем городе. Недавно мне выдалась возможность побывать на Volga CTF — одном из крупнейших соревнований в области информационной безопасности, которые ежегодно проводятся в Самаре. В этом году мероприятие проходило с 14 по 18 сентября и отмечало свой 10-летний юбилей. На протяжении нескольких дней участники соревнования сражались за первенство, а представители бизнеса, образовательных учреждений, МИД РФ и ИБ-эксперты проводили для всех желающих семинары по актуальным вопросам и проблемам в сфере кибербезопасности. Под катом вас ждут подробности с мероприятия.



В этом году в финал Volga CTF вышли 23 команды, 10 из которых из-за сложившейся эпидемиологической обстановки участвовали онлайн. Было много иностранных команд, в том числе из Австрии, Португалии, Канады, Тайваня, Туниса, Италии и Германии. Некоторые команды уже не в первый раз участвуют в этих соревнованиях и бывали в России на очном туре.



В первый день состоялось официальное открытие соревнований, за которым последовали доклады ИБ-экспертов. Владимир Кононович поделился, как путём реверс-инжиниринга ему удалось получить исходный код некогда самого популярного упаковщика данных для домашних компьютеров Amiga — PowerPacker Cruncher. Основной его задачей было получить код на С, конвертировав его из ассемблера. Спикер рассказал о самых сложных кейсах, возникших в ходе работы, рассмотрел нюансы циклов и переименования переменных в С по сравнению с ассемблером, а также подчеркнул сложность реверса без использования Ghidra с ее декомпиляторами.





Илья Цатуров рассказал, как устроен язык запросов GraphQL, в чем он лучше Rest API, и как его неправильное использование в веб-приложении может создать множество ошибок и уязвимостей. Спикер перечислил варианты специфичных атак, например, Information Disclosure, Broken Access Control, DoS и Batching Attack, и способы их избежать. И если названия первых трех вариантов говорят сами за себя, то о Batching Attack лично я слышала впервые. Как оказалось, это тип атак, связанных с фичей Batching Queries, благодаря которой система может объединить в массив несколько запросов, пришедших за небольшой промежуток времени от одного пользователя, что при определенных обстоятельствах позволяет устроить своего рода брутфорс.



Николай Анисеня и Максим Костиков поделились опытом анализа защищенности банковских приложений, рассказали, как банки защищают деньги и личные данные пользователей и как злоумышленники могут эту защиту обходить. Из доклада спикеров участники мероприятия также узнали о багах аутентификации. Например, при двухфакторной аутентификации можно перебрать SMS-коды даже при ограничении количества попыток входа с одного IP-адреса, просто подменив его на стороне сервера. Были названы и некоторые логические уязвимости, в том числе неустойчивость к DoS-атакам и race condition (возможность при помощи множества запросов произвести несколько одинаковых транзакций). Спикеры также упомянули атаки на клиентскую часть мобильных приложений (к примеру, обход блокировки PIN-кодом при помощи брутфорса или отключения части интерфейса, что особенно актуально для Android-устройств) и рассказали, почему сливы банковских данных так важны.





Далее Никита Ступин в своем докладе подробно разобрал, как можно тестировать IoT-устройства, имея минимальные знания о бинарных приложениях и железе, и применять свои навыки, участвуя в программе Bug Bounty. Также он затронул тему радиохакинга, рассказав, что можно делать с интерфейсами, которые работают через Wi-Fi или Bluetooth. Например, у каждого устройства, предназначенного для продажи в Америке, есть FCC ID, с помощью которого можно узнать, на каких частотах оно работает. Спикер сосредоточился на использовании Bluetooth, так как на рассматриваемом им девайсе в качестве демона, запускавшего Wi-Fi, был опенсорсный hostapd, поиск уязвимостей в котором осложнялся существованием репозитория OSS-Fuzz.

«Я уже все посмотрел — вебку, беспроводные сети… Остались только бинарные приложения. И я хотел пофаззить», — рассказал Никита Ступин.

Целью фаззинга докладчик выбрал проприетарный UDP-демон, работавший по проприетарному протоколу, что было немного нестандартно, так как обычно фаззят что-то опенсорсное, где есть исходный код и что принимает файл на вход.

«Все это привело меня к тому, что вместо техники DBI (Dynamic Binary Instrumentation) я посмотрел в сторону Radamsa и начал фаззить, как это делали в 90-е или даже раньше, то есть это был Black Box Fuzzing».


Фрагмент презентации

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



Далее слушатели вместе с Денисом Макрушиным в режиме онлайн размышляли о том, что будет, если сервисы и автоматизированные контроли безопасности окажутся уязвимыми и будут использованы для атаки. Спикер рассказал об использовании GitHub для нахождения обходных путей подключения к коммерческим ИБ-решениям (например, Checkmarx), но не забыл и об опенсорсных проектах. Денис показал, каким образом open source может менять поверхность атаки, и привел примеры уязвимостей, найденных при анализе такого софта. В качестве одного из объектов для исследования он выбрал Flower — опенсорсный дашборд для менеджмента очередей в Python-скриптах. Последние могут хранить в оперативной памяти ценные данные и буферизовать их. При анализе этого инструмента докладчик нашел единственное поле, куда можно было ввести какие-либо данные, и даже оно содержало уязвимость.

После этого спикер прокомментировал шаги, с помощью которых можно предотвратить потенциальную утечку своей интеллектуальной собственности через партнеров или тех, кто работает с целевым продуктом.




Фрагмент презентации

Следующим в программе первого дня был Anatol Prisacaru aka shark0der. В формате онлайн спикер рассказал об уязвимостях в смарт-контрактах Ethereum, об арбитражных ботах, атаках с опережением и затронул тему флэш-кредитов.



После перерыва Иннокентий Сенновский рассказал, чем современные реализации фаззеров отличаются от ванильного AFL. Слушатели познакомились с терминами AFLFast, MOpt, Entropic и узнали, как они влияют на фаззинг, и чем воспользоваться, если придумали, как улучшить фаззинг, но переписывать AFL не очень хочется.



Завершающим выступлением был доклад Антона Кутепова и Ильяса Очкова. Спикеры рассказали (и немного показали), как с помощью open source проектов можно эффективно выявлять атаки, опираясь на данные из различных файлов логов. Используемый стек — ELK, Sigma rules, Atomic Threat Coverage, Sysmon, auditd. Лично мне как оператору первой линии реагирования на инциденты это доклад был ближе всего по профессиональной тематике.





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



После этого Егор Валов рассказал, о чём часто забывают, когда строят защиту в организации, и чем это оборачивается, а Сергей Белов описал несколько кейсов из жизни форензиков и пентестеров, а также озвучил наиболее часто встречающиеся ошибки и подводные камни при проектировании веб-сервисов:

  • использование JWT (JSON Web Tokens) для сессий авторизации вместо старых добрых cookies;
  • отказ от использования адресов, целенаправленно выделенных под авторизацию;
  • использование библиотеки imagemagick без «песочницы»;
  • отсутствие изоляции доменов для контента пользователей;
  • старт сессий с one-time token (к примеру, приходящего на e-mail);
  • излишнее использование криптографии (например, написание своих алгоритмов);
  • использование соединений server-2-server при наличии реальных пользователей;
  • использование паролей (по словам докладчика, будущее за сервисами, которые используют одноразовые коды аутентификации, например, QR-код в WhatsApp или одноразовые ссылки, как в Medium).



Рамазан aka r0hack DeteAct рассказал о том, как выбирать программу для Bug Hunting, с чего начать ее изучение, а также описал эффективные способы нахождения багов и пару интересных кейсов.



Далее Lan рассказал, как правильно выбрать или самостоятельно сконструировать антенну. Вместе с участниками он рассчитал и сконструировал простую антенну, настроил и протестировал ее, а также сравнил её характеристики с фирменной купленной антенной.



После небольшого перерыва онлайн-лекцию провел профессор из Бельгии Tom Van Goethem. Он рассказал про новый тип временных атак, которые используют объединение пакетов по сетевым протоколам и одновременную обработку запросов приложениями.



Позже онлайн-эстафету перенял Dan Demeter. Он показал несколько интересных приемов, которые можно использовать с Yara, объяснил, как можно классифицировать образцы вредоносных программ и как с помощью этого улучшить процесс поиска угроз.



Александр Барабанов представил обзор и сравнительный анализ архитектурных подходов, используемых для реализации аутентификации и авторизации в приложениях с микросервисной архитектурой. В частности, рассмотрел типовые подходы к реализации межсервисной аутентификации, пробрасывания контекста внешнего субъекта и авторизации в коде микросервера.



Третий день был полностью посвящен соревнованиям. Возникли небольшие технические проблемы, но участники мужественно перенесли это и сохранили боевой дух. Соревнования проходили в формате Attack-Defence: на протяжении всего дня команды применяли все свои навыки для атаки чужих сервисов и защиты своих.











В последний, четвертый, день состоялась официальная церемония закрытия, а также награждение победителей и призеров.







Хочется отметить, что такой формат мероприятий — хорошая возможность для новичков, студентов и начинающих специалистов приблизиться к индустрии информационной безопасности. Принять участие в лекциях по актуальным темам, узнать о кейсах из практики опытных ИБ-специалистов и задать им свои вопросы — все это можно было делать на протяжении нескольких дней и в одном месте. Такие ивенты помогают ребятам, которые находятся только в начале пути, увидеть перспективы развития в сфере ИБ. Как начинающему специалисту мне бы хотелось, чтобы такие мероприятия проводились как можно чаще.

Автор: Мария Волгина, специалист группы обработки инцидентов ИБ Центра мониторинга и реагирования на инциденты ИБ Jet CSIRT компании «Инфосистемы Джет»
Tags:
Hubs:
+15
Comments 3
Comments Comments 3

Articles

Information

Website
jet.su
Registered
Founded
1991
Employees
1,001–5,000 employees
Location
Россия