Как я ищу себе сотрудников в команду DevSecOps и AppSec

Привет! Меня зовут Михаил Синельников. Я DevSecOps TeamLead в РСХБ‑Интех. Тружусь в ИТ‑сфере уже 25 лет, немалую часть из которых — на руководящих должностях. Сегодня расскажу, как я ищу специалистов к себе в команду DevSecOps и AppSec, на что обращаю внимание и как общаюсь с соискателями, которые на собеседовании пытаются приукрасить собственные достижения.

ac06d072c74075f1d2a87d0b73b16087.png

Сразу отмечу, что мой опыт в основном касается найма сотрудников в регионах на удаленку. И тут есть свои сложности. Специалисты боятся уйти из местных компаний, потому что это, во-первых, гарантия трудоустройства и, во-вторых, очень стабильное место. Я тоже прошел этот путь и решился перейти из маленькой компании в большую, но об этом, наверное, расскажу в следующий раз.

Где и по каким критериям я ищу будущих коллег

Возможно, я кого-то удивлю, но в первую очередь я ищу себе сотрудников не на job-ресурсах, а в сообществах, общих чатах по ИТ-специалистам и через знакомых. Так можно найти человека с уже имеющимися рекомендациями и базово оценить, насколько он тебе подходит. Не по его резюме, а по реальной репутации. Да и сам ты его уже можешь знать благодаря тому, что крутишься в этом же сообществе.

Есть общие чаты в моем городе (и не только) по ИТ-специалистам, куда можно просто написать: «Ребят, привет, я занимаюсь вот этим и ищу к себе классных специалистов, готовых поработать вместе со мной». После скидываю требования, которые в настоящее время для меня актуальны.

Если все это не представляется возможным, в ход идут классические варианты с job-ресурсами.

Перед приглашением на собеседование я сперва обращаю внимание на следующие моменты из резюме и рекомендаций.

Опыт в программировании

Я уверен, что любой безопасник в DevSecOps и AppSec обязан знать код. В идеале все безопасники должны вырастать из программистов. Вы можете со мной не согласиться, но специалисты DevSecOps и AppSec должны работать с кодом в той или иной степени, будь там какие-то yaml-манифесты, Json, различные скрипты или просто классическое приложение, написанное на Java, Go и так далее. Очень неправильно, когда безопасник не знает язык, в котором он ищет уязвимости. Нельзя посмотреть в одну строчку, которую подсветил сканер, и сказать: да, действительно, эта строчка является эксплуатабельной в данном случае, или это false. Нужно знать весь проект, его структуру. Если ты не программист, ты просто этот код не разберешь.

Проявление инициативы

Хочется, чтобы мой будущий сотрудник проявлял инициативу. Я имею в виду людей, которые достаточно много работают, выполняют большие задачи и имеют амбиции, хотят достичь и много сидят над какими-либо конкретными задачами. Я поддерживаю в людях стремление развиваться в своей области, продвигаться в сообществе и искать для себя интересные задачи и проекты, в том числе вне работы. И если в резюме будут указаны соответствующие моменты, я обязательно это выделю как плюс.

Умение отдыхать

Этому моменту я также уделяю немало времени и обязательно проговариваю на собеседовании. Наличие увлечений и хобби у человека говорит о его умении переключиться с работы на что-то другое, разностороннем развитии и незацикленности на одной только работе. Необязательно речь идет про активные виды спорта, походы, прогулки и т.д. Главное, что в жизни у человека есть не только работа, но и сама жизнь. Значит, он не выгорит через пару-тройку лет безвылазной работы. Умение отдыхать и отвлекаться выступает как гарантия долгосрочных трудовых отношений.

На моем опыте была лишь пара случаев, когда у сотрудников в жизни есть только работа и ничего более. Но я считаю их уникальными людьми. Они уже долго работают в этом ритме, не выгорают и не впадают в депрессию. Для такого нужно иметь определенную стойкость и склад характера. Но в 99% случаев переработки и неумение отдыхать — это гарантированный уход и выгорание сотрудника через 2–3 года. В моменте он может много сделать, но мне не нужно менять людей как перчатки каждые пару лет.

Образование

Я сам закончил аспирантуру, и считаю, что это больше плюс, чем минус. Следует проверить наличие сертификатов и дипломов об образовании, указанных в резюме. Подтверждение квалификации через сертификаты может указать на правдивость заявленных компетенций. Пять лет учиться непросто, но в то же время, когда ты учишься, тебя заставляют думать в правильном направлении, анализировать сложные ситуации, разрабатывать что-то, что имеет научную новизну в настоящее время и может быть в дальнейшем использовано с пользой для людей. И тут в принципе то же самое: объединяешь общие идеи с коллегами и создаешь, допустим, прогрессивный DevOps, который позволяет в дальнейшем помочь людям, в частности, в безопасности в банковской сфере.

Референсы и рекомендации

Я прошу соискателя предоставить контакты предыдущих работодателей или коллег, которые могут дать рекомендации о его работе. Если человек работал в области ИБ, то обычно находятся общие знакомые с которыми я также общаюсь и которые могут подтвердить его квалификацию.

На что я дополнительно обращаю внимание на собеседовании

К сожалению, не все моменты можно выяснить на этапе прочтения резюме. Часть вещей соискатель может утаить, чтобы выставить себя в более выгодном свете, но чаще всего просто невозможно при составлении резюме учесть все моменты нужные работодателю. По наводящим вопросам в разговоре с соискателем и по его историям с предыдущих мест работы я выясняю, есть ли у потенциального сотрудника перечисленные далее качества.

Умение читать

