Курс
Разработка безопасных веб-приложений (Secure Web Applications Development)

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

Записаться на обучение

Код курса

S-225

Формат обучения

Виртуальный класс

Аудитория курса:

Специалисты по безопасности приложений с опытом работы до 1 года

Будущие руководители отдела безопасности приложений

DevOps инженеры

Аудиторы

Разработчики веб-приложений

Что узнают слушатели:

Основные уязвимости веб-приложений, включая, но не ограничиваясь OWASP Top 10

Опасность и риски, которые несут уязвимости продукта

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

Изучение атаки Path traversal, File Upload, Local & Remote File Inclusion, Local File Read и как от них защищаться. Изучение URL схем, безопасность архивов (Archive Upload Issues)

Уязвимость обход контроля доступа (Broken Access Control), разграничение доступа в веб-приложениях, на функциональном уровне и на уровне объектов, оптимизация защиты от уязвимости. Изучение работы шаблонов, изучение уязвимостей, автоматизация эксплуатации уязвимостей шаблонов

Изучение сериализации, небезопасной десериализации для разных языков программирования, методы защиты от уязвимости

Изучение уязвимостей Server Side Request Forgery, защита веб-приложения от обращений к внутренним ресурсам. Изучение уязвимости XML eXternal Entity, защита от XXE. Изучение атаки PDF Rendering

Чтение ответов с определенного origin (CORS). В контексте origin приложения выполнять Javascript-код (XSS). Кража cookies, модификация dom-дерева, изменение компонентов веб-страницы

Чему научатся слушатели:

Использовать Burp Suite и другие инструменты для выявления и эксплуатации уязвимостей веб-приложений

Проводить анализ кода и программных решений на предмет типовых уязвимостей

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

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

Программа обучения

15 занятий

60 ак. часов

Вводное занятие

Содержание:

  • whoami
  • Организационные вопросы
  • Цели модуля
  • Что есть полезного для изучающих безопасность веба
  • HTTP
    • HTTP request
    • HTTP response
    • Методы HTTP (HTTP verbs)
    • Коды состояния ответов HTTP
    • URL — Uniform Resource Locator
    • HTTP — текстовый протокол
  • Кодировки в WWW
  • HTTPS vs HTTP
    • Content-Type
  • HTML, Javascript, CSS
Сбор информации о веб-приложениях

Изучение устройства веб-приложений, методов сбора информации. Брутфорс директорий и файлов на веб-сервере


Содержание:

  • Обзор устройства веб-приложений
    • Веб-приложение
    • MVC
    • Фреймворки
    • Routing
    • SPA (приложения-одностраничники)
    • Веб-сервер
  • Сбор информации
    • Что вообще можно собирать
    • Сбор информации об используемых технологиях
    • Сбор входных точек
    • Пассивный сбор
  • Дирбастинг и краулинг
    • Словари
    • Burp Intruder
    • Виртуальные хосты
    • Работа с .git/.svn

Упражнение:

  • Дирбастинг с помощью Burp Intruder
OS-command injection

Изучение уязвимостей к инъекциям, защита от внедрения на сервер инъекциями


Содержание:

  • Уязвимость OS Command injection
    • A03:2021-Injection
    • Техники
    • Обход фильтрации
    • Как защититься?
  • Reverse shell
    • Back connect receiver
  • Подходы к безопасному вызову команд ОС

Упражнение:

  • PHP инъекции
  • Обход фильтрации
  • Валидация входных данных
  • Экранирование специальных символов
SQL-injection

Чтение информации из доступных баз данных. Получение информации о сервере, текущем пользователе, настройках, информации из файловой системы. Возможность модификации информации в базе данных, записи в файлы, выполнения произвольного кода. Изучение техник SQL инъекций. Использование sqlmap для автоматизации. Исключение уязвимости SQL injection со стороны разработчиков


