Ведущий инженер-программист
Employment type: Полный рабочий день
Skills: Linux, KVM, Java, Docker, Kubernetes, SAST/DAST, TCP, Bash, CI/CD, Высоконагруженные системы
Description:
BASIS — разработчик программных продуктов для оказания облачных услуг и платформы динамической инфраструктуры.
Компания BASIS занимается поставкой и интеграцией решений виртуализации крупнейшим государственным и коммерческим заказчикам. Мы занимаем активную позицию в вопросе замещения импортных решений нашими.
Обязанности:
Статический анализ кода (SAST) критических компонентов Linux:
Анализ исходного кода ядра Linux, KVM/QEMU, libvirt, сетевых драйверов и технологий (OVS, DPDK), файловых систем (ext4, XFS, Btrfs);
Использование инструментов: Coverity, Coccinelle, sparse, Smatch, CodeQL;
Поиск уязвимостей классов CWE, CVE (memory corruption, race conditions, privilege escalation).
Фаззинг (Fuzzing) системных компонентов:
Настройка и запуск фаззеров (syzkaller, AFL++, libFuzzer, kAFL) для тестирования ядра и виртуализации;
Анализ крашей, написание репортов и работа с upstream-разработчиками.
Динамический анализ и отладка:
Работа с KASAN, UBSAN, KMSAN, GDB, kgdb, perf, ftrace;
Анализ дампов памяти, race conditions (lockdep, KCSAN).
Устранение уязвимостей:
Исправление найденных проблем (патчинг, backport исправлений);
Проверка на соответствие стандартам безопасности (Linux Kernel Self-Protection Project, CERT C).
Аудит безопасности:
Анализ механизмов SELinux, AppArmor, seccomp, namespaces, cgroups;
Проверка конфигураций виртуализации (KVM hardening).
Интеграция в CI/CD:
Настройка автоматических проверок в Jenkins, GitLab CI, KernelCI, LKFT.
Требования:
Высшее техническое образование в области информационной безопасности или информационных технологий
Опыт работы с ядром Linux (понимание архитектуры, знакомство с кодом);
Знание Java;
Участие в разработке/анализе open-source проектов (ядро Linux, QEMU, libvirt);
Навыки статического анализа (Coverity, Coccinelle, CodeQL);
Опыт фаззинга системного ПО (syzkaller, AFL++, Trinity);
Понимание аппаратной виртуализации (Intel VT-x/AMD-V, KVM, QEMU);
Знание сетевых протоколов и подсистем (TCP/IP, netfilter, eBPF, OVS);
Опыт отладки (GDB, kgdb, crash-утилиты, трассировка);
Умение работать с git, патч-менеджментом (git send-email, lore.kernel.org);
Английский (чтение/написание технических отчетов, общение с upstream).
Будет плюсом:
Знание ассемблера (x86/ARM/RISC-V) для анализа low-level уязвимостей;
Опыт работы с формальными методами верификации (например, для драйверов);
Понимание атак на гипервизоры (Spectre/Meltdown, VM escape);
Навыки обратной разработки (reverse engineering).
Условия:
Трудоустройство согласно ТК РФ;
Конкурентная заработная плата по итогам собеседования;
Премии каждый квартал;
График работы 5/2 пн-пт, гибкое начало дня;
Социальный пакет (ДМС, оплата мобильной связи).