https://github.com/geminishkv/course_labs
Лабораторные работы по курсам для AppSec, Risk Analysis, Securty Champion: Toolchain, Orchestration, CI/CD, UML, etc.
https://github.com/geminishkv/course_labs
appsec appsec-tutorials bash bmstu containersecurity course dast docker growth-team lerning-platform owasp-top-10 python sast sca secretdetection security security-team-testing toolchain tools training-materials
Last synced: 4 days ago
JSON representation
Лабораторные работы по курсам для AppSec, Risk Analysis, Securty Champion: Toolchain, Orchestration, CI/CD, UML, etc.
- Host: GitHub
- URL: https://github.com/geminishkv/course_labs
- Owner: geminishkv
- License: apache-2.0
- Created: 2025-11-16T20:27:11.000Z (5 months ago)
- Default Branch: develop
- Last Pushed: 2026-03-22T00:41:51.000Z (15 days ago)
- Last Synced: 2026-03-22T14:13:35.174Z (14 days ago)
- Topics: appsec, appsec-tutorials, bash, bmstu, containersecurity, course, dast, docker, growth-team, lerning-platform, owasp-top-10, python, sast, sca, secretdetection, security, security-team-testing, toolchain, tools, training-materials
- Language: Python
- Homepage: https://geminishkv.github.io/course_labs/
- Size: 9.63 MB
- Stars: 17
- Watchers: 1
- Forks: 20
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Notice: NOTICE.md
Awesome Lists containing this project
README

