Übersicht & Problemstellung
Der Kunde erstellte regelmäßig Sicherheitsreports, die bekannte Schwachstellen der eingesetzten Systeme dokumentieren. Diese Reports wurden zunächst manuell mit einem Python-Script analysiert – ein zeitaufwändiger Prozess, der eine fehleranfällige, manuelle Übertragung der CVE-Details aus der PDF in ein CSV-Format erforderte. Im Anschluss mussten die Daten dem verantwortlichen Entwickler gemeldet werden. Das Vorgehen band Fachkräfte für repetitive Aufgaben, verzögerte die weitere Bearbeitung der gemeldeten Schwachstellen und erschwerte eine kontinuierliche Nachverfolgung und Dokumentation. Zudem war die Prozesssicherheit unzureichend gewährleistet, da bei Fehlern leicht Informationen verloren gehen konnten.
Unsere Lösung
Unsere Lösung war die Entwicklung eines GitLab Bots, der vollständig automatisiert Sicherheitsreport-Workflows übernimmt. Bei Erstellung eines Tickets mit dem „Security Report“-Label erkennt der Bot automatisch die PDF im Tickettext, lädt diese herunter und analysiert sie mit dem vorhandenen Python-Skript. Die Ergebnisse – CVE-Nummer, Status, und Vendor-Link – werden als formatierte Tabelle zurück in das Ticket gepostet. Das Ticket wird anschließend dem Autor zugewiesen, sodass die Verantwortlichkeit gewahrt bleibt. Für höchste Ausfallsicherheit und Konsistenz wird der Bot als Docker-Image über eine CI/CD-Pipeline gebaut und in die GitLab-Registry deployt. Der Bot entspricht aktuellen Sicherheitsstandards nach OWASP und akzeptiert Verbindungen ausschließlich über Port 80. So konnte der komplette Ablauf ohne manuelle Eingriffe bereitgestellt und die Effizienz erheblich gesteigert werden.
Ablauf & Hürden im Projekt
Eine zentrale technische Herausforderung war die Extraktion von PDF-Anhängen direkt aus GitLab-Tickets per API. Die genutzte GitLab-Instanz unterstützte das API-basierte Herunterladen von Ticket-Anhängen erst ab Version 17.2. Da eine ältere Version im Einsatz war, musste das System zunächst aufwändig aktualisiert werden, ohne bestehende Arbeitsabläufe zu stören. Selbst nach dem Update war das Zuordnen der Datei zur API-ID komplex, da GitLab beim Upload in Tickets nur eine URL erstellt, nicht jedoch direkt die ID liefert, die für den API-Zugriff benötigt wird. Die Lösung: Wir mussten Dateinamen eindeutig gestalten, um sie später über die API aufzufinden und herunterzuladen. Dieser Lösungsweg erforderte eine sorgfältige Anpassung des gesamten Upload- und Zuordnungsprozesses.
Projektergebnis & Fazit
Durch die Automatisierung konnten wir die Bearbeitungszeit für Sicherheitsreports radikal verkürzen und menschliche Fehlerquellen nahezu eliminieren. Die vollständige Einbindung des Bots in die bestehende GitLab-Infrastruktur, inklusive CI/CD, sorgt für Skalierbarkeit und Wiederholbarkeit des Prozesses. Der direkte Rückkanal der Analyseergebnisse in das jeweilige Ticket verbessert die Übersicht und ermöglicht eine zuverlässige Dokumentation. Das Projekt hat die Sicherheit und Effizienz bei der Bearbeitung von Schwachstellen signifikant erhöht. Alle Projektziele wurden vollständig erreicht.
Über den Kunden
[Keine Angabe]
Branche: [Keine Angabe]
Standort: [Keine Angabe]
Stack: Python, GitLab, Docker, CI/CD