Содержание:

  • Краткий обзор SQL
  • Описание уязвимости SQL injection
    • Пример
    • Упражнение
    • Cheatsheets
  • Вектора эксплуатации: bypass, union-based
  • Обзор имеющихся информационных ресурсов по уязвимости SQL injection
  • О поиске инъекций и сборе информации из базы
  • Вектора эксплуатации уязвимости SQL injection: error-based, boolean-blind, time-based.
  • Использование sqlmap для автоматической эксплуатации уязвимостей SQL injection
  • Рекомендации для разработчиков для исключения уязвимости SQL injection

Упражнение:

  • Bypass инъекции
  • Stacked queries инъекции
  • Union-based инъекции
  • SQL injection
    • String
    • Numeric
  • Error based инъекции
  • Boolean blind инъекции
  • Out of Band инъекции
  • Time based инъекции
  • Привелигированные атаки
Безопасность СУБД

Содержание:

  • Права доступа в SQL
  • Принципы SQL injection hardening
  • Race condition
    • Состояние гонки
    • Пример с переводом денег
    • Способ защиты
    • Синхронизация на уровне БД
    • Пример реальной накрутки бонусов в Starbucks
  • Защита на основе SQL

Упражнение:

  • Задание на Race Condition
Криптография для веб-приложений

Содержание:

  • Протокол установления защищенных соединений SSL/TLS
  • Хеш функции
  • HMAC
  • Секрет
  • Шифрование
    • Симметричное
    • Блочное
    • Поточное
    • Проблемы симметричного шифрования
    • Проблемы блочного шифрования
    • Проверка целостности
  • Генераторы псевдослучайных чисел (ГПСЧ)
    • Примеры атак на ГПСЧ
    • Гонки seed
    • Синхронизация с ГПСЧ
Аутентификация

Знакомство с уязвимостями авторизации и менеджмента сессий, рекомендации по обеспечению безопасности аутентификации. Обеспечение правильного хранения паролей. Брутфорс(онлайн) веб-сервера, защита от брутфорса, работа с Burp Intruder и Patator


Содержание:

  • Authentication
  • Факторы аутентификации
  • О сессиях
  • Результат аутентификации
  • Сравнение
  • Сессионные идентификатооры
  • JWT
  • Время жизни сессий
  • Передача сессий на серверную сторону
  • О паролях
  • Сложность пароля
  • Хранение пароля
  • Восстановление пароля
  • Делегирование аутентификации
  • Brute Force
    • User Enumeration
      • Ищем людей
      • Угадываем почты
      • Если не почты
    • Password Bruteforce
    • SMS OTP Bruteforce
  • Защита от брутфорса
    • Временная блокировка
    • Обход CAPTCHA с помощью tesseract
  • Bruteforce — утилиты

Упражнение:

  • Демонстрация сессий PHP
  • Демонстрация jwt.io
  • Обход CAPTCHA с помощью tesseract
  • Работа с Burp Intruder и Patator
Файлы и проблемы, связанные с ними

Изучение атаки Path traversal, File Upload и как от них защищаться. Local & Remote File Inclusion, Local File Read. Изучение URL схем, безопасность архивов (Archive Upload Issues)Как защищаться от LRFI. Изучение уязвимости Local File Read


Содержание:

  • Path Traversal
    • bWAPP
    • Как защищаться?
  • File Upload
    • Web shell
    • Практика bWAPP
    • Обход ограничений на расширения
    • JSP — web shell
    • Как защищаться?
    • MIME types
  • Local & Remote File Inclusion
    • Local File Inclusion
    • Remote File Inclusion
    • bWAPP
    • PHP и нулевой байт
    • Как защищаться?
  • Local File Read
    • Стандартные файлы
    • Исходный код
  • URL Schema
    • В операциях с файлами
    • PHP Wrappers
  • Archive Upload Issues
    • Zip Slip
    • Создание архива
    • Symlinks

Упражнение:

  • bWAPP — Directory Traversal
  • Простейший веб-шелл на PHP
  • bWAPP — Other bugs/ Unrestricted File Upload
  • Пример tomcat
  • Демонстрация LFI
  • Демонстрация RFI (php.ini)
  • Демонстрация LFI через файл сессии
  • Демонстрация в bWAPP security_level=2