Практический курс по прикладной безопасности приложений: от `Git` до полноценного DevSecOps-конвейера.
**Что изучаем:**
* **Инфраструктура:** `Git`, `CI/CD`, `Docker`, `Docker Compose`, `GitHub Actions`, `YAML`
* **Языки:** `Python`, `Shell` (`Java` и `Go` — в контексте SCA и анализа зависимостей)
* **AppSec инструменты:** `Semgrep`, `Checkov`, `OWASP Dependency-Check`, `Trivy`, `OWASP ZAP`, `Gitleaks`
* **Стандарты:** OWASP Top 10, CIS Benchmarks, CVSS, ISO 27005
* **Анализ рисков:** оценка, приоритизация, стратегии снижения рисков ИБ
**Как устроен курс:**
* 10 лабораторных работ + итоговый pet-project
* Каждая лабораторная — отдельный репозиторий с исходным кодом и отчётом в формате `gistup`
* Все работы выполняются в ветке `develop` → `pull request` → [approve](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review) от [geminishkv](https://github.com/geminishkv)
* Прогрессия: `Git` → `Linux` → `Nmap` → `Docker` → `CIS Benchmark` → `SAST/SCA` → `DAST` → `Secret Detection` → `CI/CD` → `Risk Analysis`
**Замечания:**
* Лабораторные обязательны для всех — вне зависимости от уровня подготовки
* Каждая работа разбивается на атомарные коммиты для трекинга изменений
* Отчёт сдаётся индивидуально с защитой: каждая команда — с описанием флагов и выводом из терминала
* В отчётах — вывод из консоли, не скриншоты
* Часть инструментов требует установки дополнительных `open-source` пакетов
### Этапы
1. Выполнить подготовительные инструкции:
* [Подготовка рабочего окружения](labs/intro/vmbox_tutorial.md) — VirtualBox, установка Linux
* [Настройка Git, GPG и GitHub CLI](labs/intro/git_setup.md) — git config, SSH, GnuPG, gh
* [Оформление отчётов Gistup](labs/intro/gistup_guide.md) — формат, структура, правила
2. Каждый репозиторий должен содержать `.gitignore`, `CODE_OF_CONDUCT`, `CONTRIBUTING`, `LICENSE`, `NOTICE`, `SECURITY`
3. Выполнить лабораторные работы по порядку:
- [ ] lab01 — [GitSCM — подготовка рабочего окружения](labs/basic/lab01/README.md)
- [ ] lab02 — [*nix — права доступа, SUID, ACL, процессы](labs/basic/lab02/README.md)
- [ ] lab03 — [Nmap — сканирование сети, NSE и защита результатов](labs/basic/lab03/README.md)
- [ ] lab04 — [Анализ и определение мер снижения рисков ИБ](labs/basic/lab04/README.md)
- [ ] lab05 — [Docker — контейнеризация приложений](labs/basic/lab05/README.md)
- [ ] lab06 — [Docker CIS Benchmark и Trivy](labs/basic/lab06/README.md)
- [ ] lab07 — [SAST, SCA и Secret Detection](labs/basic/lab07/README.md)
- [ ] lab08 — [DAST — OWASP ZAP и ручное тестирование](labs/basic/lab08/README.md)
- [ ] lab09 — [DevSecOps CI/CD конвейер на GitHub Actions](labs/basic/lab09/README.md)
- [ ] lab10 — [Оценка анализа рисков ИБ — практика](labs/basic/lab10/README.md)
4. Реализовать итоговую работу:
- [ ] pet_project — [Индивидуальный проект: полный стек AppSec/DevSecOps](labs/pet_project/README.md)
***
### Карта
```mermaid
flowchart TD
subgraph Intro["Подготовка"]
I01["VirtualBox & Linux"]
I02["Git, GPG, SSH, gh"]
I03["Gistup отчёты"]
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
PET["Pet Project — индивидуальная работа"]
Intro --> Foundations
Foundations --> Containers
Containers --> AppSec
AppSec --> DevSecOps
DevSecOps --> PET
```
***
### Формализованные требования
- Единый стиль кода
- Все функции по работе с деревом должны находиться в пространстве имен
- Оформление `README.md` в соответствии с содержанием проекта
- Оформление `.gitignore` в соответствии с содержанием проекта
- Оформление `.dockerignore` в соответствии с содержанием проекта
- Использовать подходящий тип `LICENSE` для проекта и `NOTICE`
- Создать и использовать скрипты для автоматизации сборки проекта, примеров, тестов, пакетирования
- Обеспечить непрерывный процесс сборки проекта с использованием сервиса `GitHub Actions`
- Написать документацию к проекту с использованием инструмента **doxygen**
- Обеспечить размещение пакета проекта на сервисе `GitHub Release` при успешном слияние ветки `develop`
- Рефакторинг и поддержка лабораторных работ в процессной деятельности
- Все команды выполняться строго из `терминала/ консоли` без использования `WebUI` за исключениям работы с токенами, ключами и специфичными настройками
***
### Tutorial
* Подготовка окружения
```bash
$ 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 # прямое обозначение адреса
```
* Очистка локального репозитория
```bash
$ rm -rf __pycache__ scripts/__pycache__ # etc.
$ rm -rf .venv
$ lsof -i :8000
$ kill
```
* Release
```bash
$ git tag -a v1.0.0 -m "v1.0.0"
$ git push origin v1.0.0
$ git tag -d v0.1.0 # удалить локальный тег
$ git push origin :refs/tags/v0.1.0 # удалить тот же тег на GitHub
```
***
### Структура
```
├── docs/ # MkDocs source
│ ├── index.md # Главная
│ ├── licenses.md # 41 лицензия
│ ├── appsec_tt.md # 29 классов инструментов
│ ├── APPENDIX.md # Команды и утилиты
│ ├── troubleshooting.md # FAQ
│ ├── glossary.md # 39 аббревиатур
│ ├── labs/
│ │ ├── intro/ # vmbox, git_setup, gistup
│ │ ├── basic/ # lab01-10
│ │ └── pet_project.md
│ ├── materials/ # Примеры, OWASP Top 10
│ ├── artifacts/ # CheatSheets, PDF, assets
│ ├── stylesheets/ # CSS (tokens, layout, ...)
│ ├── javascripts/ # JS
│ └── overrides/ # main.html, 404.html
├── labs/
│ ├── intro/ # vmbox, git_setup, gistup
│ ├── basic/ # lab01-10
│ └── pet_project/
├── .github/workflows/
│ ├── ci.yml # Lint → Audit → Build → Deploy
│ └── release-from-notes.yml
├── hooks.py # Sitemap enrichment
├── mkdocs.yml
├── requirements.txt
└── RELEASE_NOTES.md
```