"PIOC" - Process Information Of Client



Kurzbeschreibung:

  Ein zusätzlicher Filter auf einer Firewall der aufgrund der Eigenschaften einer App wie "Pfad", "Dateiname",
  "Prüfsumme", "Benutzer" und "Client" eine Verbindung erlaubt oder blockiert.

Technisches Problem:

  Eine klassische Firewall, die zwischen Client und Internet arbeitet, erkennt nicht von welchem Programm die
  Verbindung kommt, zb. wird nur Port 80/443 zugelassen und 22 blockiert.
  Einer Next-Generation Firewall [1], mit "Deep Packet Inspection" ist es wahrscheinlich nicht möglich Daten einer
  Verbindung zu prüfen, wenn Client und Server mit einem selbstsignierten Zertifikat arbeiten.
  Am Client bedarf es keiner Administrator/Root-Rechte; jeder Benuzter kann eine App starten wodurch alle Daten im
  Netzwerk, auf welche der Benuzter Zugriff hat, ins Internet übertragen werden können.
  Die ständigen Ransomware Angriffe unterstreichen diese Problematik.

Die Lösung:

  Das Ziel ist die exakte Blockierung diverser Apps welche Verbindungen aufbauen wollen.

Beschreibung:

  Die Erklärung basiert auf dem Internet Protocol Version 4 (IPv4) [3] mit TCP/UDP, ist aber auch für andere Protokolle,
  wie z.B. IPv6, anwendbar.
  Die hier beschriebene Technik erweitert den Filter der Firewall und wird z.B. vom iptables [4] aufgerufen.


  1) siehe Abb.1 - Firewall: ein Programm am Client baut über die Firewall eine Verbindung auf und will z.B. ins Internet.
  Im Block-A wird die IP-Adresse vom Client und das Port vom IP-Paket ausgelesen, die Kombination Port/IP-Adresse
  ist immer eindeutig.
  Ist die "Prüfsumme" für die Port/IP-Adresse schon vorhanden, geht es wieter zu Block "C", wenn nicht wird diese vom
  Client angefordert.

  2) die Firewall sendet eine Anfrage mit "Port" als Inhalt an den Client.
  Nur mit der Information "Port" kann Block-B am Client die App, welche die Verbindung aufbauen will, eindeutig
  bestimmen.
  3) Block-B sendet der Firewall die geforderten Infos wie "Pfad", "Dateiname", "Prüfsumme" und "Benutzer".
  Block-A bekommt die Infos vom Client und reicht diese an Block-C weiter.
  Sollte die Anfrage beim Client zu lange dauern oder gar keine Antwort kommen, geht es mit einem "Timeout"
  bei Block-C weiter.
  Block-C vergleicht die "Prüfsumme" usw. mit einer Liste von erlaubten/blockierten Programmen und gibt das Paktet
  entsprechend entweder an 5) ins Internet weiter oder an 4) dem Client mit einem "Block" retour.
  Die Antwort vom Ziel, zb dem Internet wird ohne Prüfung durchgelassen.

  Diese Methode bietet die Möglichkeit auf einer Firewall nur registrierten Apps/Benutzern/Clients eine Verbindung
  zu erlauben, besonders gesichert durch die Prüfsumme.
  Beispiel: eine vom Benutzer selbstinstallierte App "/tmp/myVPN" oder die vorinstallierte App "/bin/wget" ist für alle
  Benutzer/Clients gesperrt, der User-Root jedoch kann auf Client-21 eine Verbindung mit "/bin/wget" herstellen.
  Der Administator hat mit relativ wenig Aufwand die Kontrolle über sein Netzwerk und dessen Clients.
  Relevant für die Sicherheit sind eher ausgehende Verbindugen, eingehende können aber genauso gefiltert werden.
  Am Client wird nur die App Block-B installiert, ansonsten bleibt alles gleich.
  Zusätzlich können auch DNS Daten über den Filter geroutet werden, um im Block-C weitere Einschränkungen erwirken
  zu können.
  Eine externe Hardware Firewall erhöht die Sicherheit ist aber nicht zwingend erforderlich. Der Filter kann auch lokal
  am Client ausgeführt werden, bzw. kann die Firewall ihre eigenen Verbindungen durch den Filter senden.
  Die Windows Firewall [2] bietet lokal am Client die Möglichkeit aufgrund von Namen von Programmen und Benutzern
  zu Filtern.
  Der Vorteil gegenüber dem Stand der Technik ist der exakte Vergleich der Prüfsumme der App auf einer Firewall.

Patent:

  Diese beschriebene Technik ist beim österreichischen Patentamt mit dem Aktenzeichen AT 525753 A4 2023-07-15 patentiert.

Legende:

  "Firewall" ist eine "externe Hardware Firewall" mit zB: Linux, OpenBSD usw.
  "App" ist ein "Programm" am Client.
  "Prüfsumme" ist die zb. SHA512 CheckSum der App.
  "Verbindung", in der Regel vom Client ins Internet, aber auch zu einen lokalen Server.
  "Client", ein Computer mit zB: Windows, Linux, Android, osX, iOS usw.

Literaturverzeichnis:

  1. https://en.wikipedia.org/wiki/Next-generation_firewall
  2. https://en.wikipedia.org/wiki/Windows_Firewall
  3. https://en.wikipedia.org/wiki/IPv4
  4. https://en.wikipedia.org/wiki/Iptables