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

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

1. ИТ сигурност и сигурно програмиране

  • Фундаментални принципи на сигурността: Конфиденциалност, Цялостност и Наличност (CIA) в контекста на Java приложения.
  • Жизнен цикъл на сигурна софтуерна разработка (SSDLC): Интегриране на сигурността от изискванията до внедряването.
  • Парадигми за сигурно програмиране: Отбрана в дълбочина, минимални привилегии и защитени по подразбиране настройки.
  • Стандартни класификации на уязвимостите: Разбиране на CWE (Common Weakness Enumeration) и OWASP.

2. Сигурност на уеб приложения

  • Задълбочен преглед на OWASP Top Ten: Детайлен анализ на инжекции, разбита автентикация и разкриване на чувствителни данни.
  • Cross-Site Scripting (XSS): Сценарии за отразени, съхранени и DOM-базирани XSS в Java/JSP.
  • Cross-Site Request Forgery (CSRF): Механизми на атака и внедряване на Anti-CSRF токени.
  • Управление на сесии: Сигурност на бисквитки, фиксиране на сесия и управление на времеви лимити.
  • API сигурност: Защита на REST и SOAP крайни точки от злоупотреби.

3. Сигурност на уеб услуги

  • Уеб услуги срещу традиционни уеб приложения: Разлики в повърхностите на атака.
  • Сигурност на транспортния слой: SSL/TLS конфигурация за Java клиенти и сървъри.
  • Сигурност на съобщенията: Цялостност и конфиденциалност на ниво полезен товар.
  • Стандарти за автентикация: OAuth 2.0, OpenID Connect и внедряване на JWT (JSON Web Tokens).

4. XML сигурност

  • Уязвимости при парсване на XML: Предотвратяване на атаки чрез XML External Entity (XXE).
  • Валидация на XML схема: Най-добри практики за стриктно налагане на схема.
  • XML цифрови подписи: Внедряване на подписи за осигуряване на неотхвърляне.
  • XML криптиране: Стандартни подходи за криптиране на XML съдържание.

5. Основи на Java сигурността

  • Архитектура за сигурност на Java: Пакетът java.security и архитектура на доставчиците.
  • Доставчици на сигурност: Инсталиране и конфигуриране на доставчици като Bouncy Castle.
  • Контрол на достъпа: Файлове с политики, разрешения и Security Manager (наследени срещу модерни).
  • Управление на KeyStore: Създаване и управление на хранилища за ключове и доверени ключове за сертификати.

6. Практическа криптография

  • Криптографски алгоритми: Преглед на симетрични (AES), асиметрични (RSA, ECC) и хеш (SHA-256/512) алгоритми.
  • Генериране на произволни числа: Опасностите от java.util.Random срещу java.security.SecureRandom.
  • Управление на ключове: Стратегии за генериране, съхранение и ротация на ключове.
  • Java Cryptography Architecture (JCA): Използване на класовете Cipher, MessageDigest и Mac.
  • Java Cryptography Extension (JCE): Разбиране на файловете с политики и юрисдикцията за неограничена сила.

7. Услуги за сигурност на Java

  • SSL/TLS в Java: Използване на SSLSocketFactory и HttpsURLConnection.
  • Мениджъри на доверие: Персонализиране на проверката на доверие за частни PKI среди.
  • Автентикатори: Програмна автентикация чрез Authenticator.getDefault().
  • Парсване на сертификати: Програмно четене и анализ на X.509 сертификати.

8. Java EE сигурност

  • Декларативна сигурност: Контрол на достъпа, базиран на роли (RBAC), чрез web.xml и анотации.
  • Програмна сигурност: Използване на HttpServletRequest.isUserInRole() и getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Конфигуриране на login.conf и внедряване на LoginModule-и.
  • Сървлет сигурност: Ограничения за сигурност, управлявани от контейнера, и методи за автентикация (FORM, BASIC, DIGEST).

9. Често срещани грешки при програмиране и уязвимости

  • Несигурна десериализация: Рисковете от ObjectInputStream и заобикаляне на проверките за сигурност.
  • Инжектиране на команди: Ограничаване на уязвимостите за изпълнение на ниво ОС.
  • Обхождане на пътища: Почистване на входните данни за файловата система за предотвратяване на обхождане на директории.
  • Злоупотреба с рефлексия: Рискове, свързани с java.lang.reflect и заобикаляне на контрола на достъпа.
  • Твърдо кодирани идентификационни данни: Идентифициране и премахване на тайни от изходния код.
  • Грешки при внедряване на криптография: Използване на ECB режим, слаби ключове или статични IV-та.

10. Източници на знания

  • Инструменти за статичен анализ: Използване на SonarQube, Checkmarx и Fortify за автоматизирано сканиране.
  • Инструменти за динамичен анализ: Преглед на Burp Suite и OWASP ZAP.
  • CVE бази данни: Как да проследяваме и реагираме на нови уязвимости в Java рамки.
  • Препоръчителна литература: Списък с книги, документация и контролни списъци за сигурно програмиране.

Изисквания

Няма.

 21 Часа

Брой участници


Цена за участник

Отзиви от участници (4)

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

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