Лето закончилось, и вместе с ним закончилась и наша программа Summ3r of h4ck 2020. Пришло время подвести итоги и посмотреть, чего же добились за этот месяц наши подопечные. Об их исследованиях и впечатлениях от Digital Security и будет рассказано в этой статье.
Посмотреть, чем занимались наши практиканты в прошлые годы, можно здесь:
Мы придерживались хорошо зарекомендовавшей себя практики: участники выбирали интересную им тему из предоставленного списка и в течение месяца проводили своё собственное исследование под руководством куратора.
В программе участвуют два отдела нашей компании – отдел анализа защищённости и отдел исследований. Первый занимается тестами на проникновение, аудитом веб-приложений и корпоративного ПО, а специалисты второго – задачами reverse engineering, поиском уязвимостей в бинарных приложениях и устройствах и написанием эксплоитов.
Порядок отбора на Summ3r of h4ck также остался неизменным: сначала участники отвечали на вопросы анкеты на нашем сайте и решали небольшие проверочные задания, а после получали приглашение на удалённое собеседование. Хотя программа Summ3r of h4ck проходит только в Санкт-Петербурге, мы рады были видеть участников и из других городов.
В первую очередь, наша программа направлена на помощь молодым специалистам и студентам, но свои анкеты могут прислать все желающие. Кроме того, мы всегда очень рады, когда к нам приходят повторно: приятно наблюдать за ростом нового специалиста и видеть, как он развивается и изучает ИБ. Но это не значит, что в отборе существуют поблажки ;)
Программа Summ3r of h4ck начинается с лекций. Их читают специалисты от двух отделов, и вот некоторые темы, которые в них затрагиваются:
Кроме лекций были и практические задания, и даже своего рода мини-CTF для всех желающих. Результаты этих заданий учитываются позже, при отборе кандидатов в сотрудники Digital Security.
В конце программы Summ3r of h4ck прошла защита проектов. Участники выступали перед всеми и рассказывали, какие задачи перед ними стояли и чего им удалось добиться, с каким трудностями они столкнулись и какие проблемы решали. Некоторые объединились в группы, чтобы поработать над общей темой – мы всегда это приветствуем.
Наш замечательный мерч
Все, кто успешно прошел практику, получили сертификат Summ3r of h4ck 2020.
По традиции мы попросили наших практикантов ответить на вопросы мини-интервью и поделиться своими впечатлениями.
Орфография, пунктуация и стиль авторов сохранены
1. Думаю, не секрет, что вы популярны в кругах spbctf, и на каждый отбор summer of hack о вас там появляется рекламный пост. Это круто, что вы уважаемы в таких сообществах, о вас хорошо пишут и в отзывах на прошлых стажировках. Из этого складывается впечатление как об открытой, дружелюбной и современной компании, и теперь я с уверенностью могу это утверждать)
2. Как сами организаторы заметили, это больше практика или обучение, и в этом плане я очень доволен. Много интересных лекций, на которых ты можешь спокойно задать вопрос, попросить повторить, объяснить какой-то момент, ведь обстановка уютная и неформальная. После презентации можно сварить кофе и пообщаться со стажерами о наболевшем или пойти обсудить с ментором свой проект. Такая простая связь между всеми – это большой плюс
3. Сначала я изучал, как реверсить прошивку UEFI, работу ее протоколов, а потом, когда пришло какое-то понимание, начал писать плагин для Ghidra, который рисовал бы графы связей между этими протоколами. Бесценный опыт изучения Ghidra API)
Ссылка на Github-репозиторий плагина для Ghidra
Граф связей плагина
4. Моя задача была довольно абстрактной и поэтому на ее решение мыслей сразу не приходило, однако это все равно было интересно. Каждое обсуждение с ментором продвигало проект вперед, и лишь в конце стажировки мы вышли к чему-то конкретному. Осталось много интересного с фаззингом, у вас была крутая лекция на эту тему, и хотелось успеть нафаззить что-нибудь вместе с вами, но жаль, что не успел.
5. Думаю, да, мне понравилась атмосфера у вас, на протяжении всей стажировки сюда хотелось приходить
1. До стажировки активно играл в CTF. В какой-то момент понял, что хочу попробовать себя в реальных задачах. Увидел, что в Digital Security есть программа летней стажировки. Про прошлые стажировки я прочитал несколько статей на хабре и решил, что будет интересно и, главное, полезно, в чём я не ошибся.
2. Если кратко – очень. Лекции позволили узнать лучше темы, о которых я лишь слышал, а также задать определённый вектор развития навыков. Очень понравились мастер-классы на некоторых лекциях и, конечно же, работа над самим проектом.
3. Моя задача – автоматизация поиска code reuse гаджетов для обхода CFI. В проекте я использовал IDAPython, в результате чего задача была минимально решена. Я продолжу работу над этим проектом, и следующей целью будет сделать графический интерфейс для этого скрипта в IDA. Необходимо сделать его максимально информативным и интерактивным с целью упрощения задачи поиска примитивов.
Пример работы скрипта
4. Задача была действительно интересная, с этой темой ранее я не сталкивался. Если решение данной задачи сделать наиболее эффективным образом, можно будет создать новые способы обхода защиты, нацеленной на усложнение эксплуатации бинарных уязвимостей. Созданная утилита может быть всячески доработана и использована для широкого круга задач. В процессе работы я улучшил свои навыки в автоматизации в IDA. Отдельное большое спасибо моему ментору, который помогал с проектом и рассказал мне немало интересного и полезного.
5. Безусловно – да, и то, и другое.
1. Стажировку в компании Digital Security прохожу второй год подряд. Задачи отдела исследований (Research Centre) крайне интересны для меня, так что было здорово взять работу над проектом и в этом году. Каждый день сотрудники компании выступают с лекциями на актуальные темы, что придает стажировке обучающий характер. Очень приятно было узнать, что большинство тем были либо обновленными, либо абсолютно новыми, а с учетом специфики материала повторение пройденного казалось вполне уместным и даже полезным.
2. Из-за нестабильной ситуации стажировку пришлось пройти удаленно и стать единственным стажером отдела исследований на удалёнке. Работать таким образом можно вполне успешно, однако теряешь возможность живого общения с наставниками, другими стажерами. Крайне негативной стороной является тот факт, что нет возможности послушать вживую лекции сотрудников, позадавать вопросы и обсудить технические тонкости. Так что рекомендую проходить стажировку именно очно, иначе многое теряется.
3. Задача ресерча – реализация символьного исполнения в Ghidra. Нужно было выбрать один из существующих на данный момент движков символьного исполнения и прикрутить его в интерфейс Ghidr-ы. Кандидатами стали KLEE, Triton, S2E и Angr. В результате решили выбрать Angr, поскольку он популярен и имеет доступный и хорошо задокументированный API. С этого момента началась стадия разработки, начала писать логику и графический интерфейс. Стоит отметить, что на GUI пришлось потратить львиную долю времени.
В принципе, задача выполнена успешно. Теперь символьное исполнение доступно в двух кликах прямиком из Ghidr-ы.
Ссылка на Github-репозиторий плагина AngryGhidra
GUI и пример работы плагина
4. Как отмечала в прошлом году, всегда хотела погрузиться в тему символьного исполнения поглубже, так что это была великолепная возможность познать как теорию, так и практику. В будущем планирую подробнее изучить фаззинг и заняться поиском уязвимостей.
5. С большим желанием и удовольствием! Университет еще продолжается, так что, скорее всего, поучаствую и в следующий раз.
1. Было желание расставить все точки над i: куда дальше двигаться в сфере ИБ и чем заниматься. Отсюда и возник выбор стажировки в ведущей компании в России в области ИБ – Digital Security, уж здесь-то меня направят в нужное русло.
2. Стажировка превзошла мои ожидания. У меня был самый топовый ментор: он был для меня настоящим учителем, который мне помог не только с исследованием, но и в общей части, связанной с областью ИБ.
3. Необходимо было протестировать инструментарий для Binary Lifting'a бинарников, попробовать их пофазить и найти уязвимости. Проблема была в том, что большинство из утилит были либо заброшенными, либо лифтили только совсем простые бинари. Пришлось часть из них патчить, допиливать и пересобирать, на что и ушла большая часть времени. А пока они пересобирались по нескольку раз, удалось пофазить один из open-source проектов и найти в нём пару дыр :)
Таблица сравнения Lifting-а инструментов
4. Также хотелось бы изучить кучу инструментария, о котором нам рассказывали на лекциях, но на который не оставалось времени, чем я и займусь в ближайшее время.
5. С удовольствием!
1. Я решил стажироваться в Digital Security, так как вы являетесь одним из фаворитов в области ИБ в России и за рубежом. Помимо этого очень сильно привлекли исследования, которыми занимается компания.
2. От стажировки я ожидал многого, и мои ожидания были не только оправданы, но и превзойдены. Множество интересных тем для ресерча, менторы, готовые помочь и ответить на любые вопросы, лекции охватывающие множество областей (это получение действительно бесценного практического опыта, в сравнение с университетскими бумажками) и виртуальная лаборатория для отработки новоиспеченных знаний.
3. Для исследования я выбрал новую для себя тему — мобильные устройства и Bluetooth Low Energy, а конкретно две вещи — Apple find my и Exposure Notifications (API для детекции контактов с инфицированными COVID-19) от Apple и Google. В процессе удалось углубить свои знания, узнать много нового, написать пару PoC-ов, но поскольку темы тяжелые — закончить за время стажировки их не удалось, поэтому я занимаюсь их исследованием и по сей день.
Exposure Notification
4-5. Все задачи на стажировке были очень интересными, но попробовать все, к сожалению, невозможно, поэтому я с уверенностью могу сказать, что я готов вернуться в DSec, чтобы продолжить исследовательскую деятельность и повышение собственных навыков.
Мы рады видеть, что программа Summ3r of h4ck приносит пользу, и стараемся работать над тем, чтобы делать её лучше в соответствии с отзывами наших участников.
Огромное «Спасибо!» тем, кто пришёл к нам, принимал участие в исследованиях и ломал голову над нашими заданиями. Мы вами гордимся!
До встречи в следующем году ;)
Посмотреть, чем занимались наши практиканты в прошлые годы, можно здесь:
Мы придерживались хорошо зарекомендовавшей себя практики: участники выбирали интересную им тему из предоставленного списка и в течение месяца проводили своё собственное исследование под руководством куратора.
В программе участвуют два отдела нашей компании – отдел анализа защищённости и отдел исследований. Первый занимается тестами на проникновение, аудитом веб-приложений и корпоративного ПО, а специалисты второго – задачами reverse engineering, поиском уязвимостей в бинарных приложениях и устройствах и написанием эксплоитов.
Порядок отбора на Summ3r of h4ck также остался неизменным: сначала участники отвечали на вопросы анкеты на нашем сайте и решали небольшие проверочные задания, а после получали приглашение на удалённое собеседование. Хотя программа Summ3r of h4ck проходит только в Санкт-Петербурге, мы рады были видеть участников и из других городов.
Введение
В первую очередь, наша программа направлена на помощь молодым специалистам и студентам, но свои анкеты могут прислать все желающие. Кроме того, мы всегда очень рады, когда к нам приходят повторно: приятно наблюдать за ростом нового специалиста и видеть, как он развивается и изучает ИБ. Но это не значит, что в отборе существуют поблажки ;)
Программа Summ3r of h4ck начинается с лекций. Их читают специалисты от двух отделов, и вот некоторые темы, которые в них затрагиваются:
- Разработка для Ghidra
- Advanced Server Side
- Про Libfuzzer
- Куда жать после RCE?
- Pentest Android
- Про taint анализ
- Kubernetes: From zero to hero и т.д.
Кроме лекций были и практические задания, и даже своего рода мини-CTF для всех желающих. Результаты этих заданий учитываются позже, при отборе кандидатов в сотрудники Digital Security.
В конце программы Summ3r of h4ck прошла защита проектов. Участники выступали перед всеми и рассказывали, какие задачи перед ними стояли и чего им удалось добиться, с каким трудностями они столкнулись и какие проблемы решали. Некоторые объединились в группы, чтобы поработать над общей темой – мы всегда это приветствуем.
Наш замечательный мерч
Все, кто успешно прошел практику, получили сертификат Summ3r of h4ck 2020.
По традиции мы попросили наших практикантов ответить на вопросы мини-интервью и поделиться своими впечатлениями.
- Почему решили стажироваться именно в Digital Security? Чем привлекла вас компания?
- Понравилась ли стажировка? Что особенно запомнилось? Насколько реальность совпала с вашими ожиданиями?
- Расскажите о своей задаче/задачах.
- Показались ли интересными задачи, над которыми вы работали в процессе стажировки? Было ли что-то, чем вы хотели заняться, но не удалось?
- Готовы ли вернуться в компанию на стажировку или на работу?
Орфография, пунктуация и стиль авторов сохранены
Даниил Гавшин, тема “Разработка плагина для Ghidra”
1. Думаю, не секрет, что вы популярны в кругах spbctf, и на каждый отбор summer of hack о вас там появляется рекламный пост. Это круто, что вы уважаемы в таких сообществах, о вас хорошо пишут и в отзывах на прошлых стажировках. Из этого складывается впечатление как об открытой, дружелюбной и современной компании, и теперь я с уверенностью могу это утверждать)
2. Как сами организаторы заметили, это больше практика или обучение, и в этом плане я очень доволен. Много интересных лекций, на которых ты можешь спокойно задать вопрос, попросить повторить, объяснить какой-то момент, ведь обстановка уютная и неформальная. После презентации можно сварить кофе и пообщаться со стажерами о наболевшем или пойти обсудить с ментором свой проект. Такая простая связь между всеми – это большой плюс
3. Сначала я изучал, как реверсить прошивку UEFI, работу ее протоколов, а потом, когда пришло какое-то понимание, начал писать плагин для Ghidra, который рисовал бы графы связей между этими протоколами. Бесценный опыт изучения Ghidra API)
Ссылка на Github-репозиторий плагина для Ghidra
Граф связей плагина
4. Моя задача была довольно абстрактной и поэтому на ее решение мыслей сразу не приходило, однако это все равно было интересно. Каждое обсуждение с ментором продвигало проект вперед, и лишь в конце стажировки мы вышли к чему-то конкретному. Осталось много интересного с фаззингом, у вас была крутая лекция на эту тему, и хотелось успеть нафаззить что-нибудь вместе с вами, но жаль, что не успел.
5. Думаю, да, мне понравилась атмосфера у вас, на протяжении всей стажировки сюда хотелось приходить
Никита Челноков, тема “Автоматизация поиска code reuse гаджетов для обхода CFI”
1. До стажировки активно играл в CTF. В какой-то момент понял, что хочу попробовать себя в реальных задачах. Увидел, что в Digital Security есть программа летней стажировки. Про прошлые стажировки я прочитал несколько статей на хабре и решил, что будет интересно и, главное, полезно, в чём я не ошибся.
2. Если кратко – очень. Лекции позволили узнать лучше темы, о которых я лишь слышал, а также задать определённый вектор развития навыков. Очень понравились мастер-классы на некоторых лекциях и, конечно же, работа над самим проектом.
3. Моя задача – автоматизация поиска code reuse гаджетов для обхода CFI. В проекте я использовал IDAPython, в результате чего задача была минимально решена. Я продолжу работу над этим проектом, и следующей целью будет сделать графический интерфейс для этого скрипта в IDA. Необходимо сделать его максимально информативным и интерактивным с целью упрощения задачи поиска примитивов.
Пример работы скрипта
4. Задача была действительно интересная, с этой темой ранее я не сталкивался. Если решение данной задачи сделать наиболее эффективным образом, можно будет создать новые способы обхода защиты, нацеленной на усложнение эксплуатации бинарных уязвимостей. Созданная утилита может быть всячески доработана и использована для широкого круга задач. В процессе работы я улучшил свои навыки в автоматизации в IDA. Отдельное большое спасибо моему ментору, который помогал с проектом и рассказал мне немало интересного и полезного.
5. Безусловно – да, и то, и другое.
Новосельцева Алёна, тема “Символьное исполнение в Ghidra”
1. Стажировку в компании Digital Security прохожу второй год подряд. Задачи отдела исследований (Research Centre) крайне интересны для меня, так что было здорово взять работу над проектом и в этом году. Каждый день сотрудники компании выступают с лекциями на актуальные темы, что придает стажировке обучающий характер. Очень приятно было узнать, что большинство тем были либо обновленными, либо абсолютно новыми, а с учетом специфики материала повторение пройденного казалось вполне уместным и даже полезным.
2. Из-за нестабильной ситуации стажировку пришлось пройти удаленно и стать единственным стажером отдела исследований на удалёнке. Работать таким образом можно вполне успешно, однако теряешь возможность живого общения с наставниками, другими стажерами. Крайне негативной стороной является тот факт, что нет возможности послушать вживую лекции сотрудников, позадавать вопросы и обсудить технические тонкости. Так что рекомендую проходить стажировку именно очно, иначе многое теряется.
3. Задача ресерча – реализация символьного исполнения в Ghidra. Нужно было выбрать один из существующих на данный момент движков символьного исполнения и прикрутить его в интерфейс Ghidr-ы. Кандидатами стали KLEE, Triton, S2E и Angr. В результате решили выбрать Angr, поскольку он популярен и имеет доступный и хорошо задокументированный API. С этого момента началась стадия разработки, начала писать логику и графический интерфейс. Стоит отметить, что на GUI пришлось потратить львиную долю времени.
В принципе, задача выполнена успешно. Теперь символьное исполнение доступно в двух кликах прямиком из Ghidr-ы.
Ссылка на Github-репозиторий плагина AngryGhidra
GUI и пример работы плагина
4. Как отмечала в прошлом году, всегда хотела погрузиться в тему символьного исполнения поглубже, так что это была великолепная возможность познать как теорию, так и практику. В будущем планирую подробнее изучить фаззинг и заняться поиском уязвимостей.
5. С большим желанием и удовольствием! Университет еще продолжается, так что, скорее всего, поучаствую и в следующий раз.
Олег Мошков, тема “Binary Lifting Fuzzing”
1. Было желание расставить все точки над i: куда дальше двигаться в сфере ИБ и чем заниматься. Отсюда и возник выбор стажировки в ведущей компании в России в области ИБ – Digital Security, уж здесь-то меня направят в нужное русло.
2. Стажировка превзошла мои ожидания. У меня был самый топовый ментор: он был для меня настоящим учителем, который мне помог не только с исследованием, но и в общей части, связанной с областью ИБ.
3. Необходимо было протестировать инструментарий для Binary Lifting'a бинарников, попробовать их пофазить и найти уязвимости. Проблема была в том, что большинство из утилит были либо заброшенными, либо лифтили только совсем простые бинари. Пришлось часть из них патчить, допиливать и пересобирать, на что и ушла большая часть времени. А пока они пересобирались по нескольку раз, удалось пофазить один из open-source проектов и найти в нём пару дыр :)
Таблица сравнения Lifting-а инструментов
4. Также хотелось бы изучить кучу инструментария, о котором нам рассказывали на лекциях, но на который не оставалось времени, чем я и займусь в ближайшее время.
5. С удовольствием!
Георгий Геннадьев, тема “Apple BLE protocols”
1. Я решил стажироваться в Digital Security, так как вы являетесь одним из фаворитов в области ИБ в России и за рубежом. Помимо этого очень сильно привлекли исследования, которыми занимается компания.
2. От стажировки я ожидал многого, и мои ожидания были не только оправданы, но и превзойдены. Множество интересных тем для ресерча, менторы, готовые помочь и ответить на любые вопросы, лекции охватывающие множество областей (это получение действительно бесценного практического опыта, в сравнение с университетскими бумажками) и виртуальная лаборатория для отработки новоиспеченных знаний.
3. Для исследования я выбрал новую для себя тему — мобильные устройства и Bluetooth Low Energy, а конкретно две вещи — Apple find my и Exposure Notifications (API для детекции контактов с инфицированными COVID-19) от Apple и Google. В процессе удалось углубить свои знания, узнать много нового, написать пару PoC-ов, но поскольку темы тяжелые — закончить за время стажировки их не удалось, поэтому я занимаюсь их исследованием и по сей день.
Exposure Notification
4-5. Все задачи на стажировке были очень интересными, но попробовать все, к сожалению, невозможно, поэтому я с уверенностью могу сказать, что я готов вернуться в DSec, чтобы продолжить исследовательскую деятельность и повышение собственных навыков.
Заключение
Мы рады видеть, что программа Summ3r of h4ck приносит пользу, и стараемся работать над тем, чтобы делать её лучше в соответствии с отзывами наших участников.
Огромное «Спасибо!» тем, кто пришёл к нам, принимал участие в исследованиях и ломал голову над нашими заданиями. Мы вами гордимся!
До встречи в следующем году ;)
vba
N1c3, th4nks !