Всем привет! Меня зовут Дмитрий Скляров, я руковожу отделом анализа приложений в Positive Technologies и сегодня хочу рассказать вам о нашем новом проекте — ресурсе для любителей обратной разработки reverseveryday.com.

Если честно, идея этого проекта не моя, и к реализации я тоже не имею прямого отношения. Кажется, я предложил название, но это не точно 😉 Однако я его всячески одобряю и поддерживаю и сейчас попробую объяснить почему.

 

Немного истории

Чтобы добиться успеха в сложных областях (а именно такой я считаю информационную безопасность), очень полезны оказываются два качества — любопытство и интерес к решению новых задач. Причем именно к процессу решения, а не к результату, ведь получать положительный результат нравится почти всем. В жизни приходится все время узнавать что-то новое, и хорошо, когда изучение продолжается не потому, что «задали на уроке», а потому что это доставляет радость. Со временем знаний накапливается столько, что они легко конвертируются в интересную работу (а иногда даже с высокой зарплатой).

Когда у меня дома появился компьютер, и я понял, что reverse engineering меня очень увлекает, я стал искать способ «прокачаться» в этой области. Хорошо учиться, когда есть детально проработанный учебный курс, выверенная годами методика, доступны учебные пособия и рядом преподаватель, который помогает постигать науку. Но у меня не было ничего из этого.

Более того, когда меня сейчас спрашивают: «Куда лучше всего пойти учиться реверсу?», я не знаю, что ответить. У меня в голове только один надежный алгоритм, как прокачаться в RE, и он состоит всего из трех шагов:

  1. Выбрать задачу.
  2. Решить ее.
  3. Повторить с начала.

Если с решением возникают сложности — можно попросить подсказку. Но решить без подсказки гораздо интереснее 😉

И получается, что для эффективного развития надо где-то брать задачи.

 

Где и как тренируются реверсеры

В конце 90-х, когда я был студентом и аспирантом, я не знал, что такое CTF (capture the flag), но уже тогда в интернете существовали сайты с challenges — подборками интересных задач. Сейчас я могу вспомнить названия четырех из них — там я провел много прекрасных минут (точнее, дней и недель), решая задачи:

Примечательно, что первые два ресурса живы до сих пор!

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

Гораздо позже, начиная с 2010 года, я стал ездить с докладами на конференции и участвовать в конкурсах на реверс, которые там проводились. Я выиграл конкурсы на Confidence 2010 и PHDays 2011 и 2012. Выигрывать призы, занимаясь любимым делом, вдвойне приятно. Но есть один негативный момент: обычно конкурсные задачи не решаются за 15 минут, и вместо посещения докладов и общения с интересными людьми ты сидишь, уткнувшись в дизассемблер.

Поэтому, когда в августе 2012 года я стал работать в Positive Technologies и начал самостоятельно организовывать конкурс Best Reverser для PHDays, я предпочел, чтобы он проходил не во время конференции, а перед ней. Тогда же я узнал про CTF и познакомился с классными ребятами, которые в него играли, и даже сам поучаствовал несколько раз. Но CTF — это все-таки состязания с соперниками. Чтобы достичь в этом соревновании успехов, надо уделять ему много времени, причем не только тогда, когда удобно мне.

В 2013 году я узнал о существовании сайта checkio.org, где нужно было решать задачи, связанные с программированием на Python (сейчас там есть еще и TypeScript, и сайт поддерживает русский язык). Я примерно месяц все свободное время тратил на решение этих заданий. В какой-то момент пришлось сказать себе: «СТОП! Ты же не собираешься зарабатывать программированием на Python?».

Но предлагаемый там формат показался мне идеальным. После того, как я решал задачу, мне можно было посмотреть чужие решения и взять из них что-то полезное. И при этом я соревновался не с другими участниками, а сам с собой, в комфортных для меня условиях. А больше всего меня покорило то, что в какой-то момент мне предложили создавать свои задачи (правда, я так и не воспользовался этой возможностью).

 

Что в итоге: новая библиотека задач для реверс-инженеров

И вот по прошествии нескольких лет работы в Positive Technologies у меня возникла идея сделать ресурс с задачами на реверс, который будет активен не пару недель перед PHDays и не полтора месяца в году (как, скажем, flare-on.com), а непрерывно.

Платформа сделана на основе CTFd, хорошо знакомой активным CTF-игрокам. С точки зрения пользователя она крайне проста в использовании и предоставляет все, что необходимо для размещения задач и мониторинга рейтинга участников.

Мы надеемся, что reverseveryday.com будет активно развиваться, и планируем регулярно добавлять новые задания, разработанные в Positive Technologies. Мы не будем добавлять чужие задачи без спросу (есть такая штука — авторские права), но если авторы задач для CTF (подходящих под формат площадки) захотят и позволят разместить их — мы с радостью это сделаем. Ну и надеемся, что участники будут иногда предлагать свои оригинальные задачи.

 

Для кого задуман reverseveryday.com?

Для всех, кто интересуется reverse engineering. И для новичков, кто делает первые шаги. И для профессионалов, кто зарабатывает реверсом себе на жизнь (но не потерял любопытства и страсти к решению головоломок). И для игроков в CTF (хотя у нас не планируется устраивать состязание с другими игроками и мы, разумеется, знаем про ctftime.org).

 

Какие правила участия?

Все достаточно просто. Посмотреть и скачать задания можно без регистрации, однако, чтобы сдать решение и получить за него положенные очки, нужно зарегистрироваться. После сдачи хотя бы одного задания ваше имя будет отображаться на scoreboard. Конечно, мы не очень хотим, чтобы решения на задания выкладывались в Cеть, но явно запретить и пресечь это не получится, поэтому надеемся на вашу честность.

 

Зачем это Positive Technologies?

Мне очень понравилась идея компании Mail.ru, которая применялась для их проектов «Технопарк», «Технотрек», «Техносфера». Вкладывать силы в развитие высококлассных специалистов выгодно — даже если они не пойдут к тебе работать. Потому что умных людей всегда не хватает 😉

До встречи на reverseveryday.com!

2 комментария

  1. Аватар

    WellFedCat

    31.05.2020 в 12:24

    Интересно, попробую. Дмитрий вы бы подкинули ссылок на статью для начинающих, литературки. Последний раз я интересовался реверсингом очень много лет назад, сейчас интересно как раз в качестве тренировки. Авось что и выйдет )

    • Dmitry Sklyarov

      Dmitry Sklyarov

      17.06.2020 в 20:18

      Побуду Капитаном Очевидность, но найти материалы по реверсу совсем не сложно. Однако, нет такой книжки, прочитав которую становишься хорошим реверсером.
      Начинающим я обычно рекомендую Дениса Юричева https://beginners.re/

Оставить мнение