Developer C++ (CoreTech)

Местоположение и тип занятости

Москва

Компания

ТОП-3 международная компания в области IT-безопасности, один из лучших работодателей России

Описание вакансии

Условия работы

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

В нашем отделе есть несколько основных направлений деятельности в которые сейчас открыты вакансии:

1. Traffic processing – Команда, работающая в составе отдела разработки базовых компонентов (Core Tech). Наши основные задачи — анализировать трафик на машине конечного пользователя, предоставлять удобные интерфейсы для работы с ним, и на базе этих интерфейсов разрабатывать компоненты защиты. Мы пишем кросс-платформенный код для всех операционных систем, на которых работают наши продукты.

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

  • Разработка анализаторов сетевых протоколов, таких как: SSL, HTTP1/1, HTTP2.0, QUICK, HTTP3, WebSocket, IMAP, POP3, и др;
  • Разработка компонентов защиты на базе анализаторов: веб-антивирус, анти-спам, почтовый антивирус, анти-баннер, родительский контроль, защита от сбора данных;
  • Постоянно развиваться и следить за современными трендами в сетевых технологиях.

2. Crypto - команда, которая занимается разработкой программных компонентов для решения задач криптографической защиты информации, работающих на большом количестве платформ (Windows, Linux, MacOS, Kaspesky OS, Android, iOS) и в различных средах выполнения (пользовательнкий режим OS, режим ядра OS, Preboot).

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

  • Проверка подписи файлов различных стандартных форматов: PE, ZIP, Macho и т.п.;
  • Определение и разработка собственного формата подписи на основе ГОСТ криптографии;
  • Разработка компонентов крипто-подсистемы Kaspersky OS;
  • Реализация стандартов: PKCS11, PKI, FIPS;
  • Участие в сертификации.

Что Вам для этого нужно:

  • Отличное знание С++ (от 3х лет);
  • Знание базовых алгоритмов и структур данных;
  • Навыки разработки многопоточных приложений, решение проблем многопоточности;
  • Умение писать код: структурировать (способность разбить на сущности, способность определить их обязанности), умение именовать сущности.

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

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

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

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

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

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

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

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

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

  • Разработка и поддержка сетевых компонентов для взаимодействия наших продуктов с инфраструктурными сервисами;
  • Разработка и поддержка компонентов для обеспечения лицензирования наших продуктов.

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

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

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

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

5. Antimalware

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

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

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

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

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

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

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

6. 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;
  • Обсуждением новых инструментов и совершенствованием процессов разработки.

Команда состоит из 8 человек – специалистов с большим опытом и кругозором. Мы ждем сотрудника, который привнесет свои идеи, поможет решать сложные задачи и обогатит своим мнением наше сообщество.

 

7. Application Infrastructure & Updater PDK

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

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

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

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

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