Skip to content
KitploitKITPLOIT
StrumentiBlog
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

Cordon

274 mesi faNon ancora revisionato

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.

root@kitploit:~
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.

root@kitploit:~
# 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:

root@kitploit:~
# 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

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

Oppure manualmente:

root@kitploit:~
cargo build --release
cp target/release/cordon ~/.local/bin/

Devi avere bubblewrap installato:

root@kitploit:~
sudo apt install bubblewrap    # Ubuntu/Debian
sudo dnf install bubblewrap    # Fedora
sudo pacman -S bubblewrap      # Arch

Primo avvio dopo l'installazione:

root@kitploit:~
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

root@kitploit:~
# 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)

root@kitploit:~
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

root@kitploit:~
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à

root@kitploit:~
# 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

root@kitploit:~
# 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:

StratoDoveChi lo scrive
core.tomlcompilato nel binarionon modificabile a runtime (a prova di manomissione)
system.toml~/.config/cordon/cordon scan
profiles.toml~/.config/cordon/cordon profile create
cordon.tomldirectory del progettocordon init / cordon set / cordon add

I flag CLI hanno sempre la precedenza. cordon.toml batte un profilo con nome. Il core.toml built-in del binario non può essere toccato a runtime.


Codici di uscita

CodiceSignificato
0successo
1errore interno di cordon
2utilizzo errato della CLI
125configurazione del sandbox fallita (bwrap mancante, ecc.)
126comando trovato ma non eseguibile all'interno del sandbox
127comando non trovato all'interno del sandbox
Ninoltrato dal processo in sandbox

Stessa convenzione di bwrap e della shell.


Limitazioni

Cordon non è un container, non è un antivirus e non sostituisce SELinux o AppArmor. Limita la visibilità del filesystem e l'accesso alla rete — non cerca di rilevare malware. Se qualcosa ha un exploit del kernel, ne uscirà. L'obiettivo è rendere gli attacchi alla supply chain significativamente più difficili, non impossibili.

Inoltre: attualmente solo Linux x86_64 e aarch64. bubblewrap è necessario.


Tecnologia

Costruito in Rust. Usa bubblewrap per il namespace, seccompiler per la compilazione dei filtri BPF, clap per la CLI, tracing per il logging strutturato. Il proxy di filtraggio dei domini è scritto da zero in puro Rust (nessun tool proxy esterno).

→ COMMANDS.md — riferimento completo dei flag
→ SCANNER_LOGIC.md — come funziona lo scanner di sistema
→ MODULE_INFO.md — spiegazione di ogni file sorgente


Costruito con assistenza AI (Gemini). L'architettura, il modello di sicurezza e le decisioni di progettazione sono opera dell'autore.

Scarica lo strumento