Логические ошибки

Защита от логических багов и защита потоков синхронизацией


Содержание:

  • Logical bugs
  • PHP Loose Comparison & Type Juggling
    • Scientific notation
    • Функции возвращающие Null
    • Как защищаться?

Упражнение:

  • Примеры логических ошибок разработчиков
  • Синхронизация на уровне БД
  • Работа в Burp Intruder
Server Side Template Injection (SSTI), Prototype Pollution

Уязвимость обход контроля доступа (Broken Access Control), разграничение доступа в веб-приложениях, на функциональном уровне и на уровне объектов, оптимизация защиты от уязвимости. Изучение работы шаблонов, изучение уязвимостей, автоматизация эксплуатации уязвимостей шаблонов


Содержание:

  • Определения
  • Разграничение доступа в веб-приложениях
  • Разграничение доступа на функциональном уровне
  • Разграничение доступа на уровне объектов
  • Broken Access Control
    • IDOR
      • Примеры
    • MFLAC
      • Тестирование на BAC
      • Поиск входных точек
      • Реализация и рекомендации
  • Рекомендации
  • Server Side Template Injection
  • Шаблоны HTML-страниц
  • Инструменты
  • Примеры

Упражнение:

  • bWAPP — IDOR: Change Secret, Order Tickets
  • Missing Functional Level Access Control (MFLAC)
  • Тестирование на BAC
  • Практика поиска входных точек
  • Практика на Portswigger
Небезопасная десераилизация

Изучение сериализации, небезопасной десериализации для разных языков программирования, методы защиты от уязвимости


Содержание:

  • Сериализация
  • PHP serialization
  • Insecure Deserialization
    • Пример
    • Пример с созданием файла
  • PHP deserialization
    • Magic methods
    • Exploitation
    • Known gadgets
    • Как защищаться?
  • Java serialization
  • Java deserialization
    • Cheat Sheet
    • Known gadgets
    • Runtime.exec
    • Как защищаться?
  • .Net serialization
    • Known gadgets
  • Python
    • Pickle
    • Yaml
  • Ruby — Yaml.load

Упражнение:

  • PHP, Java deserialization
  • PHP, Java, .Net, Python, Ruby serialization
Server Side Request Forgery (SSRF), XML eXternal Entity (XXE)

Изучение уязвимостей Server Side Request Forgery, защита веб-приложения от обращений к внутренним ресурсам. Изучение уязвимости XML eXternal Entity, защита от XXE. Изучение атаки PDF Rendering


Содержание:

  • Server Side Request Forgery
    • Адреса
    • Цели
    • CRLF injection
    • Пример temp mail и SMTP
    • Схемы
    • Защита
    • DNS rebinding
    • Упражнение
    • Материалы
    • Blind
    • Windows
  • XML eXternal Entity (XXE)
    • Entity
    • Встроенные Entity
    • Внутренние Entitry
    • Внешние Entity
  • XXE Вектора атаки
    • DoS
    • Чтение локальных файлов
    • Типы
    • Out-of-band
    • Защита
  • PDF Rendering
    • Вектора атаки

Упражнение:

  • Пример Blind SSRF: Сканирование портов
  • Пример с запросом на internal_web
  • Пример temp mail и SMTP
  • Пример обхода ssrf_check.php — читаем internal_web
  • Попасть в админскую секцию /admin.php через ssrf_check.php
  • Встроенные, внутренние и внешние Entity
  • PDF Rendering
Same Origin Policy (SOP), Client Side Request Forgery(CSRF)

Изучение атак на сервер и клиента, Same Origin Policy и зачем он нужен. Изучение атаки Cross-Site Request Forgery, защита от атаки CSRF


Содержание:

  • Атаки на сервер
  • Атаки на клиента
  • Same Origin Policy
  • Зачем нужен SOP?
    • А что можно?
    • Демонстрация отправки запросов
  • Cross-Site Request Forgery
    • Форма
    • XHR
    • Защита
    • Токены
    • SameSite Cookie
    • "Сложные" запросы

