Angriffsversuche auf Sophos UTM Firewalls (März 2024)

Sicherheit (Pexels, allgemeine Nutzung)[English]Kurze Information für Administratoren von Sophos UTM Firewalls – ein Leser hat mich darauf hingewiesen, dass seit einigen Tagen vermehrt Angriffsversuche auf Sophos UTM Firewalls stattfinden. Sophos hat bereits zum 5. März 2024 einen Sicherheitshinweis dazu mit einem Update der UTM-Firewall-Version veröffentlicht. Dort werden auch einige Schwachstellen genannt, die geschlossen werden. Es soll auch eine BSI-Warnung geben, die mir aber nicht vorliegt. Hier die Informationen, die mir vorliegen.


Anzeige

Ein Leserhinweis

Blog-Leser Björn W. betreut diverse Firewalls bei seinem Kunden und ihm ist seit Ende letzter Woche aufgefallen, dass dort intensive Login-Versuche von unbekannten Dritten stattfinden. In einer Mail von gestern schrieb Björn (danke dafür).

Hallo Herr Born,

seit zwei Tagen beobachte ich intensive Login-Versuche auf diverse Firewalls unserer Kunden.

Nun habe ich etwas genauer nachgeschaut, und siehe da, am 05.03.2024 hat Sophos das MR19 veröffentlicht.

Offensichtlich muss es dort Sicherheitslücken geben, die Hacker aktuell motivieren Attacken auf bekannte UTMs zu fahren. Heise & Co. schweigen sich noch aus.

Lt. news.de soll der BSI am 05.03.2024 eine Sicherheitswarnung herausgegeben haben, diese finde ich jedoch auf den Seiten des BSI nicht. Haben Sie in dieser Sache schon etwas wahrgenommen?

Bisher liegt mir keine weitere Meldung eines Nutzers vor. Björn hat mir aber zwei Fundstellen im Web genannt, die das Thema ebenfalls aufgegriffen haben – ich stelle es mal zur Information hier im Blog ein.

Sophos Update-Hinweis MR19

Hersteller Sophos hat zum 5. März 2024 die Sicherheitsmeldung MR19 UTM Up2date 9.7 MR19 (9.719) released veröffentlicht. Die haben für ihre UTM-Firewalls das Update auf die Version 9.7 MR19 (9.719) veröffentlicht. Es soll sich um ein reguläres Wartungsupdate handeln, welches in drei Phasen veröffentlicht wird.

  • Phase 1: Der Download ist über die Sophos Download-Server möglich (Up2date-Paket – 9.718 auf 9.719)
  • Phase 2: Das Update wird in mehreren Schritten über die Sophos Up2Date-Server zur Verfügung gestellt.
  • Phase 3: Das Update wird über die Sophos Up2Date-Server für alle verbleibenden Installationen verfügbar gemacht.

Einzelheiten zu dieser Vorgehensweise und zur betreffenden Version finden sich in obigem verlinkten Sophos-Dokument. Sophos gibt an, dass die neue Version Fehlerkorrekturen und Sicherheitsverbesserungen enthält. Genannt werden folgende Schwachstellen:


Anzeige

  • NUTM-13857 [Basesystem] Tinyproxy vulnerability (ha_proxy) – CVE-2022-40468: Potenzielles Leck von übrig gebliebenen Heap-Daten, wenn benutzerdefinierte Fehlerseitenvorlagen mit speziellen Nicht-Standard-Variablen verwendet werden. Tinyproxy-Commit 84f203f und frühere Versionen verwenden uninitialisierte Puffer in der Funktion process_request(). Der CVSS 3.1-Index wird mit 7.5 (high) angegeben.
  • NUTM-12916 [Basesystem] Curl vulnerabilities – CVE-2021-22924, CVE-2023-28321, CVE-2023-28322 and others

Bei den Curl-Schwachstellen handelt es sich um uralte Kamellen aus 2021 und 2023, die wohl mit dem Update mit gefixt wurden.

Zweite Meldung über Schwachstellen

