📦 bits è in disponibilità generale — quattro agenti firmati che puoi scaricare e verificare
La famiglia bits — gli agenti che girano sulle tue macchine — è ora scaricabile dalla pagina dei download. Quattro binari, ognuno firmato con la stessa chiave, ognuno verificabile prima di eseguirlo.
| Agente | Versione | Cosa fa | Piattaforme |
|---|---|---|---|
| bitcollector | v0.1.0-ga | Verità sugli asset con valore probatorio, a partire da un host: processi, pacchetti, porte, account, postura | Linux amd64/arm64, macOS amd64/arm64, Windows amd64 |
| bitscanner | v0.1.3-ga | Trova i dispositivi che il tuo inventario non contiene | Linux amd64/arm64 |
| bitenforcer | v0.1.0-ga | Convalida delle policy di hardening e pre-flight | Linux amd64/arm64 |
| bitmapper | v0.1.0-ga | Cattura dal vivo delle connessioni — estremi, porte, protocollo, contatori, stato della connessione. Nessuna attribuzione per processo in questa release | Linux amd64 |
v0.1.0-ga non attribuisce i flussi ai processiLa riga qui sopra diceva inizialmente «Cattura dal vivo delle connessioni con attribuzione per processo», e la voce bitmapper in A cosa serve ciascun agente affermava che bitmapper riporta «quali processi stanno davvero parlando con cosa, con attribuzione connessione per connessione». Erano entrambe false riguardo al binario che questo articolo annuncia, e lo erano nella direzione che ti costa: l'attribuzione per processo è ciò che distingue bitmapper da uno scanner esterno all'host, ed è la ragione stessa per cui lo si installa.
Misurato sul 0.1.0-ga pubblicato — commit 64ebc64, l'artefatto che oggi si trova sulla pagina
dei download — 0 flussi catturati su 12 portavano una qualsiasi attribuzione di processo,
compreso un flusso di 60 secondi il cui processo proprietario è rimasto vivo e interrogabile per
tutta la durata. destination_process non è mai stato popolato al di fuori del codice di test. In
quella build la ricerca viene tentata una sola volta, alla creazione della connessione, contro
un'istantanea delle tabelle dei socket che non può contenere il socket di una connessione in
uscita appena nata; nessun pacchetto successivo riprova, e non esiste alcuna inferenza dai socket
in ascolto su cui ripiegare, perché quel codice in 64ebc64 semplicemente non c'è.
Quello che v0.1.0-ga fa davvero è cattura passiva dei flussi, e quella parte è reale. Ogni
connessione tracciata viene esportata come record di flusso: estremi di origine e destinazione,
porte, protocollo, stato della connessione, direzione, interfaccia, prima e ultima osservazione,
durata, contatori di byte e di pacchetti — senza mai un solo byte di payload. È una risposta utile
a «con cosa sta parlando questa macchina». Non è una risposta a «quale processo lo sta facendo».
L'attribuzione per processo è implementata e verificata — semplicemente non è nel binario che puoi scaricare. Sullo stesso banco di prova che ha misurato 0 su 12, il sostituto ne attribuisce 12 su 12, registra la risposta sull'estremo che possiede davvero il socket e distingue una corrispondenza diretta di socket da un'inferenza, rifiutandosi di nominare chiunque quando su una porta sono in ascolto più processi. Arriverà con la prossima release di bitmapper. Qui non ci mettiamo una data: ti abbiamo già detto una volta che questa capacità era stata consegnata quando non lo era.
Se hai scaricato bitmapper sulla fiducia della frase originale, l'errore è nostro. Attribuzione dei processi espone esattamente cosa risolve il binario di oggi e cosa lo sostituirà.
Perché alcuni agenti elencano meno piattaforme di altri
Perché un binario che si installa, si dichiara sano e non raccoglie nulla è peggio di nessun binario.
Ogni piattaforma di quella tabella è una piattaforma su cui l'agente fa il suo lavoro. Dove non lo farebbe, non lo abbiamo pubblicato, e preferiamo dirlo piuttosto che lasciartelo scoprire dopo un rollout:
- bitenforcer è solo per Linux. La sua intera superficie è
iptables,sysctl,systemde SELinux. Su macOS queste cose non esistono, quindi l'agente non convaliderebbe nulla e le sue primitive di rollback non avrebbero nulla da ripristinare. - bitmapper è solo per Linux
amd64. Gli serve una vera libreria di cattura dei pacchetti compilata dentro. Una build che ne è priva produce comunque un binario eseguibile — uno che non cattura assolutamente nulla — perciò la nostra pipeline di release si rifiuta di firmare un artefatto che non sia in grado di dimostrare di catturare. - bitscanner è solo per Linux per lo stesso genere di motivo: i suoi lettori dei vicini e delle rotte sono implementati per Linux.
Ci aspettiamo che questi elenchi si allunghino. Quando accadrà, sarà perché l'agente è stato messo alla prova su quella piattaforma, non perché è stato compilato.
Verifica prima di eseguire
Ogni release include una firma distaccata, un SBOM e un'attestazione di build per ciascun
binario, più un SHA256SUMS firmato che copre l'intero insieme. Le build sono riproducibili: la
pipeline compila due volte da zero e si rifiuta di pubblicare se le due non sono identiche byte
per byte.
La chiave di firma è pubblicata in tre luoghi indipendenti che devono coincidere: il sito della
documentazione, un record DNS TXT che ne riporta l'impronta, e un secondo record TXT che
riporta la chiave stessa. Confrontane almeno due. Una firma vale solo quanto l'ancora di fiducia
che le sta dietro, e una sola fonte è un rito, non una verifica.
# Recupera la chiave via DNS — funziona dentro la CI, dove la protezione anti-bot blocca i normali download HTTPS
dig +short TXT _cosign-key.cert-ix.com | tr -d '"' | sed 's/.*key=//' \
| base64 -d | openssl pkey -pubin -inform DER -out cosign.pub
# Conferma che sia la NOSTRA chiave, contro l'impronta pubblicata sul sito della documentazione
openssl pkey -pubin -in cosign.pub -outform DER | sha256sum
# atteso: 552839f6b1b1eb0934557e1886326c7270584fa602fbf56f84754a98be3de822
# Poi verifica la release che hai scaricato
cosign verify-blob --key cosign.pub --bundle SHA256SUMS.sig \
--insecure-ignore-tlog=true SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
cert-ix.com non pubblica ancora un record DS, quindi le risposte DNS non sono convalidate
crittograficamente da un capo all'altro. Recuperare la chiave via DNS è comodo e funziona dove
HTTPS è bloccato, ma ciò che stabilisce la fiducia è il confronto dell'impronta con il sito della
documentazione — caricato via HTTPS, con un certificato convalidato. Non saltarlo.
Le istruzioni complete, compreso a cosa serve ciascun file di una release e che aspetto ha una verifica fallita, sono in Verificare i tuoi download.
A cosa serve ciascun agente
- bitcollector — cosa c'è su questa macchina, come evidenza e non come affermazione. Ogni lotto è attestato e la catena può essere verificata offline, senza alcun accesso a Cert-IX.
- bitscanner — i dispositivi che un inventario basato su agenti non può vedere per costruzione, perché su di essi non è installato nulla. Viene fornito inerte: non mette alcun pacchetto sulla tua rete finché non lo armi esplicitamente, e l'autorizzazione non può arrivare da una variabile d'ambiente.
- bitenforcer — cosa cambierebbe una policy di hardening, prima che cambi qualcosa. La v1 convalida e riporta; non applica.
- bitmapper — con cosa sta davvero parlando
questa macchina, flusso per flusso: estremi, porte, protocollo, contatori e stato della
connessione, catturati dal vivo sulle sue stesse interfacce. In
v0.1.0-gaquei flussi non portano alcuna attribuzione per processo — leggi la correzione qui sopra prima di costruirci sopra.
Da dove iniziare
Scarica un agente, verificalo e leggi la pagina di quello che hai scelto. Se non sai quale, Cos'è bits? spiega come i quattro si incastrano e, cosa altrettanto importante, che cosa ciascuno deliberatamente non fa.