Упражнение:

  • Сравнение ссылок по origin
  • Демонстрация отправки запросов evil.com/example.com
  • Отправка запроса на другой Origin
    • через заполнение и сабмит формы
    • через XmlHTTPRequest/fetch (AJAX-запрос)
  • Сложные запросы браузеру
Cross-Origin Resource Sharing (CORS), Cross-Site Scripting (XSS)

Чтение ответов с определенного origin (CORS). В контексте origin приложения выполнять Javascript-код (XSS). Кража cookies, модификация dom-дерева, изменение компонентов веб-страницы


Содержание:

  • Cross-origin resource sharing
    • "Сложность" запросов
  • Cross-Site Scripting (XSS)
    • HTML-injection
      • Внутри тэга
      • Атрибут тэга
      • Тэг <script>
  • "Классическая" классификация XSS
    • Отраженные XSS
    • Хранимые XSS
    • DOM-based XSS
    • Другие важные аспекты оценки XSS
    • Self XSS
  • Эксплуатация XSS
    • Кража Cookies
    • Модификация DOM
    • Обход защиты от CSRF
    • Upload XSS
      • SVG XSS
      • XML XSS
  • Исследование о работе разных веб-серверов с разными типами загруженных файлов
  • Защита от Upload XSS

Упражнение:

  • Пример XSS bWAPP
  • Эксплуатация XSS: Cookies, DOM
  • Защита от Upload XSS
XSS - продолжение, Content Security Policy (CSP)

Проверка Content Security Policy, Client-Side Template Injection, укрепления безопасности заголовками, описание уязвимостей


Содержание:

  • Content Security Policy
    • Автоматизированная проверка корректности настройки CSP
  • CSTI — Обход unsafe-inline
    • Варианты для разных версий angular
  • Заголовки безопасности
    • X-Frame-Options
    • X-XSS-Protection
    • X-Content-Type-Options
    • Strict-Transport-Security
  • Описание уязвимостей
    • CVSS
  • SQL Injection

Упражнение:

  • Формирование отчета используя стандарт CVSS
Записаться на обучение

Как проходит обучение

  • Иммерсивный подход
  • Фокус на практике. Более 70% времени обучения вы уделите развитию практических навыков.

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

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

  • Требования к слушателям курса:
    • Знать основы сетевого взаимодействия
    • Опыт разработки веб-приложений
    • Знание языков SQL, PHP, Python (или одного из них)
    • Знание основных криптографических примитивов: хэш функций, симметричного и асимметричного шифрования, электронной подписи, а также PKI
    • Уметь читать специализированную документацию и техническую литературу на английском языке
    • Уметь читать логи программ и способность самостоятельно гуглить ошибки для решения простейших проблем
    • Уметь работать с ОС Linux, Mac на уровне администратора Важно любая ОС кроме Windows
    • Умение работать с виртуальными средами (VirtualBox, Docker, lxd);
    01   / 05

    Записаться на обучение

    !
    !

    FAQ — ответы на частозадаваемые вопросы

    Требования к программному обеспечению?

    Рекомендуемые технические требования

    для комфортного прохождения модуля и сохранения всех полученных материалов:

    • Не менее 8 ГБ DDR3 оперативной памяти
    • Процессор не менее четырех ядер с частотой не менее 2.3 Ггц
    • Жесткий диск SSD со свободным местом не менее 256 ГБ
    • Поддержка аппаратной виртуализации (Intel VT-x, AMD-V)
    • Дополнительный — второй монитор (Диагональ от 17 дюймов, разрешением от 1280×720p c частотой обновления от 60 Гц)
    • Современная операционная система (Минимально: Windows 10 x64, Linux, MacOS 10.13.6)

    Все ответы

    Получить консультацию
    !
    !

    Спасибо,
    менеджер свяжеться с вами в ближайшее время

    Спасибо,
    за регистрацию на вебинар

    Заказать обратный звонок

    !
    Заполните это поле
    !
    Заполните это поле