Гайд по кибербезопасности для разработчиков и начинающих специалистов
Как стать специалистом по кибербезопасности, нужно ли для этого уметь программировать и какие инструменты и сертификаты понадобятся.
Иллюстрация: Polina Vari для Skillbox Media
Михаил Курзин
Head of Security в ManyChat Armenia. Любит спорт, в частности баскетбол и горный трекинг.
Я возглавляю направление безопасности в ManyChat — это международная SaaS-компания, которая помогает автоматизировать маркетинг и общение с клиентами в мессенджерах. Мы работаем больше шести лет и успели зайти в разные регионы по всему миру и набрать базу лояльных клиентов.
Мы зарабатываем только на одном SaaS-продукте, а значит, его безопасность и безопасность данных наших клиентов для нас — приоритет. Тем более, в отличие от огромных игроков, практически монополистов, которые время от времени попадают в скандалы с утечкой персональных данных, мы такого себе позволить не можем — любой кейс с защищённостью нашей платформы может разрушить доверие клиентов, и мы потеряем деньги и репутацию.
При этом мы не так боимся за утечку, например, исходников своего продукта — ведь доля рынка держится не только и не столько на технологиях, сколько на бренде, хорошем маркетинге, продажах, долгой планомерной работе и сильной технической команде, которая постоянно дорабатывает и расширяет функциональность платформы. То есть даже если бы кто-то теоретически смог получить исходный код ManyChat, то ему было бы нелегко воссоздать наш продукт.
Что такое кибербезопасность?
Кибербезопасность — это деятельность по защите информации в различных её аспектах, начиная от защиты баз данных и заканчивая защитой переговоров руководства компаний.
Иногда считают, что кибербезопасность — это направление, которое относится только к технологиям. Но это не так: технологии не работают без процессов и людей, которые их поддерживают, а процессы не работают без технологий. Они взаимосвязаны.
Вот примеры направлений, за которые отвечает кибербезопасность (на самом деле их гораздо больше):
- защита веб-приложений,
- защита сетей,
- защита промышленных систем,
- соответствие законодательным актам по информационной безопасности,
- компьютерная криминалистика
- и многие другие.
В каждом из этих направлений можно развиваться годами и находить для себя новые и интересные задачи.
По всему миру сейчас выросла нагрузка на службы информационной безопасности в госкомпаниях, банках, медиакомпаниях, телекомах. Кибербезопасность сейчас в фокусе не только на корпоративном, но и на государственном уровне.
Работа специалиста по кибербезопасности — это постоянное соревнование между «мечом» и «щитом». Компании стараются регулярно выпускать обновления, выполнять требования регуляторов, появляются новые технологии, которые надо защищать, а злоумышленники или исследователи продолжают челленджить системы защиты и искать уязвимости.
Как стать кибербезопасником и какую специализацию выбрать
Потребность в специалистах по кибербезопасности существует и в Европе, и в США, и в Китае, и в Индии — во всём мире. За последние несколько лет мне не раз доводилось собеседовать ребят, которые только выпустились из института. Это был печальный опыт, потому что знаний, которые дают преподаватели, по крайней мере в вузах СНГ, явно недостаточно для того, чтобы выпускник был готовым джуном.
Станет ли человек хорошим специалистом, зависит только от желания развиваться в этом направлении. Хорошо себя проявляют ребята, которые сами в процессе обучения проявляют инициативу — занимаются на онлайн-платформах, добирают знания по программированию, ставят перед собой амбициозные вызовы, участвуют в соревнованиях по кибербезопасности. Вот какой путь я рекомендую тем, кто решил стать кибербезопасником.
Изучать дополнительные материалы
Например, внутри технических вузов развита культура CTF-соревнований (Capture the Flag) — на них команды соревнуются между собой в поиске уязвимостей. Одним из самых известных в СНГ является RuCTF, в мире — Def Con или Google CTF. Это хорошая тренировка. Те, кто просто ходит на лекции и не занимается дополнительно, не смогут стать хорошими специалистами сразу после вуза, потому что кибербезопасность, как и все информационные технологии, каждый год активно развивается, а учебные программы часто стоят на месте.
Также перед тем, как что-то защищать, нужно понимать, как это устроено. Базовые знания Computer Science — просто мастхэв: операционные системы, протоколы, понимание стека веб-технологий, устройства интернета, основных сетевых протоколов. Получить необходимые знания сейчас легко, ведь в Сети куча бесплатных и платных площадок с качественными курсами — тот же знаменитый курс CS50 от Гарвардского университета. Это серьёзное отличие от 2000-х годов, когда в интернете было мало информации и знания мы получали из легендарных журналов «Хакер» или Phrack.
Сам я регулярно читаю отчёты на HackerOne (крупнейшая площадка отчётов Bug Bounty) и профильные Telegram-каналы. Много курсов есть на YouTube, на бесплатных площадках типа Coursera, Khan Academy и на платных площадках вроде Pluralsight или Kontra.
Выбрать направление
Будущему специалисту лучше выбрать одно направление кибербезопасности ещё во время учёбы в вузе, чтобы всю свою энергию инвестировать в него. Сейчас направления кибербезопасности очень сильно сегментированы и специалист в одной области может совершенно не разбираться в другой. Поэтому нужно решить на старте, чем именно вы хотите заниматься: искать уязвимости, безопасно конфигурировать сетевое оборудование или защищать веб-системы — и исходя из этого строить план обучения.
Я уже говорил, что любому специалисту в сфере кибербезопасности нужны знания Computer Science, а теперь расскажу, какие нишевые знания понадобятся в направлениях кибербезопасности:
- Специалисту по криптографии нужны математика, линейная алгебра, теория вероятностей, теория чисел, потому что нужно понимать, как работают алгоритмы шифрования, насколько они устойчивы к атакам.
- Специалисту по защите сетей понадобится знание сетевых протоколов, современных сетевых устройств, роутеров, межсетевых экранов и сетевой архитектуры.
- Специалисту по защите веб-приложений пригодится знание современных языков веб-программирования — PHP, JavaScript, Python, фреймворков типа Laravel, Django, Symfony и других, а также знание видов современных атак на веб-приложения (например, на базе стандарта OWASP Top 10).
- Специалисту по защите ОС — знание языков системного программирования, например С++, ну, и, конечно, знание архитектуры и систем защиты самих ОС.
- Для защиты устройств и микроконтроллеров — знание схемотехники, ассемблера и архитектуры самих микроконтроллеров.
Ещё существуют compliance-специалисты — это спецы по информационной безопасности с юридической направленностью, они отвечают за соответствие различным законам и стандартам по информационной безопасности, знают, как они меняются и как действуют регуляторы. Им технические знания нужны в меньшей степени.
Подготовиться к сертификации
Специалисту по поиску уязвимостей в веб-технологиях желательно получить международную сертификацию, например OSCP или CEH для «белых» хакеров. С ней ему будет легче найти работу во многих компаниях по всему миру. У них чёткая программа, которая с годами оттачивалась, постоянно модифицировалась, совершенствовалась. Эта программа включает и современные уязвимости — то есть она актуальная, современная и имеет практическую направленность.
Если вы поставили себе цель получить сертификацию, нужно подготовиться. Есть много курсов, которые помогают подготовиться к ней. Если не хватает знаний по веб-программированию, можно подучить JavaScript или РНР. Существуют и сертификации по сетевым технологиям, в том числе по безопасности сетей (например, от компании Cisco — CCNP Security).
Как правило, у любой сертификации есть определённые грейды. Сначала нужно сдать базовый уровень, потом расширенный — при наличии фундамента знаний подготовиться к таким экзаменам можно за 3–6 месяцев. Для OSCP-сертификата нужны будут и знания в области программирования, так что подготовка может занять полгода-год.
Важно помнить, что кибербезопасность — это больше про практику, а не про теорию. На курсах всегда дают лабораторные практические задания по конфигурации, взлому, поиску уязвимостей.
Получить больше практики можно, участвуя в распространённых программах Bug Bounty — им уже больше 25 лет. Суть такая: с разрешения и по просьбе компании любой разработчик может попробовать найти уязвимости в продукте. Такие челленджи публикуют Google, VK, Microsoft, Slack и многие другие компании.
В условиях подробно прописывается, какая уязвимость к какому уровню критичности относится, какие уязвимости принимаются к рассмотрению, какие нет. В зависимости от критичности назначается вознаграждение тому, кто нашёл уязвимость.
Отчёты иногда публикуются публично. Отсюда один из советов новичкам — читать отчёты по уязвимостям, которые выходили в блогах Shopify или Google. Они достаточно хорошо расписаны, а уязвимости, как правило, нетривиальные.
Освоить программирование и изучить уязвимости
Уязвимости находят сплошь и рядом, потому что программные продукты сложные, разрабатываются сотнями людей и отследить все зависимости очень сложно. Большинство уязвимостей — это дыры, которые позволяют запускать произвольный код, читать данные без должных полномочий, перехватывать и расшифровывать трафик, выполнять произвольные запросы в браузере без ведома пользователя, перенаправлять трафик в другой источник и так далее.
Важно понимать, какие типы уязвимостей вообще существуют и как их можно устранить. Для этого приходится часто общаться с разработчиками. А вот программировать лично мне приходится нечасто — хотя порой нужно смотреть чужой код во время релизов в поисках уязвимостей.
Вообще, навыки программирования у безопасников сильно зависят от специализации. Например, наш стек — РНР и React. Именно эти технологии в основном используются в ManyChat. А в процессе изучения или поиска уязвимостей, работы в направлении Application Security, выстраивания системы безопасной разработки без навыков программирования просто не обойтись.
Какие инструменты применяют для поиска уязвимостей
В работу специалиста по кибербезопасности обязательно входит работа с инструментами для поиска уязвимостей в системах и IT-инфраструктуре. Они бывают нескольких видов:
- Для поиска уязвимостей в инфраструктуре. Qualys, Tenable, Nexpose, OpenVAS. Этим инструментам задают внешние IP-адреса или доменные имена сервисов, и они проводят автоматизированное сканирование, находят базовые уязвимости в инфраструктуре: в операционных системах, протоколах, веб-серверах.
- DAST-сканеры для поиска уязвимостей внутри веб-продукта. Они сканируют только веб-приложения. Примеры — Burp Suite, OWASP ZAP и Acunetix VS.
- Сканеры софта на уязвимости, связанные с опенсорс-библиотеками. Например, у GitHub есть встроенный механизм Dependabot. Из коммерческих продуктов можно выделить Snyk, Black Duck.
- Статические анализаторы кода, которые анализируют весь код строчка за строчкой, выявляя в нём уязвимости. Примеры решений: Fortify, CodeQL, Black Duck.
- Инструменты для выявления уязвимостей в Kubernetes и Docker-контейнерах, в облачных средах. Они фиксируют неправильные настройки конфигурации и уязвимости в этих средах. Например, Prisma, Aqua Security.
И это мы разобрали только типы инструментов по поиску и устранению уязвимостей. А ведь в кибербезопасности есть ещё десятки других типов систем безопасности и тулов, которые обеспечивают защиту информации в других областях: защита от вирусов на разных уровнях, управление учётными записями, мониторинг инцидентов информационной безопасности, защита от утечек конфиденциальной информации и другие.
Все эти инструменты можно внедрять параллельно, чтобы выявлять уязвимости сразу на разных уровнях. А какие именно будут внедряться, зависит от компании и задач.
Чем занимается руководитель по безопасности
В компании ManyChat у нас небольшая команда по кибербезопасности. Поэтому приходится заниматься практически всем и сразу — в настоящий момент в моей зоне ответственности находятся следующие задачи:
- Внедрение, сопровождение и мониторинг различных инструментов безопасности — антивирусов, сетевой защиты, систем мониторинга и реагирования на инциденты.
- Внедрение процессов по безопасной разработке. В том числе обсуждение реализации рисковых фич в продукте, например — какие изменения лучше сделать в нашем биллинге, чтобы они были безопасны.
- Защита рабочих ноутбуков сотрудников, чтобы их нельзя было заразить вредоносными вирусами и троянами.
- Выявление уязвимостей в IT-инфраструктуре и продукте, чтобы их устранить.
- Задачи по комплаенсу — у нас международная компания, а значит, мы проходим различные международные сертификации и должны соблюдать законодательство различных стран по защите персональных данных, антиспам-регулированию и не только.
- Защита облачной инфраструктуры и бизнес-систем.
Кибербезопасность в России и за рубежом
В России есть достаточно сильные и крутые специалисты по кибербезопасности — особенно в сравнении с рынком Европы и США. Всем известно, что российские white-box-хакеры всегда в цене — так что в части экспертности и талантов у России серьёзное преимущество.
При этом в России также достаточно развито законодательство в сфере информационной безопасности — защите критической инфраструктуры, которое появилось раньше европейского. У нас достаточно давно развиваются законы о защите персональных данных, и многие компании опираются на этот закон в ежедневной практической деятельности. У нашего Центробанка очень хорошо развита нормативная база, которая регулирует кибербезопасность в финансовых компаниях. Так что в России законодательная база даёт достаточно сильный толчок развитию информационной безопасности в стране. Хотя есть моменты в законе, над которыми стоило бы поработать. Например, штрафы за нарушение закона о персональных данных не сильно мотивируют компании инвестировать в это направление. Также технические меры по защите персональных данных в последний раз пересматривались четыре года назад и не поспевают за современными реалиями.
В Европе многие компании существуют гораздо дольше, чем российские, поэтому процессы и бизнес-системы, которые в них внедрены, были разработаны десятилетия назад и с тех пор не сильно обновлялись, поэтому исторически содержат много уязвимостей. По этой причине в Европе гораздо чаще, чем в России, возникают атаки на компании вирусами-шифровальщиками. Страдают обычно более инертные и консервативные компании, которые меньше вкладывались в кибербезопасность.
Основная проблема кибербезопасности в России — в качестве производимых средств защиты. Существуют сотни различных типов средств защиты, которые создаются под конкретные узкие задачи — и в России есть отличные продукты по многим направлениям. Однако на то, чтобы реализовать на должном уровне все типы средств защиты, у местных вендоров просто не хватает ресурсов. Хотя существуют отдельные очень известные решения типа «Касперского», которые распространены во всём мире. Мировые вендоры, которые работают на глобальном рынке, конечно же, могут гораздо больше ресурсов вкладывать в развитие своих продуктов.
В отличие от России, на Западе любая компания может выбирать средства защиты из гораздо большего пула решений, многие из которых для российских компаний недоступны, особенно в текущей ситуации, когда многие зарубежные вендоры в основном ушли с российского рынка.
* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».