Positive Technologies

Reverse Engineer

Не указана
  • Москва
  • Полная занятость
  • Полный день
  • От 1 года до 3 лет

Positive Technologies — компания с двадцатилетней историей в сфере информационной безопасности.

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

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

Мы находимся в поиске Reverse инженера, которому предстоит заниматься анализом двоичного кода с целью поиска ошибок реализации, уязвимостей и/или восстановления логики работы программ. Объекты для анализа могут поставляться другими отделами, выявляться в ходе расследования инцидентов, анализа патчей и т.п. От соискателя ожидается пытливость ума, склонность к анализу и постоянное желание изучать новое.

Задачи:

  • Анализ логики работы отдельных частей приложения;
  • Написание функциональных прототипов, повторяющих работу реконструированного кода;
  • Анализ изменений, вносимых патчами;
  • Обнаружение логических ошибок и уязвимостей в двоичном коде;
  • Разработка PoC-эксплойтов и способов безопасной проверки на наличие/отсутствие уязвимости;
  • Анализ функционала вредоносного кода и документирование способов его взаимодействия со средой выполнения;
  • Документирование обнаруженных проблем.

Требуемые знания и навыки:

  • Понимание принципов проектирования и построения вычислительных систем;
  • Знание типов уязвимостей в бинарном коде, причины их появления, способы обнаружения и эксплуатации;
  • Хорошее знание архитектуры и внутреннего устройства OC хотя бы одной популярной операционной системы (Windows/UNIX/Linux/MacOS);
  • Желательно знание архитектуры и внутреннего устройства хотя бы одной популярной мобильной операционной системы (Windows/Android/iOS);
  • Хорошее знание языка ассемблера для как можно большего числа архитектур процессоров (x86, AMD64, ARM, AArch64, MIPS);
  • Желательно базовое знание байткода популярных сред выполнения (IL, Java);
  • Умение "читать" и понимать код на популярных языках программирования (С/C++/C#/Delphi/Java/Python/PHP/JavaScript);
  • Знание особенностей кодогенерации современных компиляторов;
  • Умение программировать на C/C++ и, желательно, на Python (для прототипирования);
  • Понимание особенностей применения криптографии и возникающих при этом проблем;
  • Технический английский (чтение документации);
  • Базовое знание алгоритмов и структур данных;
  • Базовое знание форматов файлов и методов компрессии;
  • Базовое знание сетевых протоколов и методов их анализа, стека TCP/IP (WireShark);
  • Базовое знание протоколов HTTP, SOAP;
  • Знание инструментов и методов анализа кода;
  • Владение IDA Pro и средствами ее расширения (плагины, IDAPython);
  • Хорошие навыки отладки двоичного кода;
  • Умение самостоятельно разрабатывать недостающий инструментарий.

Что мы предлагаем:

  • Бессрочный трудовой договор (испытательный срок — три месяца);

  • Удаленную/гибридную/офисную работу и гибкое начало рабочего дня;

  • Условия для постоянного развития: внутренние митапы, научпоп-лекции, экспертное обучение, олимпиады по программированию, обучение для руководителей и не только;

  • Возможность получать актуальные для твоей роли знания и опыт на внешних образовательных программах за счет компании;

  • Гибкий подход к отдыху: 28 календарных дней отпуска, доплату отпускных до полного оклада и 10 day off в год;

  • Заботу о здоровье: ДМС с первой недели работы, включая стоматологию, ежегодный чекап;

  • Компенсацию до 50% расходов на занятия спортом и английским языком в рамках ежегодного бюджета;

  • Работу в аккредитованной ИТ-компании и возможность использования льгот Министерства цифрового развития.