
랜덤으로 보안이 취약한 VM을 생성합니다.
SecGen은 취약한 가상 머신, 실습 환경 및 해킹 챌린지를 생성하여 학생들이 보안 침투 테스트 기술을 배울 수 있도록 합니다.
Metasploitable2와 같은 상자는 항상 동일하지만, 이 프로젝트는 Vagrant, Puppet 및 Ruby를 사용하여 학습 또는 CTF 이벤트 호스팅에 사용할 수 있는 무작위로 취약한 가상 머신을 생성합니다.
최신 버전은 다음에서 확인할 수 있습니다: http://github.com/cliffe/SecGen/
SecGen을 어떻게 사용하고 있는지 간단한 설문 조사에 참여해 주세요.
호스팅 솔루션을 원하시면 다음을 방문하세요: https://hacktivity.co.uk/
컴퓨터 보안 학생들은 해킹 챌린지에 참여함으로써 혜택을 얻습니다. 실습 실험실 작업과 사전 구성된 해킹 챌린지는 보안 교육뿐만 아니라 보안에 관심이 있는 개인의 취미 활동으로도 일반적입니다. 캡처 더 플래그(CTF) 대회와 같은 경쟁적인 해킹 챌린지는 업계 컨퍼런스의 핵심이 되었으며 대규모 온라인 커뮤니티의 초점이 되고 있습니다. 가상 머신(VM)은 해킹 대상 공유의 효과적인 방법을 제공하며, 공격자의 기술을 테스트하기 위해 설계될 수 있습니다. Vulnhub과 같은 웹사이트는 사전 구성된 해킹 챌린지 VM을 호스팅하며, 컴퓨터 보안 기술을 배우고 발전시키는 사람들에게 귀중한 자료입니다. 그러나 이러한 해킹 챌린지를 개발하는 데는 시간이 많이 소요되며, 일단 생성되면 본질적으로 정적입니다. 즉, 챌린지가 "해결"되면 학생에게 남은 도전이 없으며, 대회나 평가를 위해 챌린지가 생성된 경우 표절 및 공모 위험 없이 재사용할 수 없습니다.
Security Scenario Generator (SecGen)은 무작위화된 취약 시스템을 생성합니다. VM은 생성될 VM의 제약 조건과 속성을 설명하는 시나리오 사양을 기반으로 생성됩니다. 예를 들어, 시나리오는 원격으로 악용 가능한 취약점(사용자 수준 침해로 이어짐)과 로컬로 악용 가능한 결함(루트 수준 침해로 이어짐)이 있는 시스템 생성을 지정할 수 있습니다. 이렇게 하면 공격자가 시스템에 대한 루트 액세스를 얻기 위해 무작위로 선택된 두 취약점을 모두 발견하고 악용해야 합니다. 또는 정의된 시나리오가 더 구체적일 수 있으며, 특정 종류의 서비스(FTP 또는 SMB 등) 또는 정확한 취약점(CVE 기준)을 지정할 수 있습니다.
SecGen은 XML 구성 언어를 사용하는 Ruby 애플리케이션입니다. SecGen은 사용 가능한 취약점, 서비스, 네트워크, 사용자 및 콘텐츠를 포함한 구성을 읽고, 요청된 시나리오의 정의를 읽고, 시나리오를 무작위화하는 로직을 적용하며, 필요한 VM을 프로비저닝하기 위해 Puppet 및 Vagrant를 활용합니다.
SecGen은 자유 소프트웨어입니다. 자유 소프트웨어 재단에서 발행한 GNU 일반 공중 사용 허가서(GNU General Public License) 버전 3 또는 (선택에 따라) 이후 버전의 조건에 따라 재배포 및/또는 수정할 수 있습니다.
SecGen에는 다양한 소프트웨어 패키지를 설치하는 모듈이 포함되어 있습니다. 각 SecGen 모듈은 소프트웨어를 포함하거나 원격으로 소싱할 수 있으며, 각 모듈은 동봉된 secgen_metadata.xml 파일에 자체 라이선스를 정의합니다.
SecGen은 Ubuntu Linux에서 개발 및 테스트되었습니다. 이론적으로, 필요한 모든 소프트웨어가 설치되어 있다면 SecGen은 Mac 또는 Windows에서도 실행되어야 합니다.
다음 항목을 설치해야 합니다:
이 프로젝트는 (16.04)가 2021년 4월 수명 종료됨에 따라 Ubuntu (20.04) 릴리스에서 작동하도록 조정되었습니다. 해당 버전에서도 여전히 작동하지만 개발 환경에 필요한 보안 업데이트를 지원한다고 보장되지는 않습니다.
다음 명령어를 사용하여 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
다음 명령어를 사용하여 gem을 설치합니다:```bash #Step In to the file directory
cd /home/username/SecGen
bundle update --bundler
gems 업데이트:```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*)로 복사하세요.
그런 다음 gems을 설치하세요:```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을 무작위로 생성합니다.

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 클라우드에 게시한 템플릿 VM(기본 박스)을 업데이트해야 할 수 있습니다(특히 롤링 릴리스인 Kali). VM을 몇 개 빌드한 후, 홈 디렉토리 `.vagrant.d/boxes/`에서 템플릿으로 사용되는 VM을 수동으로 실행하고, 소프트웨어 업데이트를 적용할 수 있습니다: `sudo apt-get update; sudo apt-get upgrade`. 그런 다음 VM을 종료하고 SecGen을 다시 시도하십시오.
Proxmox의 경우, 이 Vagrant 플러그인을 사용하십시오: https://github.com/cliffe/vagrant-proxmox/, 그리고 Vagrant에 이 수정을 적용하십시오: https://github.com/hashicorp/vagrant/pull/12463/files.
일반적으로 다음 지침에 따라 Debian Buster 기본 VM을 생성해야 합니다:
https://github.com/cliffe/SecGen/blob/master/README-Creating-Bases.md
## 시나리오
SecGen은 생성할 VM의 제약 조건과 속성을 설명하는 시나리오 사양에 따라 VM을 생성합니다.
### 기존 시나리오 사용
기존 시나리오는 SecGen의 진입 장벽을 낮춥니다: SecGen을 호출할 때 시나리오를 명령 인수로 지정할 수 있으며, 그러면 SecGen은 적절한 시나리오 정의를 읽고 무작위화 및 VM 생성을 진행합니다. 이는 프레임워크의 최종 사용자가 SecGen의 설정 사양을 이해할 필요를 없애줍니다.
시나리오는 scenarios/ 디렉토리에서 찾을 수 있습니다. 예를 들어, 사용자 수준의 손상을 초래하는 무작위 원격 악용 가능 취약점이 있는 VM을 실행하려면:```bash
ruby secgen.rb --scenario scenarios/examples/remotely_exploitable_user_vulnerability.xml run

