Reverse Engineer

Дата размещения вакансии: 09.09.2024
Работодатель: Positive Technologies
Уровень зарплаты:
з/п не указана
Город:
Москва
Преображенская площадь 8
Требуемый опыт работы:
От 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);
  • Хорошие навыки отладки двоичного кода;
  • Умение самостоятельно разрабатывать недостающий инструментарий.

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

  • Удобный график работы: удаленка/гибрид/офис;
  • Расширенный ДМС со стоматологией после первого месяца работы;
  • Шесть недель оплачиваемого отпуска в год;
  • Гибкое начало рабочего дня;
  • Умные, интересные, клёвые коллеги;
  • Внутренние клубы по интересам (outdoors, шахматный, книжный, винный, мафия и др.)
  • Частичная компенсация спорта;
  • Участие в форумах, семинарах, конференциях; обучение за счёт компании;
  • Возможность присоединиться к футбольной и волейбольным сборным, для которых мы арендуем спортивные площадки.