Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Cordon — Esegui qualsiasi comando all'interno di una vista ristretta del filesystem su Linux | Kitploit
Strumenti/GitHubGitHub/vishnunandan555/cordon
Utilità GenericheSicurezza dei ContenitoriAnalisi Dinamica (Sandboxing)Scripting e AutomazioneAudit di ConfigurazioneVirtualizzazione per la SicurezzaSicurezza di ReteDevSecOpsSicurezza della Supply ChainArchived
GitHubvishnunandan555/cordon
2195 mesi faNon ancora revisionato

Cordon

Esegui qualsiasi comando all'interno di una vista ristretta del filesystem su Linux

Vedi Repository

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 →
Condividi

Cordon

⚠️ PROGETTO DEPRECATO

Lo sviluppo di questo progetto è stato interrotto perché qualcun altro stava lavorando alla stessa idea e ha costruito una soluzione migliore.
Consigliamo vivamente di dare un'occhiata a: Fence by Use-Tusk.

Nota: Questo repository è stato creato originariamente per FOSS HACK 2026, anche se purtroppo non siamo riusciti a completarlo in tempo.
Tuttavia, abbiamo realizzato un progetto simile per Hackathena '26 che ha vinto il 3° premio!
Se sei interessato, puoi trovare quel repository qui: A56-A5/lion.

Cordon esegue qualsiasi comando all'interno di una vista ristretta del filesystem su Linux. Utilizza i namespace di Linux (tramite bubblewrap) per nascondere tutto ciò di cui il tuo processo non ha bisogno — la tua home directory, le chiavi SSH, le credenziali AWS, tutto — lasciando comunque al comando la possibilità di fare il suo lavoro.

cordon run --net=allow -- npm install
cordon run -- bash setup.sh
cordon run --profile python -- pip install -r requirements.txt

Niente root. Niente container. Nessun demone in esecuzione in background.


Perché?

Quando esegui npm install o pip install, quel codice viene eseguito con tutti i permessi del tuo utente. Può leggere ~/.ssh/id_rsa, esfiltrarlo su un server, modificare file di tua proprietà — tutto mentre sembra solo installare un pacchetto.

Non è paranoia. È già successo:

AttaccoCosa ha fatto
LiteLLM (2024)Pacchetto PyPI malevolo ha letto chiavi SSH e variabili d'ambiente durante pip install
xz-utils (2024)Backdoor in fase di compilazione iniettato tramite il passaggio make durante l'installazione
event-stream (npm, 2018)Pacchetto npm compromesso ha rubato silenziosamente portafogli Bitcoin
SolarWindsAttacco alla supply chain attraverso la pipeline di build/aggiornamento

La risposta di Cordon: non lasciare che il processo veda ciò che non dovrebbe, anche se il codice è malevolo.


Come funziona

Ogni cordon run crea un ambiente isolato nuovo:

  • /usr, /bin, /lib sono montati in sola lettura — i comandi possono essere eseguiti, ma non rompere il sistema
  • La tua directory di progetto è scrivibile — npm install crea node_modules/, le build funzionano
  • src/ è in sola lettura se esiste — i file sorgente non possono essere riscritti silenziosamente
  • ~/.ssh, ~/.aws, HOME — non montati affatto per impostazione predefinita
  • La rete è disattivata di default, oppure filtrata tramite un proxy built-in con lista di domini consentiti usando --net=allow

Quando il processo termina, il sandbox sparisce. Non rimane nulla.

Il proxy

La modalità --net=allow avvia un proxy HTTP/HTTPS in Rust built-in su una porta localhost casuale e lo inietta nel sandbox tramite variabili d'ambiente (HTTP_PROXY, https_proxy, npm_config_proxy, ecc.). Intercetta i tunnel CONNECT e controlla ogni dominio rispetto a una lista consentita prima di inoltrare.

La lista consentita predefinita include registry.npmjs.org, pypi.org, crates.io, github.com. Qualsiasi cosa non in lista riceve un 403 — anche se lo script postinstall del pacchetto tenta di chiamare casa.

# Raggiunge solo npmjs.org e i suoi CDN — nient'altro
cordon run --net=allow -- npm install

# Aggiungi un dominio per un registro privato
cordon run --net=allow --domain my.internal.registry -- npm install

Seccomp

Opzionalmente, aggiungi un filtro per le syscall:

