25 и 26 августа в Москве в центре LOFT HALL состоялась третья конференция по практической кибербезопасности OFFZONE 2022, где побывала и информационная служба Хабра в лице @ancotir и @IgnatChuker. Конференция объединила всех неравнодушных к сфере информационной безопасности: разработчиков, исследователей, самих безопасников и даже преподавателей и студентов технических вузов. В материале рассказываем, что было на мероприятии, какие активности на нём проходили, а также при чём здесь текила и татуировки.

Бейджи

Сразу начнём с бейджей. Обычно на мероприятиях выдаются стандартные пластиковые бейджи, отличающиеся друг от друга только дизайном под оформление того или иного форума. Организаторы OFFZONE решили, что это слишком скучно. Вдохновившись опытом крупнейшей в мире конференции для хакеров DEFCON, с 2019 года они изготавливают интерактивные текстолитовые бейджи, представляющие собой печатные платы с набором из четырёх батареек ААА. В 2019 году с бейджем в виде дискеты 3,5" можно было выделывать разное прямо на мероприятии, например, напаять DIP Switch для управления режимами работы бейджа или смонтировать 0,96” OLED-дисплей с интерфейсом I2C и пару перемычек.

В этом году бейджи-платы представляли собой полноценные микрокомпьютеры с питанием, светодиодами и платёжной системой для внутренней валюты конференции — очков Offcoin. Согласно данным от организаторов, на OFFZONE 2022 пришло более 2000 человек. То есть речь идёт о двух тысячах выданных бейджей, на которых за два дня мероприятия было заработано 475 тысяч оффкоинов. Их можно было менять на брендированную одежду, а также на сувениры от организаторов и партнёров форума.

Главной фишкой бейджа в этом году стала возможность кастомной разработки и создания аддона с собственным дизайном, под которые были предусмотрены два посадочных места. До первого июля проводился конкурс «красоты» среди аддонов посетителей форума, результаты которого объявили 15 июля в Telegram-канале мероприятия. Организаторы OFFZONE 2022 выделили информационной службе Хабра пару бейджей-плат, и через некоторое время @daniilshat расскажет о его технических особенностях, а также возьмёт интервью у разработчиков

Фотографии бейджей с разными аддонами, переданные гостями форума.

BI.ZONE Bug Bounty

Ключевым событием мероприятия стала презентация платформы BI.ZONE Bug Bounty, о которой @IgnatChuker писал 26 августа. Как указали организаторы, за 2 дня конференции на платформе зарегистрировалось 235 багхантеров, а сегодня там появилась публичная программа от BI.ZONE с выплатой за найденные уязвимости до 300 тысяч рублей. Вскоре на платформе появится публичная программа «Авито», единственного на текущий момент открытого партнёра BI.ZONE Bug Bounty, кроме самой BI.ZONE.

На платформе учитывается рейтинг, накопленный багхантерами на различных международных платформах, также тут представлены удобные инструменты для работы с отчётами как для исследователей, так и для компаний. Как указали в BI.ZONE, разработкой платформы занимались бывшие белые хакеры, которые, основываясь на собственном опыте, старались сделать сервис максимально удобным для работы. BI.ZONE обещает содействовать в решении спорных вопросов между компаниями и багхантерами, например, если исследователю не заплатили за уязвимость или заплатили меньше положенного.

BI.ZONE Bug Bounty стала второй отечественной платформой для багхантеров, представленной в этом году после ухода из России популярного зарубежного сервиса Hacker One. В мае Positive Technologies запустила собственный сервис The Standoff 365 Bug Bounty в ходе форума Positive Hack Days. При этом в BI.ZONE заверили, что планы по запуску своего Bug Bounty у компании были уже давно, но по разным причинам их не получалось реализовать до текущего момента. В основном задержки были связаны с проработкой нормативной базы. Поскольку компания изначально планировала конкурировать с HackerOne, необходимо было создавать более выгодные для багхантеров и компаний условия.

Образовательная часть

