Съдържание и теми, включени в курса
I. Въведение в безопасното кодиране и сигурността на уеб приложения
1. Съвременна ландшафт на заплахи за уеб приложения
- Общи вектори на атака за уеб приложения
- Рискове за сигурност в съвременните ASP.NET приложения
- Ролята на безопасното кодиране при софтуерното разработване
- Въведение в OWASP Foundation и нейните ресурси
2. Принципи на безопасно софтуерно развитие
- Сигурност при проектиране (Security by design)
- Защита в дълбочина (Defense in depth)
- Най-ниски привилегии (Least privilege)
- Неуспех с безопасен режим (Fail securely)
- Безопасни настройки по подразбиране
- Основи на моделирането на заплахи
II. Животен цикъл на безопасно разработване (SDL)
1. Жизнен цикъл на софтуерното развитие със сигурност
- Сигурност през целия жизнен цикъл на разработката
- Изисквания за сигурност
- Архитектура и дизайн с фокус върху сигурността
- Практики за безопасно кодиране
- Тестване и валидиране на сигурността
- Безопасно внедряване и поддръжка
2. Оценка на риска и моделиране на заплахи
- Идентифициране на активи и заплахи
- Анализ на повърхността на атака
- Преглед на STRIDE
- Приоритизиране на рисковете за сигурност
III. OWASP Top 10 за ASP.NET приложения
1. Разбиране на OWASP Top 10
- Нарушен контрол на достъпа (Broken Access Control)
- Неуспехи в криптирането (Cryptographic Failures)
- Инжектиране (Injection)
- Небезопасен дизайн (Insecure Design)
- Грешни настройки на сигурността (Security Misconfiguration)
- Уязвими и остарели компоненти
- Нарушения при идентификация и удостоверяване
- Нарушения на целостта на софтуера и данните
- Нарушения при логове и мониторинг на сигурността
- Фалшифициране на заявка на сървъра (SSRF)
2. Прилагане на препоръките на OWASP
- Техники за безопасно кодиране
- Предотвратяващи контроли
- Практики за сигурна конфигурация
- Примери от реалния свят и демонстрации
IV. Сигурност на удостоверяването и оторизацията
1. Основи на удостоверяването
- Механизми за удостоверяване в ASP.NET
- Сигурност на паролите
- Многофакторно удостоверяване
- Управление на сесии
- Управление на идентичност (Identity management)
2. Оторизация и контрол на достъпа
- Оторизация базирана на роли
- Оторизация базирана на Claim-ове
- Оторизация базирана на политики
- Предотвратяване на ескалиране на привилегии
- Защита на чувствителни ресурси
V. Предотвратяване на инжектиращи атаки
1. Уязвимости при инжектиране
- SQL Injection
- Command Injection
- LDAP Injection
- XML Injection
- Преглед на NoSQL Injection
2. Техники за безопасно кодиране
- Параметризирани заявки
- Валидиране на входни данни
- Кодиране на изходните данни (Output encoding)
- Аспекти на сигурността при ORM
- Безопасни практики за достъп до бази данни
VI. Предотвратяване на междусайтово скриптиране (XSS)
1. Разбиране на XSS
- Записан XSS (Stored XSS)
- Отразен XSS (Reflected XSS)
- XSS, базиран на DOM
- Сценарии на атаки
2. Предотвратяване на XSS
- Кодиране на изходните данни
- Валидиране на входни данни
- Политика за сигурност на съдържанието (CSP)
- Безопасна обработка на HTML и JavaScript
- Функции за сигурност в ASP.NET за предотвратяване на XSS
VII. Предотвратяване на фалшифициране на междусайтови заявки (CSRF)
1. Разбиране на CSRF
- Как работят атаките CSRF
- Общи сценарии на атака
- Бизнес влияние
2. Защита от CSRF
- Противо-фалшифициращи токени
- Сесийни бисквитки SameSite
- Безопасно управление на сесии
- Механизми за противо-фалшифициране в ASP.NET
VIII. Безопасна конфигурация на ASP.NET приложения
1. Функции за сигурност на ASP.NET
- Сигурност на конфигурацията
- Безопасни HTTP заглавки
- Конфигурация на HTTPS и TLS
- Управление на секрети
- Безопасна обработка на грешки
2. Защита на чувствителни данни
- API за защита на данни
- Безпазване на идентификационни данни
- Основи на криптирането
- Управление на ключове
IX. Валидиране на входните данни и безопасно обработване на данни
1. Валидиране на потребителския вход
- Бял списък срещу черен списък
- Сервърна валидация
- Разсъждения относно клиентската валидация
- Сигурност при качване на файлове
2. Безопасна обработка на данни
- Сигурност при сериализация
- Рискове при десериализация
- Целост на данните
- Безопасни практики за логове
X. Тестване за проникване (Penetration Testing) и проверка на сигурността
1. Методология на тестването за проникване
- Планиране на оценки на сигурността
- Идентифициране на уязвимости
- Концепции за експлоатиране
- Докладване на резултатите
2. Техники за тестване на сигурността
- Статично тестване на сигурността на приложението (SAST)
- Динамично тестване на сигурността на приложението (DAST)
- Интерактивно тестване на сигурността на приложението (IAST)
- Анализ на зависимости и компоненти
- Ръчен преглед на кода
XI. Осигуряване на ASP.NET приложения
1. Прилагане на практики за безопасно кодиране
- Реализация на сигурно удостоверяване
- Реализация на сигурна авторизация
- Сигурност на сесията
- Обработка на изключения
- Логване и мониторинг
- Условия за безопасно внедряване
2. Най-добри практики за сигурност
- Стандарти за безопасно кодиране
- Управление на зависимости
- Управление на актуализации
- Непрекъснато подобряване на сигурността
XII. Практическа работилница за сигурност
1. Идентифициране и експлоатиране на общи уязвимости
- Анализ на небезопасен ASP.NET код
- Идентифициране на уязвимости OWASP Top 10
- Разбиране на техниките за атака
- Оценка на сигурността на приложението
2. Корекция на проблеми със сигурността
- Прилагане на поправки за безопасно кодиране
- Валидиране на елиминиращите мерки
- Тестване на оправилените приложения
- Упражнение за преглед на безопасното кодиране
XIII. Обобщение и преглед на курса
1. Преглед на основните концепции
- Принципи на безопасния дизайн
- Стратегии за минимизиране на рисковите точки OWASP Top 10
- Функции за сигурност на ASP.NET
- Жизнен цикъл на софтуерното развитие с фокус върху сигурността
2. Финална дискусия
- Най-добри практики за безопасно кодиране
- Вграждане на сигурност в екипите за разработка
- Допълнителни ресурси и инструменти на OWASP
- Въпроси и отговори, следващи стъпки
Изисквания
Опит с ASP.NET
Опит в създаването на уеб приложения
Отзиви от участници (5)
Познаване на различните видове небезопасни поведения.
Zhongqi
Курс - Secure Developer .NET (Inc OWASP)
Машинен превод
Учебната сесия с Реймънд беше изключителна. Той беше много добър и внимателен към всички мои нужди за обучение.
Joshua
Курс - Secure Developer .NET (Inc OWASP)
Машинен превод
Високият ниво на знанията на инструктора означаваше, че получихме много добър преглед на разглежданите теми.
Dafydd - TATA Steel
Курс - Secure Developer .NET (Inc OWASP)
Машинен превод
референзни връзки
Abraham Gonzalez - ATEB Servicios
Курс - Secure Developer .NET (Inc OWASP)
Машинен превод
Познанията на тренера по темата бяха отлични, и начинът, по който сесиите бяха организирани така, че публиката да може да следи демонстрациите, изключително допомогна за усвояването на тази информация, в сравнение с просто седене и слушане.
Jack Allan - RSM UK Management Ltd.
Курс - Secure Developer .NET (Inc OWASP)
Машинен превод