무작위로 생성된 가상 조직을 위한 VM 세트를 생성하려면, 데스크탑 시스템, 웹서버, 인트라넷 서버를 포함하여:```bash ruby secgen.rb --scenario scenarios/security_audit/team_project.xml run
참고로 인트라넷 서버는 보안 업무를 가지며, 해당 시스템들에 대한 보안 감사 수행 방법에 대한 지침이 포함되어 있습니다. 데스크톱 시스템은 인트라넷에 접속하여 업무 내용을 확인할 수 있지만, 공격자 VM(예: Kali)은 웹 서버와만 공유되는 NIC에 연결되어 웹 서버를 경유한 공격(pivot)이 필요함을 시뮬레이션할 수 있습니다. 공격자 VM이 인트라넷 시스템에 직접 연결될 수 없기 때문입니다. "마킹 가이드"는 프로젝트 디렉토리 내의 output scenario.xml 파일 형태로 제공되며, 생성된 시스템들의 세부 정보를 제공합니다.
#### CTF 이벤트를 위한 VM들
CTF 대회를 위한 VM 세트를 생성하려면:```bash
ruby secgen.rb --scenario scenarios/ctf/flawed_fortress_1.xml run
'CTFd_importable.zip' 파일도 생성되며, 이 파일에는 모든 플래그와 힌트가 포함되어 있어 CTFd 점수판 프론트엔드로 가져올 수 있습니다. CTFd v2.0.2 이상과 호환됩니다.
기본 관리자 계정: 사용자 이름: adminusername 비밀번호: adminpassword
자신만의 시나리오를 작성하면 원하는 만큼 구체적이거나 일반적인 구성을 가진 VM 또는 VM 세트를 정의할 수 있습니다.
SecGen의 시나리오 사양은 생성할 취약한 시스템의 제약 조건을 지정하기 위한 강력한 인터페이스입니다. 시나리오는 베이스, 서비스/유틸리티, 취약점 및 네트워크 측면에서 시스템을 지정하는 XML 구성 파일로 정의됩니다.
자세한 내용은 **시나리오 생성 가이드**를 참조하세요.
SecGen은 취약점 및 기타 소프트웨어, 구성, 콘텐츠 변경을 정의하는 모듈로 쉽게 확장할 수 있도록 설계되었습니다.
SecGen에서 지원하는 모듈 유형은 다음과 같습니다:
각 취약점 모듈은 Metasploit Framework(MSF) 모듈 디렉터리 구조와 일치하도록 구성된 modules/vulnerabilities 디렉터리 트리에 포함되어 있습니다. 예를 들어 distcc_exec 취약점 모듈은 modules/vulnerabilities/unix/misc/distcc_exec/에 포함되어 있습니다.
모듈 디렉터리의 루트에는 항상 secgen_metadata.xml 파일이 포함되어 있으며, 시스템을 취약하게 만드는 데 사용되는 puppet 파일도 포함되어 있습니다.
자세한 내용은 **모듈 메타데이터 가이드**를 참조하세요.
인코더와 생성기에는 프로젝트 빌드 시 평가되는 코드가 있습니다. 이 코드는 텍스트 인코딩, 플래그 및 기타 잠재적으로 무작위화된 콘텐츠 생성 등을 수행합니다. 각 경우에, 이 코드는 모듈 디렉터리 내 local/secgen_local.rb에 위치한 Ruby 스크립트입니다. 일반적으로 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은 VM 프로비저닝에 사용됩니다
각 취약점, 서비스 및 유틸리티 모듈에는 VM에 소프트웨어와 구성 변경을 프로비저닝하는 데 사용되는 Puppet 파일이 포함되어 있습니다. Puppet이 VM을 프로비저닝하기 위해 실행될 때쯤이면 모든 무작위화는 빌드 시점에 이미 수행되었습니다.
자세한 내용은 **[모듈 Puppet 가이드](https://github.com/cliffe/secgen/blob/HEAD/README-Modules-Puppet.md)**를 참조하세요.
## SecGen 프로젝트 출력
기본 출력은 'projects/SecGen_*[CurrentTime]*/'입니다.
프로젝트 출력에는 다음이 포함됩니다:
- 박스를 실행하기 위한 Vagrant 구성.
- 위에 필요한 모든 Puppet 모듈이 포함된 디렉토리. 모듈을 관리하기 위해 Librarian-Puppet 파일이 생성되며, 일부 필수 모듈은 PuppetForge를 통해 얻을 수 있으므로 프로젝트를 빌드할 때 인터넷 연결이 필요합니다.
- 무작위화가 해제된 시나리오 XML 파일. SecGen을 사용하여 이 'scenario.xml' 파일을 사용하여 위의 Vagrant 구성 및 Puppet 파일을 재생성할 수 있습니다. 적용된 모든 무작위화는 이 출력에서 (원래 시나리오 파일과 비교하여) 무작위화가 해제되어야 합니다. 이 파일에는 생성된 시스템의 모든 세부 정보가 포함되어 있으며, 나중에 채점, 점수 매기기 또는 힌트 제공에 사용할 수 있습니다.
- 각 플래그에 대한 여러 힌트와 함께 모든 플래그가 포함된 'flag_hints.xml' 파일.
- CTF 이벤트에 유용한 'CTFd_importable.zip' 파일로, [CTFd 점수판 프론트엔드](https://github.com/CTFd/CTFd)로 가져올 수 있습니다.
"build-project"(또는 "p") 명령으로 SecGen을 시작하면 위 파일을 생성한 후 중지됩니다. "run"(또는 "r") 명령은 프로젝트 파일을 생성한 다음 Vagrant를 사용하여 VM을 빌드합니다.
프로젝트 디렉토리를 Vagrant가 있는 호환 시스템에 복사하고 간단히 "vagrant up"을 실행하여 VM을 생성할 수 있습니다.
기본 박스의 기본 루트 비밀번호는 'puppet'이지만, 사용된 시나리오에 따라 SecGen에 의해 수정될 수 있습니다.
## SecGen을 사용한 배치 처리
batch_secgen을 사용하여 여러 VM을 배치로 생성할 수 있습니다. batch_secgen은 SecGen으로 VM을 대량 생성하기 위한 작업 큐를 관리합니다. 작업 추가, 테이블에 작업 나열, 작업 제거, 작업 상태를 'running' 또는 'error'에서 'todo'로 재설정하는 도우미 명령이 있습니다.
자세한 내용은 **[VM 배치 생성 가이드](https://github.com/cliffe/secgen/blob/HEAD/README-Batch-VMs.md)**를 참조하세요.
## CyBOK 지식 영역 키
사이버 보안 지식 체계(CyBOK)는 사이버 보안 내에 존재하는 다양한 지식 영역을 캡슐화하는 것을 목표로 하는 지식 체계입니다.
SecGen 내 시나리오에는 이제 CyBOK 지식 영역 및 해당 지식 영역 내의 특정 주제에 연결하는 XML 요소가 포함되어 있습니다.
또한 시나리오의 비디오 콘텐츠에는 CyBOK 연결이 태그됩니다.
CyBOK 지식 영역별로 구성된 SecGen의 실험실 시나리오 색인은 **[실험실 시나리오 및 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)**를 참조하세요.
아래 표는 시나리오 내 CyBOK XML 요소에서 찾을 수 있는 약어에 대한 키입니다.
| 약어 | 지식 영역(KA) | 장(Chapter) | 지식 트리 |
| ----------- | -------------------- | ------- | --------------|
| IC | CyBOK 소개 | [link](https://www.cybok.org/media/downloads/Introduction_to_CyBOK.pdf) | [link](https://www.cybok.org/media/downloads/CyBOK_introduction.pdf) |
| FM | 형식 방법 | n/a | [link](https://www.cybok.org/media/downloads/Formal_Methods_for_Security_VK6XZwO.pdf) |
| RMG | 위험 관리 및 거버넌스 | [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 | 법률 및 규제 | [link](https://www.cybok.org/media/downloads/Law__Regulation_issue_1.0.pdf) | [link](https://www.cybok.org/media/downloads/Law__Regulation.pdf) |
| HF | 인간 요소 | [link](https://www.cybok.org/media/downloads/Human_Factors_issue_1.0.pdf) | [link](https://www.cybok.org/media/downloads/Human_Factors.pdf) |
| POR | 프라이버시 및 온라인 권리 | [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 | 악성코드 및 공격 기술 | [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 | 적대적 행동 | [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 | 보안 운영 및 사고 관리 | [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 | 포렌식 | [link](https://www.cybok.org/media/downloads/Forensics_issue_1.0.pdf) | [link](https://www.cybok.org/media/downloads/Forensics.pdf) |
| C | 암호학 | [link](https://www.cybok.org/media/downloads/Cryptography-issue-1.0.pdf) | [link](https://www.cybok.org/media/downloads/Cryptography.pdf) |
| AC | 응용 암호학 | [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 | 운영 체제 및 가상화 보안 | [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 | 분산 시스템 보안 | [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 | 인증, 권한 부여 및 책임 | [link](https://www.cybok.org/media/downloads/AAA_issue_1.0_q3qspzo.pdf) | [link](https://www.cybok.org/media/downloads/AAA.pdf) |
| SS | 소프트웨어 보안 | [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 | 웹 및 모바일 보안 | [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 | 안전한 소프트웨어 수명 주기 | [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 | 네트워크 보안 | [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 | 하드웨어 보안 | [link](https://www.cybok.org/media/downloads/Hardware_Security_issue_1.0.pdf) | [link](https://www.cybok.org/media/downloads/Hardware_Security.pdf) |
| CPS | 사이버 물리 시스템 | [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 | 물리 계층 및 통신 보안 | [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 사이버 보안 연구실
[호스팅 솔루션을 원하시면 다음을 방문하세요: 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)을 참조하세요.
*보조금 지원:*
- 이 프로젝트는 고등교육 아카데미(HEA)의 사이버 보안 학습 및 교육 보조금(2015-2017)의 지원을 받습니다.
- 이 프로젝트는 리즈 베켓 대학교 교수 우수 기금 보조금(2018-2019)의 지원을 받습니다.
- 이 프로젝트는 사이버 보안 지식 체계(CyBOK) 1.0 주변 리소스 보조금(2021)의 지원을 받습니다.
- 이 프로젝트는 사이버 보안 지식 체계(CyBOK) 1.1 주변 리소스 보조금(2021-2022)의 지원을 받습니다.
- 이 프로젝트는 사이버 보안 지식 체계(CyBOK) 1.1 주변 리소스 보조금(2022-2023)의 지원을 받습니다.
- 이 프로젝트는 CyberASAP(사이버 보안 학술 스타트업 액셀러레이터 프로그램) Innovate UK 보조금(2022-2023)의 지원을 받습니다.
- 이 프로젝트는 리즈 베켓 대학교 교수 우수 기금 보조금(2023)의 지원을 받습니다.
- 이 프로젝트는 사이버 보안 지식 체계(CyBOK) 1.1 주변 리소스 보조금(2023-2024)의 지원을 받습니다.
- 이 프로젝트는 사이버 보안 지식 체계(CyBOK) 1.1 주변 리소스 보조금(2024-2025)의 지원을 받습니다.
- 이 프로젝트는 사이버 보안 지식 체계(CyBOK) 안전 정보에 기반한 안전 리소스 보조금(2025-2026)의 지원을 받습니다.
## 기여
프로젝트에 대한 기여를 환영합니다.
간략히, http://github.com/cliffe/SecGen/에서 포크하고, 브랜치를 만들고, 변경 사항을 만들고 커밋한 후, 풀 리퀘스트를 생성하세요.
## 리소스
논문: [Z.C. Schreuders, T. Shaw, "해크티비티 사이버 보안 연구실: CyBOK 통합을 통한 무작위 도전 과제 및 가상화 인프라 관리," 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, "해커봇: SecGen 및 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과 oVirt와 함께 SecGen을 사용하는 방법을 설명합니다.)
논문: [Z.C. Schreuders, T. Shaw, M. Shan-A-Khuda, G. Ravichandran, J. Keighley, and M. Ordean, "시큐리티 시나리오 제너레이터(SecGen): 컴퓨터 보안 학습 및 CTF 이벤트 호스팅을 위한 무작위 취약 다중 시나리오 VM 생성 프레임워크," 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, "윤리적 해킹 및 컴퓨터 보안 교육을 위한 무작위 가상화 시나리오 생성: SecGen 구현 및 배포," 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 – Dr. Z. Cliffe Schreuders와 함께하는 시큐리티 시나리오 제너레이터](https://purplesquadsec.com/podcast/episode-011-security-scenario-generator-dr-z-cliffe-schreuders/)