Компания "Лаборатория Касперского"
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.