OFFZONE 2022 отметился довольно плотной программой образовательных лекций на различные тематики. Они проходили в нескольких залах, некоторые параллельно, поэтому прослушать все лекции было физически невозможно. Людей на лекциях было много, как и на самом мероприятии. В некоторых случаях приходилось стоять в дверях, чтобы послушать выступление спикера, поскольку в зале попросту не было места.

Ключевым спикером мероприятия стал Дмитрий Евдокимов, эксперт по обеспечению безопасности в контейнеризированных средах и основатель компании Luntry. Он рассказывал об эволюции кибербеза, как меняется ландшафт информационных систем и как это сказывается на обеспечении их безопасности. Выступало и множество независимых экспертов, например, Никита Панов — специалист по цифровой криминалистике и лидер сообщества 4n6.ru. В первый день конференции он рассказывал про скрытые в USB-кабелях опасности.

Также спикерами были затронуты темы повышения привилегий на устройствах Apple, APT-атаки, сетевые атаки на протоколы FHRP, истории из пентестерской практики. Эксперты разбирали RFID, рассказывали о моделировании угроз, обсуждали UEFI (unified extensible firmware interface) и разработку модулей с отладкой, механизмы аутентификации и авторизации в облаках Microsoft Office 365 и многое другое. Полную программу и информацию о присутствовавших спикерах можно посмотреть на сайте мероприятия

Всего за два дня конференции на пяти треках докладов и трёх мастер-классах выступили 68 экспертов из VK, «Авито», «Тинькофф», «Лаборатории Касперского», Positive Technologies, «Сбера», BI.ZONE и не только.

Игры, конкурсы и другие активности

На OFFZONE в этом году было доступно очень много разных активностей: мероприятия от компаний-партнёров, турнир по этичному хакингу CTFZone, конкурс HACK in 15 min, крафтовая зона для любителей паять и даже возможность бесплатно набить татуировку или покурить кальян. Начнём по порядку.

Практически за все активности посетителям начислялись оффкоины, которые, как уже было сказано, можно было потратить на мерч. В одном зале располагалось сразу несколько компаний, проводящих различные конкурсы. Например, на входе гостей со своим стендом встречала DeteAct. Компания проводила конкурс HackQuest со взломом систем различной степени сложности из категорий web, infra, mobile, smart contracts. Каждые два часа открывался новый таск, приближенный к реальной практике анализа защищённости. Первый, кто решал задание, получал от компании мерч и запас оффкоинов.

На мероприятии был стенд «Лиги Цифровой Экономики», запустившей два CTF по web и мобильной разработке. Специалисты компании по мобильной разработке сделали ещё один стенд в Community.Zone в отдельном зале, выделенном под общение комьюнити-партнёров. Рядом стоял стенд компании Swordfish Security, организовавшей Web CTF, рассчитанный на начинающих безопасников и разработчиков.

На стенде Positive Technologies присутствовала своя система, позаимствованная с The Standoff.  Участникам конкурса необходимо было нанести максимальный ущерб городу Standoff Crash Camp в виде взлома критически важных объектов инфраструктуры. Победителю, набравшему больше всего баллов, обещали выплатить 100 тысяч рублей и вручать ценный мерч. Всем остальным участникам начислялись оффкоины. Также Positive Technologies периодически читала лекции на тему кибербеза.

Одним из самых ярких стендов мероприятия стал стенд компаний Angara Security и «Гарда Технологии», на котором проходил киберспортивный турнир по аркадной игре «Кибер Путешествие». Цифровому аватару участника необходимо было прийти к финишу раньше соперника, собирая по пути оффкоины. Задачу усложняли кибератаки, замедляющие аватар, и вредоносное ПО, крадущее урожай оффкоинов. 

На своём стенде «Сбер» подготовил две активности: защитить документ по готовым инструкциям Sber IRM и в рамках работы с сервисом маркирования документов извлечь идентификационную метку, которой отмечают разные экземпляры документа для отслеживания утечек. «РТК Солар» расположился в большой отдельной зоне Solar Lounge.Zone с мягкими креслами, лимонадом и кальяном. Гостям нужно было играть в интерактивную игру Solar Games со своего устройства. Участники отвечали на вопросы на логику и эрудицию, выполняли задания по пентесту и OSINT, а также проходили короткий опрос об «РТК-Солар».

