Съдържание и теми, включени в курса
A01:2025 – Нарушен контрол на достъпа
Контролът на достъпа налага политика, така че потребителите да не могат да действат извън предназначените им привилегии. Провалите обикновено водят до неоторизирано разкриване, модификация или унищожаване на всички данни или изпълнение на бизнес функция извън ограниченията на потребителя.
Практически аспекти
-
Практически примери за нарушен контрол на достъпа
-
Сигурен контрол на достъпа и най-добрите практики
A02:2025 – Неправилна конфигурация на сигурността
Неправилната конфигурация на сигурността възниква, когато система, приложение или облачна услуга е настроена неправилно от гледна точка на сигурността, което създава уязвимости.
Практически аспекти
-
Реални примери за лоши конфигурации
-
Стъпки за предотвратяване на неправилната конфигурация, включително инструменти за управление и автоматизация на конфигурациите
A03:2025 – Фалшове в веригата за доставка на софтуер
Фалшовете в веригата за доставка на софтуер са прекъсвания или други компрометиране на процеса на изграждане, разпространение или обновяване на софтуера. Те често са причинени от уязвимости или злонамерени промени в код, инструменти или други зависимости на трети страни, от които системата разчита.
A04:2025 – Криптографски провали
Общо казано, всички данни в процес на предаване трябва да бъдат шифрани на транспортния слой (слой 4 на OSI). Предишни предизвикателства, като производителност на ЦП и управление на частни ключове/сертификати, сега се обработват от ЦП с инструкции, предназначени за ускоряване на шифроването (напр. поддръжка на AES) и опростяване на управлението на частни ключове и сертификати чрез услуги като LetsEncrypt.org, докато големите облачни доставчици предлагат дори по-тесно интегрирани услуги за управление на сертификати за своите конкретни платформи.
Понадигане сигурността на транспортния слой, важно е да се определи какви данни изискват шифроване в покой, както и какви данни изискват допълнително шифроване при предаване (на приложението слой, слой 7 на OSI).
Например, паролите, номерата на кредитни карти, медицинските записи, личната информация и търговските тайни изискват допълнителна защита, особено ако тези данни попадат в обхвата на закони за поверителност, напр. Общия регламент за защита на данните (GDPR) на ЕС, или нормативи като Стандарт за сигурност на данните за индустрията на плащанията (PCI DSS).
Практически аспекти
-
Подробен анализ на криптографски провали, като слаби алгоритми за шифроване или неадекватно управление на ключовете
-
Важността на силни криптографски механизми, сигурни протоколи (SSL/TLS) и примери за съвременно шифроване в уеб сигурността
A05:2025 – Инжекция
Уязвимост от инжекция е системна дефектност, която позволява на нападател да вмъкне злонамерен код или команди (като SQL или shell код) в входните полета на програмата, убеждавайки системата да изпълни кода или командите, сякаш са част от системата. Това може да доведе до наистина тежки последици.
Практически аспекти
-
Подробна разбивка на SQL, NoSQL, OS и LDAP инжекции
-
Техники за смекчаване чрез подготвени инструкции, параметризирани заявки и ескейпване на входните данни
A06:2025 – Несигурен дизайн
Несигурният дизайн е широка категория, представляваща различни слабости, изразени като „липсващ или неефективен дизайн на контрол“.
Несигурният дизайн не е източник на всички останали категории рискове от Top 10. Има разлика между несигурен дизайн и несигурна реализация. Разграничаваме между дефекти в дизайна и дефекти в реализацията по причина: те имат различни коренни причини, възникват в различни моменти от процеса на разработка и изискват различни методи за коригиране.
Сигурен дизайн все още може да има дефекти в реализацията, водещи до уязвимости, които могат да бъдат експлоатирани. Несигурният дизайн не може да бъде поправен с перфектна реализация, тъй като необходимите контроли за сигурност никога не са създадени за защита от специфични атаки.
Един от факторите, които допринасят за несигурния дизайн, е липсата на профилиране на бизнес риска, присъщо на разработвания софтуер или система, и по този начин неуспехът в определянето на нивото на сигурност, изисквано за дизайна.
Практически аспекти
-
Ще разгледаме дефекти в дизайна, които могат да доведат до уязвимости, като ненадлежаща валидация на входните данни
-
Ще изследваме стратегии за сигурна архитектура и принципи на сигурния дизайн
A07:2025 – Провали в автентикацията
Когато нападателят е в състояние да измами системата да разпознае невалиден или неправилен потребител като легитимен, тази уязвимост присъства.
Практически аспекти
-
Общи проблеми с автентикацията
-
Сигурни стратегии за автентикация, като мултифакторна автентикация и правилно управление на сесиите
A08:2025 – Провали в целостта на софтуера или данните
Провалите в целостта на софтуера и данните се отнасят до код и инфраструктура, които не предпазват от третирани като доверени и валидни кодове или данни, които са невалидни или недоверени.
Един пример за това е, когато приложение разчита на плъгини, библиотеки или модули от недоверени източници, репозитории и мрежи за доставка на съдържание (CDN).
Несигурен CI/CD процес, който не консумира и не предоставя проверки за целост на софтуера, може да въведе потенциал за неоторизиран достъп, несигурен или злонамерен код или компрометиране на системата.
Друг пример за това е CI/CD процес, който изтегля код или артефакти от недоверени места и/или не ги верифицира преди използване (чрез проверка на подписа или подобен механизъм).
Практически аспекти
-
Фокус върху проблеми като недоверени софтуерни актуализации и подмяна на данни
-
Сигурни механизми за актуализация и проверки за целост на данните
A09:2025 – Провали в журналирането и предупрежденията за сигурност
Без журналиране и мониторинг, атаките и инцидентите не могат да бъдат детектирани, а без предупреждения е много трудно да се реагира бързо и ефективно по време на инцидент за сигурност.
Неадекватното журналиране, непрекъснатият мониторинг, детекцията и предупрежденията за иницииране на активни реакции настъпват винаги.
Практически аспекти
-
Важността на журналирането на информация, отнасяща се до сигурността, и мониторинга за подозрителна активност
-
Инструменти и практики за правилно журналиране и мониторинг в реално време за ранно откриване на инциденти
A10:2025 – Неправилно управление на изключителни условия
Неправилното управление на изключителни условия в софтуера настъпва, когато програмите не могат да предотвратят, открият и реагират на необичайни и непредвидими ситуации, което води до сривове, неочаквано поведение и понякога уязвимости.
Това може да включва една или повече от следните три слабости:
-
Приложението не предотвратява възникването на необичайна ситуация
-
То не идентифицира ситуацията, докато тя възниква
-
То реагира лошо или изобщо не реагира на ситуацията по-късно
SAST – Статично тестване на сигурността на приложенията
-
Какво е статичният анализ и кога да се изпълнява в SDLC (shift left)
-
Видове уязвимости, детектируеми чрез SAST, уязвим код спрямо сигурен код
-
Преглед на SAST инструменти (напр. Semgrep, SonarQube, Checkmarx, в зависимост от клиентския стек)
-
Практическо упражнение: извършване на SAST скан на репозиторий с намерено въведени уязвимости, интерпретиране на резултатите, триаж на фалшиви положителни срещу реални уязвимости
DAST – Динамично тестване на сигурността на приложенията
-
Разлика между SAST и DAST, black box тестване на работещо приложение
-
Ток на DAST скана, crawling, fuzzing, анализ на отговорите
-
Преглед на DAST инструменти (напр. OWASP ZAP, Burp Suite)
-
Практическо упражнение: извършване на DAST скан на уязвимо тестово приложение (напр. OWASP Juice Shop), идентифициране и верифициране на откриванията
SCA – Анализ на състава на софтуера
-
Риск от трети страни зависимости и библиотеки, наследени уязвимости
-
SBOM, Списък със софтуер, какво е и защо е важно
-
Преглед на SCA инструменти (напр. Dependency Check, Snyk, GitHub Dependabot)
-
Практическо упражнение: извършване на SCA скан на реален проект, идентифициране на уязвими зависимости и изграждане на план за коригиране (обновяване, патчиране, смекчаване)
Изисквания
Участниците трябва да притежават:
- Основни познания за концепциите на софтуерното разработване
- Основно разбиране на уеб приложенията и общите уеб технологии
- Познаване на Животния цикъл на разработка на софтуер (SDLC)
- Основно разбиране на източния код и зависимостите на софтуера
- Основни познания за концепциите за сигурност са желателни, но не са задължителни
Целева аудитория
- Софтуерни разработчици
- Софтуерни инженери
- QA и инженери по тестване на софтуер
- DevOps и DevSecOps инженери
- Професионалисти по сигурността на приложенията
- Инженери по сигурността
- Софтуерни архитекти
- Технически лидери
- Професионалисти, ангажирани с безопасното разработване на софтуер и тестването на сигурността на приложенията
Отзиви от участници (3)
Споделянето на опит е ценно и важно знание на учителя.
Carey Fan - Logitech
Курс - C/C++ Secure Coding
Машинен превод
да се запознаете по-добра с продукта и някои ключови разлики между RHDS и отворен код на OpenLDAP.
Jackie Xie - Westpac Banking Corporation
Курс - 389 Directory Server for Administrators
Машинен превод
знанието на тренера беше много високо - той знаеше за какво говори и имаше отговорите на нашите въпроси
Adam - Fireup.PRO
Курс - Advanced Java Security
Машинен превод