Skip to content

Commit 4f94a3f

Browse files
committed
feat: Add eth-security-toolbox devcontainer
This commit introduces the `eth-security-toolbox` devcontainer, a pre-configured environment for smart contract auditing based on the popular Trail of Bits toolbox. Key changes include: - Added the `eth-security-toolbox` devcontainer. - Updated the GitHub Actions workflow to include the new container in the CI build matrix. - Updated `README.md` to document the new container and clarify the use cases for all available devcontainer configurations.
1 parent 0a8d0f6 commit 4f94a3f

3 files changed

Lines changed: 28 additions & 18 deletions

File tree

.devcontainer/eth-security-toolbox

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 78f2b0c2440709a9067ae7ca64f55d2199b03b8a

.github/workflows/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
- .devcontainer/minimal
2424
- .devcontainer/isolated
2525
- .devcontainer/airgapped
26+
- .devcontainer/eth-security-toolbox
2627
steps:
2728
- name: Checkout repository
2829
uses: actions/checkout@v4

README.md

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,58 +26,66 @@ You can also run prebuilt containers using GitHub Codespaces:
2626
We now offer multiple devcontainer configurations to suit different security and development needs:
2727

2828
### **Air-gapped** (`.devcontainer/airgapped/`)
29-
**Best for**: Workspace isolation with enhanced security
29+
High-security development with complete network isolation. Perfect for analyzing malicious smart contracts, handling sensitive private keys, or working with classified projects that require zero external connectivity.
30+
3031
- **Focus**: Isolated workspace using tmpfs; secure defaults while keeping connectivity
3132
- **Includes**: Git, GitHub CLI; security tools available via Dockerfile
3233
- **Security**: Capability dropping, AppArmor, no-new-privileges, multiple tmpfs mounts; not read-only
3334
- **Network**: Uses bridge networking (no network isolation by default)
3435
- **Extensions**: None configured by default (because it fails with `network-none`)
35-
- **Use case**: Experiments requiring workspace isolation without cutting off the network
3636

3737
### **Isolated** (`.devcontainer/isolated/`)
38-
**Best for**: Enhanced security with development flexibility
38+
**Use case**: Execute untrusted code. Example: job interview.
39+
3940
- **Focus**: Security hardening with maintained network connectivity and security extensions
4041
- **Includes**: Security tools, Foundry, Hardhat, audit tools via Dockerfile
4142
- **Security**: Capability dropping, AppArmor, no-new-privileges, tmpfs workspace isolation
4243
- **Network**: Uses bridge networking (no network isolation by default)
4344
- **Extensions**: Comprehensive security extensions (Ethereum Security Bundle, Trail of Bits tools)
44-
- **Use case**: Secure development, security-focused research, balanced security/functionality
4545

4646
### **Auditor** (`.devcontainer/auditor/`)
47-
**Best for**: Smart contract auditors and security researchers
47+
**Use case**: Do smart contract audits, security analysis, research workflows.
48+
4849
- **Focus**: Specialized audit tooling with Docker-in-Docker support
4950
- **Includes**: Slither, Mythril, Crytic-compile, Foundry, Hardhat, Echidna
5051
- **Workspace**: Host workspace bind-mounted into `/workspace` (no isolation)
5152
- **Features**: Docker-in-Docker, specialized audit extensions, focused toolchain
5253
- **Extensions**: Solidity visual auditor, metrics, audit tools, GitLens
53-
- **Use case**: Comprehensive smart contract audits, security analysis, research workflows
5454

5555
### **Minimal** (`.devcontainer/minimal/`)
56-
**Best for**: Essential development with basic security
56+
**Use case**: Use Hardhat and Foundry without setup. Basic development, resource-constrained environments.
57+
5758
- **Focus**: Core tools only, streamlined development environment
5859
- **Includes**: Foundry, Hardhat, basic Solidity support, essential Python tools
5960
- **Security**: Basic hardening, capability dropping, IPv6 disabled
6061
- **Workspace**: Host workspace bind-mounted into `/workspace` (no isolation)
6162
- **Extensions**: Core development extensions only
62-
- **Use case**: Quick prototyping, learning, basic development, resource-constrained environments
6363

64-
### **Legacy** (`.devcontainer/legacy/`)
65-
**Best for**: Complete toolchain with all features (original experience)
66-
- **Focus**: Full-featured development environment with comprehensive security tools
67-
- **Includes**: Complete tool suite, all security tools, fuzzing tools, analysis tools
68-
- **Security**: Comprehensive hardening; workspace isolated via tmpfs
69-
- **Workspace**: Isolated workspace (tmpfs mount, not host-bound)
70-
- **Extensions**: Full extension suite, all security and development tools
71-
- **Use case**: Comprehensive development, learning, full-stack projects, research
64+
### **ETH Security Toolbox** (`.devcontainer/eth-security-toolbox/`)
65+
**Use case**: Audit smart contracts using all the tools selected by Trail of Bits.
66+
67+
- **Focus**: All the tools in the ETH Security Toolbox.
68+
- **Includes**: All the tools in the ETH Security Toolbox.
69+
- **Workspace**: Host workspace bind-mounted into `/workspace` (no isolation)
70+
- **Extensions**: All the tools in the ETH Security Toolbox.
7271

7372
### **(EXPERIMENTAL) Paranoid** (`.devcontainer/paranoid/`)
74-
**Best for**: Maximum security isolation with read-only OS.
73+
**Use case**: Maximum security isolation with read-only filesystem and ephemeral workspace. Designed for the most security-conscious developers who need to analyze potentially malicious code or work with highly sensitive data.
74+
7575
- **Focus**: Strong isolation with read-only filesystem and ephemeral workspace
7676
- **Includes**: Git, GitHub CLI; minimal by default
7777
- **Security**: Read-only filesystem, capability dropping, extensive tmpfs mounts for VS Code and caches
7878
- **Network**: No explicit network isolation by default (can be enabled via `--network=none`)
7979
- **Extensions**: None configured by default
80-
- **Use case**: High-security tests where persistence should be avoided
80+
81+
### **Legacy** (`.devcontainer/legacy/`)
82+
**Use case**: Comprehensive development, learning, full-stack projects, research
83+
84+
- **Focus**: Full-featured development environment with comprehensive security tools
85+
- **Includes**: Complete tool suite, all security tools, fuzzing tools, analysis tools
86+
- **Security**: Comprehensive hardening; workspace isolated via tmpfs
87+
- **Workspace**: Isolated workspace (tmpfs mount, not host-bound)
88+
- **Extensions**: Full extension suite, all security and development tools
8189

8290
## Project Structure
8391

0 commit comments

Comments
 (0)