Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
fence — Sandbox leggero, senza container, per eseguire comandi con restrizioni di rete e filesystem. | Kitploit
Strumenti/GitHubGitHub/fencesandbox/fence
Strumenti DifensiviUtilità GenericheSicurezza dei ContenitoriAnalisi Dinamica (Sandboxing)Scripting e AutomazioneSicurezza di ReteDevSecOpsUtilità e Framework
GitHubfencesandbox/fence

fence

Sandbox leggero, senza container, per eseguire comandi con restrizioni di rete e filesystem.

Vedi Repository
89739481 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Sito web
Condividi
![Fence Banner](https://assets.kitploit.com/production/public/readmes/11239/cd4acc1035a0d62841f2a549cbc143c4dc312228c89f6b55ce68752dcdeab043.png)

<div align="center">

![GitHub Release](https://img.shields.io/github/v/release/fencesandbox/fence)
[![Build and test](https://github.com/fencesandbox/fence/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/fencesandbox/fence/actions/workflows/main.yml)
[![Docs](https://img.shields.io/badge/docs-fencesandbox.com-4c1?logo=bookstack&logoColor=white&color=mediumslateblue)](https://fencesandbox.com/docs)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/fencesandbox/fence)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

</div>

Fence racchiude i comandi in una sandbox che blocca l'accesso alla rete per impostazione predefinita e limita le operazioni sul filesystem in base a regole configurabili. È particolarmente utile per eseguire codice semi-affidabile (installazioni di pacchetti, script di build, job CI, repository sconosciuti) con effetti collaterali controllati, e può anche integrare gli agenti di codifica AI come difesa in profondità.

```bash
# Blocca tutto l'accesso alla rete (default)
fence curl https://example.com  # → 403 Forbidden

# Consenti domini specifici
fence -t code npm install  # → usa il template 'code' con npm/pypi/etc consentiti

# Blocca comandi pericolosi
fence -c "rm -rf /"  # → bloccato dalle regole di divieto dei comandi
```

<p align="center">
    <img src="https://assets.kitploit.com/production/public/readmes/11239/fcd1fc039e748ec60455ad0f3f2cba244840824dc0d96362d18fd29500e46206.gif" alt="Demo di Fence con Claude Code" width="800">
</p>

Fence è anche un gestore di permessi per i tuoi agenti CLI. **Funziona con agenti di codifica popolari come Claude Code, Codex, Amp, Gemini CLI, GitHub Copilot, OpenCode, Factory (Droid) CLI e molti altri** - vedi [agents.md](https://github.com/fencesandbox/fence/blob/main/docs/agents.md).

## Installazione

> [!NOTE]
> Fence è stato spostato da `github.com/Use-Tusk/fence` a `github.com/fencesandbox/fence`.
> Se lo hai installato con Homebrew dal vecchio tap Tusk, passa al nuovo tap:
>
> ```bash
> brew uninstall use-tusk/tap/fence
> brew untap use-tusk/tap
> brew tap fencesandbox/tap
> brew install fencesandbox/tap/fence
> ```
>
> Se lo hai installato con `go install`, reinstallalo dal nuovo percorso del modulo:
>
> ```bash
> go install github.com/fencesandbox/fence/cmd/fence@latest
> ```

**macOS / Linux:**

```bash
curl -fsSL https://cli.fencesandbox.com/install.sh | sh
```

**Homebrew (macOS):**

```bash
brew tap fencesandbox/tap
brew install fencesandbox/tap/fence
```

**Nix (macOS, Linux, Windows (WSL)):**

```sh
nix run nixpkgs#fence -- --help
```

Questo lo esegue direttamente dal repository, senza installare `fence`. Se desideri installarlo, segui le linee guida [da NixOS](https://nix.dev) o [nix-darwin](https://github.com/nix-darwin/nix-darwin).

<details>
<summary>Altri metodi di installazione</summary>

**Go install:**

```bash
go install github.com/fencesandbox/fence/cmd/fence@latest
```

**Compila dal sorgente:**

```bash
git clone https://github.com/fencesandbox/fence
cd fence
go build -o fence ./cmd/fence
```

</details>

**Requisiti aggiuntivi per Linux:**

- `bubblewrap` (per la sandbox)
- `socat` (per il bridging di rete)
- `bpftrace` (opzionale, per la visibilità delle violazioni del filesystem durante il monitoraggio con `-m`)

## Utilizzo

### Base

```bash
# Esegui comando con rete bloccata (nessun dominio consentito di default)
fence curl https://example.com

# Esegui con espansione della shell
fence -c "echo hello && ls"

# Abilita log di debug
fence -d curl https://example.com

# Usa un template
fence -t code -- claude  # Esegue Claude Code usando la configurazione del template 'code'

# Modalità monitor (mostra le violazioni)
fence -m npm install

# Invia i log di monitoraggio/debug di Fence a un file
fence -m --fence-log-file /tmp/fence.log -- claude
tail -f /tmp/fence.log

# Ispeziona la catena di ereditarietà della configurazione e la configurazione attiva unita
fence config show

# Mostra tutti i comandi e le opzioni
fence --help
```

> [!TIP]
> Devi passare flag al comando che stai eseguendo? Usa `--` per separare i flag di Fence dai flag del comando, ad esempio:
>
> ```bash
> fence -- claude --dangerously-skip-permissions
> ```

### Configurazione

Quando `--settings` non viene fornito, Fence cerca prima `fence.jsonc` (o `fence.json`) nella directory corrente e nelle directory padre. Se non ne trova nessuno, torna a `~/.config/fence/fence.{jsonc,json}`. Entrambe le estensioni sono trattate come JSONC (commenti e virgole finali consentiti). Vedi [riferimento configurazione](https://github.com/fencesandbox/fence/blob/main/docs/configuration.md) per maggiori dettagli.

```json
{
  "$schema": "https://raw.githubusercontent.com/fencesandbox/fence/main/docs/schema/fence.schema.json",
  "extends": "code",
  "network": { "allowedDomains": ["private.company.com"] },
  "filesystem": { "allowWrite": ["."] },
  "command": { "deny": ["git push", "npm publish"] }
}
```

Per sovrascritture locali al repository sopra la normale configurazione di Fence di ogni utente, usa:

```json
{
  "extends": "@base",
  "filesystem": { "allowWrite": ["."] }
}
```

Usa `fence --settings ./custom.json` per specificare una configurazione diversa.

Ispeziona la configurazione attiva senza eseguire un comando:

```bash
fence config show
fence config show --settings ./custom.json
fence config show --template code
```

`fence config show` stampa la catena di configurazione su `stderr` e la configurazione completamente risolta come JSON semplice su `stdout`, in modo da poter reindirizzare il JSON a strumenti come `jq`.

Crea una configurazione iniziale con impostazioni predefinite ragionevoli:

```bash
# Crea la configurazione nel percorso predefinito con:
# { "extends": "code" }
fence config init

# Includi array di scaffold come suggerimenti modificabili
fence config init --scaffold
```

### Importa da Claude Code

```bash
fence import --claude --save
```

## Funzionalità

- **Isolamento di rete** - Tutto il traffico in uscita bloccato di default; domini consentiti tramite configurazione
- **Restrizioni del filesystem** - Controllo dei percorsi di lettura/scrittura
- **Blocco dei comandi** - Impedisci comandi pericolosi come `rm -rf /`, `git push`
- **Filtraggio dei comandi SSH** - Controlla quali host e comandi sono consentiti tramite SSH
- **Template integrati** - Set di regole preconfigurate per flussi di lavoro comuni
- **Monitoraggio delle violazioni** - Log in tempo reale delle richieste bloccate (`-m`)
- **Multipiattaforma** - macOS (sandbox-exec) + Linux (bubblewrap)

Fence può essere utilizzato come pacchetto Go o strumento CLI.

## Documentazione

La documentazione completa è ospitata su **[fencesandbox.com/docs](https://fencesandbox.com/docs)**.

Collegamenti rapidi:

- [Guida rapida](https://fencesandbox.com/docs/quickstart) ([sorgente](https://github.com/fencesandbox/fence/blob/main/docs/quickstart.md))
- [Riferimento configurazione](https://fencesandbox.com/docs/reference/configuration) ([sorgente](https://github.com/fencesandbox/fence/blob/main/docs/configuration.md))
- [Hook per agenti](https://fencesandbox.com/docs/guides/hooks) ([sorgente](https://github.com/fencesandbox/fence/blob/main/docs/hooks.md))
- [Modello di sicurezza](https://fencesandbox.com/docs/reference/security-model) ([sorgente](https://github.com/fencesandbox/fence/blob/main/docs/security-model.md))
- [Utilizzo della libreria Go](https://fencesandbox.com/docs/reference/library) ([sorgente](https://github.com/fencesandbox/fence/blob/main/docs/library.md))
- [Architettura](https://fencesandbox.com/docs/reference/architecture) ([sorgente](https://github.com/fencesandbox/fence/blob/main/ARCHITECTURE.md))

## Attribuzione

Ispirato da [sandbox-runtime](https://github.com/anthropic-experimental/sandbox-runtime) di Anthropic.
Scarica lo strumento