PHDays 9: разбор заданий AI CTF

PHDays 9: разбор заданий AI CTF
Тема безопасности машинного обучения довольно хайповая последнее время и хотелось затронуть именно практическую ее сторону. А тут повод крутой — PHDays , где собираются самые разные специалисты из мира ИБ и есть возможность привлечь внимание к этой теме.

В общем-то мы сделали task-based CTF, с заданиями затрагивающих часть рисков безопасности применения техник машинного обучения.




Что такое CTF ???
Capture The Flag (CTF) — очень популярные соревнования по компьютерной безопасности (по популярности как kaggle-соревнования для датасаентистов). Есть два формата: тасковые (jeorpady) и сервисные (attack-defence). Мы делали тасковые.

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

В CTF традиционными категориями являются: web — веб-уязвимости, reverse — обратная разработка, crypto — криптография, stegano — стеганография, pwn — бинарная эксплуатация.

Команды (от 1 до n человек) решают задания и кто решит заданий на большее количество баллов — тот молодец.

Наше соревнование длилось чуть больше суток. Подразумевалось, что оно индивидуальное — команды из одного человека. Хотелось, чтобы в нем приняли участие именно люди на конференции, чтобы познакомиться лично. Поэтому задания должны быть решаемы за пару часов, не требовать много вычислительных ресурсов, однако трудные задания тоже должны быть — не все же должны выиграть :D

В итоге у нас было 6 заданий (седьмое было просто фановое), кажется, что для одного человека на сутки вполне достаточно. Сами задания, к сожалению, уже недоступны. Но может быть прочитав разборы, вам захочется поучаствовать в следующий раз?



Сразу хотелось бы выразить огромную благодарность ребятам, без которых этот CTF не состоялся бы: @groke и @mostobriv . Крутейшие идеи, технические решения и деплой-пати в ночь перед стартом — что может быть прекрасней, когда это в потрясающей компании?! :)

Stegano: Aww — 100




tiny.cc/6fj06y

Дан датасет из 3 391 картинок котиков и собачек.



Задание было отмечено как “Stegano”. Задания на стегано подразумевают сокрытие какой-то информации. Казалось несложно догадаться, что котики и собачки — это что-то бинарное. Немного подумав можно предположить, что эта последовательность котиков и собачек может быть каким-то двоичным сообщением. Пусть допустим, котики будут 1, а собачки — 0. Если вдруг не получится, можно просто поменять местами. Далее находим обученную модель, которая классифицирует котиков и собачек. Примеров уроков по классификации котиков и собачек много, как и обученных моделей после них — можно найти обученные модели на гитхабе. Берем обученную модель, в крайнем случае обучаем сами. Предсказываем каждое изображение как 0 или 1. И эту последовательность “байт” переводим в строку.

Авторское решение можно посмотреть тут
Alt text