Auf news.de findet sich der Blog-Beitrag Sophos Unified Threat Management (UTM) Software: Neue Sicherheitslücke! Mehrere Schwachstellen gemeldet, der angibt, dass für die Sophos Unified Threat Management (UTM)-Software eine aktuelle IT-Sicherheitswarnung vorliegt. Der Beitrag bezieht sich auf eine BSI-Meldung vom 5. März 2024, ohne einen Link anzugeben. Ich gehe davon aus, dass das BSI die obigen Schwachstellen thematisiert.

Im automatisch generierten Text heißt es u.a.: "Ein anonymer Angreifer kann mehrere Schwachstellen in der Sophos Unified Threat Management (UTM)-Software ausnutzen, um vertrauliche Informationen offenzulegen, einen Denial of Service zu verursachen Dateien zu manipulieren oder weitere, unbekannte Auswirkungen zu verursachen." Es werden die obigen aufgelisteten Schwachstellen angesprochen, von denen alle Sophos UTM-Firewall-Version vor Version 9.719 betroffen sind. Administratoren sollten daher die UTM-Firewalls zeitnah aktualisieren.

Probleme mit der Version 9.719

Ergänzung: Beachtet die Hinweise in den Kommentaren, die über Probleme mit der Version 9.719 berichten und auf den Beitrag Sophos UTM: After Update to 9.719 IPS not working and Snort not running bei Sophos in der Community verweisen.


Anzeige

Dieser Beitrag wurde unter Sicherheit abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

35 Antworten zu Angriffsversuche auf Sophos UTM Firewalls (März 2024)

  1. Luzifer sagt:

    Es ist die Tage doch erst wieder ein "großes Paket" mit Zugangsdaten aufgetaucht, da ist das vollkommen normal das da alles was im Internet hängt abgegrast wird.

    Gilt auch für Webmailer usw. da wird gerade probiert was der Teufel hergibt… mit Safen Einstellungen und ordentlichen PW aber kaum ein Problem.

    • David sagt:

      Ah, da könnte auch mein Passwort beigewessen sein.
      Über mein Outlook (M365) wurden haufenweise Mails verschickt.

      Das habe ich zum Anlass genommen, sämtliche Passwörter (immer ein anderes im Gegensatz zu vorher) zu ändern und endlich in Bitwarden zu hinterlegen.

      Kann ich nur empfehlen das zu machen :-)

  2. Olli sagt:

    "seit zwei Tagen beobachte ich intensive Login-Versuche auf diverse Firewalls unserer Kunden."

    Das darf man doch so deuten, dass entweder das Userportal, oder das Adminportal oder beide aus dem Internet heraus erreichbar sind? Was ja per se bei keinem Produkt – siehe aktuell auch FritzBox – eine gute Idee ist.

    Brisant dürfte sein, dass viele das Update nicht installiert haben dürfte, weil es den Snort-Prozess tötet und der Fix für den Fix erst seit gestern draußen ist. Der Workaround schon ein paar Tage länger, aber die meisten werden abwarten wie sich der Snort Bug entwickelt

  3. Wolfgang S. sagt:

    Hallo zusammen,

    ich kann feststellen, dass aktuell von Tor-Exit Nodes IP's auf das User-Portal unserer UTM zugegriffen wurde. Loginversuche sind erfolgt mit anscheinend kompromittierten User/Passwortkombinationen, die aber aktuell nicht mehr gültig sind.

    Unser SIEM hat die externen IP's gesperrt. Neue Schwachstellen in der UTM, die über bloße Zugriffe laufen sind mir aktuell nicht bekannt. Auch das BSI hat noch nix rausgelassen, was nicht öffentlich bekannt wäre – aus meiner Sicht.

    Grüße
    Wolfgang

    • Ralph D. Kärner sagt:

      Euer Unternehmen hat kompromittierte Benutzerkennungen? Da ist dann wohl im Vorfeld schon was schief gelaufen. Aber zum Glück gibt es ja Layer 10, der das abfängt, was Layer 9 nicht zu packen kriegt… ich würde vielleicht mal das grundsätzliche Konzept überdenken. Und es heißt "IP-Adressen"; außerdem wird das Mehrzahl-s nicht abgehängt.

  4. Dave.K sagt:

    Auch bei uns gab es am Samstag 09.03. gegen 23:30 Uhr von einer Tor-Exit-Node IP Anmeldeversuche auf das User-Portal.
    Es wurde mit teils wirren aber auch mit unserer aktuellen info@ Mail-Adresse und einigen fremden @t-ipconnect.de Anmeldedaten versucht.

  5. Gordon sagt:

    Hey zusammen,

    habe Sonntagmorgen bei zwei meiner UTM-Kunden auch solche Versuche auf dem User Portal festgestellt, ebenfalls wie bei Wolfgang kamen die auch aus Tor Exit Nodes.

    Habe das zum Anlass genommen, die Patchphasen nicht abzuwarten und gleich das aktuelle 9.719 zu installieren.

  6. JoeBar sagt:

    Traditionell haben bei den Sophos UTM Updates die early Adopter's allerdings nicht viel Freude, so auch diesmal wieder:
    https://community.sophos.com/utm-firewall/f/general-discussion/145567/sophos-utm-after-update-to-9-719-ips-not-working-and-snort-not-running

  7. ChristianWe sagt:

    Hallo zusammen,
    wir haben das Update sofort eingespielt und sind in einen Fehler mit Snort bzw. der IPS gelaufen.
    Sind daher wieder zurück auf die alte Version und haben abgewartet bis Sophos es gelöst hat. Gibt mittlerweile einen Workaround dazu:

    Hab es noch nicht getestet, werde es aber nun zügig angehen.

  8. michael sagt:

    Die UTM kann doch Länder per GEO-blocking aussperren – also dann mal loß :-)

    • Gigabernie sagt:

      "also dann mal loß :-)"
      Da kann man schnell ins Messer laufen.
      Wer hätte gedacht, dass ESET die Updateserver in der Slowakei stehen haben.
      Ist mir letzten Monat passiert :(
      Wenn man Singapore sperrt, kann der Chef keine A380 Flüge mehr buchen.
      Wenn man China sperrt, kann Marketing nicht mehr mit Alibaba kooperieren.
      Auch schon alles passiert…
      Klar ist GeoIP blocking bequem, aber mit Vorsicht zu geniesen!

      • Sebastian sagt:

        Es würde ja schon ausreichen wenn man eingehende Verbindungen blockiert, man muss das Geoblocking ja nicht unbedingt auch gleich noch für ausgehende Verbindungen einrichten… Das würde bei dieser Problematik bereits Abhilfe schaffen.

    • Ralph D. Kärner sagt:

      Mach mal. Und dann Versuch mal, für einen Samsung TV ein Update zu ziehen. Oder auch nur bei Samsung selbst zu schauen, was so ein aktueller 65 Zoll Screen kosten könnte; für die Haushaltsplanung.

    • poiuz sagt:

      Hallo Gigabernie und Ralph D. Kärner,

      ich hoffe das ist ein Scherz und Sie beiden kennen den Unterschied zwischen eingehenden und ausgehenden Verbindungen oder habe ich etwas falsch verstanden?

  9. Gigabernie sagt:

    Vielleicht kann mir jemand erklären, warum man externen Zugriff auf eine UTM einrichtet? Bequemlichkeit? Hat da jemand den Sinn einer Firewall nicht verstanden?
    Ich könnte mir vorstellen, dass jemand das vorgeschriebene NSA-Backdoor auf der Sophos knackt. Das kann der Betreiber nicht verhindern. Außer man schützt die Sophos UTM indem man eine SecurePoint UTM davorstellt.

    • Gordon sagt:

      Das User Portal ist dazu da, Anfragen nach außen zu beantworten. Der SMTP Proxy ebenfalls. Auch die WAF kann eine Authentifizierung beinhalten.

      Da muss ich leider ganz frech gegenfragen: Hat da jemand den Sinn einer UTM nicht verstanden?

      Um aber konstruktiv zu bleiben kurz ein paar Worte zu SecurePoint vs Sophos (UTM, von der anderen Krücke redet hoffentlich niemand):
      Die Sophos mag ich sehr, allerdings ziehe ich momentan meinen Hut vor SP. Tatsächlich hat mich das UI bisher immer eher abgestoßen, das Ding wird mit dem Redesign deutlich benutzbarer und irgendwie scheinen da Leute zu sitzen die "die guten alten Astaro Zeiten" noch kennen.

      Technisch kann ich es noch nicht so recht beurteilen, habe einen Kunden mit so einer Kiste im Betrieb die wenige Wochen nach Ablauf der Garantie die Hufe gerissen hatte und durch eine neue ersetzt werden musste. Ich hoffe dass es nur ein bedauerlicher Einzelfall war.
      Ansonsten sind die Kisten im Betrieb unauffällig, wie es so schön heißt "tut was sie soll".

      • Jan sagt:

        Hallo Gordon,

        Wir benutzen Securepoint UTMs und sind sehr zufrieden damit.
        Die waren etwas gewöhnungsbedürftig aber wenn die mal eingerichtet sind laufen die gut.
        Auch and der Software wird regelmäßig gearbeitet und weiterentwickelt siehe Wireguard, Cluster Updates und wie schon erwähnt die neue UI.
        Der Support ist auch sehr gut finde ich (kann aber auch am Partner Status liegen).
        Ob die jetzt mit Sophos mithalten können kann ich nicht beantworten.

      • Gigabernie sagt:

        Also bei mir kommt von außen niemand auf eine UTM, nur über VPN auf ein internes Interface – auch ich. SMTP macht der Smarthost hinter der UTM. Und wenn jemand eine VPN-Konfiguration/Installation braucht, schicke ich sie ihm. Dafür braucht man kein Userinterface oder Portal aufmachen.

        • Gordon sagt:

          VPN-Konfigurationen über Seitenkanal klingen auf jeden Fall sehr sicher. Was da mit dem SMTP passiert riecht mir auch sehr nach Gebastel.

          Viel Erfolg damit, aber vielleicht sollte man in dem Fall eher unterlassen, anderer Leute Konfigurationen zu beurteilen.

  10. Michael S. sagt:

    In den Tageslageberichten des BSI wird am 05.03. oder 06.03. nichts besonders erwähnt.
    Im Bericht vom 07.03. findet sich in der täglichen tabellarischen Übersicht neuer Schwachstellen ein Link auf folgende Seite:

    https://wid.cert-bund.de/portal/wid/securityadvisory?name=WID-SEC-2024-0556

    Obwohl ich sonst immer ziemlich gut am Ball bin bei Sophos Updates habe ich von diesem in der Tat erst heute hier erfahren.

  11. Olly sagt:

    Wer gibt denn die Admin-Oberfläche oder das User-Interface heutzutage noch nach extern frei? Wenn das nur von intern erreichbar ist, ist man ja safe.

    • Ralph D. Kärner sagt:

      Ohne Userinterface nach außen willst Du mir eben flott mal beibringen, wie ich wohl meine Konfigurationsdatei für den VPN Zugang herunter laden kann.
      Vielen Dank im voraus.

      Was das Admininterface angeht: das unterschreibe ich Dir sofort, das ist gar nicht erreichbar hier. Wenn ich wirklich so stark patze, dass ich von außen was an der Konfiguration meiner UTM verändern müsste, ist es nicht nur Zeit, nach Hause zu fahren, sondern auch mal darüber nachzudenken, weswegen man den Beruf eigentlich gelernt hat.

      • Blubmann sagt:

        Das ist in Sophos Firewall OS v20 deutlich besser geregelt. VPN-Portal ist unabhängig vom Userportal. Ein Grund mehr da drauf zu wechseln, auch wenn ich mich sehr lange dagegen wehren konnte.

        • poiuz sagt:

          Ah, das ist vernünftig, denn außer VPN und Webfilterzertifikat, habe ich deswegen im User Portal alles abgeschaltet. So kann man dann die restlichen Funktionen im LAN freigeben.

  12. Ralph D. Kärner sagt:

    Die 719 wird hier noch gar nicht angeboten, quer über alle Firewalls. Allerdings ist das Admininterface auch nur aus dem LAN erreichbar, und das auch nur für entsprechende Benutzerkonten, die nicht für den täglichen Betrieb genutzt werden. Von daher bin ich ein wenig entspannter, sowohl im beruflichen Bereich, als auch im privaten Sektor.

  13. Blubmann sagt:

    Endlich zahlt sich mein Script mal aus, was mir alle Tor-Exit-Nodes in regelmäßigen Abständen in die UTM importiert und dann per Blackhole-NAT wegschmeißt

    • poiuz sagt:

      Immer her mit dem Script.

    • KSteffen sagt:

      Hätte auch Interesse…

    • Stephan sagt:

      Wäre auch interresiert :-)
      Wie hast du das mit dem Blackhole-NAT in der UTM umgesetzt?

      • Blubmann sagt:

        Das kostet aber :-D…..Ne Spaß, dann lasse ich euch mal an dem Script teilhaben. Evtl. gibt es ja noch ein paar Verbesserungen eurerseits. Allllssooo, zunächst natürlich das übliche…Keine Haftung für Schäden, Probleme und sonstiges. Erstmal auf einer Testfirewall ausprobieren, bevor es in den Livebetrieb geht und es ist absolut kein schönes Script, da ich das mal in einer Nacht und Nebelaktion vor 3 Wochen zusammengeschrieben habe. Ihr müsst zunächst einen neuen lokalen Benutzer auf der UTM anlegen und Api-Zugriff für diesen einrichten. Anschließend benötigt ihr ein neues Gruppenobjekt des Typs "Network group" mit dem Namen "Tor-Exit-Nodes" -> Ganz wichtig, da da später drauf referenziert wird. Dann benötigt ihr ein DNAT von Quelle "Tor-Exit-Nodes" mit Service Any an z.B. euer WAN-Netz. Translation dann zum Blackhole, wobei das ein Objekt ist mit der IP 240.0.0.1. Damit ist alles vorbereitet, die Exitnodes werden in dem Script in die Gruppe gepackt. Das Script selbst ist ein Powershell, was ich von einem Server aus alle 10 Minuten aufrufe. Aufruf erfolgt über einen GMSA, damit das recht sicher ist. Oben eure Werte deklarieren und ggf. den Api-Token in einem Securestring speichern oder halt als Klartext in das Script. Danach wird das Logrotate und die Loggingfunktion initialisiert. Dann eine Prüüfung, ob die Firewall erreichbar ist und anschließend werden die Api-Aufrufe deklariert und der Token für die Anmeldung übergeben. Dann wird die aktuelle Liste von IPs heruntergeladen und in txt-Datei geschrieben. Dann werden die bereits vorhanden Hosts aus der UTM ausgelesen und es wird eine Differenztabelle erstellt von IPs die in der UTM fehlen. Achtung hier werden am Anfang direkt mehrere 1000 Objekte angelegt, dauert also ein paar Minuten. Alle Tor-IPs bekommen den Namen zz_, damit sie in der Objektliste ganz hinten sind – dient zum besseren Überblick – und bekommen den Kommentar "Tor-Exit-Node (per Script erstellt)". Dann werden alle Hostobjekte ausgelesen udn die Objekte mit dem Kommentar von oben werden in die Tor-Exit-Nodes-Gruppe hinzugefügt. Zum Schluss wird eine Differenzliste mit Hosts erzeugt, die nicht mehr als Tor-Exit-Node gelistet sind und aus der UTM gelöscht – sie verschwinden dann automatisch aus der Gruppe. Hier das Script:

        #Setzen der Parameter für das Script
        $UTMAddress = "
        $UTMApiToken = Get-Content -path "C:\Scripts\Add-TorExitNodes.securestring" | ConvertTo-SecureString #Speicherort des zuvor verschlüsselten Kennworts
        $newTXTHostList = 'C:\Scripts\Tor_ip_list_EXIT.txt'
        $logFile = "C:\Logs\Tor-Exit-Node-Import\import-$(get-date -f yyyy-MM-dd).txt"
        $newCSVURL = "https://torstatus.rueckgr.at/ip_list_exit.php/Tor_ip_list_EXIT.csv"
        $LogPath = "C:\Logs\Tor-Exit-Node-Import\"
        $Datum = get-date -Format "dd.MM.yyyy"

        #Logrotateparameter
        $LogFiles = "*.txt"
        [int] $LogRetention = "-14" # Tage nach denen rotiert werden soll

        #Logrotation Begin
        Get-ChildItem $LogPath -Include $LogFiles -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays($LogRetention)} | Remove-Item
        #Logrotation Ende

        #Erstellen von Loggingfunktion
        ##LogFile Prüfen und erstellen falls nicht vorhanden
        if (!(Test-Path ("$LogPath\$Datum" + "_LogFile.txt")))
        {
        ##Erstellen des LogFiles
        $Logfile = (New-Item ("$LogPath\$Datum" + "_LogFile.txt") -ItemType File -Force).FullName

        ##Überschrift für das LogFile
        Add-Content $Logfile ("Die LogDatei wurde erstellt am $(get-date -Format "dddd dd. MMMM yyyy HH:mm:ss") Uhr`n").ToUpper()

        ##Leerzeilen einfügen
        Add-Content $Logfile "`n`n"

        ##Spaltenüberschrift generieren
        $LogInhalt = "{0,-25}{1,-12}{2}" -f "Zeitstempel","Typ","Logtext"

        ##Überschrift dem Logfile hinzufügen
        Add-Content $Logfile $LogInhalt
        }
        else{
        ##Falls Logfile schon vorhanden, Datei in die Variabel $Logfile aufnehmen
        $Logfile = (Get-Item ("$LogPath\$Datum" + "_LogFile.txt")).FullName

        }

        #Eigentliche Loggingfunktion
        function write-LogRecord{
        param(
        [ValidateSet("INFO","WARNING","ERROR","DEBUG")]
        [String]$Typ="INFO",
        [ValidateNotNullOrEmpty()]
        [String]$Text
        )

        ##Generieren des Zeitstempels für die einzelnen LogZeilen
        $TimeStamp = get-date -Format "[dd.MM.yyyy HH:mm:ss]"

        ##Inhalt entsprechend Formatieren und zusammensetzen
        $LogInhalt = "{0,-25}{1,-12}{2}" -f $TimeStamp,$Typ,$Text

        ##Hinzufügen zum LogFile
        Add-Content $Logfile $LogInhalt
        }

        #Prüft, ob die Firewall erreichbar ist
        if (!(Test-Connection $UTMAddress -Quiet )){
        write-LogRecord -Typ ERROR "Firewall nicht erreichbar"
        Exit
        }

        #Generieren der API URL
        $urlHost = "https://"+ $UTMAddress + ":4444/api/objects/network/host/"
        $urlAddtoGroup = "https://"+ $UTMAddress + ":4444/api/objects/network/group/REF_NetGroTorexitnod"
        $urlDeleteHost = "https://"+ $UTMAddress + ":4444/api/objects/network/host/"

        #Anpassen des SSL Verhaltens der Powershell für self signed Certificates
        Add-Type @"
        using System.Net;
        using System.Security.Cryptography.X509Certificates;
        public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
        ServicePoint srvPoint, X509Certificate certificate,
        WebRequest request, int certificateProblem) {
        return true;
        }
        }
        "@
        [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

        #API Token wird für die Anmeldung an der UTM vorbereitet
        $bstr=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($UTMApiToken)
        $retpwd=[System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)
        $tokenBase64 = [Convert]::ToBase64String([System.Text.Encoding]::Default.GetBytes("token:" + $retpwd))

        #Header für den HTTP Request wird zusammengesetzt
        $headers = @{}
        $headers.add("Content-Type", "application/json")
        $headers.add("Accept", "application/json")
        $headers.add("Authorization",'Basic ' + $tokenBase64)

        #Download der aktuellen Liste mit IP Adressen der Exitnodes
        Invoke-WebRequest -Uri "$newCSVURL" -OutFile "$newTXTHostList"

        ##Erstelle Liste der zu importierenden IPs
        if(Test-Path $newTXTHostList) {
        $newImportHostList=@()
        $newImportHostList = Get-Content -path "$newTXTHostList" | where {$_ -ne ""}
        write-LogRecord -Typ INFO "TXT-Import durchgeführt"
        }

        #Alle Hosts auf der Firewall auslesen und Tor-Exit-Nodes herausfiltern
        ##Hole alle Hosts aus der Firewall
        $existHostList = Invoke-RestMethod -Uri $urlHost -Method Get -Headers $headers
        ##Extrahiere alle Hosts, die im Kommentar als Tor-Exit-Node identifiziert werden und speichere sie in ein Array
        $existTorExitList = $existHostList | Where-Object {$_.comment -like "Tor-Exit-Node (per Script erstellt)"}

        write-LogRecord -Typ INFO "Existierende Hosts ausgelesen"

        #Die zu importierende Liste wird mit den bereits vorhandenen IPs verglichen
        ##Erstelle Array für den differenziellen Import
        $diffImportList=@([pscustomobject]@{})
        ##Setze Status-Flags für das erkennen, ob ein Wert in den beiden Arrays vorhanden ist
        $present = 0
        ##Variable für das erkennen, ob es der erste Durchlauf ist. Beim Kopieren von Arrays mit Objekten muss der erste Arrayinhalt anders kopiert werden wie die nachfolgenden
        $firstrun = 0
        ##Äußere Schleife für die zu neu importierenden IPs
        for($i=0; $i -le $newImportHostList.Length-1; $i++){
        ##Innere Schleife für die bereits existierenden Exit-Nodes
        for($j=0; $j -le $existTorExitList.Length-1; $j++){
        ##Vergleiche IP der äußeren Schleife mit Adresse der inneren Schleife
        if ($newImportHostList[$i] -eq $existTorExitList[$j].address){
        ##Setze Status-Flag, wenn IP vorhanden, ansonsten tue nichts
        $present = 1
        }else{
        }
        }
        ##Prüfe Bedingung, vorhanden = 0. falls das zustimmt, ist die IP der zu importierenden Liste nicht in der Firewall
        if ($present -eq 0){
        ##Prüfe auf ersten Durchgang
        if ($firstrun -eq 0){
        ##Beim erstendurchgang muss der Wert manuell gesetzt werden. Das Firstrun-Flag wird dann gesetzt
        $diffImportList[0] = $newImportHostList[$i]
        $firstrun = 1
        }else{
        ##Bei allen weiteren Durchläufen wird die IP "addiert"
        $diffImportList += $newImportHostList[$i]
        }
        }else{
        ##Setze Status-Flag zurück für nächsten Durchlauf
        $present = 0
        }
        }

        write-LogRecord -Typ INFO "Differenzliste erstellt"

        #Host der Firewall hinzufügen
        if ($diffImportList.Count -le 1){
        write-LogRecord -Typ WARNING "Differenzliste ist leer"
        }else{
        foreach ($newHost in $diffImportList){
        #generieren des Body mit den Host Eigenschaften
        $newHostbody = '{
        "address":"'+$newHost+'",
        "name":"zz_'+$newHost+'",
        "comment":"Tor-Exit-Node (per Script erstellt)"
        }'
        try{
        #es wird versucht den Host anzulegen
        Invoke-RestMethod -Uri $urlHost -Method Post -Headers $headers -Body $NewHostbody | convertto-json
        write-LogRecord -Typ INFO "Der Host $newHost wurde angelegt"
        } catch{
        #wenn der Host nicht angelegt werden konnte wird eine entsprechende Fehlermeldung ausgegeben
        write-LogRecord -Typ WARNING "Der Host $newHost kann nicht angelegt werden"
        write-LogRecord -Typ ERROR $_
        }
        }

        }

        #Erneutes Auslesen der Liste, damit alle Host der Gruppe hinzugefügt werden können
        $existHostList = Invoke-RestMethod -Uri $urlHost -Method Get -Headers $headers
        ##Extrahiere alle Hosts, die im Kommentar als Tor-Exit-Node identifiziert werden und speichere sie in ein Array
        $existTorExitList = $existHostList | Where-Object {$_.comment -like "Tor-Exit-Node (per Script erstellt)"}

        #Host der Gruppe zuweisen
        $groupMembers=@()
        $groupbody = @()
        ##Aktuelle Hosts in ein Array packen und in Json übergeben. Danach per Patch die Hosts der Gruppe zuordnen
        foreach ($groupMember in $existTorExitList){
        if ($groupMember -ne $existTorExitList[-1]){
        $groupMembers = """"+$groupMember._ref+""","+$groupMembers
        }else{
        $groupMembers = $groupMembers+""""+$groupMember._ref+""""
        }
        }
        $groupbody = '{
        "members": ['+$groupMembers+']
        }'
        Invoke-RestMethod -Uri $urlAddtoGroup -Method Patch -Headers $headers -Body $groupbody | convertto-json
        write-LogRecord -Typ INFO "Hosts wurden der Tor-Exit-Nodegruppe auf der Firewall hinzugefügt"

        #Nicht mehr vorhandene Host aus der Gruppe löschen
        ##Header modifizieren, damit Löschvorgang funktioniert
        $headers.add("X-Restd-Err-Ack", "all")

        ##Die zu importierende Liste wird mit den bereits vorhandenen IPs verglichen
        ##Erstelle Array für den differenziellen Import
        $diffDeleteList=@([pscustomobject]@{})
        ##Setze Status-Flags für das erkennen, ob ein Wert in den beiden Arrays vorhanden ist
        $present = 0
        ##Variable für das erkennen, ob es der erste Durchlauf ist. Beim Kopieren von Arrays mit Objekten muss der erste Arrayinhalt anders kopiert werden wie die nachfolgenden
        $firstrun = 0
        ##Äußere Schleife für die bereits vorhandenen IPs
        for($i=0; $i -le $existTorExitList.Length; $i++){
        ##Innere Schleife für die Online-Liste
        for($j=0; $j -le $newImportHostList.Length; $j++){
        ##Vergleiche IP der äußeren Schleife mit Adresse der inneren Schleife
        if ($existTorExitList[$i].address -eq $newImportHostList[$j]){
        ##Setze Status-Flag, wenn IP vorhanden, ansonsten tue nichts
        $present = 1
        }else{
        }
        }
        ##Prüfe Bedingung, vorhanden = 0. Falls das zustimmt, ist die IP der zu importierenden Liste nicht in der Firewall
        if ($present -eq 0){
        ##Prüfe auf ersten Durchgang
        if ($firstrun -eq 0){
        ##Beim ersten Durchgang muss der Wert manuell gesetzt werden. Das Firstrun-Flag wird dann gesetzt
        $diffDeleteList[0] = $existTorExitList[$i]._ref
        $firstrun = 1
        }else{
        ##Bei allen weiteren Durchläufen wird die IP "addiert"
        $diffDeleteList += $existTorExitList[$i]._ref
        }
        $buffer = $existTorExitList[$i].address
        write-LogRecord -Typ INFO "Der Host $buffer ist kein Exit-Node mehr und wird gelöscht"
        }
        ##Setze Status-Flag zurück für nächsten Durchlauf
        $present = 0
        }
        write-LogRecord -Typ INFO "Die Deleteliste wurde erstellt"

        ##Prüfe, ob die Deleteliste leer ist, damit Fehler abgefangen werden können. Ansonsten führe Löschvorgang durch
        if ($diffDeleteList.Count -le 1){
        write-LogRecord -Typ WARNING "Die Deleteliste ist leer"
        }else{
        foreach ($deleteMember in $diffDeleteList){
        Invoke-RestMethod -Uri $urlDeleteHost$deleteMember -Method Delete -Headers $headers | convertto-json
        }
        write-LogRecord -Typ INFO "Deleteliste abgearbeitet"
        }

  14. admimimistrator sagt:

    Informationspolitik auch bei Sophos unterirdisch, keinerlei pro-aktive Meldungen zu Schwachstellen. Konnte mich heute den ganzen Tag weltweit mit der ganzen Geschichte beschäftigen, abgeschossene Proxies z.B.. Logs sind voll mit versuchten Attacken. Hey, ihr braucht XDR und MDR usw., aber die Basics nicht im Griff. Oder braucht man die genannten Services, um deren eigenen Lücken zu kaschieren? Fragen über Fragen…

    • Blubmann sagt:

      Sagen wir es mal so, für Sophos ist die UTM quasi Geschichte, da wird nur noch das nötigste gemacht. Von den Supportern weiß keiner mehr irgendetwas darüber und gefühlt gibt es nur noch 10 Programmierer, die das Ding bis EoL noch irgendwie am Laufen halten. Dementsprechend vermutlich dann auch das Kommunikations-/Informationsproblem…..wobei das kein alleinstellungsmerkmal von Sophos ist. Mit dem Sophos Firewall OS kann das natürlich auch besser kaschiert werden, wenn es eine Lücke gibt, da Sophos dort direkt ohne neue Firmware ein Hotfix installieren kann, ohne das man es wirklich mitbekommt (außer man schaut in die Logs). Die Option des Hotfixing finde ich aber ganz generell nicht so verkehrt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.