Благодарим ви, че изпратихте вашето запитване! Един от членовете на нашия екип ще се свърже с вас скоро.
Благодарим ви, че направихте своята резервация! Един от членовете на нашия екип ще се свърже с вас скоро.
Съдържание и теми, включени в курса
Ден 1
ИТ сигурност и сигурно кодиране
- Същност на сигурността
- Термини, свързани с ИТ сигурността
- Определение за риск
- Различни аспекти на ИТ сигурността
- Изисквания на различните области на приложение
- ИТ сигурност срещу сигурно кодиране
-
От уязвимости до ботнети и киберпрестъпления
- Същност на пропуските в сигурността
- Причини за трудността
- От заразен компютър до целенасочени атаки
-
Класификация на пропуските в сигурността
- Таксономия на Landwehr
- Седемте пагубни кралства
- OWASP Top Ten 2013
- Сравнение на OWASP Top Ten 2003 – 2013
Въведение в Microsoft® Security Development Lifecycle (SDL)
- Дневен ред
-
Приложения под атака...
- Еволюция на киберпрестъпността
- Атаките се фокусират върху приложенията
- Повечето уязвимости са в по-малки приложения на ISV
-
Произход на Microsoft SDL...
- Хронология на сигурността в Microsoft...
- Кои приложения са задължени да следват SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Изисквания преди SDL: Обучение по сигурност
- Фаза едно: Изисквания
- Фаза две: Проектиране
- Фаза три: Реализация
- Фаза четири: Проверка
- Фаза пет: Издаване – План за реакция
- Фаза пет: Издаване – Финален преглед на сигурността
- Фаза пет: Издаване – Архив
- Изискване след SDL: Реакция
- Насоки за SDL процеса за LOB приложения
- Насоки за SDL при гъвкави методологии
- Сигурната разработка на софтуер изисква подобряване на процесите
Принципи за сигурно проектиране
-
Повърхност на атака
- Намаляване на повърхността на атака
- Повърхност на атака – пример
- Анализ на повърхността на атака
- Намаляване на повърхността на атака – примери
-
Поверителност
- Поверителност
- Разбиране на поведението и проблемите на приложенията
-
Защита в дълбочина
- Основен принцип на SDL: Защита в дълбочина
- Защита в дълбочина – пример
-
Принцип на най-малките привилегии
- Най-малки привилегии – пример
-
Сигурни настройки по подразбиране
- Сигурни настройки по подразбиране – примери
Принципи за сигурна реализация
- Дневен ред
- Microsoft Security Development Lifecycle (SDL)
-
Основи на препълването на буфера
- Процесори Intel 80x86 – основни регистри
- Разпределение на адресите в паметта
- Механизъм за извикване на функции в C/C++ на x86
- Локалните променливи и стековата рамка
-
Препълване на стека
- Препълване на буфера в стека
- Упражнения – въведение
- Упражнение BOFIntro
- Упражнение BOFIntro – определяне на разпределението на стека
- Упражнение BOFIntro – просто експлойтване
-
Валидиране на входа
- Концепции за валидиране на входа
-
Проблеми с цели числа
- Представяне на отрицателни цели числа
- Препълване на цели числа
- Аритметично препълване – познайте изхода!
- Упражнение IntOverflow
- Каква е стойността на Math.Abs(int.MinValue)?
-
Смекчаване на проблеми с цели числа
- Смекчаване на проблеми с цели числа
- Избягване на аритметично препълване – събиране
- Избягване на аритметично препълване – умножение
- Откриване на препълване с ключовата дума checked в C#
- Упражнение – Използване на ключовата дума checked в C#
- Изключения, предизвикани от препълвания в C#
-
Казус – Препълване на цели числа в .NET
- Реална уязвимост от препълване на цели числа
- Експлоатиране на уязвимостта от препълване на цели числа
-
Уязвимост от обхождане на пътища
- Смекчаване на обхождането на пътища
Ден 2
Принципи за сигурна реализация
-
Инжекции
- Типични методи за SQL инжекционни атаки
- Сляпа и времево базирана SQL инжекция
- Методи за защита от SQL инжекции
- Командна инжекция
-
Разбита автентикация - управление на пароли
- Упражнение – Слабост на хешираните пароли
- Управление и съхранение на пароли
- Специализирани хеш алгоритми за съхранение на пароли
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS инжекция
- Експлоатация: инжектиране чрез други HTML тагове
- Предотвратяване на XSS
-
Липсващ контрол на достъпа на функционално ниво
- Филтриране на качваните файлове
-
Практическа криптография
- Осигуряване на конфиденциалност със симетрична криптография
- Симетрични алгоритми за криптиране
- Блокови шифри – режими на работа
- Хеш или дайджест на съобщение
- Хеш алгоритми
- Код за автентикация на съобщението (MAC)
- Осигуряване на цялост и автентичност със симетричен ключ
- Осигуряване на конфиденциалност с криптиране с публичен ключ
- Правило на палеца – притежание на частния ключ
- Типични грешки при управлението на пароли
- Упражнение – Твърдо кодирани пароли
- Заключение
Принципи за сигурна проверка
- Функционално тестване срещу тестване на сигурността
- Уязвимости в сигурността
- Приоритизиране
- Тестване на сигурността в SDLC
- Стъпки на планирането на тестове (анализ на риска)
-
Определяне на обхват и събиране на информация
- Заинтересовани страни
- Активи
- Повърхността на атака
- Цели на сигурността за тестване
-
Моделиране на заплахи
- Моделиране на заплахи
- Профили на нападателите
- Моделиране на заплахи въз основа на дървета на атаките
- Моделиране на заплахи въз основа на случаи на злоупотреба/неправилна употреба
- Случаи на злоупотреба/неправилна употреба – прост пример с уеб магазин
- Подход STRIDE за елемент при моделиране на заплахи – MS SDL
- Идентифициране на целите на сигурността
- Диаграмиране – примери за DFD елементи
- Диаграма на потоците от данни – пример
- Изброяване на заплахите – STRIDE и DFD елементи на MS SDL
- Анализ на риска – класификация на заплахите
- Моделът за класиране на заплахи/риск DREAD
-
Техники и инструменти за тестване на сигурността
- Общи подходи за тестване
- Техники за различните стъпки на SDLC
-
Преглед на кода
- Преглед на кода за софтуерна сигурност
- Анализ на замърсяването
- Евристики
-
Статичен анализ на кода
- Статичен анализ на кода
- Упражнение – Използване на инструменти за статичен анализ на кода
-
Тестване на реализацията
- Ръчна проверка по време на изпълнение
- Ръчно срещу автоматизирано тестване на сигурността
- Тестване за проникване
- Стрес тестове
-
Фъзинг
- Автоматизирано тестване на сигурността – фъзинг
- Предизвикателства на фъзинга
-
Сканери за уеб уязвимости
- Упражнение – Използване на скенер за уязвимости
-
Проверка и укрепване на средата
- Common Vulnerability Scoring System – CVSS
- Сканери за уязвимости
- Публични бази данни
-
Казус – Заобикаляне на Forms Authentication
- Уязвимост от терминиране с NULL байт
- Уязвимостта от заобикаляне на Forms Authentication в кода
- Експлоатиране на заобикалянето на Forms Authentication
Източници на знания
- Източници за сигурно кодиране – стартов комплект
- Бази данни за уязвимости
- Насоки за сигурно кодиране на .NET в MSDN
- Шпаргалки за сигурно кодиране на .NET
- Препоръчани книги – .NET и ASP.NET
14 Часа
Отзиви от участници (3)
Споделянето на опит е ценно и важно знание на учителя.
Carey Fan - Logitech
Курс - C/C++ Secure Coding
Машинен превод
знанието на тренера беше много високо - той знаеше за какво говори и имаше отговорите на нашите въпроси
Adam - Fireup.PRO
Курс - Advanced Java Security
Машинен превод
Темата е актуална и аз бях нужден да се обновя
Damilano Marco - SIAP s.r.l.
Курс - Secure Developer Java (Inc OWASP)
Машинен превод