Как устроена безопасность веб-приложений, онлайн-курсы для разработчиков

KEDU
Автор статьи

Содержание

Дата публикации 18.07.2024
Главная картинка статьи Как устроена безопасность веб-приложений, онлайн-курсы для разработчиков
Источник фото lookstudio/freepik

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

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

Что такое веб-приложения

По сути web-приложение представляет собой софт, расположенный на стороннем сервере или кластере серверов. Отображается он в вашем браузере на рабочем столе, а все операции происходят на стороне разработчика. Здесь обрабатываются запросы и происходит управление данными, а вы видите только конечный результат.

Ключевое отличие от десктопного ПО в том, что веб-приложения не нужно устанавливать на компьютер. Типичный пример для сравнения: текстовый редактор MS Word и почти аналогичный редактор Google Docs. В первом вы работаете у себя на компьютере или ноутбуке, во втором — все операции происходят на облаке компании Гугл посредством браузера, данные хранятся там же с привязкой к вашему аккаунту

Архитектура веб-приложений

Буквально все веб-приложения построены по одному и тому же принципу, в котором есть:

  1. Клиентская сторона (Frontend) — все, что видит пользователь на своем экране и с чем может взаимодействовать;
  2. Серверная сторона (Backend) — программы, отвечающие за серверную логику, обработку запросов от клиента и передачу на серверные приложения, маршрутизацию запросов, взаимодействие с базами данных и т.д.;
  3. Базы данных и системы управления ими (SQL) — обеспечивают хранение информации и выдачу по запросу от клиента;
  4. API (Application Programming Interface) — программный интерфейс приложения, позволяющий различным приложениям обмениваться данными между собой.

В совокупности все это работает следующим образом:

  • Пользователь выполняет целевое действие на веб-странице, например, нажимает кнопку;
  • Браузер отправляет HTTP-запрос к серверу, который включает метод запроса, заголовки и какие-либо данные;
  • Запрос обрабатывается на сервере с помощью специального приложения. Оно формирует HTTP-ответ, который может включать HTML-страницу, JSON-данные или другие ресурсы, и отправляет его обратно клиенту;
  • Данные отображаются на клиентской стороне после рендеринга страницы. Если ответ содержит дополнительные данные, они могут использоваться для обновления части страницы без перезагрузки (технология AJAX).

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

Что входит в безопасность веб-приложений

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

Для этого разработан целый ряд мероприятий и защитных систем:

1. Аутентификация и авторизация

Здесь имеются в виду проверка подлинности пользователя с помощью логина, пароля и двухфакторной аутентификации (например, через СМС-пароль). Авторизация же определяет права доступа пользователя к тем или иным ресурсам (админ, пользователь) и тому, что он может делать в системе

2. Шифрование данных

Система TLS/SSL используется, чтобы защитить данные от перехвата, когда они передаются между клиентом и сервером.

Также есть шифрование данных в базах данных и других хранилищах — это помогает закрыть их от несанкционированного доступа.

3. Защита от атак

Под этим понимается совокупность методик, которые помогают предотвратить такие методы хакеров, как:

  • SQL-инъекции. Внедрение вредоносного кода в SQL-запросы. Защита включает использование подготовленных выражений (prepared statements) и ORM (object-relational mapping).
  • XSS (Cross-Site Scripting). Внедрение вредоносного скрипта на веб-страницу. Защита включает правильную экранизацию и очистку пользовательского ввода.
  • CSRF (Cross-Site Request Forgery). Атака, заставляющая пользователя выполнить нежелательное действие на сайте, на котором он аутентифицирован. Защита включает использование CSRF-токенов.

4. Управление сессиями

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

5. Логи и мониторинг

На серверной стороне также фиксируются все действия пользователей и системные события. Они представлены в виде логов событий, которые помогают отслеживать и пресекать подозрительную активность. Мониторинг включает системы обнаружения вторжений (IDS), которые непрерывно отслеживают попытки проникновения и кражи данных.

Специалисты, которые отвечают за безопасность веб-приложений

1. Веб-разработчик (программист)

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

Поэтому любой разработчик, будь то фронтенд или бекенд, должен следить за чистотой кода, а также использовать статический и динамический анализ для поиска уязвимостей. Есть также определенные международные и национальные стандарты разработки, которые нужно знать разработчику:

  1. OWASP (Open Web Application Security Project);
  2. ISO/IEC (International Organization for Standardization / International Electrotechnical Commission);
  3. PCI DSS (Payment Card Industry Data Security Standard);
  4. ГОСТ Р 56939­-2016;
  5. CSA (Cloud Security Alliance) и другие

