Developer C++ (CoreTech)

Дата размещения вакансии: 22.11.2024
Работодатель: Лаборатория Касперского
Уровень зарплаты:
з/п не указана
Город:
Москва
Требуемый опыт работы:
От 3 до 6 лет

CoreTech — это R&D внутри департамента исследований и разработки Лаборатории Касперского. Мы создаем фундамент, на котором строится разработка продуктов и сервисов нашей компании. В нашем отделе есть несколько основных направлений деятельности в которые сейчас открыты вакансии:

1. Instrumental PDK - Команда, работающая в составе отдела разработки базовых компонентов (Core Tech). Наши основные задачи — разработка библиотек C++ общего характера, в том числе платформенно-зависимых библиотек. Мы пишем код для всех операционных систем, на которых работают продукты компании.

Для чего Вы нам нужны:

  • Разработка внутренней библиотеки стандартных примитивов, облегчающей жизнь сотням разработчиков;
  • Поддержка фреймворков, обеспечивающих взаимодействие компонент во всех продуктах компании;
  • Разработка компонентов, обеспечивающих обновление антивирусных баз у миллионов пользователей по всему миру.

Что Вам необходимо для этого:

  • Отличное знание С++, STL;
  • Знание базовых алгоритмов и структур данных;
  • Понимание принципов разработки многопоточных программ;
  • Способность работать с большим объемом чужого кода;
  • Аккуратность;
  • Умение писать код: Структурировать (способность разбить на сущности, способность определить их обязанности), умение именовать сущности;
  • Обучаемость и способность в свою очередь чему-то научить коллег.

Еще желательно:

  • Знание системного API (Windows, POSIX);
  • Знание boost;
  • Знание сетевых протоколов;
  • Понимание принципов криптографии;
  • Владение WinDbg (разбор дампов, низкоуровневая отладка);
  • Опыт работы и системой сборки CMake;
  • Опыт разработки тестов с помощью фреймворка GMock/GTest;
  • Опыт работы с системами контроля версий (Git, Perforce);
  • Опыт программирования на Linux/Mac.

2. Antimalware PDK – команда, развивающая технологии защиты в составе отдела разработки базовых компонентов (Core Tech). Команда разрабатывает ключевые компоненты обнаружения угроз, аномалий, уязвимых приложений и сервисов ОС, нейтрализации выявленных угроз. Разрабатываемый функционал является неотъемлемой частью большинства продуктов компании, используемых на различных ОС.

Основные сценарии:

  • Real-time protection - мониторинг активности системных и пользовательских служб и приложений (открытие файлов, запуск процессов и т.п.), предотвращение активации угроз в режиме реального времени;
  • On-demand scans - сканирование заданных областей на защищаемом устройстве (файлов, директорий, объектов автозапуска, памяти и т.п.);
  • Обработка обнаруженных угроз - удаление, лечение, лечение активного заражения, бэкап и восстановление пользовательских данных;
  • Оптимизация сценариев сканирования - поддержка исключений, оптимизация потребляемых ресурсов;
  • Vulnerability assessment - обнаружение и обновление потенциально уязвимых приложений.

Чем Вы будете заниматься:

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

Что мы ждем от кандидата:

  • Отличное знание C++ и современных стандартов (11/14/17);
  • Опыт разработки многопоточных приложений;
  • Опыт разработки для ОС Windows. Будет плюсом опыт работы с Linux, MacOS;
  • Умение работать с отладчиками и анализировать дампы (WinDBG, gdb, т.д.);
  • Навык проведения код-ревью;
  • Опыт работы с системами сборки (CMake и т.п.);
  • Быть готовым к погружению в большую кодовую базу, к анализу логов для поиска причины проблемы;
  • Желание писать структурированный, понятный код, покрывать его тестами и понимание зачем это нужно.

3. Application Control PDK - команда занимается разработкой компонентов:

  • Host Intrusion Prevention – система предотвращения вторжений, основанная на правилах контроля приложений (контроль активности, IPC взаимодействий, контроль сети и проч.);
  • Enterprise Application Control – система контроля запусков приложений, загрузки модулей, загрузки скриптов и открытия документов, основанная на правилах;
  • Safe Money – система контроля безопасных платежей в браузере;
  • IOC Scanner – система выявления признаков компрометации ОС;
  • Система контроля времени использования приложений;
  • Система категоризации приложений на основе метаданных и правил категоризации;
  • Network Monitor – система мониторинга сети;
  • Сервисы, предоставляющие информацию о приложениях.

Разработка ведется на C++, STL, boost, частично Python. Разрабатываемые компоненты формируют функциональность флагманских продуктов компании: KIS, KES, Safe Kids, и др.

Помимо функциональности команда занимается:

  • Разработкой тестов и тестового фреймворка с использованием gtest/gmock;
  • Анализом дампов и отладкой с использованием WinDbg и gdb;
  • Анализом производительности с использованием xperf;
  • Фаззинг тестированием с помощью AFL;
  • Статическим анализов кода с помощью SVACE;
  • Обсуждением новых инструментов и совершенствованием процессов разработки.

4.Application Infrastructure & Updater PDK

Команда занимается предоставлением программной инфраструктуры для разработки продуктов и обеспечением централизованного управления компонентами защиты.

Для чего Вы нам нужны:

  • Разработка базовых внутренних библиотек, облегчающих жизнь сотням разработчиков;
  • Поддержка фреймворков, обеспечивающих взаимодействие компонентов защиты во всех продуктах компании;
  • Разработка компонентов, обеспечивающих обновление антивирусных баз у миллионов пользователей по всему миру;

Что Вам необходимо для этого:

  • Отличное знание С++, STL;
  • Знание базовых алгоритмов и структур данных;
  • Знание базовых принципов дизайна кода: структурирование, single-responsibility principle, уровни абстракции;
  • Желательно знание системного API (Windows, POSIX) и владение WinDbg.