Вакансия: реверс-инженер::Журнал СА 11.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6406
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7110
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4391
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3085
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3880
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3895
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6385
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3231
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3526
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7358
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10721
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12443
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14092
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9191
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7140
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5445
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4681
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3494
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3210
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3449
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3090
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Вакансия: реверс-инженер

Архив номеров / 2014 / Выпуск №11 (144) / Вакансия: реверс-инженер

Рубрика: Карьера/Образование /  Рынок труда

Вакансия: реверс-инженер

В создании программных продуктов для информационной безопасности большую роль играют реверс-инженеры. Эта редкая специальность, освоить которую трудно, пройдя лишь обучение в вузе, – необходима практика. Каких специалистов хотят видеть компании на этой позиции?

  1. Какими знаниями и навыками должен обладать Reverse Engineer?
  2. Каков инструментарий Reverse Engineer?
  3. Каковы ваши требования к уровню образования потенциальных сотрудников?
  4. Какие требования предъявляются к опыту работы?
  5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

ВАСИЛИЙ ЖДАНОВ, ведущий разработчик и реверс-инженер в Parallels

1. Реверс-инжиниринг имеет смысл в том случае, когда одной компании может понадобиться работать с продуктами, разработанными в другой. Есть ситуации, когда определенные и стандартные процедуры, например, описанный API, не работают или не предусмотрены. Например, для устранения какой-то накладки в работе ОС нужно разобраться, как в принципе эта ОС организована изнутри.

Нашей компании пришлось прибегнуть к этой чудовищно сложной процедуре, когда создавали решение контейнерной виртуализации Parallels Virtuozzo Containers для Windows и софт для частных пользователей Parallels Desktop для Mac. В последнем случае нужно было совмещать использование разных ОС одновременно, без перезагрузки, таких действий, как копирование и вставка из ОС Windows в Mac OS X и тому подобных операций.

Есть компании, где реверс-инжиниринг – это часть бизнес-процесса, и тогда уже не обойтись без опытного реверс-инженера или даже команды. В голову сразу приходят, например, антивирусные компании, где требуется исследовать вредоносный код. Или компании, занимающиеся восстановлением данных с «полетевших» флешек, где бывает необходимо изучать алгоритмы трансляции, применяемые в контроллерах.

2. Инструментарий зависит от решаемой задачи, и он меняется в зависимости от глубины «раскопок». Иногда удается обойтись просто мониторами оконных сообщений, файловых систем, процессов, реестра и т.п. (Spy++, Process Monitor, fseventer, Event Taps Testbench) или обычными отладчиками (WinDbg, lldb). Когда нужно «залезть» по уши, использую небезызвестный IDA.

3. Здесь мы просим опыт работы от трех лет. В профессии реверс-инженера важна практика, практика и еще раз практика. Можно сходить на курсы, послушать теорию, порешать задачи и благополучно все забыть. Особенно ценным в любой работе (реверс-инжиниринг – не исключение) – это умение своевременно находить нужную информацию и уметь ею пользоваться. А курсы или какое-то особое образование только дополняют картину по соискателю. В университете я сдавал Си по шпаргалке, но уже имел за плечами найденную уязвимость в чипах тогдашних таксофонных карт.

4. О практике я уже говорил. Добавлю (и полагаю, что не открою Америку, если это скажу), что нужно обладать интересом к этой работе, желанием учиться. Когда я пришел работать в Parallels, то с трудом представлял, как осуществляется реверс-инжиниринг программ, поскольку до этого «реверсил» только «железо», да и это было лишь моим хобби. Реверс-инжиниринг программ я начал осваивать уже здесь.

Например, через реверс-инжиниринг пришлось реализовывать такую функцию, как отображение флешки, втыкаемой в компьютер Mac, в той панели Windows, где отображаются обычно все присоединяемые девайсы. Стандартными способами оказалось невозможно это сделать – пришлось поработать методами реверс-инжиниринга с «Проводником», и все получилось.

5. Безусловно. Поскольку наша команда работает над самым известным на рынке решением для виртуализации компьютеров Apple – Parallels Desktop, то у нас все задачи весьма специфические. Например, когда я попал в эту компанию в далеком 2006 году, первой моей задачей было сделать так, чтобы при открытии пользователем меню «Пуск» оно отображалось в требуемой нам позиции: возле иконки Parallels Desktop в панели Mac OS X. А чего стоит реализация режима Coherence (возможность видеть и работать с Windows-программами на Mac так, как будто это родные приложения OS X), созданного нашими ребятами? Она держится на реверсе чуть менее чем полностью.


ДМИТРИЙ СКЛЯРОВ, ведущий аналитик отдела перспективных разработок Positive Technologies

1. Главный навык – желание и способность отыскивать, усваивать и систематизировать новое. Работа в области RE – это постоянное исследование.

Хороший реверсер обычно должен быть и хорошим инженером – он обязан понимать, на каких принципах строятся те системы, которые ему придется анализировать.

Из прикладных знаний – особенности функционирования ОС и их стандартных библиотек. Языки программирования.

Принципы работы компиляторов. Особенности кодогенерации разных средств разработки. Методы оптимизации, используемые компиляторами.

Язык ассемблера (для разных платформ). Принципы функционирования виртуальных машин.

Основные алгоритмы и структуры данных (сортировка и поиск, криптография, деревья, списки и т.п.).

2. Нельзя не упомянуть IDA Pro – лучший на сегодняшний день дизассемблер, поддерживающий большое количество разных процессоров.

Кроме этого, различные декомпиляторы и дизассемблеры, программы-мониторы, логгеры событий и т.п.

Ну и, разумеется, реверсер должен уметь сам создавать недостающие инструменты, иногда просто средства автоматизации, позволяющие быстрее выполнить рутинную часть работы.

Но, если придется, и свой дизассемблер для нестандартной системы команд, и драйвер ядра, если без него не удается получить какую-то информацию…

Для разработки большинства новых инструментов обычно хватает языков программирования Си и Питон. Это тоже часть инструментария J.

3. На реверсеров в институтах не особо учат, так что специальные знания соискатель скорее всего должен был получить где-то еще.

Техническое или математическое высшее образование явно не повредит, но, наверное, можно обойтись и без него.


ДЕНИС СИЛАКОВ, начальник отдела технологических разработок и сопровождения компании «РОСА»

1. Reverse Engineer – понятие достаточно общее, обратный инжиниринг может применяться в совершенно разных областях и соответственно требовать разных навыков. Например, в «НТЦ ИТ РОСА» такое направление деятельности актуально при поиске потенциальных ошибок и уязвимостей в программных комплексах, при отладке программ и при выявлении причин их сбоев.

Также мы приветствуем людей, способных заставить работать в наших ОС ту или иную аппаратуру, чья поддержка в Linux изначально не закладывалась, а помощи от разработчиков аппаратуры ждать не приходится. Например, такое случается с устройствами, драйверы для которых писались на заказ под конкретную ОС, которая на данный момент морально устарела.

Во всех этих сферах от инженера потребуется умение детально разобраться в принципах и алгоритмах работы программы, исходный код которой недоступен.

С технической точки зрения необходимы навыки работы с отладчиками и дизассемблерами (как в Linux, так и в Windows), а также глубокое знание внутреннего устройства ОС – принципов работы ядра и драйверов, формата исполнимых файлов и так далее.

Если инженеру предстоит работать с аппаратурой, то полезным будет знакомство со специализированными открытыми инструментами, используемыми для изучения работы конкретных видов аппаратных устройств, например, инструментарием REnouveau (применяемым для анализа карт NVIDIA разработчиками свободных драйверов Nouveau).

2. Основной инструментарий Reverse Engineer – это отладчик и дизассемблер. В Linux основным средством отладки является консольный gdb, хотя есть и достойные графические интерфейсы к нему, например, отладчик из IDE CodeBlocks.

При необходимости дизассемблирования и детального погружения во внутренности программы у нас сейчас используется инструментарий Radare («The reverse engineering framework», radare.org), который поддерживает все популярные ОС и аппаратные архитектуры. Radare используется совместно с Boomerang – декомпилятором, преобразующим код в программу на языке C. Boomerang также поддерживает как Linux, так и Windows.

Наконец, нередко возникает необходимость анализа сетевого трафика, генерируемого программой. Для этой цели мы используем Wireshark.

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

3. Наличие диплома одного из известных технических вузов будет плюсом при первоначальном отборе кандидатов, однако его вполне может заменить ссылка на успешно реализованный проект. В любом случае кандидату на эту должность не избежать тестового задания.

4. При найме Reverse Engineer мы бы предпочли увидеть человека, тесно работающего в этой сфере хотя бы год. Формальный опыт работы не обязателен – достаточно будет и учебных проектов, главное – хорошо ориентироваться в предметной области и инструментарии.

5. Основным направлением работы «НТЦ Ит РОСА» является создание дистрибутивов Linux. Когда заходит речь о позиции Reverse Engineer в компании, занимающейся разработкой Linux, то речь обычно идет об обратном инжиниринге программ и драйверов, написанных под другие ОС; как правило, имеются в виду различные представители Windows, хотя можно встретить DOS и коммерческие UNIX. Поэтому кандидат на такую позицию должен обладать хорошим знанием внутренностей как минимум двух ОС.


БОРИС ЯМПОЛЬСКИЙ, руководитель группы сменных антивирусных аналитиков «Лаборатории Касперского»

1. Знание языков программирования Assembler x86, С/С++.

Умение работать с чужим кодом, опыт анализа исполняемых файлов для Win32.

Уверенное владение инструментами IDA Pro, WinDBG/OllyDbg.

Хорошее знание архитектуры ОС семейства Windows, Win32 API, формата PE файлов.

Технический английский.

Желателен опыт работы с недокументированными функциями и внутренними структурами ОС Windows, понимание принципов и механизмов работы в Ring-0.

Желателен хороший математический аппарат, способность к нестандартным решениям, аналитический склад ума, внимание к деталям.

2. Дизассемблер (IDA Pro), отладчик (WinDBG/OllyDbg).

3. Идеальный вариант – кандидат с техническим высшим образованием. Чаще всего речь идет о таких специальностях, как Математика/Кибернетика, Информатика/Информационные системы, ИБ/Защита информации. Причем это может быть студент старших курсов, таких примеров у нас в компании много. Также у нас работают несколько человек с гуманитарным или средним техническим образованием, но это скорее исключение.

4. Никаких. Главное для нас – желание человека учиться и становиться специалистом в области Reverse Engineering.

5. Да, в нашем случае обязательно наличие незапятнанной репутации. В «Лаборатории Касперского» действует принципиальная установка не брать на работу бывших хакеров.


СЕРГЕЙ НИКИТИН, заместитель руководителя лаборатории компьютерной криминалистики и исследования вредоносного кода в Group-IB

1. Прежде всего, это специфический склад ума, который заключается в любви разбираться во всяком непонятном и загадочном. Современные вирусописатели являются профессиональными киберпреступниками, пишут код на очень высоком в плане профессионализма уровне, активно используют методы обфускации, упаковки и антиотладки.

Что относительно знаний: остро необходимо знать WinAPI, в том числе и всякие недокументированные подробности.

2. Классика – это IDA PRO + HexRays и OllyDbg.

3. На самом деле требований к академическому образованию нет, необходимы навыки реверс-инжиниринга. Ну а вообще любой реверсер – это в том числе и отличный системный программист, так что высшее техническое образование не помешает.

4. Он должен иметь хотя бы базовые знания работы исполняемых файлов и навыки работы с отладчиками и дизассемблерами.

5. Относительно Group-IB это в первую очередь опыт исследования вредоносного кода. Как работают бот-сети? Каким образом можно заразить компьютер? Каким образом вредоносная программа может быть записана в автозагрузку? На все эти вопросы реверс-инженеру необходимо найти ответы.


ЮРИЙ ВОЛОШИН, менеджер продукта компании «1С-Битрикс»

1. Данная профессия подразумевает наличие огромного и разнообразного набора знаний. Человек должен быть значительно больше, чем просто профессионалом. Разбор чужого кода и попытка понять, с какой целью этот код был написан, – очень нетривиальная задача.

2. В арсенале у специалиста – разнообразные декомпиляторы, дебагеры, распаковщики кода и инструменты для анализа кода. Инструментарий будет различаться в зависимости от того, на чем написан продукт.

3. Образование, по сути, не сильно важно. Скорее важно наличие опыта.

4. Выше уже было сказано, что в данной профессии опыт – это самое ценное. Причем не просто опыт как стаж работы, а успешные реализованные проекты, которые выполнял данный специалист.

5. Конечно. Если это разбор кода на PHP, то уровень будет совершенно иной, чем если, например, нужно разобрать ядро и код iPhone. И требования соответственно совершенно разные.

Также продукт для разбора может быть представлен в виде исходного кода, даже если он имеет возможность компиляции. И тот же продукт может быть дан для разбора без исходного кода. Соответственно это тоже потребует разного уровня знаний.

Подготовил Игорь Штомпель


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru