
Создайте случайным образом небезопасные ВМ
SecGen создает уязвимые виртуальные машины, лабораторные среды и хакерские задачи, чтобы студенты могли изучать методы тестирования на проникновение.
Такие образы, как Metasploitable2, всегда одинаковы. Этот проект использует Vagrant, Puppet и Ruby для создания случайным образом уязвимых виртуальных машин, которые можно использовать для обучения или проведения CTF-соревнований.
Последняя версия доступна по адресу: http://github.com/cliffe/SecGen/
Пожалуйста, заполните короткий опрос, чтобы рассказать нам, как вы используете SecGen.
Для облачного решения посетите: https://hacktivity.co.uk/
Студенты, изучающие компьютерную безопасность, получают пользу от участия в хакерских задачах. Практические лабораторные работы и предварительно настроенные хакерские задачи — обычная практика как в обучении безопасности, так и в качестве хобби для людей, интересующихся этой темой. Соревновательные хакерские задачи, такие как соревнования Capture The Flag (CTF), стали неотъемлемой частью отраслевых конференций и являются центром больших онлайн-сообществ. Виртуальные машины (VM) предоставляют эффективный способ обмена целями для взлома и могут быть спроектированы для проверки навыков атакующего. Такие сайты, как Vulnhub, размещают предварительно настроенные хакерские виртуальные машины и являются ценным ресурсом для тех, кто учится и совершенствует свои навыки в области компьютерной безопасности. Однако разработка этих хакерских задач требует много времени, и после создания они по сути статичны. То есть, как только задача «решена», для студента не остается новых вызовов, а если задача создана для соревнования или оценки, ее нельзя использовать повторно без риска плагиата и сговора.
Security Scenario Generator (SecGen) генерирует рандомизированные уязвимые системы. Виртуальные машины создаются на основе спецификации сценария, которая описывает ограничения и свойства создаваемых ВМ. Например, сценарий может задавать создание системы с удаленно эксплуатируемой уязвимостью, приводящей к компрометации на уровне пользователя, и локально эксплуатируемой ошибкой, приводящей к компрометации на уровне root. Это потребует от атакующего обнаружить и использовать обе случайно выбранные уязвимости для получения root-доступа к системе. Альтернативно, определяемый сценарий может быть более конкретным, указывая определенные виды сервисов (такие как FTP или SMB) или даже точные уязвимости (по CVE).
SecGen — это приложение на Ruby с конфигурационным языком XML. Он читает свою конфигурацию, включая доступные уязвимости, сервисы, сети, пользователей и контент, читает определение запрошенного сценария, применяет логику для рандомизации сценария, а затем использует Puppet и Vagrant для развертывания необходимых ВМ.
SecGen — это свободное программное обеспечение: вы можете распространять и/или изменять его в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 этой лицензии, либо (по вашему выбору) любой более поздней версии.
SecGen содержит модули, которые устанавливают различные программные пакеты. Каждый модуль SecGen может содержать программное обеспечение или загружать его удаленно, и каждый модуль определяет свою собственную лицензию в сопутствующем файле secgen_metadata.xml.
SecGen разрабатывается и тестируется в Ubuntu Linux. Теоретически, SecGen должен работать на Mac или Windows, если у вас установлено все необходимое программное обеспечение.
Вам потребуется установить следующее:
Этот проект был адаптирован для работы с выпуском Ubuntu (20.04) из-за того, что (16.04) достиг конца жизненного цикла в апреле 2021 года. Он все еще будет работать на этой версии, но не гарантируется поддержка обновлений безопасности, необходимых для вашей среды разработки.
Убедитесь, что Ubuntu обновлена, выполнив следующие команды:```bash sudo apt update sudo apt upgrade
Установите последнюю версию vagrant:```bash
wget https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb
sudo apt install ./vagrant_2.2.9_x86_64.deb
Установите другие необходимые пакеты:```bash sudo apt-get install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler imagemagick libmagickwand-dev exiftool libpq-dev libcurl4-openssl-dev libxml2-dev graphviz graphviz-dev libpcap0.8-dev git
Клонируйте репозиторий SecGen, используя следующую команду.По умолчанию это будет /home/username/SecGen, измените по необходимости:```bash
git clone https://github.com/cliffe/SecGen.git
Установите гемы с помощью следующих команд:```bash #Step In to the file directory
cd /home/username/SecGen
bundle update --bundler
Обновление гемов:```bash
bundle update
Установите все необходимые пакеты:```bash
wget https://releases.hashicorp.com/vagrant/1.9.8/vagrant_1.9.8_x86_64.deb sudo apt install ./vagrant_1.9.8_x86_64.deb
sudo apt-get install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler imagemagick libmagickwand-dev exiftool libpq-dev libcurl4-openssl-dev libxml2-dev graphviz graphviz-dev libpcap0.8-dev git
Скопируйте SecGen в каталог по вашему выбору, например, */home/user/bin/SecGen*
Затем установите гемы:```bash
cd /home/user/bin/SecGen
bundle install
Чтобы использовать Windows basesboxes, вам нужно установить Packer. Используйте следующую команду:```bash curl -SL https://releases.hashicorp.com/packer/1.3.2/packer_1.3.2_linux_amd64.zip -o packer_1.3.2_linux_amd64.zip unzip packer_1.3.2_linux_amd64.zip sudo mv packer /usr/local/ sudo bash -c 'echo "export PATH="$PATH:/usr/local/"" >> /etc/environment' sudo vagrant plugin install winrm sudo vagrant plugin install winrm-fs
## Использование
Базовое использование:```bash
ruby secgen.rb run
Это будет использовать сценарий по умолчанию для случайной генерации VM(s).