2. Системный администратор

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

Для этого от системных администраторов требуется регулярно обновлять параметры безопасности, делать бэкапы, настраивать шифрование и политику безопасности на уровне сервера.

3. Инженер службы ИБ

У этого специалиста и его команды задача посложнее, чем у сисадмина. Они регулярно проводят аудит систем безопасности и организуют своего рода киберучения — тесты на проникновение и Red Teaming. В рамках этих учений выявляются возможные уязвимости в системе, которые впоследствии предстоит устранить.

Также инженер ИБ отвечает за обучение линейных сотрудников правилам безопасной работы с данными, разрабатывает служебные инструкции и мануалы, проверяет соблюдение установленных правил.

4. Пентестер

Отдельная категория специалистов ИБ — это пентестеры (pentestists), или этичные хакеры. Их работа как раз заключается в том, чтобы искать уязвимости и проникать в системы безопасности.

Заниматься пентестом они могут и в качестве сторонних аудиторов, и в составе Red Team, и работая в штате компании под руководством начальника службы ИБ.

Основная же цель пентестера — найти способ проникнуть в инфраструктуру или ее подсистемы, а затем составить отчет для специалистов ИБ и детально описать путь, по которому это удалось сделать.

4. DevSecOps-инженер

Этот специалист отвечает за внедрение ИБ-инструментов в жизненный цикл разработки веб-приложений и тестирует их на каждом этапе разработки и развертывания.

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

Какие есть курсы по безопасности веб-приложений

Курсы, выбранные нашей командой экспертов
Программа обучения
РостБизнесКонсалт
Дистанционная

Разработка WEB, учебная нагрузка 252 часа

252 часа
53 000 ₽
Программа обучения
CyberED

базовый трек Администратор безопасности F-401

136 часов
93 600 ₽
Программа обучения
ProductStar
Дистанционная

Профессия: Web-разработчик

124 часа
286 000 ₽
129 000 ₽
Программа обучения
Институт прикладной автоматизации и программирования
Очная

Информационная безопасность и шифрование данных – очное обучение в Санкт-Петербурге

40 часов
45 000 ₽

В первую очередь обучению безопасности веб-приложений должны уделять внимание разработчики софта и DevOps-специалисты. Сюда входит:

  1. Знание стандартов;
  2. Знание методологии разработки (SAST и DAST, DevSecOps, Threat Modeling);
  3. Владение валидацией и экранированием ввода, шифрованием данных и другими практиками;
  4. Знание, как устроен аудит безопасности и управление версиями.

Российские онлайн-курсы по безопасной разработке (примеры)

  1. Яндекс.Практикум. Веб-разработчик;
  2. InfoSecurity. Курсы по безопасной разработке для компаний;
  3. Acamedy IT. Безопасное программирование (Secure Coding);
  4. Академия информационных систем. Безопасная разработка программного обеспечения;
  5. In-SECA. Security Champion;
  6. Учебный центр «Эшелон». Разработка безопасного ПО ГОСТ Р 56939—2016.

Зарубежные платформы и курсы по безопасной разработке

  1. Coursera. Открытая платформа со множеством платных и бесплатных онлайн-курсов. По теме безопасности для разработчика есть такие: "Secure Software Development" от University of Colorado или "Cybersecurity Specialization" от Университета Мэриленда;
  2. Udacity. Программа "Security Engineer Nanodegree" включает модули по безопасной разработке, оценке уязвимостей и многим другим аспектам безопасности;
  3. edX. Курсы, такие как "Introduction to Cyber Security" от NYU и "Computer Security" от University of Maryland, предоставляют обширные знания о принципах кибербезопасности и их применении;
  4. Udemy. Курс "Web Security: Common Vulnerabilities & Their Mitigation" предлагает практические знания о защите веб-приложений от распространенных угроз.

Также, чтобы получить навыки безопасной разработки веб-приложений, программисту стоит пройти сертификацию и поглубже изучить тему этичного хакинга. Варианты:

  • Certified Ethical Hacker (CEH). Сертификация от EC-Council, охватывающая множество аспектов безопасности, включая тестирование веб-приложений на проникновение.
  • Offensive Security Certified Professional (OSCP). Сертификация от Offensive Security, требующая практических навыков тестирования на проникновение и глубоких знаний безопасности.
  • Certified Information Systems Security Professional (CISSP). Сертификация от (ISC)², охватывающая широкий спектр тем, связанных с кибербезопасностью, включая безопасную разработку приложений.
Читайте также
Все статьи