Zum Inhalt springen

Dokumentation.

Von der ersten Anmeldung bis zum überwachten Produkt, mit Alarmen, die einen Menschen erreichen, und einer Pipeline, die die Stückliste aktuell hält.

Diese Anleitung führt Sie von der ersten Anmeldung bis zum überwachten Produkt, mit Alarmen, die die richtigen Personen erreichen, und einer Build-Pipeline, die die Stückliste aktuell hält. Sie dauert etwa eine Stunde, das meiste davon in Ihrer Pipeline.

Was der Reporting Desk tut – und was nicht

Erlangt der Hersteller eines Produkts mit digitalen Elementen Kenntnis von einer aktiv ausgenutzten Schwachstelle in seinem Produkt, muss er sie über die von der ENISA betriebene einheitliche Meldeplattform melden: mit einer Frühwarnung innerhalb von 24 Stunden, einer Meldung der Schwachstelle innerhalb von 72 Stunden und einem Abschlussbericht spätestens 14 Tage, nachdem eine Korrektur- oder Risikominderungsmaßnahme zur Verfügung steht (Verordnung (EU) 2024/2847, Artikel 14). Ein schwerwiegender Sicherheitsvorfall mit Auswirkungen auf die Sicherheit eines Produkts hat dieselben ersten beiden Stufen; sein Abschlussbericht ist einen Monat nach der Meldung des Vorfalls fällig.

Der Reporting Desk:

  • verwahrt die Software-Stückliste (SBOM) jedes Ihrer Produkte;
  • übernimmt die stündliche Prüfung auf aktiv ausgenutzte Schwachstellen (CISA KEV, ENISA EUVD), abgeglichen über OSV-Advisory-Daten mit npm-, PyPI-, Maven-, Go- und NuGet-Komponenten;
  • eröffnet einen Fall, sobald eine Komponente eines Ihrer Produkte eine Schwachstelle hat, die eine der beiden Listen als ausgenutzt führt, lässt die drei Fristen laufen und schickt Alarme per E-Mail an die von Ihnen benannten Kontakte und an Slack, Microsoft Teams oder einen signierten Webhook;
  • entwirft jede Meldung aus dem, was er weiß, als Text zum Einfügen in die einheitliche Meldeplattform der ENISA, und hält fest, wann Sie eingereicht haben.

Er reicht nicht für Sie ein: Die einheitliche Meldeplattform nimmt Meldungen von Hand entgegen, von Ihnen. Er sieht weder Ihren Quellcode noch Ihre Firmware, nur die Komponentenliste, die Sie ihm geben. Und er kann nur überwachen, was er identifizieren kann: Komponenten der Ökosysteme npm, PyPI, Maven, Go und NuGet mit einer Paket-URL. Alles andere gilt als nicht überwacht, nie als sicher; die Abdeckung des Produkts sagt, welche Komponenten das sind.

1Anmelden und die Dokumente annehmen

Melden Sie sich mit Ihrer geschäftlichen E-Mail-Adresse an. Es gibt kein Passwort: Sie erhalten einen Anmeldelink per E-Mail, der einmal funktioniert, zehn Minuten lang.

Die erste Person Ihres Unternehmens, die sich anmeldet, nimmt die AGB und den Auftragsverarbeitungsvertrag für das Unternehmen an und muss dazu berechtigt sein. Jede Person bestätigt einmalig, die Datenschutzhinweise gelesen zu haben. Die Nachweise nennen Version, Veröffentlichungsadresse, Zeitpunkt und Person und sind unveränderlich. Ändert sich ein Dokument, wird die neue Fassung bei der nächsten Anmeldung gezeigt; Ihre API-Token funktionieren währenddessen weiter.

2Die Personen benennen, die Alarme erhalten

Öffnen Sie Alarme und Kontakte. Tragen Sie mindestens zwei Personen ein; die Überwachung eines Produkts braucht zwei. Der Hauptkontakt erhält den ersten Alarm, wenn ein Fall eröffnet wird.

Verwenden Sie Adressen, die kurzfristig gelesen werden, kein Sammelpostfach ohne Zuständige. Alarme kommen von alerts@bithive-it.com; nehmen Sie die Adresse in die erlaubten Absender Ihres Mailfilters auf.

Bestätigen sagt dem Reporting Desk, dass sich jemand des Falls annimmt. Öffnen Sie dazu den Fall in der Anwendung oder drücken Sie den Knopf hinter dem Link im Alarm. Der Link funktioniert einmal, sieben Tage lang; das bloße Öffnen ändert nichts, denn Mailfilter öffnen jeden Link zur Prüfung – nur der Knopf bestätigt. Eine Bestätigung stoppt keine Frist.

Weitere Kanäle (optional, in jedem Tarif). Auf derselben Seite können Sie eine HTTPS-Adresse hinterlegen, an die Alarme zusätzlich gehen, und festlegen, welche Alarme sie erhält: alle, nur den ersten Alarm eines Falls oder die dringenden. Drei Arten:

  • Slack, mit der Adresse eines Incoming Webhooks aus Ihrem Workspace (hooks.slack.com/services/...), angelegt unter api.slack.com/apps; eine Adresse aus dem Workflow Builder wird abgelehnt. Die Nachricht erscheint im Kanal, mit Link zum Fall.
  • Microsoft Teams (Workflows-Webhook): Legen Sie in Teams einen Workflows-Webhook mit der Vorlage „Send webhook alerts to a channel“ an (so heißt sie in der englischen Oberfläche) und fügen Sie seine Adresse hinzu (...environment.api.powerplatform.com/...). Die Nachricht erscheint als Karte mit Schaltfläche.
  • Webhook, für PagerDuty, Opsgenie oder ein Ticketsystem: JSON, signiert nach Standard Webhooks; das Secret wird beim Anlegen einmal angezeigt (es beginnt mit whsec_). Prüfen Sie die Signatur, bevor Sie auf eine Zustellung reagieren.

Senden Sie die Testnachricht von derselben Seite: Sie erfahren, dass der Kanal funktioniert, bevor ein Fall davon abhängt, und wenn nicht, sagt die Seite, was zu tun ist. Jeder Alarm an einen Kanal wird an seinem Fall protokolliert, erfolgreich oder nicht, wie eine E-Mail.

3Produkte anlegen

Öffnen Sie Produkte und legen Sie jedes Produkt an, das Sie auf dem EU-Markt bereitstellen, unter dem Namen, den Sie in einer Meldung verwenden würden. Ihr Tarif enthält eine Anzahl Produkte (3, 10, 25 oder 26 bis 5.000 bei Enterprise); die Seite zeigt, wie viele Sie haben.

Ein Produkt, das Sie anlegen, wenn die beiden Kontakte aus Schritt 2 bestehen, startet mit eingeschalteten Alarmen, und die Seite sagt es Ihnen vorher. Ein Produkt, das Sie davor angelegt haben, startet mit ausgeschalteten Alarmen: Drücken Sie für es Alarme einschalten, sobald die Kontakte bestehen. Solange die Alarme aus sind, erfährt niemand von den Fällen des Produkts.

4Eine Stückliste hochladen

Eine Stückliste in CycloneDX oder SPDX, als JSON, bis 10 MiB. Erzeugen Sie sie im Build mit einem etablierten Open-Source-Werkzeug, zum Beispiel:

syft dir:. -o cyclonedx-json > sbom.json      # Syft
cdxgen -o sbom.json .                         # cdxgen

Erzeugen Sie sie aus dem, was Sie ausliefern: dem gebauten Artefakt oder seinen Lockfiles, nicht aus dem Arbeitsstand einer Entwicklerin samt Testabhängigkeiten. Je besser das Werkzeug Paket-URLs erkennt, desto mehr des Produkts wird überwacht.

Beim ersten Mal laden Sie sie auf der Seite Stücklisten des Produkts hoch. Die Seite Befunde zeigt innerhalb von Sekunden, welche Komponenten bekannte Schwachstellen haben, welche davon ausgenutzt werden, und die Abdeckung: wie viele Komponenten überwacht werden und welche nicht, und warum.

5Aus der Pipeline aktuell halten

Jede Auslieferung ändert die Komponentenliste, laden Sie die Stückliste also aus der Pipeline hoch, die die Auslieferung baut. Es ist nichts zu installieren: Die Pipeline ruft die HTTPS-API mit curl auf.

  1. Öffnen Sie API-Token und erstellen Sie ein Token mit dem Scope sboms:write, begrenzt auf das Produkt, für das es hochlädt, mit Ablaufdatum (höchstens ein Jahr). Das Token wird einmal angezeigt; hinterlegen Sie es als Secret in Ihrem CI-System, zum Beispiel als BITHIVE_TOKEN.
  2. Die Kennung des Produkts steht in der Adresse seiner Seiten (/products/KENNUNG/findings). Hinterlegen Sie sie als BITHIVE_PRODUCT.
  3. Erzeugen Sie nach dem Build die Stückliste und laden Sie sie hoch:
