Свържете се с нас

Съдържание и теми, включени в курса

Ден 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)

Предстоящи Курсове

Свързани Kатегории