Смешно звучит, но на деле это не такое расхожее качество. Человек, умеющий читать и анализировать, может решить практически любую задачу. В этом я уже совершенно точно убежден, потому что это сам проходил не раз. Сейчас я сам стараюсь искать информацию во многих источниках, активно использую тот же ChatGPT и другие аналогичные сервисы просто для того, чтобы ускорить работу. То есть чем больше информации я буду через себя проталкивать, тем больше задач я буду решать, и, соответственно, буду успешнее.

Иногда я прошу кандидата найти решение сложной задачи онлайн и предоставляю ему материал для анализа, смотрю как быстро он может прочитать и провести качественный анализ предоставленной статьи.

Аналитический склад ума

Есть два процесса: декомпозиция и композиция. Программисты обычно используют вторую часть. Они проводят композиционный анализ, то есть из кода собирают какой-то артефакт, который необходим в дальнейшей работе. Аналитик ИБ или специалист службы безопасности использует декомпозицию. То есть, наоборот, разбирает тот артефакт на составляющие и ищет уязвимости. Если программист создает, то безопасник разбирает.

Аналитический склад ума необходим в той части, которая связана именно с разбором, как работает чужой код. В 90-е, например, мы говорили о дизассемблировании, если код написан на assembler. То есть у тебя есть бинарий, и нужно понять, как он работает. И если ты не будешь анализировать все точки входа, выхода, все процессы и функции, которые в данном коде разработал программист, то не сможешь быть уверенным, что программа работает так, как ее задумали. Может быть много подводных камней и логических вещей, связанных с правильной или неправильной работой программы.

Допустим, есть какая‑то функция, в которую можно передавать определенное количество данных. Программист может рассмотреть эту функцию как какие‑то входные числовые данные, которые туда могут передаваться. Или эти данные могут быть ограничены какой‑то последовательностью или длиной. Например, вводим номер карты. Вроде как номер карты имеет определенную длину. Но, в то же время, любой аналитик и вы должны понимать, что вместо номера могут быть буквы или спецсимволы, а длина может быть не совсем такая, какую ее придумал программист. Это тоже нужно проверить, а все гипотезы — проанализировать, смотреть на все гораздо шире, чем это заложено бизнес‑логикой и мышлением программиста, который это все писал.

Как понять, что у кандидата есть аналитический склад ума? Все это легко выясняется на этапе «поговорить» с кандидатом. Можно просто задавать вопросы типа: «Есть выборка данных для процесса Х, она состоит из 1000 параметров, нужно определить наиболее важные 30, задачу анализа будет решать 3 группы аналитиков. Как вы разделите эти параметры для получения высокой эффективности и достоверности анализа?».

Опыт работы в критической ситуации

Желательно, чтобы соискатель имел опыт работы в кранче, например, если он работал с серверами с какой-то большой критической нагрузкой и сидел в дежурстве. Обычно это ночные дежурства, вечерние, в выходной день, когда приходилось что-то срочно поднимать и восстанавливать. Такие люди очень ценны. Они действительно умеют трудиться и лично проходили через разную «боль». Они готовы тушить пожары вместе с тобой и, что самое важное, с высокой долей вероятности будут аккуратнее остальных.

Я работал в компании, где было много студентов без опыта. Они очень часто много всего ломали, и за ними нужно было все это поднимать. Это, конечно, отчасти следствие менторства. Ты должен помогать, развивать, делать из студентов специалистов, но это не отменяет «боли» при исправлении ошибок. И вот пока ты это все с ними вместе не пройдешь, они крутыми не становятся. Если человек участвовал в этих процессах и имел силы и умение поднимать и исправлять, это очень круто. Нужно таких выделять и забирать себе, потому что явно они умеют работать.

Как не дать себя обмануть

Соискатели могут преувеличивать свои достижения, однако это достаточно легко проверить. Если человек обладает необходимой практикой, ему нужно задавать практические вопросы, на которые сложно ответить, не имея реального опыта.

Допустим, я спрашиваю про реализацию какой-либо практики из DevSecOps, то есть в каком, допустим, оркестраторе он работал. В двух словах соискатель должен написать, например, джобу, в которой это все исполнялось, и какой инструмент использовал. И даже можно подсказать какие-то ключи от этого сканера уязвимостей и спросить, какие ключи и в каком аспекте вы бы использовали, чтобы все работало. На эти вопросы может ответить только специалист, который действительно с этим когда-либо работал. На мой взгляд это лучший способ проверить человека. То есть нужно давать небольшие практические задания, которые можно на скорую руку просто решить.

Бывает так, что не все соискатели работали и работают с тем же, что и я, да и опыт и знаний у них может быть больше. Тогда имеет смысл найти какие-то общие вопросы, точки соприкосновения, с которыми мы работали вместе. Допустим, просто перечислить 20 каких-то вещей из области ИБ и спросить, с чем из них знаком соискатель, найти общие точки интереса и после детально по ним пройтись.

Когда соискатель на собеседованиях хвастается наличием разработок, тоже лучше задавать конкретные вопросы. Если человек без запинки рассказывает, что он внедрил, можно дополнительно спросить у него какие-то небольшие детали по каждому пункту и направлению. Допустим, как вы реализовывали проверку SaaS и какими инструментами. Если он рассказывает детально и, возможно, с какими-то дополнительными нюансами, связанными с настройками конкретного сканера, и это укладывается в общую концепцию, значит человек действительно этим жил и использовал то, о чем говорит.

Это все моменты, на которые я обращаю внимание при поиске новых людей. Надеюсь, эта информация пригодится как моим коллегам по TeamLead, так и соискателям, которые будут знать, какие качества им необходимо развивать для успешного прохождения интервью.

© Habrahabr.ru