curl --fail-with-body -sS -X POST \
  -H "Authorization: Bearer $BITHIVE_TOKEN" \
  -H "Content-Type: application/vnd.cyclonedx+json" \
  --data-binary @sbom.json \
  "https://app.bithive-it.com/v1/products/$BITHIVE_PRODUCT/sboms"

Für ein SPDX-Dokument verwenden Sie Content-Type: application/spdx+json. Die Antwort ist 201 für einen neuen Upload und 200, wenn dasselbe Dokument schon einmal hochgeladen wurde – dann passiert nichts, eine doppelt laufende Pipeline schadet also nicht. Ein Fehler antwortet mit einer Problembeschreibung (RFC 9457), die im CI-Log lesbar sagt, was nicht stimmt.

In einem GitHub-Actions-Workflow als Schritt nach dem Build:

- name: Stückliste hochladen
  env:
    BITHIVE_TOKEN: ${{ secrets.BITHIVE_TOKEN }}
    BITHIVE_PRODUCT: ${{ vars.BITHIVE_PRODUCT }}
  run: |
    curl --fail-with-body -sS -X POST \
      -H "Authorization: Bearer $BITHIVE_TOKEN" \
      -H "Content-Type: application/vnd.cyclonedx+json" \
      --data-binary @sbom.json \
      "https://app.bithive-it.com/v1/products/$BITHIVE_PRODUCT/sboms"

In GitLab CI und Jenkins führen Sie denselben curl-Aufruf als Job-Schritt aus, mit dem Token aus einer maskierten CI-Variablen oder einem Credential.

6Wenn ein Fall eröffnet wird

Ein Fall wird eröffnet, sobald eine Komponente eines Ihrer Produkte eine Schwachstelle hat, die CISA oder ENISA als aktiv ausgenutzt führt. Das passiert, wenn eine Liste eine Schwachstelle nennt, die Ihre Komponenten bereits haben – innerhalb einer Stunde –, oder wenn Sie eine Komponente hochladen, die eine hat, beim nächsten Lesen der Liste, ebenfalls innerhalb einer Stunde. Ihr Hauptkontakt erhält einen Alarm mit einem Link zum Fall.

Auf der Fallseite:

  • Die Fristen. Die 24- und 72-Stunden-Fristen laufen ab dem Zeitpunkt, zu dem Sie Kenntnis erlangt haben; dieser beginnt mit dem Moment, in dem der Reporting Desk den Fall erfasst hat. Wussten Sie es früher, setzen Sie ihn früher und sagen Sie warum; später kann er nie gesetzt werden. Die Frist des Abschlussberichts beginnt, wenn Sie eine verfügbare Abhilfe erfassen.
  • Meldungen. Jede Stufe hat ein Formular mit den Feldern, die Artikel 14 verlangt, vorbereitet aus dem, was der Reporting Desk weiß, und von Ihnen vervollständigt. Es liefert den Text zum Einfügen in die einheitliche Meldeplattform. Nach dem Einreichen dort erfassen Sie hier die Uhrzeit; der Nachweis ist unveränderlich.
  • Wer informiert wurde. Jeder Alarm, an wen, und ob er zugestellt wurde – damit eine fehlgeschlagene Zustellung sichtbar ist und nicht stillschweigend bleibt.
  • Verwerfen. Trifft ein Befund nicht zu, etwa weil der verwundbare Code nicht in dem steckt, was Sie ausliefern, verwerfen Sie den Fall mit Begründung. Er bleibt im Nachweis.

Einen schwerwiegenden Sicherheitsvorfall, den keine Technik für Sie erkennen kann, erfassen Sie unter Fälle mit Sicherheitsvorfall erfassen. Es gelten dieselben Fristen und Meldungen.

7Ihre Daten – und wie Sie sie mitnehmen

Anwendung und Kundendaten werden in Deutschland gehostet. Alarme versendet ein E-Mail-Anbieter in der EU. Der Reporting Desk verwahrt die Stücklisten, die Sie hochladen, die Befunde, Fälle, Meldungen und das Protokoll Ihres Kontos, das jede Änderung mit Person und Zeit festhält.

Sie können alles jederzeit mitnehmen: Einstellungen → Ihre Daten → Alles herunterladen gibt Ihnen ein Archiv mit dem Konto, jedem Dokument so, wie es ankam, den Befunden, den Fällen mit ihren Fristen und Meldungen und dem vollständigen Protokoll. § 6.3 der AGB gibt Ihnen das in jedem Tarif, und der Download ändert nichts im Dienst.

