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% расходов на занятия спортом и английским языком в рамках ежегодного бюджета;
-
Работу в аккредитованной ИТ-компании и возможность использования льгот Министерства цифрового развития.