Свържете се с нас
 Продължителност 21 часa

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

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 Schema валидация: Най-добри практики за стриктно прилагане на схемата.
  • XML цифрови подписи: Внедряване на подписи за гарантиране на неотхвърляне.
  • XML криптиране: Стандартни подходи за криптиране на XML съдържание.

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

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

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.
  • Trust Managers: Персонализиране на проверката на доверие за частни 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 рамката.
  • Препоръчителна литература: Списък с книги, документация и контролни списъци за сигурно кодиране.

Изисквания

Няма.

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


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

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

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

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