Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

geminishkv/course_labs

Практический курс по прикладной безопасности приложений: от Git до полноценного DevSecOps-конвейера.

Что изучаем:

  • Инфраструктура: Git, CI/CD, Docker, Docker Compose, GitHub Actions, YAML
  • Языки: Python, Shell (Java и Go — в контексте SCA и анализа зависимостей)
  • AppSec инструменты: Semgrep, Checkov, Bandit, OWASP Dependency-Check, Trivy, Docker Bench, OWASP ZAP, Gitleaks, TruffleHog, Hadolint
  • Стандарты: OWASP Top 10, CIS Docker Benchmark, CVSS, ISO 27005, NIST SP 800-30, PCI DSS, ГОСТ 57580
  • Анализ рисков: оценка, приоритизация, стратегии снижения рисков ИБ

Как устроен курс:

  • 7 intro-руководств + 10 лабораторных работ + итоговый pet-project + 7 тестов (5 базовых + 2 лекционных)
  • Каждая лабораторная — отдельный репозиторий с исходным кодом и отчётом в формате gistup
  • Все работы выполняются в ветке developpull requestapprove от geminishkv
  • Прогрессия: GitLinuxNmapDockerCIS BenchmarkSAST/SCADASTSecret DetectionCI/CDRisk Analysis

Замечания:

  • Лабораторные обязательны для всех — вне зависимости от уровня подготовки
  • Каждая работа разбивается на атомарные коммиты для трекинга изменений
  • Отчёт сдаётся индивидуально с защитой: каждая команда — с описанием флагов и выводом из терминала
  • В отчётах — вывод из консоли, не скриншоты
  • Часть инструментов требует установки дополнительных open-source пакетов

Этапы

  1. Выполнить подготовительные инструкции:
  2. Каждый репозиторий должен содержать .gitignore, CODE_OF_CONDUCT, CONTRIBUTING, LICENSE, NOTICE, SECURITY
  3. Выполнить лабораторные работы по порядку:
  1. Реализовать итоговую работу:

Карта

flowchart TD
 subgraph Intro["Подготовка (7 intro)"]
 I01["VirtualBox & Linux"]
 I02["Git, GPG, SSH, gh"]
 I03["Gistup отчёты"]
 I04["Сети и TCP/IP"]
 I05["Основы Docker"]
 I06["Введение в CI/CD"]
 I07["AppSec Tools Setup"]
 end
 subgraph Foundations["Основы"]
 L01["Lab 01 · Git SCM"]
 L02["Lab 02 · Linux, SUID, ACL"]
 L03["Lab 03 · Nmap, NSE"]
 L04["Lab 04 · Risk Analysis"]
 end
 subgraph Containers["Контейнеризация"]
 L05["Lab 05 · Docker"]
 L06["Lab 06 · CIS Benchmark, Trivy"]
 end
 subgraph AppSec["AppSec Toolchain"]
 L07["Lab 07 · SAST, SCA, Secret Detection\nSemgrep · Checkov · Gitleaks"]
 L08["Lab 08 · DAST\nOWASP ZAP"]
 end
 subgraph DevSecOps["DevSecOps"]
 L09["Lab 09 · CI/CD Pipeline\nGitHub Actions"]
 L10["Lab 10 · Risk Analysis · Practice"]
 end
 subgraph Tests["Тесты"]
 T01["Базовые: Вариант 1-5"]
 T02["Лекционные: Fintech V1-V2"]
 end
 PET["Pet Project — индивидуальная работа"]
 Intro --> Foundations
 Foundations --> Containers
 Containers --> AppSec
 AppSec --> DevSecOps
 DevSecOps --> Tests
 Tests --> PET
Loading