Кстати про игры! На площадку Game.Zone компания Kaspersky привезла PS4, PS5 и Dendy, на которых можно было поиграть в известные файтинги, гонки и симулятор готовки в ресторане Overcooked. За победу в особых турнирах участники получали аддон к бейджу конференции.

Что касается активностей в остальных зонах, то в Payment Village проходило соревнование по взлому онлайн-банка, банкоматов, смарттерминалов и платёжных карт. В рамках CTFZone 2022, проходящей в Community.Zone в формате Jeopardy, командам дали 48 часов на выполнение заданий из категорий web, crypto, pwn, reverse, osint. В Jock Wars нужно было написать бота и загрузить в игру, чтобы сразиться с другими участниками за место в общем рейтинге и оффкоины. 

В Community.Zone находился стенд конкурса Hack in 15 minute с забавными правилами. Участникам отводилось 15 минут на взлом системы. За каждую дополнительную минуту начислялся штраф в виде рюмки текилы, после употребления которой хакер должен был продолжить взлом. Весь процесс транслировался на экран стенда. Также на мероприятии была тату-зона, где тату-мастер бесплатно набивал татуировку любому желающему. Гостям нужно было выбрать тату из набора макетов, но если кто-то решался набить лого OFFZONE, получал право на бесплатное посещение всех последующих конференций OFFZONE. Также посетители могли попробовать себя в роли тату-мастера, тренируясь на большом куске кожи на столе.

Напоследок расскажем немного о крафтовой зоне мероприятия и воркшопах. Любой пришедший на OFFZONE мог посетить Craft.Zone, чтобы спаять девайс для защиты гаджетов от несанкционированных подключений или аддон для бейджа-платы. Несмотря на то, что в зоне не было ни кальянов, ни текилы, все посадочные места в ней были заняты. В воркшопах также царила рабочая атмосфера. Участники проходили серию практических занятий по изучению эксплуатации ошибок ядра в современных дистрибутивах Linux для архитектуры x86-64. В рамках занятий посетители получали образы виртуальных машин с инструментами и файлами, а также пошаговые инструкции для практических заданий. Подробнее можно почитать на сайте конференции.

В целом конференция прошла очень насыщенно. Как Хабру рассказали в BI.ZONE, компания ставила целью сделать скорее неформальное мероприятие, чем форум для бизнесменов и предпринимателей. Нам кажется, что им это удалось. На OFFZONE 2022 было много интересных конкурсов и лекций, мест для отдыха и простого общения с коллегами по ремеслу. Насыщенная программа позволяла провести эти два дня с максимальной пользой.

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


  1. hedger
    29.08.2022 23:00
    +18

    Мы чуть-чуть подломали экономику бейджей. Стали разбираться, как работает вся эта система, и выяснилось, что

    1) в качестве "мозгов" стоит STM32F070F6P6, залоченный от чтения (RDP1);

    2) после перепрошивки бейдж не теряет баланс;

    3) у всех бейджей одна и та же прошивка.

    Также был публично доступнен "банкомат" рядом с киоском мерча за оффкойны (валюту бейджей конференции), который отображал баланс приложенного бейджа. А ещё на бейдже были заботливо выведены и даже подписаны пины SWD - отладочного интерфейса под ARM.

    Проследив выводы разъёма для "пополнения" до чипа, предположили, что на него выведен UART. Гипотеза подтвердилась с помощью USB-UART конвертера. Бейдж после включения постоянно шлёт в этот порт на 115200 бод посылками по 40 байт, которые меняются между включениями одного бейджа, но имеют между собой общее начало. А у разных бейджей посылки совершенно отличаются друг от друга.

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

    У многих микроконтроллеров от ST с завода есть серийник, расположенный в ROM. Он формируется по координатам чипа на пластине с завода, а также номеру партии. Логично было бы предположить, что этот серийник и используется в качестве исходных данных для формирования пакета на UART. Пожертвовав во благо науки одним бейджем, понизив на нём RDP1 до RDP0 (попутно стерев с него прошивку механизмами безопасности чипа), нашли в ROM 12 байт айди. Впоследствии оказалось, что для чтения айди можно было бы и не понижать RDP, но было уже поздно.

    С помощью CyberChef практически сразу выяснилось, что начало пакета - 12 байт - совпадают с SHA1(12 байт id). Более того, работала replay-атака на проверку баланса - заполучив пакет с бейджа, можно было выдать его же на "банкомат" и увидеть баланс оригинального бейджа.

    С помощью пары других бейджей выяснили вариативность айдишнков. Из 12 байт менялось всего 4 - 0, 2, 4 и 10, причём диапазон удалось снизить всего до 5 миллионов айди, большинство которых лежало в самом начале диапазона (принадлежали к основной партии чипов). С помощью простейшего скрипта получилось "сбрутить" айди соседнего бейджа, для которого была известна только авторизующая посылка. Но полный алгоритм формирования посылки оставался неизвестным. Можно было бы, конечно, полагаться на случайность и недостаточную валидацию данных сервером баланса, но хотелось большего.

    В ходе попыток чтения с помощью JLink по SWD разных бейджей в полевых условиях нам то ли повезло подглитчить питание чипа в момент его запуска (нет), то ли попался экземпляр без защиты, но очередной подопытный показал в утилите JMem валидное состояние флеша без запроса на стирание из-за RDP1. Сразу же сдампили с него прошивку, закинули в Ghidra + SVD loader. Обнаружили ожидаемое - SHA1 из PolarSSL, чтение 12 байт аппаратного айди и многое другое по формированию исследуемой нами подписи. БОльшая часть происходящего была упакована в одну функцию и анализу с наскока не поддалась.

    Мы параллельно решали CTF от одного из банков, представленных на конференции, и имели некоторые успехи в нём, так что уделять значительную часть времени детальному реверсу не получалось. Поэтому, было принято решение попробовать пропатчить бинарник прошивки так, чтобы айди читался не из ROM-области, а прямо из записываемой части флеша.

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

    Доступ к онлайн-апи для работы с балансом был на банкомате и на стендах всех партнёров. Но этот апи был закрыт авторизацией через веб-форму, и, несмотря на возможность получить куки для доступа к нему, решили никого не подставлять.

    На этом моменте мы обратились к железячным представителям оргов с вопросом, что бы они посчитали взломом экономики. Они сказали, что таковым будет считаться возможность представиться чужим бейджем и даже выдали 12 байт SHA1 от своего личного. По SHA1 и перебором по маске за несколько секунд нашли айди чипа, после чего он был зашит в "вылеченный" бейдж и представлен оргам. Которые подтвердили успех решения задачи и наградили всех причастных приличным количеством оффкойнов.


    1. ekzi
      30.08.2022 13:43
      +4

      Привет, кайф, вы большие молодцы. В следующий раз усложним вам задачу :)

      https://github.com/AV1ct0r/badges/blob/main/offzone2022/README.md это тоже ваша публикация, получается? Для нас было сюрпризом, кстати, что U_ID в том числе зависит от координаты чипа на пластине.


      1. hedger
        30.08.2022 14:52
        +3

        Публикация не наша, и инструменты в ней другие - там IDA+ST-шное железо и софт, у нас Ghidra и JLink. И там добыча прошивки хардкорнее. Но итоговое решение с патчингом адресов, фактически, такое же.

        А перебор со знанием алгоритма U_ID можно было бы реализовать быстрее, ограничив диапазоны отдельных байт до размеров пластины.


        1. ekzi
          30.08.2022 15:06
          +3

          Значит, у нас как минимум две команды, которые пришли к результату. Про размер пластины реально красиво. Нужно читать даташиты, там все написано черным по белому, на 1121 странице :)