Skip to main content

Cyber Experimentation as Code

Define reproducible cyber-range environments.

Describe systems, networks, artifacts and scenario events in one structured specification that can be reviewed and maintained, then transform it into deployment material for supported platforms.

CRADLE—the Cyber-testbed Reconstruction and Automation Description Language—is a declarative and debuggable domain-specific language.

Bring scattered configuration and scenario knowledge into one structured specification.

Cyber environments often depend on manual configuration, scattered scripts, infrastructure settings and platform-specific knowledge. As they evolve, it becomes harder to understand what changed or recreate the same scenario elsewhere.

One structured description

Keep the environment and scenario intent together.

CRADLE represents the systems, networks, artifacts and event sequence of a cyber experiment in a structured scenario definition. That definition can be reviewed, maintained and transformed for supported deployment environments.

SystemsNetworksArtifactsEventsscenario.cradle

Cyber Experimentation as Code

CRADLE describes computing components as code, providing a static, high-level environment description that teams can review, compare and maintain.

01

Declarative

Describe the intended systems, networks, artifacts and events in a high-level specification instead of platform setup steps.

02

Repeatable

Preserve experiment intent as version-controlled text that can be compared, maintained and generated again for supported targets.

03

Debuggable

Inspect the authored scenario, intermediary representation and generated provider material when diagnosing a workflow.

From scenario definition to environment.

Select part of the CRADLE scenario to see how its systems, network and endpoints map into the generated environment.

scenario.cradleSelect a highlighted line
metadata() >
name("HelloWorld"),
eventType("sequence"),
object("HelloWorld").
instances() >
01Define
02Generate
03Deploy
Generated environment
Interpreted from the selected scenario definition
Preview
Instancewin7192.168.56.121
lan_0
Instancerouter192.168.56.122
Networklan_0192.168.56.0/24
InstanceDefines the win7 system in the scenario.

Build for the environment you need.

CradleXC keeps scenario logic independent from target-specific generation. Backend plugins translate your CRADLE scenario into the files required by each environment.

Read backend compatibility guidance →
01 Choose

Select a backend

Browse published backend plugins and choose one for your target environment.

Backend repository
02 Install

Install the backend

Install the selected backend plugin with the CradleXC CLI.

sudo cxc plugin install <plugin_name>
03 Verify

Check discovery

Use cxc plugin list to confirm that CradleXC detects the installed backend.

04 Generate

Render target files

Use cxc build with the selected backend to generate target-specific output.

Install CradleXC.

Install CradleXC through the official CRADLE package repository, verify your environment and start writing your first scenario.

APT · Ubuntu / Debian

Install from the CRADLE repository.

Configure the official CRADLE APT repository once, then install and update CradleXC through your system package manager.

01
Add the repositoryConfigure the CRADLE package source.
02
Install CradleXCsudo apt install cxc
03
Keep it updatedFuture releases are delivered through APT.
Ready to build

Check your environment.

Confirm that CradleXC is available and verify the local dependencies required by your CRADLE environment.

$ cxc doctor Cradle Cross Compiler v0.19.2 — dependency check Dependency Status Purpose -------------------------------------------------------------------------------- ✓ All required dependencies are installed. Configuration: Config file: <TEMP>/home/.cxc/config.toml Config dir: https://github.com/cradle-lang/cradle-lib Heuristics dir: https://github.com/cradle-lang/cradle-lib

The people behind the project.

Researchers, educators and cybersecurity practitioners contribute to its research, development and continued evolution.

CRADLE began as a joint effort bringing together cybersecurity research and cyber-range infrastructure.

Prof. Liang Zhenkai

National University of Singapore

Dr. Anis Yusof

National University of Singapore

They guide the project's research direction, system design, technical development and continued work on reproducible cyber experimentation.

CRADLE works with research organizations contributing expertise in cybersecurity, cyber experimentation and related research.