8NIS2 und DSGVO: Vorfälle erfassen

Für Konten mit dem NIS2-Modul (Deutschland: BSIG, EnWG, § 168 TKG, eIDAS) oder dem DSGVO-Modul für Datenschutzverletzungen (Art. 33 und 34, § 169 TKG). Ein Konto ohne eines der beiden sieht keine dieser Seiten. Der Inhaber und die Administratoren pflegen die Rechtseinheiten und Verträge und legen fest, wer welches Modul sieht; Mitglieder erfassen Vorfälle und ihre Meldungen; Leser lesen.

Der Reporting Desk schlägt vor, welche Pflichten ein Vorfall auslösen kann, und führt ihre Fristen. Ob eine Pflicht gilt, entscheiden Sie; nichts auf diesen Seiten ist eine rechtliche Bewertung.

Ihre Rechtseinheiten. Jede Gesellschaft Ihrer Gruppe, die eine Pflicht treffen kann, ist eine Rechtseinheit.

  1. Drücken Sie unter Einstellungen → Rechtseinheiten auf Rechtseinheit hinzufügen. Geben Sie Bezeichnung, Land, Handelsregisternummer, USt-IdNr., LEI und Zeitzone an, und kreuzen Sie die Module an, die Sie für sie führen. Sie sehen die Seite der Einheit.
  2. Beantworten Sie dort die Fragen der Module zu ihr: für NIS2, ob sie eine besonders wichtige oder wichtige Einrichtung ist und ob sie Energie- oder Telekommunikationsnetze betreibt; für die DSGVO ihre Aufsichtsbehörde. Die Antworten gelten für jeden Vorfall, der die Einheit nennt.
  3. Halten Sie für NIS2 ihre Registrierung beim BSI und das Datum fest. Bis dahin erinnert die Seite daran.

Die Größe jedes Moduls umfasst eine Zahl von Rechtseinheiten, wie die Preisliste sie nennt. Sind alle zugeordnet, wird eine weitere Zuordnung mit dem Ausweg abgelehnt: eine größere Größe unter Tarif und Abrechnung, oder zuerst das Modul bei einer anderen Einheit herausnehmen. Eine Rechtseinheit, die ein Vorfall nennt, lässt sich nicht entfernen.

Einen Vorfall erfassen.

  1. Drücken Sie auf der Seite Fälle auf Vorfall erfassen. Geben Sie an, wann Sie Kenntnis erlangt haben und, falls bekannt, wann er eingetreten ist, was geschehen ist, welche Rechtseinheiten und Verträge er betrifft, die Mitgliedstaaten und Dienste und welche Definitionen er erfüllt (ein erheblicher Sicherheitsvorfall, eine Verletzung des Schutzes personenbezogener Daten).
  2. Drücken Sie auf Vorfall erfassen. Die Seite des Vorfalls führt jede Pflicht je Partei auf: das Gesetz, wer sie schuldet, ob sie nach den Antworten gilt und jede Stufe mit ihrer Frist. Warum diese Frist zeigt die Regel, ihre Version, den Zeitpunkt, ab dem sie läuft, und die Werte, aus denen sie berechnet wurde.
  3. Beantworten Sie die Fragen des Vorfalls und entscheiden Sie jede Pflicht: Wer vom Vorschlag abweicht, nennt einen Grund. Jede Entscheidung, Antwort und jeder Zeitpunkt geht ins Protokoll.
  4. Halten Sie Zeitpunkte fest, sobald sie eintreten: eine Anforderung mit der Zeit, die eine Behörde genannt hat, oder das Ende der Bearbeitung. Die Fristen folgen ihnen.