SecGen принимает аргументы для изменения своего поведения; на данный момент реализованы следующие аргументы:```bash ruby secgen.rb [--options] OPTIONS: --scenario [xml file], -s [xml file]: Set the scenario to use (defaults to /home/secgen/SecGen/scenarios/default_scenario.xml) --project [output dir], -p [output dir]: Directory for the generated project (output will default to /home/secgen/SecGen/projects/SecGen20200313_094915) --shutdown: Shutdown VMs after provisioning (vagrant halt) --network-ranges: Override network ranges within the scenario, use a comma-separated list --forensic-image-type [image type]: Forensic image format of generated image (raw, ewf) --read-options [conf path]: Reads options stored in file as arguments (see example.conf) --memory-per-vm: Allocate generated VMs memory in MB (e.g. --memory-per-vm 1024) --total-memory: Allocate total VM memory for the scenario, split evenly across all VMs. --cpu-cores: Number of virtual CPUs for generated VMs --help, -h: Shows this usage information --system, -y [system_name]: Only build this system_name from the scenario --snapshot: Creates a snapshot of VMs once built --no-tests: Prevent post-provisioning tests from running.
VIRTUALBOX OPTIONS:
--gui-output, -g: Show the running VM (not headless)
--nopae: Disable PAE support
--hwvirtex: Enable HW virtex support
--vtxvpid: Enable VTX support
--max-cpu-usage [1-100]: Controls how much cpu time a virtual CPU can use
(e.g. 50 implies a single virtual CPU can use up to 50% of a single host CPU)
OVIRT OPTIONS:
--ovirtuser [ovirt_username]
--ovirtpass [ovirt_password]
--ovirt-url [ovirt_api_url]
--ovirtauthz [ovirt authz]
--ovirt-cluster [ovirt_cluster]
--ovirt-network [ovirt_network_name]
--ovirt-affinity-group [ovirt_affinity_group_name]
ESXI OPTIONS:
--esxiuser [esxi_username]
--esxipass [esxi_password]
--esxi-hostname [esxi_api_url]
(ESXi hostname/IP)
--esxi-datastore [esxi_datastore]
--esxi-disktype [esxi_disktype]: 'thin', 'thick', or 'eagerzeroedthick'
(If unspecified, it will be set to 'thin')
--esxi-network [esxi_network_name]
(If its not specified, the default is to use the first found)
--esxi-guest-nictype [esxi_nictype]: 'e1000', 'e1000e', 'vmxnet', 'vmxnet2', 'vmxnet3', 'Vlance', or 'Flexible'
(RISKY - Can cause VM to not respond)
--esxi-no-hostname
(Setting the hostname on some boxes can cause vagrant up to fail if the network configuration was not previously cleaned up.)
PROXMOX OPTIONS:
--proxmoxuser [username]
--proxmoxpass [password]
--proxmox-url [api_url]
--proxmox-node [node]
--proxmox-network [proxmox network name]
--proxmox-vlan [vlan number]
COMMANDS:
run, r: Builds project and then builds the VMs
build-project, p: Builds project (vagrant and puppet config), but does not build VMs
build-vms, v: Builds VMs from a previously generated project
(use in combination with --project [dir])
ovirt-post-build: only performs the ovirt actions that normally follow a successful vm build
(snapshots and networking)
create-forensic-image: Builds forensic images from a previously generated project
(can be used in combination with --project [dir])
list-scenarios: Lists all scenarios that can be used with the --scenario option
list-projects: Lists all projects that can be used with the --project option
delete-all-projects: Deletes all current projects in the projects directory
## Устранение неполадок: обновление базовых образов
Если SecGen испытывает ошибки при установке пакетов, шаблонные виртуальные машины (базовые образы), которые мы публикуем в Vagrant cloud, возможно, потребуется обновить (особенно Kali, который является rolling-release). После того как вы создали несколько ВМ, перейдите в домашнем каталоге в `.vagrant.d/boxes/`, оттуда вы можете вручную запустить ВМ, используемые в качестве шаблонов, и применить обновления программного обеспечения: `sudo apt-get update; sudo apt-get upgrade`. Затем выключите ВМ и попробуйте SecGen снова.
Для Proxmox используйте этот плагин Vagrant: https://github.com/cliffe/vagrant-proxmox/ и примените это исправление к Vagrant: https://github.com/hashicorp/vagrant/pull/12463/files.
Обычно вам потребуется создать базовую ВМ Debian Buster, следуя этим инструкциям:
https://github.com/cliffe/SecGen/blob/master/README-Creating-Bases.md
## Сценарии
SecGen генерирует ВМ на основе спецификации сценария, которая описывает ограничения и свойства создаваемых ВМ.
### Использование существующих сценариев
Существующие сценарии снижают порог входа в SecGen: при вызове SecGen сценарий может быть указан в качестве аргумента команды, и SecGen затем прочитает соответствующее определение сценария и приступит к рандомизации и генерации ВМ. Это устраняет необходимость для конечных пользователей фреймворка понимать спецификацию конфигурации SecGen.
Сценарии можно найти в каталоге scenarios/. Например, чтобы запустить ВМ со случайной удаленно эксплуатируемой уязвимостью, приводящей к компрометации на уровне пользователя:```bash
ruby secgen.rb --scenario scenarios/examples/remotely_exploitable_user_vulnerability.xml run

