đŠ bits ist allgemein verfĂŒgbar â vier signierte Agenten, die Sie herunterladen und verifizieren können
Die bits-Familie â die Agenten, die auf Ihren eigenen Maschinen laufen â ist ab sofort ĂŒber die Download-Seite beziehbar. Vier Binaries, jedes mit demselben SchlĂŒssel signiert, jedes vor der AusfĂŒhrung verifizierbar.
| Agent | Version | Was er tut | Plattformen |
|---|---|---|---|
| bitcollector | v0.1.0-ga | BeweisfÀhige Asset-Wahrheit von einem Host: Prozesse, Pakete, Ports, Konten, Sicherheitslage | Linux amd64/arm64, macOS amd64/arm64, Windows amd64 |
| bitscanner | v0.1.3-ga | Findet die GerÀte, die Ihr Inventar nicht enthÀlt | Linux amd64/arm64 |
| bitenforcer | v0.1.0-ga | Validierung von HĂ€rtungsrichtlinien und Pre-Flight | Linux amd64/arm64 |
| bitmapper | v0.1.0-ga | Live-Mitschnitt von Verbindungen â Endpunkte, Ports, Protokoll, ZĂ€hler, Verbindungszustand. Keine Prozesszuordnung in diesem Release | Linux amd64 |
v0.1.0-ga ordnet Flows keinen Prozessen zuIn der Zeile oben stand zunĂ€chst âLive-Mitschnitt von Verbindungen mit Zuordnung je Prozess", und der bitmapper-Eintrag unter WofĂŒr jeder Agent da ist behauptete, bitmapper melde, âwelche Prozesse tatsĂ€chlich womit sprechen, zugeordnet je Verbindung". Beides war fĂŒr das Binary, das dieser Beitrag ankĂŒndigt, falsch â und zwar falsch in der Richtung, die Sie etwas kostet: Die Zuordnung je Prozess ist das, was bitmapper von einem Scanner auĂerhalb des Hosts unterscheidet, und sie ist der eigentliche Grund, ihn auszurollen.
Gemessen am veröffentlichten 0.1.0-ga â Commit 64ebc64, das Artefakt, das heute auf der
Download-Seite liegt â trug kein einziger von 12 mitgeschnittenen Flows irgendeine
Prozesszuordnung, darunter ein 60 Sekunden langer Flow, dessen besitzender Prozess durchgehend
lebte und abfragbar war. destination_process wurde auĂerhalb von Testcode nie befĂŒllt. In
diesem Build wird die Auflösung genau einmal versucht, beim Anlegen der Verbindung, gegen
einen Schnappschuss der Socket-Tabellen, der den Socket einer eben erst entstandenen ausgehenden
Verbindung gar nicht enthalten kann; kein spÀteres Paket versucht es erneut, und es gibt keine
Ableitung aus lauschenden Sockets, auf die zurĂŒckgefallen werden könnte â dieser Code steckt in
64ebc64 schlicht nicht drin.
Was v0.1.0-ga tatsÀchlich tut, ist passiver Flow-Mitschnitt, und dieser Teil ist echt. Jede
verfolgte Verbindung wird als Flow-Datensatz exportiert: Quell- und Zielendpunkte, Ports,
Protokoll, Verbindungszustand, Richtung, Schnittstelle, erste und letzte Beobachtung, Dauer sowie
Byte- und PaketzĂ€hler â und niemals ein einziges Nutzdaten-Byte. Das ist eine brauchbare Antwort
auf âwomit spricht diese Maschine". Es ist keine Antwort auf âwelcher Prozess tut es".
Die Zuordnung je Prozess ist implementiert und verifiziert â sie steckt nur nicht in dem Binary, das Sie herunterladen können. Auf demselben PrĂŒfstand, der 0 von 12 gemessen hat, ordnet der Nachfolger 12 von 12 zu, schreibt die Antwort an das Ende, dem der Socket wirklich gehört, und trennt einen direkten Socket-Treffer von einer Ableitung â und benennt niemanden, wenn an einem Port mehrere Prozesse lauschen. Sie kommt mit dem nĂ€chsten bitmapper-Release. Ein Datum hĂ€ngen wir hier nicht daran: Wir haben Ihnen bereits einmal gesagt, diese FĂ€higkeit sei ausgeliefert, als sie es nicht war.
Wenn Sie bitmapper im Vertrauen auf den ursprĂŒnglichen Satz heruntergeladen haben, ist das unser Fehler. Prozesszuordnung legt genau dar, was das heutige Binary auflöst und was es ablöst.
Warum manche Agenten weniger Plattformen auffĂŒhren als andereâ
Weil ein Binary, das sich installiert, sich als gesund meldet und nichts erfasst, schlechter ist als gar kein Binary.
Jede Plattform in dieser Tabelle ist eine, auf der der Agent seine Arbeit tut. Wo er das nicht tĂ€te, haben wir ihn nicht veröffentlicht â und wir sagen das lieber, als Sie es nach einem Rollout entdecken zu lassen:
- bitenforcer lÀuft nur unter Linux. Seine gesamte OberflÀche sind
iptables,sysctl,systemdund SELinux. Unter macOS gibt es das nicht, der Agent wĂŒrde also nichts validieren, und seine Rollback-Primitive hĂ€tten nichts wiederherzustellen. - bitmapper lĂ€uft nur unter Linux
amd64. Er braucht eine echte, einkompilierte Bibliothek fĂŒr den Paketmitschnitt. Ein Build ohne sie erzeugt trotzdem ein lauffĂ€higes Binary â eines, das ĂŒberhaupt nichts mitschneidet â, deshalb verweigert unsere Release-Pipeline die Signatur fĂŒr ein Artefakt, das nicht nachweislich mitschneiden kann. - bitscanner lĂ€uft nur unter Linux, aus derselben Art von Grund: Seine Leser fĂŒr Nachbarn und Routen sind fĂŒr Linux implementiert.
Wir gehen davon aus, dass diese Listen wachsen. Wenn sie es tun, dann weil der Agent auf dieser Plattform erprobt wurde, nicht weil er sich kompilieren lieĂ.
Verifizieren, bevor Sie ausfĂŒhrenâ
Jedes Release liefert je Binary eine abgetrennte Signatur, eine SBOM und eine
Build-Attestierung, dazu eine signierte SHA256SUMS ĂŒber den gesamten Satz. Die Builds sind
reproduzierbar: Die Pipeline baut zweimal von Grund auf neu und verweigert die Veröffentlichung,
sofern beide nicht byte-identisch sind.
Der SignaturschlĂŒssel ist an drei unabhĂ€ngigen Stellen veröffentlicht, die ĂŒbereinstimmen mĂŒssen:
auf der Dokumentationsseite, in einem DNS-TXT-Record mit seinem Fingerabdruck und in einem
zweiten TXT-Record mit dem SchlĂŒssel selbst. Gleichen Sie mindestens zwei davon ab. Eine
Signatur ist nur so viel wert wie der Vertrauensanker dahinter, und eine einzige Quelle ist ein
Ritual, keine PrĂŒfung.
# Den SchlĂŒssel ĂŒber DNS beziehen â funktioniert in der CI, wo Bot-Schutz einfache HTTPS-Abrufe blockiert
dig +short TXT _cosign-key.cert-ix.com | tr -d '"' | sed 's/.*key=//' \
| base64 -d | openssl pkey -pubin -inform DER -out cosign.pub
# BestĂ€tigen, dass es UNSER SchlĂŒssel ist â gegen den auf der Dokumentationsseite veröffentlichten Fingerabdruck
openssl pkey -pubin -in cosign.pub -outform DER | sha256sum
# erwartet: 552839f6b1b1eb0934557e1886326c7270584fa602fbf56f84754a98be3de822
# Dann das heruntergeladene Release verifizieren
cosign verify-blob --key cosign.pub --bundle SHA256SUMS.sig \
--insecure-ignore-tlog=true SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
cert-ix.com veröffentlicht noch keinen DS-Record, DNS-Antworten sind daher nicht
kryptografisch Ende-zu-Ende validiert. Den SchlĂŒssel ĂŒber DNS zu beziehen, ist bequem und
funktioniert dort, wo HTTPS blockiert ist â aber was Vertrauen herstellt, ist der Abgleich des
Fingerabdrucks mit der Dokumentationsseite, geladen ĂŒber HTTPS, mit validiertem Zertifikat.
Ăberspringen Sie ihn nicht.
Die vollstĂ€ndige Anleitung â wozu jede Datei in einem Release da ist und wie eine fehlgeschlagene PrĂŒfung aussieht â steht unter Ihre Downloads verifizieren.
WofĂŒr jeder Agent da istâ
- bitcollector â was auf dieser Maschine ist, als Nachweis statt als Behauptung. Jeder Batch ist attestiert, und die Kette lĂ€sst sich offline verifizieren, ganz ohne Zugriff auf Cert-IX.
- bitscanner â die GerĂ€te, die ein agentenbasiertes Inventar bauartbedingt nicht sehen kann, weil auf ihnen nichts installiert ist. Wird inert ausgeliefert: Er bringt kein einziges Paket in Ihr Netz, bis Sie ihn ausdrĂŒcklich scharfstellen, und die Freigabe kann nicht aus einer Umgebungsvariable kommen.
- bitenforcer â was eine HĂ€rtungsrichtlinie Ă€ndern wĂŒrde, bevor sie irgendetwas Ă€ndert. v1 validiert und berichtet; sie wendet nichts an.
- bitmapper â womit diese Maschine tatsĂ€chlich
spricht, Flow fĂŒr Flow: Endpunkte, Ports, Protokoll, ZĂ€hler und Verbindungszustand, live von
ihren eigenen Schnittstellen mitgeschnitten. In
v0.1.0-gatragen diese Flows keine Prozesszuordnung â lesen Sie die Korrektur oben, bevor Sie darauf aufbauen.
Wo Sie anfangenâ
Laden Sie einen Agenten herunter, verifizieren Sie ihn und lesen Sie die Seite zu dem, fĂŒr den Sie sich entschieden haben. Wenn Sie unsicher sind, welcher es sein soll: Was ist bits? erklĂ€rt, wie die vier zusammenpassen und â genauso wichtig â was jeder von ihnen bewusst nicht tut.