# Blocca ptrace, kexec_load, mount, perf_event_open, process_vm_*
cordon run --seccomp basic --net=allow -- npm install

# Lista consentita rigorosa — solo syscall note come sicure
cordon run --seccomp strict -- python3 untrusted.py

Questa è una seconda linea di difesa. Anche se qualcosa riesce a uscire dalla restrizione del filesystem, non può comunque chiamare ptrace per agganciarsi a un altro processo o perf_event_open per lavoro su canali laterali.


Installazione

git clone https://github.com/LORDv1shnu/Cordon
cd Cordon
bash install.sh        # compila il binario di rilascio → ~/.local/bin/cordon

Oppure manualmente:

cargo build --release
cp target/release/cordon ~/.local/bin/

Devi avere bubblewrap installato:

sudo apt install bubblewrap    # Ubuntu/Debian
sudo dnf install bubblewrap    # Fedora
sudo pacman -S bubblewrap      # Arch

Primo avvio dopo l'installazione:

cordon scan    # esegue una scansione del sistema una volta, ci vogliono ~30s, scrive ~/.config/cordon/system.toml
cordon check   # controllo di integrità — verifica che tutto sia pronto

Utilizzo

# Le basi
cordon run -- echo "hello"
cordon run --net=allow -- npm install
cordon run --net=allow -- pip install -r requirements.txt
cordon run --net=full -- curl https://example.com   # illimitato (nessun filtro)

# Seccomp
cordon run --seccomp basic --net=allow -- npm install

# Applicazioni GUI
cordon run --gui -- code .
cordon run --gui --optional audio_pipewire --optional dbus_session -- discord

# Profili integrati (preconfigurati per runtime comuni)
cordon run --profile node -- npm install
cordon run --profile python -- python3 script.py
cordon run --profile rust -- cargo build

# Debug di ciò che viene bloccato
cordon run --trace -- node server.js              # wrapper strace, segnala i percorsi negati
cordon add --from-trace ~/.config/cordon/logs/last-trace.log  # aggiungi in blocco i percorsi mancanti

# Limiti di risorse (richiede systemd)
cordon run --mem 512M --cpu 2.0 --timeout 60 -- npm install

# Esecuzione fittizia / verbose
cordon run --dry-run -- npm install               # stampa il comando bwrap, non lo esegue
cordon run --verbose -- npm install               # stampa ogni argomento bwrap mentre viene eseguito

Configurazione del progetto (cordon.toml)

cordon init                            # rileva automaticamente Cargo.toml / package.json / pyproject.toml
cordon set --net=allow                 # persiste i flag in modo da non doverli digitare ogni volta
cordon add /path/to/assets --mode ro   # espone percorsi aggiuntivi nel sandbox
cordon edit                            # apre cordon.toml in $EDITOR

Ispezione e debug

cordon check               # controllo di integrità: bwrap, namespace, AppArmor, moduli
cordon doctor              # più approfondito: versione del kernel, stranezze della distribuzione, suggerimenti di fix esatti
cordon status              # mostra cosa c'è in system.toml in questo momento
cordon list                # mostra ogni mount che sarebbe attivo al prossimo avvio
cordon log --errors        # mostra la coda del log dell'ultima esecuzione, solo errori
cordon syscalls --preset basic   # elenca cosa blocca ogni preset seccomp

Profili e portabilità

# Profili con nome (salvati in ~/.config/cordon/profiles.toml)
cordon profile create ci-node --net=allow --optional ld_so_cache
cordon run --profile ci-node -- npm test

# Lockfile per ambienti riproducibili
cordon lock update          # SHA-256 di tutti i percorsi di mount → cordon.lock
cordon lock verify          # verifica che nulla sia cambiato

# Condividi la configurazione del sandbox con il team
cordon export > sandbox.json
cordon import sandbox.json

Integrazione con la shell

# Completamento con tab
cordon completions zsh > ~/.zfunc/_cordon

# Wrapper trasparenti — fai in modo che "npm" venga sempre eseguito in sandbox
cordon wrap npm
cordon wrap pip
npm install                # in realtà esegue: cordon run -- npm install "$@"
cordon unwrap npm

# Pagina man
cordon man | man -l -

Strati di configurazione

Ci sono quattro file di configurazione, applicati in ordine:

Scarica lo strumento