Чтобы сгенерировать набор ВМ для случайно сгенерированной вымышленной организации с настольной системой, веб-сервером и сервером интрасети:```bash ruby secgen.rb --scenario scenarios/security_audit/team_project.xml run
Обратите внимание, что внутренний сервер имеет задачи по безопасности, включая инструкции по проведению аудита безопасности этих систем. Настольная система может получить доступ к интрасети для ознакомления с задачами, но виртуальная машина атакующего (например, Kali) может быть подключена только к сетевому интерфейсу, совместно используемому веб-сервером, чтобы имитировать необходимость проведения атак через веб-сервер, так как она не может подключаться к внутренней системе напрямую. «Руководство по оценке» представлено в виде выходного файла scenario.xml в каталоге проекта, который содержит подробную информацию о сгенерированных системах.
#### Виртуальные машины для CTF-мероприятия
Чтобы сгенерировать набор виртуальных машин для CTF-соревнования:```bash
ruby secgen.rb --scenario scenarios/ctf/flawed_fortress_1.xml run
Обратите внимание, что также создаётся файл CTFd_importable.zip, содержащий все флаги и подсказки, который можно импортировать во фронтенд таблицы результатов CTFd.
Это совместимо с CTFd v2.0.2 и новее.
Учётная запись администратора по умолчанию: Имя пользователя: adminusername Пароль: adminpassword
Создание собственных сценариев позволяет определить виртуальную машину или набор виртуальных машин с конфигурацией настолько специфичной или общей, насколько это необходимо.
Спецификация сценариев SecGen — это мощный интерфейс для задания ограничений генерируемых уязвимых систем. Сценарии определяются в XML-файлах конфигурации, которые описывают системы в терминах базы, сервисов/утилит, уязвимостей и сетей.
Подробнее см. в руководстве по созданию сценариев.
SecGen спроектирован так, чтобы его можно было легко расширять с помощью модулей, определяющих уязвимости и другие виды программного обеспечения, конфигурации и изменения содержимого.
Типы модулей, поддерживаемые в SecGen:
Каждый модуль уязвимости находится в дереве каталогов modules/vulnerabilities, структура которого соответствует структуре каталогов модулей Metasploit Framework (MSF). Например, модуль уязвимости distcc_exec находится в: modules/vulnerabilities/unix/misc/distcc_exec/.
В корне каталога модуля всегда находится файл secgen_metadata.xml, а также файлы Puppet, которые используются для создания уязвимой системы.
Подробнее см. в руководстве по метаданным модулей.
Кодировщики и генераторы содержат код, который вычисляется во время сборки проекта, например, кодирование текста, генерация флагов и другого потенциально случайного содержимого. В каждом случае это Ruby-скрипт, расположенный в каталоге модуля по пути local/secgen_local.rb. Хотя обычно он вызывается SecGen, скрипты secgen_local.rb могут выполняться напрямую, принимая все входные параметры в качестве аргументов командной строки и возвращая вывод в формате JSON в stdout. Прочий человекочитаемый вывод записывается в stderr.```bash #ruby modules/encoders/string/base64/secgen_local/local.rb --strings_to_encode "encode this" --strings_to_encode "and this" BASE64 Encoder Encoding '["encode this", "and this"]' Encoded: ["ZW5jb2RlIHRoaXM=", "YW5kIHRoaXM="] ["ZW5jb2RlIHRoaXM=","YW5kIHRoaXM="]


## Puppet используется для обеспечения работы ВМ
Каждый модуль уязвимости, сервиса и утилиты содержит файлы Puppet, которые используются для установки программного обеспечения и внесения изменений в конфигурацию на ВМ. К моменту выполнения Puppet для настройки ВМ, вся рандомизация уже произведена на этапе сборки.
Подробности см. в **[Руководстве по модулям Puppet](https://github.com/cliffe/secgen/blob/HEAD/README-Modules-Puppet.md)**.
## Вывод проекта SecGen
По умолчанию вывод осуществляется в каталог 'projects/SecGen_*[CurrentTime]*/'
Вывод проекта включает:
- Конфигурацию Vagrant для запуска виртуальных машин.
- Каталог, содержащий все необходимые модули Puppet для вышеуказанного. Создаётся файл Librarian-Puppet для управления модулями, а некоторые необходимые модули могут быть получены через PuppetForge, поэтому при сборке проекта требуется подключение к Интернету.
- Файл сценария без рандомизации (de-randomised scenario XML file). С помощью SecGen вы можете использовать этот файл 'scenario.xml' для воссоздания вышеуказанной конфигурации Vagrant и файлов Puppet. Любая применённая рандомизация должна быть удалена в этом выводе (по сравнению с исходным файлом сценария). Этот файл содержит все детали созданных систем и может быть также использован для оценки, подсчёта баллов или подсказок.
- Файл 'flag_hints.xml', содержащий все флаги и несколько подсказок для каждого флага.
- Файл 'CTFd_importable.zip', полезный для CTF-мероприятий, для импорта во [фронтенд для подсчёта очков CTFd](https://github.com/CTFd/CTFd).
Если запустить SecGen с командой "build-project" (или "p"), он создаёт вышеуказанные файлы и останавливается. Команда "run" (или "r") создаёт файлы проекта, а затем использует Vagrant для сборки ВМ.
Можно скопировать каталог проекта в любую совместимую систему с Vagrant и просто выполнить "vagrant up" для создания ВМ.
Пароль root по умолчанию для базовых образов — 'puppet', но он может быть изменён SecGen в зависимости от используемого сценария.
## Пакетная обработка с SecGen
Генерация нескольких ВМ в пакетном режиме теперь возможна с помощью batch_secgen, который управляет очередью заданий для массового создания ВМ с SecGen. Доступны вспомогательные команды для добавления заданий, просмотра заданий в таблице, удаления заданий и сброса статуса заданий с 'running' или 'error' на 'todo'.
Подробности см. в **[Руководстве по пакетному созданию ВМ](https://github.com/cliffe/secgen/blob/HEAD/README-Batch-VMs.md)**.
## Ключ области знаний CyBOK
Свод знаний по кибербезопасности (CyBOK) — это система знаний, призванная охватить различные области знаний, существующие в кибербезопасности.
Сценарии в SecGen теперь содержат элементы XML, связывающие их с областями знаний CyBOK и конкретными темами внутри этих областей.
Кроме того, видео-контент для сценариев помечен ассоциациями CyBOK.
Индекс лабораторных сценариев в SecGen, организованных по областям знаний CyBOK, см. в **[Лабораторные сценарии и CyBOK](https://github.com/cliffe/secgen/blob/HEAD/README-CyBOK-Scenarios-Indexed.md)**. Аналогично для **[сценариев CTF](https://github.com/cliffe/secgen/blob/HEAD/README-CyBOK-CTF-Scenarios-Indexed.md)**.
Список лекционных и демонстрационных видео с метаданными CyBOK см. в **[Лекционные видео и CyBOK](https://github.com/cliffe/secgen/blob/HEAD/README-CyBOK-Lecture-Videos.md)**.
Таблица ниже является ключом для сокращений, которые вы найдёте в элементах XML CyBOK в сценариях:
| Сокращение | Область знаний (KA) | Глава | Дерево знаний|
| ----------- | -------------------- | ------- | --------------|
| IC | Introduction to CyBOK | [link](https://www.cybok.org/media/downloads/Introduction_to_CyBOK.pdf)| [link](https://www.cybok.org/media/downloads/CyBOK_introduction.pdf) |
| FM | Formal Methods | n/a | [link](https://www.cybok.org/media/downloads/Formal_Methods_for_Security_VK6XZwO.pdf)|
| RMG | Risk Management & Governance | [link](https://www.cybok.org/media/downloads/Risk-Management--Governance-issue-1.0.pdf)| [link](https://www.cybok.org/media/downloads/Risk_Management__Governancev2.pdf)|
| LR | Law & Regulation | [link](https://www.cybok.org/media/downloads/Law__Regulation_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Law__Regulation.pdf)|
| HF | Human Factors | [link](https://www.cybok.org/media/downloads/Human_Factors_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Human_Factors.pdf)|
| POR | Privacy & Online Rights | [link](https://www.cybok.org/media/downloads/Privacy__Online_Rights_issue_1.0_FNULPeI.pdf)| [link](https://www.cybok.org/media/downloads/Privacy__Online_Rights.pdf)|
| MAT | Malware & Attack Technologies | [link](https://www.cybok.org/media/downloads/Malware__Attack_Technology_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Malware__Attack_Technologies.pdf)|
| AB | Adversarial Behaviours | [link](https://www.cybok.org/media/downloads/Malware__Attack_Technology_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Adversarial_Behaviours.pdf)|
| SOIM | Security Operations & Incident Management | [link](https://www.cybok.org/media/downloads/Security_Operations__Incident_Management_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Security_Operations__Incident_Management.pdf)|
| F | Forensics | [link](https://www.cybok.org/media/downloads/Forensics_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Forensics.pdf)|
| C | Cryptography | [link](https://www.cybok.org/media/downloads/Cryptography-issue-1.0.pdf)| [link](https://www.cybok.org/media/downloads/Cryptography.pdf)|
| AC | Applied Cryptography | [link](https://www.cybok.org/media/downloads/Applied_Cryptography_v1.0.0.pdf)| [link](https://www.cybok.org/media/downloads/Applied_Cryptography_tree-1.0.0.pdf)|
| OSV | Operating Systems & Virtualisation Security | [link](https://www.cybok.org/media/downloads/Operating_Systems__Virtualisation_Security_issue_1.0_xhesi5S.pdf)| [link](https://www.cybok.org/media/downloads/Operating_Systems__Virtualisation_Security.pdf)|
| DSS | Distributed Systems Security | [link](https://www.cybok.org/media/downloads/Distributed_Systems_Security_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Distributed_Systems_Security.pdf)|
| AAA | Authentication, Authorisation and Accountability | [link](https://www.cybok.org/media/downloads/AAA_issue_1.0_q3qspzo.pdf)| [link](https://www.cybok.org/media/downloads/AAA.pdf) |
| SS | Software Security | [link](https://www.cybok.org/media/downloads/Software_Security_issue_1.0_1M7Kfk2.pdf)| [link](https://www.cybok.org/media/downloads/Software_Security.pdf)|
| WAM | Web & Mobile Security | [link](https://www.cybok.org/media/downloads/Web__Mobile_Security_issue_1.0_XFpbYNz.pdf)| [link](https://www.cybok.org/media/downloads/Web__Mobile_Security.pdf)|
| SSL | Secure Software Lifecycle | [link](https://www.cybok.org/media/downloads/Secure_Software_Lifecycle_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Secure_Software_Lifecycle.pdf)|
| NS | Network Security | [link](https://www.cybok.org/media/downloads/Network_Security_issue_1.0_qsCh0SR.pdf)| [link](https://www.cybok.org/media/downloads/Network_Security.pdf)|
| HS | Hardware Security | [link](https://www.cybok.org/media/downloads/Hardware_Security_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Hardware_Security.pdf)|
| CPS | Cyber Physical Systems | [link](https://www.cybok.org/media/downloads/Cyber-Physical_Systems_Security_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Cyber_Physical_Systems_Security.pdf)|
| PLT | Physical Layer and Telecommunications Security | [link](https://www.cybok.org/media/downloads/Physical_Layer__Telecommunications_Security_issue_1.0.pdf)| [link](https://www.cybok.org/media/downloads/Physical_Layer__Telecomms_Security.pdf)|
## Hacktivity Cyber Security Labs
[Для размещённого решения посетите: https://hacktivity.leedsbeckett.ac.uk/](https://hacktivity.leedsbeckett.ac.uk/)
Hacktivity работает на базе SecGen и предоставляет полностью размещённую лабораторную среду для обучения кибербезопасности. Отслеживайте свой прогресс с помощью аналитики CyBOK.
## Благодарности
*Команда разработчиков:*
- Dr Z. Cliffe Schreuders http://z.cliffe.schreuders.org
- Tom Shaw
- Alix Hiscock
- Rosie Fletcher
- James Davis
- Sofia Markusfeld
- Harry Hall
- Jack Biggs
- Tom Harrison
- Jason Keighley
- Lewis Ardern — автор первого прототипа SecGen, подтверждающего концепцию
- Connor Wilson
Большое спасибо всем, кто внёс вклад в проект. Вышеуказанный список не является полным или исчерпывающим; пожалуйста, обратитесь к [истории GitHub](https://github.com/cliffe/SecGen/graphs/contributors).
*Грантовая поддержка:*
- Этот проект поддержан грантом Higher Education Academy (HEA) по обучению и преподаванию в области кибербезопасности (2015–2017).
- Этот проект поддержан грантом Leeds Beckett University Teaching Excellence Fund (2018–2019).
- Этот проект поддержан грантом Cyber Security Body of Knowledge (CyBOK) ресурсов вокруг CyBOK 1.0 (2021).
- Этот проект поддержан грантом Cyber Security Body of Knowledge (CyBOK) ресурсов вокруг CyBOK 1.1 (2021–2022).
- Этот проект поддержан грантом Cyber Security Body of Knowledge (CyBOK) ресурсов вокруг CyBOK 1.1 (2022–2023).
- Этот проект поддержан грантом CyberASAP (Cyber Security Academic Startup Accelerator Programme) Innovate UK (2022–2023).
- Этот проект поддержан грантом Leeds Beckett University Teaching Excellence Fund (2023).
- Этот проект поддержан грантом Cyber Security Body of Knowledge (CyBOK) ресурсов вокруг CyBOK 1.1 (2023–2024).
- Этот проект поддержан грантом Cyber Security Body of Knowledge (CyBOK) ресурсов вокруг CyBOK 1.1 (2024–2025).
- Этот проект поддержан грантом Cyber Security Body of Knowledge (CyBOK) ресурсов вокруг Security-Informed Safety (2025–2026).
## Участие в проекте
Мы поощряем вклад в проект.
Если кратко: сделайте форк с http://github.com/cliffe/SecGen/, создайте ветку, внесите и зафиксируйте свои изменения, затем создайте запрос на включение (pull request).
## Ресурсы
Статья: [Z.C. Schreuders, T. Shaw, "Hacktivity Cyber Security Labs: Randomised Challenges and Virtualisation Infrastructure Management, with CyBOK Integration," Advances in Cyber Security Education, Bristol, UK. CSE-Connect, 2024.](https://link.springer.com/chapter/10.1007/978-3-031-77524-6_4#citeas)
Статья: [Z.C. Schreuders, T. Shaw, A. Mac Muireadhaigh, and P. Staniforth, “Hackerbot: Attacker Chatbots for Randomised and Interactive Security Labs, Using SecGen and oVirt,” USENIX Workshop on Advances in Security Education (ASE'18), Baltimore, MD, USA. USENIX Association, 2018.](https://www.usenix.org/conference/ase18/presentation/schreuders) (В этой статье описывается Hackerbot и то, как мы используем SecGen с oVirt.)
Статья: [Z.C. Schreuders, T. Shaw, M. Shan-A-Khuda, G. Ravichandran, J. Keighley, and M. Ordean, “Security Scenario Generator (SecGen): A Framework for Generating Randomly Vulnerable Rich-scenario VMs for Learning Computer Security and Hosting CTF Events,” USENIX Workshop on Advances in Security Education (ASE'17), Vancouver, BC, Canada. USENIX Association, 2017.](https://www.usenix.org/conference/ase17/workshop-program/presentation/schreuders) (Эта статья даёт хороший обзор SecGen.)
Статья: [Z.C. Schreuders, and L. Ardern, "Generating randomised virtualised scenarios for ethical hacking and computer security education: SecGen implementation and deployment," in The first UK Workshop on Cybersecurity Training & Education (Vibrant Workshop 2015) Liverpool, UK, 2015.](http://z.cliffe.schreuders.org/publications/VibrantWorkshop2015%20-%20Generating%20randomised%20virtualised%20scenarios%20for%20ethical%20hacking%20and%20computer%20security%20education%20%28SecGen%29.pdf) (В этой статье описывается первый прототип.)
Интервью в подкасте: [Purple Squad Security Episode 011 – Security Scenario Generator with Dr. Z. Cliffe Schreuders](https://purplesquadsec.com/podcast/episode-011-security-scenario-generator-dr-z-cliffe-schreuders/)