С помощью машинного обучения мы решаем задачи определения аппаратной архитектуры бинарного кода, определения сигнатур вызовов функций, поиска библиотечных функций. Разрабатываем собственное программное обеспечение для автоматизации поиска уязвимостей (fuzzing), определения структуры недокументированных протоколов. Для решения наших задач применяем графовые нейронные сети, генетические алгоритмы, NLP методы и прочие инструменты машинного обучения.
Направление ориентировано на применение методов машинного обучения и нейронных сетей в задачах статического (SAST) и динамического (DAST) анализа бинарного кода программного обеспечения.
МАШИННОЕ ОБУЧЕНИЕ ДЛЯ ЗАДАЧ АВТОМАТИЗИРОВАННОГО АНАЛИЗА ПО
• выстраивать пайплайн обучения нейронных сетей
• подготавливать датасеты, выбирать модели обучения и гиперпараметры
• выбирать метрики, оценивать результаты и эффективность обучения
• визуализировать результаты работы нейронной сети
• навыкам работы с библиотеками машинного обучения: PyTorch, TensorFlow, Scikit Learn
На этом направлении ты научишься
• владение Python
• базовые знания линейной алгебры, теории вероятности и математического анализа
• базовые знания в области машинного обучения
• понимание основ Assembler на уровне базовых команд (для работы с IDA Pro)
Минимальные требования к стажерам