Содержание статьи
Об авторе
Денис Макрушин — выпускник факультета информационной безопасности НИЯУ МИФИ и там же продолжает делиться опытом со студентами своей альма‑матер. Также Денис выступает научным руководителем для студентов разных ведущих кафедр и факультетов страны в области информационной безопасности и защиты информации.
Я сформулировал рекомендации по принципу «один абзац — один инсайт» и распределил их по разделам. Какие‑то инсайты могут пригодиться для учебно‑исследовательской работы, какие‑то — для подготовки первого доклада на конференцию.
Ставим цели
Начнем с основного: хардскиллы в индустрии необходимы, но софтскиллы — это основа практически любой профессии, которая подразумевает общение с людьми. Поэтому относись к диплому не как к формальности, а как к средству, которое прокачивает и хардскиллы (результаты исследования — утилиты, метрики, код), и софтскиллы (представление этих результатов — отчеты, презентации).
Эксперты не появляются на пустом месте и растут не в результате бессонных ночей, проведенных за техническими исследованиями, а в результате признания сообществом этих бессонных ночей. Вот почему коммуникация и отчетность — это необходимые этапы любого исследования. И любого проекта. Да, и твоего дипломного проекта тоже.
Есть возможность получить быстрый отклик на свое исследование: пост в блоге и презентация на конференции. Сначала пост. Его текст позволит подготовить сценарий для выступления. Если смущает выступление перед большой аудиторией, создай вебинар для своих друзей. Пусть это будет репетицией твоего доклада перед большим мероприятием. Например, перед защитой диплома.
От редакции
Напомним, что ты всегда можешь прислать свою статью в «Хакер». Авторам опубликованных материалов выплачивается гонорар, к тому же мы помогаем с редактурой и оформлением статьи. По вопросам сотрудничества пиши главному редактору, адрес — на странице контактов.
Выступление на любом релевантном мероприятии — это хороший способ получить обратную связь, завести новых знакомых и, возможно, найти партнеров по исследовательской работе. В роли обычного участника ты рискуешь потратить драгоценное время в углу комнаты с чашкой кофе и ноутбуком, а статус спикера обязывает выйти под свет софитов.
Пример из моего опыта: поездка на региональный BSides в Каире. Итоги доклада:
- Импакт: знакомство с экспертами EG-CERT и передача отчетов с уязвимостями и ландшафтом угроз для региона.
- Нетворкинг: зарядил энергией студентов местных факультетов Computer Science, теперь они хотят продолжить обучение в направлении ИБ.
- Нетворкинг: поступил запрос о менторстве от талантливого студента из Mansoura University для его подготовки к докладу на конференции в следующем году (позже расскажу, что из этого получилось).
- Интеграция в сообщество: поступило приглашение в состав Review Board мероприятия.
Если ты посещаешь конференции в онлайне ради контента, рекомендую пересмотреть отношение к мероприятиям. Личное присутствие всегда придает им дополнительную ценность.
Выбираем тему
С причинами и мотивами разобрались. Теперь нужно определиться с темой будущей работы. Давай для примера возьмем статистику распространения троянов‑шифровальщиков. Вот что нам известно об этом:
- Хронология развития этого типа малвари демонстрирует взрывной рост: от пары семейств в 2010-м до 20+ семейств ежемесячно к 2017-му.
- Число атак шифровальщиков удвоилось в 2021 году в сравнении с 2020 годом.
- Скорость разворачивания шифровальщика в скомпрометированной инфраструктуре увеличивается, что значительно снижает время, нужное для реагирования на инцидент (в 2021 году у жертвы было 92 часа, чтобы спасти свои данные).
- Среднее время простоя инфраструктуры и бизнес‑процессов в результате атак выросло с 15 часов в 2020 году до 22 часов в 2021-м (время — деньги!).
- Ущерб от атак шифровальщиков в 2021 году оценивался в 20 миллиардов долларов, а к 2031 году ожидается ущерб в 265 миллиардов.
На основе этих данных получаем рецепт хорошей темы для курсовой:
- Находим злодея: берем наиболее острую проблему, которая мешает жить всем индустриям, пользователям.
- Препарируем злодея: изучаем технические особенности, выделяем ключевые характеристики, ищем слабое место.
- Создаем антидот и не забываем рассказать об этом в тексте работы.
Вкратце: определи проблему, изучи существующие решения, выяви их общий недостаток и предложи свой вариант его исправления.
Плохая идея: попросить ChatGPT придумать для тебя тему. Хорошая идея: попросить его же собрать материалы для уже выбранной темы. В чем разница? В первом случае ты позволяешь алгоритму определить судьбу твоей работы. Во втором случае ты экономишь свое время на сбор и анализ актуальных знаний по направлению, которое задал сам.
Если все равно придется тратить время на подготовку дипломной работы, то почему бы не инвестировать это время в интересный тебе проект? Даже если ты учишься по нелюбимому направлению и готовишься стать специалистом в неинтересной тебе области (ну или за дипломом тебя просто отправили родители), то даже в этом случае можешь синтезировать дипломную тему на основе требований факультета (или кафедры) и области твоих интересов.
Например, ты учишься на специалиста по информационной безопасности, но чувствуешь, что мог бы стать композитором. Набросай облако тегов: «защита», «музыка», «интеллектуальная собственность», «утечки композиций», «пиратство», «кибербезопасность в музыкальной индустрии» и тому подобное.
Вот тут за идеями бывает полезно обратиться к генеративным алгоритмам.
Формулируем тему
Область исследований определена. Теперь приступаем к формулировке темы.
Есть минимум два способа сформулировать тему перспективного исследования. Можно провести так называемый анализ state of the art — изучить все доступные опубликованные работы в нужном направлении. Основные требования для этих работ: они должны быть актуальными (период актуальности определяешь сам) и релевантными твоему направлению. В процессе анализа выписывай источники, даты публикации и авторов — все это пригодится.
Когда будешь изучать источники, возьми на вооружение сайты ResearchGate и Google Scholar.
Там ты можешь найти работы, которые еще не опубликованы в цитируемых научных изданиях, но которые могут содержать какие‑то полезные для тебя артефакты: черновики, аннотации к докладам, посты в блогах и тому подобное.
Несмотря на то что все исследовательское сообщество говорит на английском языке, проанализируй российские и китайские базы знаний. С этой задачей тоже неплохо помогает ChatGPT.
При чтении статей обращай внимание на раздел «Заключение», в котором содержатся выводы и предложены варианты продолжения работы. В этом разделе могут быть описаны ограничения предложенных автором методов, алгоритмов и систем. А для тебя эти ограничения могут стать отправной точкой в формулировании темы твоего проекта.
Самый интересный подход к задаче — это спросить эксперта, который погружен в эту область и который публиковал результаты своих проектов. Помнишь, что, помимо списка источников, я рекомендовал делать список авторов? Вот теперь пройдись по нему и определи наиболее активного или интересного тебе. Затем выходи с ним на связь любым удобным образом, чтобы обсудить тему своей работы.
Превратить автора интересного тебе проекта в своего научного руководителя или ментора — это та самая задача, которая может значительно улучшить твою работу.
Да и вообще выбор научного руководителя — это минимум треть успеха будущей работы. Поэтому если по каким‑то причинам ты не можешь его найти на своем факультете или в университете, то ищи в индустрии.
Проводим исследования
Определил тему, сформулировал цель работы. Теперь надо делать.
Раздели подготовку работы на этапы:
- Содержание (ключевые разделы работы).
- Презентация (каждый заголовок слайда — раздел работы).
- К каждому слайду сделай комментарий, в котором будут основные тезисы.
- Абстракт работы.
- Аннотация или автореферат.
- Отчет.
Именно в этой последовательности ты начинаешь движение от общего к частному.
Независимо от типа исследования его результатом должно стать новое знание. Если итогом работы не будет что‑то новое, то автор просто пополняет свалку известных мыслей. Оставь это алгоритмам.
Даже если задача твоего проекта не заключается в разработке нового метода или системы, а представляет собой обзор существующих работ, то даже в этом случае можно синтезировать новое знание. Для этого можно использовать следующие методы анализа и синтеза новых знаний.
State of the art (SOTA) — метод обзора больших объемов литературы, который позволяет изучить, почему и как развивались наши текущие знания, и предложить новые направления исследований. Метод хорошо описан в статье «State-of-the-art literature review methodology: A six-step approach for knowledge synthesis».
Обзор, проведенный методом SOTA, дает ответы на три вопроса:
- Где мы находимся сейчас?
- Как мы сюда попали?
- Куда можно двигаться дальше?
Review/Survey — метод обзора литературы, который, в отличие от SOTA, охватывает более широкий хронологический срез и включает в себя как результаты анализа SOTA, так и историческое развитие объекта исследования. Другими словами, SOTA — это часть Review.
Приступай к содержанию. Набросок оглавления — это уже значительная часть работы. Вероятно, у тебя получится что‑то вроде этого:
- Введение
- Описание проблемы
- Обзор существующих подходов к ее решению
- 3.1. Критерии сравнения подходов
- 3.2. Сравнение существующих подходов по выбранным критериям
- 3.3. Определение наиболее удачного подхода на основе сравнения. Описание его ключевых ограничений
- Твои варианты улучшения выбранного подхода
- Заключение
Если у тебя уже есть идеи, то приступай к разделу 4. Чем быстрее ты поймешь состоятельность своего подхода, метода и системы исследования, тем быстрее сформулируешь ценность работы. Затем сможешь оценить уникальность предложенной тобой идеи при подготовке раздела 3. И не начинай писать текст работы с введения. Лирику оставишь на заключительный этап.
Как только в работе появились результаты, доказывающие состоятельность твоей идеи, уже можно готовить аннотацию (abstract). Это короткое (от одного до трех абзацев текста) описание работы, дающее полное представление о цели и результатах твоего проекта.
Результаты исследования получены. Абстракт подготовлен. Теперь тебе нужно выбрать конференцию или митап и адаптировать аннотацию исследования в соответствии с требованиями выбранного мероприятия. Изучи информацию о требованиях организаторов к подаче заявок, обычно они публикуются на отдельной странице.
Как выбрать конференцию, чтобы и тема твоей работы подходила, и бюджет на путешествие был доступен? Можно начать с изучения ресурса cfptime.org.
В первую очередь поддержи свое локальное сообщество. Иногда местные мероприятия могут быть интереснее и теплее, чем международные и глобальные тусовки. Об этом я уже рассказывал в другом выпуске колонки.
Выбирай местную конференцию. Участвуй, собирай отзывы, затем совершенствуй свое исследование и подавай заявку на участие в мероприятии побольше. Исследуй, выступай, обновляй, повторяй.
Как подготовить хорошую заявку на доклад? Лучше узнать у опытных членов комиссии, которая рассматривает заявки. К примеру, организаторы конференции Security Analysts Summit посвятили целый тред подготовке качественного абстракта.
Почему участники должны посетить именно твой доклад? Запиши ответ. Найди опытного члена комиссии, который может дать ценный совет по поводу твоего доклада или хотя бы текста заявки.
И напоследок: определи стратегическую цель своего исследования. Пример плохой постановки цели: «получение и совершенствование навыков эксплуатации XSS». Хорошая цель: «обнаружить результаты воздействия XSS в системах, которые ранее не подвергались XSS-атакам». То есть во втором случае — синтез старой проблемы с новым контекстом.
Если твое исследование выявило проблему, помни об ответственности. Опиши решение, дай рекомендации, помоги всем заинтересованным сторонам. Ты делаешь проект не для того, чтобы еще раз показать, что этот мир несовершенен.
«Прежде всего — не навреди».