Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

Dr. Portscan im Überblick

Im Vergleich zum bekannten Werkzeug »ndiff« , das die Gegenüberstellung von genau zwei Nmap-Scan-Ergebnissen möglich macht, erlaubten die Skripte, auf die Dr. Portscan zurückgeht, von Anfang an die Gegenüberstellung einer beliebigen Anzahl von Portscan-Ergebnislisten, die von verschiedenen Maschinen aus erzeugt wurden. Nach einiger Zeit wurde jedoch das Arbeiten mit in unterschiedlichen Intervallen erzeugten Outputs so unübersichtlich und war zudem fest an ein einziges Portscan-Produkt gebunden, dass eine vollständig neue, modulare und um beliebige Portscan-Werkzeuge erweiterbare, datenbankbasierte Lösung geschaffen wurde, mit der Portscan-Berichte erstellt und skriptbasierte Reaktionen auf Veränderungen in den Portscan-Ergebnissen gezielt angestoßen werden können.

Abbildung 2 zeigt die Systemarchitektur von Dr. Portscan mit ihren wichtigsten Komponenten: Als Datenquellen (1) dienen beliebig viele verschiedene Portscan-Werkzeuge. Sogenannte Input-Agenten (2) sind für das Konvertieren der produktspezifischen Scan-Ergebnisse in ein einheitliches Format zuständig. Der Input-Agent für Nmap enthält beispielsweise Parser für die XML- und die sogenannte grep-bare Ausgabe von Nmap ab Version 5. Der Aufwand für die Implementierung weiterer Input-Agenten ist vom anzubindenden Portscan-Werkzeug abhängig, bleibt in der Regel aber überschaubar, da durch die anzupassenden Code-Teile lediglich eine Liste der ermittelten IP-Adressen und offenen Ports generiert werden muss.

Abbildung 2: Die Systemarchitektur von Dr. Portscan.

Der Delta-Reporter (3) überträgt die von den Input-Agenten gelieferten Ergebnisse in eine Datenbank (4), die die Ergebnisse aller Portscans erfasst und auswertet. Die dabei generierten Informationen weisen auf Veränderungen gegenüber den letzten Scan-Läufen hin.

Output-Agenten

Die frei definierbaren Output-Agenten (5) können eine Gesamtübersicht liefern, Berichte über Veränderungen in einzelnen Subnetzen erstellen und per E-Mail an den zuständigen Administrator verschicken oder beliebige Skripte anstoßen, um nähere Informationen über den Dienst, der hinter einem neu geöffneten Port steckt, einzuholen oder mit einem definierten Soll-Zustand abzugleichen.

Dr. Portscan ist auf eine zentrale, relationale Datenbank ausgelegt, um zunächst die Ergebnisse der dezentralisiert durchgeführten Portscans an einer Stelle in einem einheitlichen Format zu sammeln. Da sowohl die Input-Agenten, der Delta-Reporter als auch die Output-Agenten in Perl implementiert sind, kommt ein breites Spektrum an Open-Source- und kommerziellen Datenbank-Produkten in Frage. Die minimal gehaltene Beispielkonfiguration setzt auf SQLite. Damit ist ein schnelles Ausprobieren von Dr. Portscan möglich, ohne zusätzlich einen Datenbank-Server und eine neue Datenbank einrichten zu müssen. Für größere Installationen bietet sich die Verwendung von MariaDB, PostgreSQL oder ein anderes relationales Datenbankmanagementsystem an, für das Perl-DBI-Module verfügbar sind.

Die Datenbank speichert alle Informationen für jede gescannte Maschine und jeden auffällig gewordenen Port. Ausschlaggebend dabei sind die Veränderung gegenüber dem letzten Lauf des Portscanners, auf den der Eintrag zurückgeht. Die Tabelle 1 zeigt die derzeit unterstützten Veränderungstypen.

Tabelle 1

Veränderungstypen

Nr.

Beschreibung

0

Keine Veränderung gegenüber dem letzten Scan-Lauf

1

Neue Maschine (IP-Adresse ist zum ersten Mal auffällig geworden)

2

Maschine läuft nicht mehr

4

Veränderter DNS-Name

8

Neuer offener Port, der vorher noch nie offen war

16

Port inzwischen geschlossen (Port war früher offen)

32

Port wieder geöffnet, nachdem er zwischenzeitlich geschlossen war

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023