Geht nicht – gibt’s nicht. Zumindest was die Möglichkeiten mit APIs angeht. Immer mehr Hersteller bieten heutzutage eine API für ihre Produkte an, was unter anderem viele Vorteile bringt


Was ist eine API?

Grundsätzlich ist es eine Programmierschnittstelle welche es ermöglicht, mit Anwendungen zu kommunizieren. APIs können sich hinsichtlich ihres Architekturtyps (REST, SOAP, RPC usw.) unterscheiden. In den letzten Jahren ist die REST-API dabei zum bevorzugten Standard für die Entwicklung von Anwendungen geworden. Grundsätzlich sind das Web Requests, mit welchen man Daten auslesen, einfügen oder verändern kann.


Was soll ich nun damit?

Mit der Nutzung von APIs können Daten ausgelesen werden und anhand des Resultates eine Änderung an einem anderen Produkt vorgenommen werden. Das ist nicht nur praktisch, sondern gibt uns die Möglichkeit, verschiedene Produkte miteinander zu integrieren.

Als Beispiel von meinem SmartHome, bei welchem ich die Luftqualität im Innenraum via API abfrage und anhand des Wertes die Fenster öffnen lasse. Natürlich frage ich davor noch das Wetter ab – ob es regnet oder schneit. Sobald die Luftqualität wieder einem bestimmten Wert entspricht, schliesse ich die Fenster wieder. Ohne API wäre es wohl schwierig geworden, dies so abzubilden. Zugegeben, dies ist ein privates Beispiel, aber es zeigt doch auf, was man damit alles machen kann.

Stellen Sie sich vor, das IPAM (IP Address Management), welches direkt die neu reservierten IP Ranges als Objekt auf der Firewall erstellt oder die Network Detection Lösung, welche bei einem Alarm auf dem NAC entsprechende Änderungen vornimmt oder auf der Firewall direkt einen Host blockiert. Und genau auf das letztere Beispiel möchte ich kurz eingehen.


Automatisierte Response einfach und effizient

Wer Vectra kennt, weiss, dass diese den Netzwerk Traffic überwacht und anhand der Meta Daten bei Anomalien eine Detection auslöst. Je nachdem, was es für eine Detection ist, wird ein Threat Score und ein Certainty Score für den Client vergeben. Warum sollen wir das nicht nutzen, um automatisiert einen Client auf der Firewall zu blockieren? Ja das geht! Und vor allem, dies gibt es bereits vorgefertigt.

Auf Github gibt es von Vectra Networks bereits eine fixfertige Fortinet Integration, welche man automatisiert mit Python ausführen kann. Zusätzlich kann man einstellen, ab welchem Threat und Certainty Score der Client blockiert werden soll. Auch eine Blockierung mittels Tagging auf der Vectra würde sich so einstellen lassen. Reicht das nicht, können auch Destination Adressen automatisch blockiert werden.


Was passiert da genau?

Grundsätzlich wird hier die Vectra API angefragt, welche Clients einen Threat und Certainty Score von beispielsweise >80 haben. Findet es ein Objekt, wird die IP von diesem Client via API auf der FortiGate erstellt und in die vorgefertigte Adressgruppe hinzugefügt. That’s it! Natürlich ist die Voraussetzung, dass wir auf der Firewall bereits ein entsprechendes Gruppenobjekt haben und entsprechende Policies, welche den Traffic von allen Clients in dieser Gruppe blockieren.

Somit wird bereits eine erste Response getriggert und der Client zumindest auf der Firewall abgeschottet. Die bessere Variante wäre natürlich, die Integration mit einem NAC und so gleich den Switch Port, an dem der Client hängt, zu shutten oder den Client in die Quarantäne zu setzen.

Wer sich detailiert damit befassen will, hier der Link zum Github Projekt: github.com/vectranetworks/Fortinet-Groups


Fazit

Vielleicht habe ich mit diesem Artikel den einen oder anderen inspiriert, sich mehr mit APIs zu befassen. Und diejenigen, welche immer noch keinen Anwendungsfall sehen, Threema bietet ebenfalls eine API an. Vielleicht wäre es eine Idee, die Monitoring Alerts oder Passwörter für Zugänge zukünftig via Threema und nicht via SMS zu versenden. Natürlich könnte man das obige Beispiel ebenfalls damit erweitern und gleich die entsprechenden Stellen alarmieren, sollte ein Client einen bestimmten Score überschreiten.