Привет, Хабр! Меня зовут Алексей Вишняков. Я возглавляю отдел обнаружения вредоносного программного обеспечения PT Expert Security Center. В одной из прошлых статей мы писали о том, что делают DevOps-инженеры у нас в компании, а сегодня я расскажу, чем занимается мой отдел и какие технические задачи нам приходится решать, поделюсь собственным опытом и выделю компетенции, которыми необходимо обладать, чтобы присоединиться к нашей команде.
Начало начал
Еще полгода назад отдела обнаружения вредоносного ПО у нас в компании не существовало в принципе, и моя команда формировалась, как говорится, с нуля. При разработке песочницы PT Sandbox возникла необходимость поддержать наш R&D экспертизой в части знаний о вредоносном ПО: какие образцы вредоносов есть и какой у них уровень опасности, какие техники киберпреступники используют и какие существуют методы для их обнаружения. Такие знания были у отдела исследования угроз ИБ, поэтому часть команды переориентировалась на задачи, связанные с передачей экспертизы в песочницу. Время показало, что все-таки нужен самостоятельный отдел для полноценной поддержки нового продукта. Возможности и люди были: к тому моменту у нас появилась новая кровь — практиканты и стажеры. И мы поняли, что все готово для формирования новой структуры в составе экспертного центра безопасности Positive Technologies.
Сегодня отдел обнаружения вредоносного ПО отвечает за экспертную составляющую продуктов Positive Technologies. Например, мы пишем статические и динамические правила обнаружения вредоносного кода, которые входят в PT Sandbox, а также генерим и поставляем индикаторы компрометации для других решений Positive Technologies, оказываем услуги по экспертной поддержке продуктов, среди которых анализ ВПО, ретроспективный анализ событий, и многое другое. В моей команде 7 человек, часть из которых студенты. Отмечу, что они прекрасно совмещают работу с учебой, показывая хорошие результаты в компании.
Работа, которая имеет смысл
Главная задача моего отдела — исследование вредоносных техник с целью их задетектировать или, говоря другими словами, научить продукт данные действия обнаруживать. Кроме того, мы ищем ложные срабатывания наших продуктов, чтобы исключить ошибочное детектирование. В процессе создания любого решения разработчики и другие специалисты так или иначе «вставляют» собственные наработки в продукт, и если наши коллеги сделали что-то неправильно, то продукт будет работать плохо. Наша обязанность — как раз найти эту ошибку. Это немного рутинная и специфичная для моего отдела работа, но это важное дело.
Чтобы наглядно показать, чем я и мои коллеги занимаемся практически каждый день, и дать вам возможность попробовать свои силы, предлагаю решить типичную задачу на анализ вредоносного ПО и описание детектирующей логики. Предупреждаю: там есть и обратная разработка, и написание вспомогательных скриптов, и проведение простейшей атрибуции полученного вредоносного кода.
Дано: у нас есть набор программ, и мы подозреваем, что там вредоносный код. Необходимо его обнаружить, поверхностно изучить и написать детектирующее правило.
Давайте приступим — смотрите мой видеоразбор.
Что надо знать и уметь, чтобы стать частью нашей команды
Если человек умеет учиться, у него все получится
Идеальных новичков, конечно же, не бывает: все мы разные, со своим опытом и бэкграундом. Но чтобы попасть в мой отдел, необходимо иметь определенные компетенции.
Начнем с базовых вещей: держать руку на пульсе новостей из сферы информационной безопасности, а именно быть в курсе актуальных киберугроз, знать, какие вредоносы появляются, что из себя представляют вредоносные техники и чем они отличаются от обычного легитимного поведения.
К примеру, мы в отделе начинаем свой рабочий день со знакомства с новостной повесткой (естественно, после чашки кофе :)), чтобы понимать, в каком направлении движемся мы и мир в целом, как развивается вредоносное ПО.
К необходимым профессиональным навыкам я отношу:
Знание операционных систем, причем не только Windows, но и Linux, macOS, мобильных платформ Android и iOS.
Безусловно, это расширяет кругозор и помогает понимать, что происходит в мире и на чем следует сделать акцент.
Знание стека сетевых технологий.
Азы программирования и обратная разработка (именно в этом порядке!).
Прежде чем обратно что-то разрабатывать, необходимо уметь программировать — здесь речь идет не столько о знании языков программирования, сколько об умении применять их на практике.
На самом деле, все вышеперечисленное обобщается самообучением. По моему мнению, тот, кто умеет учиться самостоятельно, сможет научиться всему, что я назвал, а также другим полезным вещам: исследованию сетевых атак, проактивному поиску киберугроз в инфраструктуре, расследованию инцидентов и анализу журналов событий ИБ. Отмечу, чтобы не пугать: все эти знания и навыки приобретаются со временем, никто не должен сразу обладать этим багажом, и ни один мой сотрудник не знал в полном объеме все то, что ему в будущем потребовалось для работы.
Наша компания по минимуму обременена бюрократией и формализмом — здесь мы на практике занимаемся реальной кибербезопасностью. И когда реализуешь нечто новое, что никто до тебя еще не делал, получаешь максимальное удовольствие от работы. Хотите присоединиться к отделу обнаружения вредоносного ПО PT Expert Security Center? У нас есть вакансии.
Мой совет соискателям: сфера кибербезопасности очень широкая, и я бы рекомендовал не гнаться за модой и трендами, а попытаться в первую очередь найти себя и понять, чем именно вам интересно заниматься. А определившись — уже не сходить со своего пути.
И напоследок: когда только собираешься выйти на новую работу, хочется в деталях представлять, чтó тебя ожидает. Узнайте, как выглядит офис Positive Technologies внутри и как проходит мой обычный рабочий день, из этого ролика.
О работе какого отдела Positive Technologies вы хотели бы прочитать в следующем посте? Пишите в комментариях.