Формализованные требования

  • Единый стиль кода
  • Все функции по работе с деревом должны находиться в пространстве имен
  • Оформление README.md в соответствии с содержанием проекта
  • Оформление .gitignore в соответствии с содержанием проекта
  • Оформление .dockerignore в соответствии с содержанием проекта
  • Использовать подходящий тип LICENSE для проекта и NOTICE
  • Создать и использовать скрипты для автоматизации сборки проекта, примеров, тестов, пакетирования
  • Обеспечить непрерывный процесс сборки проекта с использованием сервиса GitHub Actions
  • Написать документацию к проекту с использованием инструмента doxygen
  • Обеспечить размещение пакета проекта на сервисе GitHub Release при успешном слияние ветки develop
  • Рефакторинг и поддержка лабораторных работ в процессной деятельности
  • Все команды выполняться строго из терминала/ консоли без использования WebUI за исключениям работы с токенами, ключами и специфичными настройками

Tutorial

  • Подготовка окружения
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt
$ python -m mkdocs serve --livereload
# or
$ mkdocs serve -a 127.0.0.1:8001 # прямое обозначение адреса
  • Перегенерация Mermaid-диаграмм (при изменении .mmd файлов)
$ cd docs/artifacts/diagrams
$ for f in *.mmd; do
 npx --yes @mermaid-js/mermaid-cli \
 -i "$f" -o "${f%.mmd}.svg" \
 -c mermaid-config.json -b transparent
 done
  • Очистка локального репозитория
$ rm -rf __pycache__ scripts/__pycache__
$ rm -rf .venv
$ lsof -i :8000
$ kill <PID>
  • Release
$ git tag -a v1.0.0 -m "v1.0.0"
$ git push origin v1.0.0
$ git tag -d v0.1.0 # удалить локальный тег
$ git push --delete origin v1.2.3 # удалить тот же тег на GitHub

Структура

├── docs/ # MkDocs source (обёртки + материалы)
│ ├── index.md # Главная (hero + lab cards + tg widget)
│ ├── about.md # О проекте
│ ├── privacy.md # Политика конфиденциальности
│ ├── Security.md # Политика безопасности
│ ├── RELEASE_NOTES.md # Релизы
│ ├── glossary.md # 39 аббревиатур AppSec
│ ├── robots.txt # Robots + AI-bot blocking
│ ├── llms.txt # Описание для AI-поисковиков
│ ├── turbo-feed.xml # Яндекс.Турбо RSS
│ ├── labs/
│ │ ├── intro/ # 7 docs-обёрток intro
│ │ ├── basic/lab01-10.md # 10 docs-обёрток лабораторных
│ │ ├── pet_project.md # Итоговый проект
│ │ └── tests/
│ │ ├── basic/ # 5 вариантов базовых тестов
│ │ └── lectures/ # 2 варианта теста Fintech
│ ├── materials/
│ │ ├── lectures/fintech_ru.md # Лекция Fintech по-русски
│ │ ├── examples/ # 5 кейсов ИБ
│ │ ├── OWASPTOP10/ # 7 OWASP материалов
│ │ ├── cheatsheet/ # 9 шпаргалок
│ │ ├── ports.md # Справочник портов
│ │ ├── appsec_tt.md # 29 классов инструментов
│ │ ├── licenses.md # 41 лицензия
│ │ ├── APPENDIX.md # Команды и утилиты
│ │ └── troubleshooting.md # FAQ (~45 карточек)
│ ├── stylesheets/ # CSS (tokens, layout, header, sidebar, ...)
│ ├── javascripts/ # JS (header, typewriter, banners, effects)
│ ├── overrides/ # main.html (SEO, JSON-LD, Метрика), 404.html
│ └── artifacts/
│ ├── assets/ # Logo (SVG), favicon (ICO), images
│ └── diagrams/ # 7 Mermaid SVG + .mmd исходники
├── labs/
│ ├── intro/ # 7 intro-руководств (исходники)
│ ├── basic/lab01-10/ # 10 лабораторных (код + README + docker-compose)
│ ├── pet_project/ # Итоговый проект
│ └── tests/
│ ├── basic/ # 5 базовых тестов (исходники)
│ └── lectures/ru_fintech/ # 2 варианта теста Fintech (исходники)
├── .github/workflows/
│ ├── ci.yml # Lint → Audit → Mermaid SVG → Build → Deploy
│ └── release-from-notes.yml
├── hooks.py # Sitemap enrichment (priority + changefreq)
├── mkdocs.yml
├── requirements.txt
└── RELEASE_NOTES.md

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /