Результаты летней стажировки 2017 в Digital Security. Отдел исследований
В предыдущей статье от коллег из отдела аудита, помимо их опыта, было немного рассказано про общий процесс стажировки 2017 в Digital Security. А сегодня Отдел исследований поделится своими впечатлениями и представит интервью стажёров нашего отдела.
Краткая информация
Мы – отдел исследований компании Digital Security. В первую очередь, мы занимаемся задачами reverse engineering, поиском уязвимостей в бинарных приложениях и различных устройствах, а также написанием эксплоитов. Более подробно мы представлялись в прошлогодней статье.
Введение
Как уже было сказано в статье коллег, в этом году количество заявок было в разы больше, чем в прошлом. Конечно же, большая часть соискателей хотела заниматься web-безопасностью, но процент желающих погрузиться в "бинарный мир" от этого меньше не стал.
По уже сложившейся традиции, со стажёрами, которые решили пройти стажировку в нашем Питерском офисе, мы проводили личное собеседование, и только после этого принимали окончательное решение. В ходе таких встреч определяется не только уровень знаний, но и то, какая тема подойдет каждому кандидату. В некоторых случаях, предлагалась не одна, а несколько тем на выбор. Критерии составления тем для стажировки остались прежними:
- По окончанию стажировки ребята могли опубликовать результаты своих исследований (github, gitlab и другие репозитории для проектов с открытым исходным кодом) и/или выступить перед публикой на конференции
- Связаны с реальными практическими задачами
Из-за специфики работы нашего отдела, в отличии от коллег-аудиторов, мы практикуем подход "одна тема — один человек" (правда, бывают исключения).
Это позволяет наставнику уделять больше внимания конкретному стажёру, но ограничивает количество соискателей, которых мы можем принять на стажировку. Поэтому тем, кто не прошёл по причине недостатка опыта, мы советовали освоить набор учебных материалов, а затем попробовать снова в следующем году. В том числе, это послужило причиной публикации нашей подборки материалов на Хабре, чтобы любой желающий мог начать изучать её в свободное время.
Мы были приятно удивлены, что некоторые ребята сами приехали к нам на локальную стажировку из других городов. Собеседования с ними мы проводили с помощью видео-мессенджеров (интересная статистика — большинство таких желающих закончили 3 курс ВУЗа). Поэтому мы постарались, чтобы у них остались хорошие воспоминания (и приятные подарки) о стажировке в Северной столице. И к прошлогодним лекциям наш отдел добавил новые:
- "SMT, Z3, SSE, DSE, … In The Wild" (Георгий Носенко)
- "PowerShell для чайников: использование в быту и на поле боя" (Андрей Акимов)
Коллеги из отдела анализа защищенности также обновили свой список лекций и запустили внутреннюю интересную лабу — некое подобие wargame для повышения навыков участвующих.
По традиции, сами стажёры провели для нас несколько подобных митапов, где представили результаты своих работ. Такие выступления даже можно назвать неким выпускным экзаменом :) Правда, это смогли сделать не все, к сожалению, — кто-то не справился с поставленными задачами по различным причинам.
Отзывы участников
Из-за особенностей задач в этом году мы решили отказаться от удаленной стажировки, поэтому представляем некоторые комментарии только от тех, кто проходил стажировку в нашем офисе.
Вопросы для мини-интервью были такими:
- Почему решили стажироваться именно в DSec? Чем привлекла вас компания?
- Понравилась ли стажировка? Что особенно запомнилось? Насколько реальность совпала с вашими ожиданиями?
- Расскажите о своей задаче/задачах.
- Показались ли интересными задачи, над которыми вы работали в процессе стажировки? Было ли что-то, чем вы хотели заняться, но не удалось?
- Готовы ли вернуться в компанию на стажировку или на работу?
Александр Трухин (СПбГУ)
Тема: "Улучшить алгоритмы работы средства обнаружения руткитов под GNU/Linux"
- Решил попытать удачу, увидев анонс стажировки на linux.org.ru. Честно говоря, о компании почти ничего на тот момент не знал, наличие свободного времени и интересная тематика сыграли решающую роль.
- Стажировка понравилась.
Больше всего запомнилась столовая с крайне не привлекательными ценами недалеко от офиса. На самом деле, был удивлен довольно молодым возрастом сотрудников питерского отделения. По тому, как они допоздна задерживаются на работе, можно определить, что им нравится их дело (или настольный футбол). Было очень любопытно послушать лекции, которые для нас любезно подготовили в компании. - Я поработал над проектом антируткита под GNU/Linux, который в некоторой начальной форме уже реализовал мой куратор. В основном, пытался довести до ума функционал соответствующего модуля ядра. Нужно было привести в порядок процесс передачи событий из ядра, описывающих различные важные системные ресурсы (процессы, сокеты и т. п.), в пользовательский режим для последующей сверки и обнаружения несоответствий. Пришлось повозиться с различными структурами ядра и его примитивами синхронизации, было весело!
- Хотя особенно далеко продвинуться не получилось (например, хотелось еще реализовать какие-нибудь механизмы самозащиты), работать с решаемыми задачами было ничуть не скучно, многое было в новинку. Надеюсь, работа над проектом продолжится.
- Поработать над чем-нибудь интересным всегда рад.
Валерия Губарева (Пензенский государственный университет)
Тема: "Исследование возможностей плат Black Magic Probe и Bitsy"
- Человек, работающий здесь, посоветовал мне заполнить анкету. А сама компания мне интересна тем, что занимается информационной безопасностью, за изучением которой я провела последние пять лет своей жизни.
- Да, очень понравилась. Ожидания оправдались более чем. Особенно запомнился момент, когда мне выдали кучу разных непонятных плат, с которыми я потом, конечно, успешно разобралась.
- Моей задачей было разобраться с недавно появившейся платой Black Magic Probe V2.1, посмотреть возможности, открывающиеся при работе с ней. И надо было попробовать поломать прошивки на других платах с помощью Black Magic Probe. Для наглядности была выбрана плата STM32F429I-disc1, у которой есть сенсорный экран, и для нее я нашла прошивку с игрой Reversi. В итоге, я смогла получить доступ к динамической памяти прошивки, затем при помощи дизассемблера IDA Pro нашла адрес, являющийся начальным адресом ячеек доски. Значения этих ячеек могут быть равны: 000 — пустая ячейка, 001 — красная фишка, 002 — синяя фишка. Мне пришла в голову идея приравнять значения всех ячеек единице и выиграть тем самым игру с первого хода. Для этого написала небольшой скрипт на языке Python. Итогом моей работы стала статья, где описаны характеристики платы и все мои действия в работе с ней.
- Да, задачи были весьма интересными. Почти все было новым для меня и информации было очень мало, но это не стало препятствием.
- На работу — конечно, да.
Никита Трушин (ТУСУР)
Тема: "Ханипот для логирования интерактивных команд на гостевой машине, по средствам гипервизора"
- Люблю заниматься исследованием внутреннего устройства различных ядер и программных систем, при этом интересуюсь программированием. Поэтому деятельность DSec, а также блог на Хабре, несомненно, меня заинтересовали.
- Стажировка оставила положительные впечатления. Особенно коллектив, который оказался довольно доброжелательным, и, в целом, уютная обстановка в офисе.
- Моя задача заключалась в имплементации патча для QEMU, по имеющемуся PoC, который был реализован в виде gdb скрипта и выполнял логирование вывода с гостевого терминала на хостовую машину, при помощи бряков на функции записи в TTY. Однако, он довольно сильно снижал скорость работы гостевой машины. И от меня требовалось осуществить это внутри самой QEMU, что решило бы проблемы с производительностью.
Соответственно, необходимо было разобраться во внутренней структуре QEMU, найти наиболее подходящее место для патчинга и написать патч для x86-64, ARM и MIPS.
- Конечно же, поставленная задача оказалась довольно-таки интересной. Однако, хотелось бы поработать в команде из нескольких человек.
- Безусловно, да!
Вывод
Подводя итоги, мы скажем ещё раз "спасибо" всем, кто принял участие в нашей летней стажировке 2017. Мы все получили огромный опыт и надеемся, что смогли немного поделиться им с читателем. Позже будут опубликованы интересные статьи уже не от стажёров, а от наших коллег с результатами своих исследований.
И конечно же, ждем всех на новую стажировку!