Wenn Sie personenbezogene Daten im Auftrag verarbeiten. Mit dem DSGVO-Modul, in jeder Größe, eröffnet eine Verletzung, die Sie als Auftragsverarbeiter betrifft, Ihre Meldung an jeden betroffenen Verantwortlichen (Art. 33 Abs. 2 DSGVO).

  1. Drücken Sie unter Einstellungen → Verträge auf Vertrag hinzufügen: Seine Art ist Verantwortlicher, für den Sie personenbezogene Daten verarbeiten (Art. 33 Abs. 2 DSGVO). Geben Sie den Verantwortlichen als Vertragspartner an, fügen Sie die Klausel Ihres Vertrags zur Meldung von Verletzungen unter Die Klausel im Wortlaut ein, ergänzen Sie, wenn Sie möchten, eine Geschäftliche Adresse für Mitteilungen, und drücken Sie auf Vertrag speichern. Ein Vertrag, den ein Vorfall nennt, lässt sich nicht entfernen.
  2. Nennen Sie beim Erfassen der Verletzung unter Verträge die betroffenen Verantwortlichen, und beantworten Sie die Frage des Vorfalls nach Ihrer Rolle mit Auftragsverarbeiter. Der Vorfall eröffnet für jeden von ihnen die Meldung an den Verantwortlichen (Art. 33 Abs. 2): Sie ist ab der Kenntnis unverzüglich fällig, und Sie werden nach 24 und nach 72 Stunden erinnert. Diese Erinnerungen sind keine gesetzlichen Fristen.
  3. Die Meldungsseite entwirft die Meldung mit den Angaben, die der Verantwortliche benötigt (Art. 33 Abs. 3 DSGVO), und Als übermittelt erfassen hält fest, wann welcher Verantwortliche informiert wurde. Über die Meldung an die Aufsichtsbehörde und die Benachrichtigung betroffener Personen entscheiden Ihre Verantwortlichen.

Meldungen und ihre Kopie. Jede Stufe führt zu ihrer Meldungsseite. Füllen Sie das Formular aus (die Felder sind die der Behörde; eine verspätete Meldung fragt nach den Gründen), speichern Sie es, reichen Sie es über den Weg ein, den die Seite nennt (das BSI-Portal, das Formular der Behörde, E-Mail, Brief), und drücken Sie dann Als übermittelt erfassen mit Zeitpunkt, Person, Empfängern und Wegen und dem Aktenzeichen der Behörde. Die Seite behält dann die Einreichungskopie: den eingereichten Text und seinen SHA-256, den auch das Protokoll enthält.

Wer welches Modul sieht. Unter Einstellungen → Wer welches Modul sieht lässt sich ein Modul auf benannte Nutzer beschränken. Der Inhaber sieht immer jedes Modul. Wer nicht benannt ist, sieht nichts von einem beschränkten Modul: keinen Vorfall, keine Frist, Meldung, Protokollzeile, keinen Alarm und keinen Eintrag im Export, und keine Rechtseinheit und keinen Vertrag davon in den Einstellungen (von einer Einheit, die auch ein sichtbares Modul führt, nur dessen Zuordnung und Antworten und bei NIS2 ihre BSI-Registrierung). Das Speichern einer gemeinsamen Einheit behält, was die Person nicht sieht; entfernen kann sie nur, wer alles an ihr sieht.

Alarme. Die Pflichten eines Vorfalls alarmieren wie ein Fall: ein Alarm bei Eröffnung, Erinnerungen vor jeder Frist und ein Hinweis bei Überschreitung, per E-Mail und an Ihre Slack-, Teams- und Webhook-Kanäle. Ein Webhook erhält sie als Ereignisse obligation.opened, obligation.reminder und obligation.overdue mit "version": 2. Die Alarme eines beschränkten Moduls gehen per E-Mail nur an die Alarmkontakte, die als Nutzer das Modul sehen dürfen, oder an den Inhaber, wenn das keiner ist, und erreichen nur die Kanäle, die unter Einstellungen → Wer welches Modul sieht für es eingeschaltet sind.

Was der Download enthält. Alles herunterladen (Abschnitt 7) enthält jeden Vorfall mit seinen Pflichten (Quellen und Entscheidungen), seinen Fristen (die Regel, ihre Version und woraus sie berechnet wurde), seinen Antworten und den betroffenen Elementen, und von jeder Meldung den Entwurf und die Einreichungskopie: den Text, wie er erfasst wurde, und seinen SHA-256, wie im Protokoll. parties.json enthält die Rechtseinheiten (die Module, die Sie für jede führen, ihre Antworten und ihre BSI-Registrierung) und die Verträge. Ist ein Modul beschränkt, enthält der Download nur die Module der Person, die ihn herunterlädt.

Hilfe

Schreiben Sie an contact@bithive-it.com. Wenn ein Alarm Sie nicht erreicht hat oder ein Fall zu fehlen scheint, sagen Sie es uns sofort: Wir behandeln das als Vorfall.

Die Übersicht eines Kontos: offene Fälle mit ihrer nächsten Frist, die Abdeckung je Produkt und wann jede Quelle zuletzt gelesen wurde.

Die Übersicht: was läuft – und was zuerst Aufmerksamkeit braucht.

Nichts auf diesen Bildern gehört einem Kunden: Sie stammen aus unserem Demokonto – deshalb steht es auch im Banner.

14 Tage kostenlos testen