thor68
Goto Top

Angreifer outet sich als Localhost

Mit tShark, von Wireshark, analysiere ich mittels PHP in Echtzeit den Datenstrom auf meinem Server. Mein Ziel ist es, Angreifer früh zu erkennen und über die integrierte Windows Firewall auszusperren. Das funktioniert so weit ganz gut. Angreifer, die für ihren Verbindungsaufbau einen Hostnamen verwenden, lasse ich in deren IPs auslösen, um sie auszusperren. Nun ist es leider so, dass manche dieser Hostnamen ihre tatsächliche IP verschleiern. Nslookup liefert bei einem Angreifer sogar 127.0.0.1, womit ich ihn leider nicht aussperren kann. Die Windows-Firewall erlaubt lediglich die Sperre in Form der IP. Und die Hostsdatei ist keine Lösung für den Input. Hat jemand eine Idee, wie man den Verkehr bzw. wie man Hostnamen anderweitig blockiert bekommt? Und das am besten mittels Command Line damit ich die Sperre automatisch setzen und entfernen kann. Per DNS scheint es auch nicht zu gehen. Na ja, freue mich auf ein konstruktives Gespräch mit euch.

Content-Key: 6126476607

Url: https://administrator.de/contentid/6126476607

Printed on: April 27, 2024 at 21:04 o'clock

Member: LordGurke
LordGurke Feb 25, 2023 at 13:55:49 (UTC)
Goto Top
Das ganze Konstrukt klingt merkwürdig — aber Tshark zeichnet die IP auf, da muss man nichts übersetzen. Nur vielleicht mal konfigurieren, dass man keine IP-Adressen in Hostnames aufgelöst haben will, was eigentlich sowieso fast immer Murks ist. Lass dir von TShark die unübersetzte IP ausgeben, Problem gelöst.
Member: thor68
thor68 Feb 25, 2023 at 14:08:54 (UTC)
Goto Top
Mhm, die übersetzte IP ist 127.0.0.1. was ist daran gelöst? Die Strategie dahinter ist, Angreifer früh zu erkennen, um sie im Ansatz zu blockieren.
Member: Spirit-of-Eli
Spirit-of-Eli Feb 25, 2023 at 14:26:30 (UTC)
Goto Top
Moin,

was ist denn dein ganzes Konstrukt dahinter?
Also wie willst du über haupt einen Angreifer erkennen?

Des weiteren ist die Frage, was ist das für ein Webserver Konstrukt? Läuft dort irgend ein Proxy?

Gruß
Spirit
Member: chgorges
chgorges Feb 25, 2023 at 14:30:36 (UTC)
Goto Top
Aus Securitysicht ist es schon fatal, bzw. zu spät, wenn der Angreifer es bis zum löchrigen Windows OS und zugehöriger nichtsnutzigen Software-Firewall schafft.

Früherkennung beginnt weit vornedran und nicht erst ab Schicht 5.

VG
Member: Vision2015
Vision2015 Feb 25, 2023 at 14:51:57 (UTC)
Goto Top
moin...
Zitat von @thor68:

Mhm, die übersetzte IP ist 127.0.0.1. was ist daran gelöst? Die Strategie dahinter ist, Angreifer früh zu erkennen, um sie im Ansatz zu blockieren.

und du schaust dir das 24/7 an....

face-smile

Frank
Member: thor68
thor68 Feb 25, 2023 at 15:07:34 (UTC)
Goto Top
Es gibt eine Art konformen Verkehr und einen, wobei Angreifer versuchen, das System zu kompromittieren. Mit einem Portscan beginnt zumeist der Angriff. Wenn jemand einen Port abfragt, der nicht zur Verfügung steht, ist das bereits ein erstes Zeichen für einen nicht konformen Betrieb. Das erkennt mein Skript und sperrt den Angreifer über die Firewall aus. Wenn er mehrere IPs besitzt, blockiere ich die ebenfalls. Ich versuche verschiedene Strategien. Zum Beispiel werte ich das Windows- Ereignisprotokoll aus und sperre Loginversuche auf die Datenbank.
Member: thor68
thor68 Feb 25, 2023 at 15:14:32 (UTC)
Goto Top
Zitat von @Spirit-of-Eli:

Moin,

was ist denn dein ganzes Konstrukt dahinter?
Also wie willst du über haupt einen Angreifer erkennen?

Des weiteren ist die Frage, was ist das für ein Webserver Konstrukt? Läuft dort irgend ein Proxy?

Gruß
Spirit

Es ist ein virtueller Windows Server 2019, in einem Frankfurter Rechenzentrum, womit ich eigentlich nur Datenschutzanalysen durchführe. Aber parallel arbeite ich daran, Angreifer möglichst früh zu erkennen und auszusperren.
Member: thor68
thor68 Feb 25, 2023 at 15:17:47 (UTC)
Goto Top
Ich habe ein PHP-Script geschrieben, womit der Verkehr in Echtzeit analysiert wird.
Member: thor68
thor68 Feb 25, 2023 at 15:27:19 (UTC)
Goto Top
Zitat von @Vision2015:

moin...
Zitat von @thor68:

Mhm, die übersetzte IP ist 127.0.0.1. was ist daran gelöst? Die Strategie dahinter ist, Angreifer früh zu erkennen, um sie im Ansatz zu blockieren.

und du schaust dir das 24/7 an....

face-smile

Frank

Nein, ein PHP-Skript macht das in Echtzeit und somit 24/7.
Member: Lochkartenstanzer
Lochkartenstanzer Feb 25, 2023 updated at 15:59:50 (UTC)
Goto Top
Moin,

Angreifer outet sich als Localhost

Falsch! Du interpretierst die Daten, die u mit tsharkl/wireshark sammelst verkehrt. Du darfst nicht die per reverse-DNS aufgelösten Namen verwenden, um daraus eine IP-Adresse abzuleiten, sondern mußt direkt die mitgeschnittenen IP-Adressen nehmen. Als Angreifer hat man normalerweise imme rdie Möglichkeit, per reverse-DNS belibige Namen zu IP-Adressen anzugeben u.a. auch "localhost" oder auch per DNS zu jedem Namen aus seiner eigenen Domain jede belibeige IP-Adresse auszuliefern, u.a. auch 127.0.0.1

Also:

Wenn Du das vernünftig umsetzen willst, nimm direkt die IP-Adressen aus dem Mitschnitt und nicht irgendwelche IP-Adresse die nach zweimaligem durchnudeln durch das DNS rausfallen.

lks
Member: thor68
thor68 Feb 25, 2023 at 16:08:23 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

Moin,

Angreifer outet sich als Localhost

Falsch! Du interpretierst die Daten, die u mit tsharkl/wireshark sammelst verkehrt. Du darfst nicht die per reverse-DNS aufgelösten Namen verwenden, um daraus eine IP-Adresse abzuleiten, sondern mußt direkt die mitgeschnittenen IP-Adressen nehmen. Als Angreifer hat man normalerweise imme rdie Möglichkeit, per reverse-DNS belibige Namen zu IP-Adressen anzugeben u.a. auch "localhost" oder auch per DNS zu jedem Namen aus seiner eigenen Domain jede belibeige IP-Adresse auszuliefern, u.a. auch 127.0.0.1

Also:

Wenn Du das vernünftig umsetzen willst, nimm direkt die IP-Adressen aus dem Mitschnitt und nicht irgendwelche IP-Adresse die nach zweimaligem durchnudeln durch das DNS rausfallen.

lks

Okay, keine schlechte Idee! 👍🏻 Ich veranlasse tShark dazu die IP unberührt zu lassen. Du bekommst selbstverständlich ein Feedback.
Member: thor68
thor68 Feb 25, 2023 at 16:24:53 (UTC)
Goto Top
Zitat von @LordGurke:

Das ganze Konstrukt klingt merkwürdig — aber Tshark zeichnet die IP auf, da muss man nichts übersetzen. Nur vielleicht mal konfigurieren, dass man keine IP-Adressen in Hostnames aufgelöst haben will, was eigentlich sowieso fast immer Murks ist. Lass dir von TShark die unübersetzte IP ausgeben, Problem gelöst.

Update: Jap, ich glaube tatsächlich, dass das die Lösung ist. 😘👍🏻 LKS hat mir den Grund erklärt. Und ja, das passt natürlich.
Member: thor68
thor68 Feb 25, 2023 at 16:56:26 (UTC)
Goto Top
Dank zweier konstruktiver Hinweise von LordGurke und Lochkartenstanzer habe ich das Problem lösen können. 🙂👍🏻

Der Angreifer ist: zg-1220b-158.stretchoid.com

Die originale IP ist 107.170.238.14

Der Hostname löst auf 127.0.0.1 auf.

Über die tatsächliche IP kann den Angreifer nun aussperren!
Member: Cloudrakete
Cloudrakete Feb 25, 2023 at 17:35:34 (UTC)
Goto Top
Zitat von @thor68:

Es gibt eine Art konformen Verkehr und einen, wobei Angreifer versuchen, das System zu kompromittieren. Mit einem Portscan beginnt zumeist der Angriff. Wenn jemand einen Port abfragt, der nicht zur Verfügung steht, ist das bereits ein erstes Zeichen für einen nicht konformen Betrieb. Das erkennt mein Skript und sperrt den Angreifer über die Firewall aus. Wenn er mehrere IPs besitzt, blockiere ich die ebenfalls. Ich versuche verschiedene Strategien. Zum Beispiel werte ich das Windows- Ereignisprotokoll aus und sperre Loginversuche auf die Datenbank.

Ein Portscan sollte gar nicht erst auf deinem Zielserver ankommen. NG-Firewalls haben fast durch die Bank weg entsprechende Pattern, die Portscans automatisch erkennen und blockieren.

Die Windows-Firewall sollte ausschließlich genutzt werden, um die Kommunikation im selben Subnetz zwischen zwei Servern weiter zu steuern / limitieren.
Als Edge-Firewall reicht diese, sowie alle anderen Software-Firewalls nicht aus.

Was ist denn überhaupt dein use-case?
Member: thor68
thor68 Feb 25, 2023 at 18:34:20 (UTC)
Goto Top
Womöglich macht die Firewall ihre Hausaufgaben, oder aber auch nicht. Ich greife den Verkehr zwecks Früherkennung direkt am Adapter vor der Firewall ab. Ich möchte den Angreifer nicht erst erkennen, wenn er im Wohnzimmer steht, sondern bereits bei seinem Blick durchs Fenster. Mein Remote-Desktop habe ich durch eine Firewallregel geschützt, die meine IP enthält. Wenn jemand den Port 3389 aufruft, trage ich ihn zwecks Blockierung für ein paar Tage in die Firewall ein. Bei meinen vielen Datenschutzanalysen, die ich bisher online durchgeführt habe, konnte ich feststellen, nur äußerst selten von einer Firewall aufgehalten worden zu sein. Da besteht definitiv mehr Bedarf an Sichheit.
Member: StefanKittel
StefanKittel Feb 25, 2023 at 18:35:10 (UTC)
Goto Top
Hallo,

Du hast es ja schon gelöst, aber die Reihenfolge ist ja eher
- IP des Zugriffes
- Hostname zu IP ermitteln mit kurzem Timeout (um die Verbindung nicht zu verzögern)
- Land und ggf. Reputation mittels IP-DB ermitteln (offline oder online)
- Dann IP-Reputation und Geo-Block prüfen und ggf. gleich blocken
- Rate-Limiter in abhängigkeit der IP-DB

Auch kannst Du prüfen ob Du von einem Blacklist- zu einem Whitelist-Modus wechseln.
Z.B. lässt Du nur IP-Adressen zu die vorher eine "versteckte" URL geöffnet haben (Trigger)

Kommt halt darauf an ob es ein offenes System (Web-Seite oder -Shop) ist oder ein geschlossenes für einen geschlossenen Benutzerkreis.

Portscans auszuwerten ist meist vergebene Zeit. Die kommen zu 99% über gehackte Proxy-Server.

Stefan
Member: thor68
thor68 Feb 25, 2023 at 19:00:11 (UTC)
Goto Top
Zitat von @StefanKittel:

Hallo,

Du hast es ja schon gelöst, aber die Reihenfolge ist ja eher
- IP des Zugriffes
- Hostname zu IP ermitteln mit kurzem Timeout (um die Verbindung nicht zu verzögern)
- Land und ggf. Reputation mittels IP-DB ermitteln (offline oder online)
- Dann IP-Reputation und Geo-Block prüfen und ggf. gleich blocken
- Rate-Limiter in abhängigkeit der IP-DB

Auch kannst Du prüfen ob Du von einem Blacklist- zu einem Whitelist-Modus wechseln.
Z.B. lässt Du nur IP-Adressen zu die vorher eine "versteckte" URL geöffnet haben (Trigger)

Kommt halt darauf an ob es ein offenes System (Web-Seite oder -Shop) ist oder ein geschlossenes für einen geschlossenen Benutzerkreis.

Portscans auszuwerten ist meist vergebene Zeit. Die kommen zu 99% über gehackte Proxy-Server.

Stefan

Ja, die IP löse ich gerade im Testmodus zum Hostnamen auf. Sofern es einen Eintrag gibt. Ist ja nicht immer der Fall. wenn ich ihn bekomme, löse ich ihn direkt wieder in seine IPs auf. Falls sich 127.0.0.1 darunter befindet, blockiere ich die IP, wovon der Aufruf kam. Falls Localhost nicht dabei ist, schau ich, ob sich die IP darunter befindet, worüber der Aufruf erfolgt ist. Bei manchen trifft das zu aber auch nicht. Schritt für Schritt analysiere ich das auf diesem Weg. Eine IP Datenbank habe ich integriert und kann die Organisationen und Herkunftsländer abfragen.

Kann ich dazu nähere Informationen bekommen?

"Auch kannst Du prüfen ob Du von einem Blacklist- zu einem Whitelist-Modus wechseln.
Z.B. lässt Du nur IP-Adressen zu die vorher eine "versteckte" URL geöffnet haben (Trigger)"
Member: StefanKittel
StefanKittel Feb 25, 2023 updated at 19:58:47 (UTC)
Goto Top
Zitat von @thor68:
Kann ich dazu nähere Informationen bekommen?
"Auch kannst Du prüfen ob Du von einem Blacklist- zu einem Whitelist-Modus wechseln.
Z.B. lässt Du nur IP-Adressen zu die vorher eine "versteckte" URL geöffnet haben (Trigger)"

Ja, wobei das ein sehr weites Feld ist.
Ich habe eine Web-Application-Firewall programmiert welche wir kommerziell anbieten.
Sowohl im Proxy- als auch API-Modus.

D.h. jeder Zugriff, auch schon der 1. läuft durch unser System bevor an das Zielsystem weitergegeben wird.
Wenn es ein geschlossenens System ist, z.B. Intranet, werden alle Zugriff mit einem 403 geblockt.

Ein ganz einfaches System ist z.B. wenn man z.B. die URL https://login.firma.de/connect öffnet, kommte die IP auf eine temporäre Liste und wird für 8 Stunden erlaubt. Dazu optional Geo-Block, Login, 2FA, Client-Zertifikate. Kommt sehr auf den Kunden und das System an. Meist als Art Pre-Login für einfache Websysteme wie CMS oder Shops. Deutlich günstiger als richtige WAFs.

Hier https://secureaccess.pro/ z.B. in Verbindung mit einem Login-Webinterface und RDP ohne VPN.

Stefan
Member: thor68
thor68 Feb 25, 2023 at 20:06:54 (UTC)
Goto Top
Zitat von @StefanKittel:

Zitat von @thor68:
Kann ich dazu nähere Informationen bekommen?
"Auch kannst Du prüfen ob Du von einem Blacklist- zu einem Whitelist-Modus wechseln.
Z.B. lässt Du nur IP-Adressen zu die vorher eine "versteckte" URL geöffnet haben (Trigger)"

Ja, wobei das ein sehr weites Feld ist.
Ich habe eine Web-Application-Firewall programmiert welche wir kommerziell anbieten.
Sowohl im Proxy- als auch API-Modus.

D.h. jeder Zugriff, auch schon der 1. läuft durch unser System bevor an das Zielsystem weitergegeben wird.
Wenn es ein geschlossenens System ist, z.B. Intranet, werden alle Zugriff mit einem 403 geblockt.

Ein ganz einfaches System ist z.B. wenn man z.B. die URL https://login.firma.de/connect öffnet, kommte die IP auf eine temporäre Liste und wird für 8 Stunden erlaubt. Dazu optional Geo-Block, Login, 2FA, Client-Zertifikate. Kommt sehr auf den Kunden und das System an. Meist als Art Pre-Login für einfache Websysteme wie CMS oder Shops. Deutlich günstiger als richtige WAFs.

Hier https://secureaccess.pro/ z.B. in Verbindung mit einem Login-Webinterface und RDP ohne VPN.

Stefan

Dein Webangebot schaue ich mir gern an.
Member: Doskias
Doskias Feb 27, 2023 at 07:13:07 (UTC)
Goto Top
Moin
Zitat von @StefanKittel:
Auch kannst Du prüfen ob Du von einem Blacklist- zu einem Whitelist-Modus wechseln.
Das ist meine Meinung der einzige vernünftige Weg. Du hast jetzt eine IP. Nämlich, wie du selbst schreibst:

Der Angreifer ist: zg-1220b-158.stretchoid.com
Die originale IP ist 107.170.238.14

Was machst du wenn der Angreifer die Domain wechselt? Was machst du, wenn die Angriffe plötzlich von er anderen IP-Adresse kommen, zum Beispiel 107.170.238.15. Richtig. Da fängst du einfach wieder von Vorne an. Richtiger Ansatz ist meiner Meinung nach: stell die Firewall auf Deny all um und erstelle Ausnahmen.

Z.B. lässt Du nur IP-Adressen zu die vorher eine "versteckte" URL geöffnet haben (Trigger)
Klappt bis die URL mit dem Trigger bekannt ist. Aber wieso das ganze? Entweder ich will den Zugriff erlauben oder nicht. Ich bin doch Admin meiner Umgebung und ich pflege die Ausnahmeliste, die steuert was zugelassen wird. Wieso sollte ich das einer externen Person überlassen? Wenn ich einer externen Person erlaube, sich (auch wenn es nur temporär ist) auf die Ausnahmeliste zu setzen, dann kann er mir in dieser temporären Zeit auch schon schaden.

Gruß
Doskias
Member: StefanKittel
StefanKittel Feb 27, 2023 at 10:20:33 (UTC)
Goto Top
Zitat von @Doskias:
Aber wieso das ganze? Entweder ich will den Zugriff erlauben oder nicht.

Kommt ja darauf an was das für ein System ist. Das hat er leider noch nicht gesagt.
z.B. ein Exchange mit OWA/ECP ohne VPN oder ein Wordpress-CMS wo ich nur den Admin-Bereich versteken möchte.
Es kommt wie immer auf viele Faktoren an.
Member: Doskias
Doskias Feb 27, 2023 at 11:08:30 (UTC)
Goto Top
Hallo Stefan,

da sind wir wieder bei dem Punkt des Netzwerkdesigns. Wenn ich es mir schon leiste einen eigenen Exchange-Server on premise zu betreiben, was ja auch einiges an Hardware, Lizenzen und Aufwand kostet, dann sollte man das auch bis zum Ende durchdenken. Zugriff auf den Exchange via OWA von außen ist ja noch nachvollziehbar. Aber wieso sollte die ECP ohne VPN von außen erreichbar sein. Wenn ich so ein Konstrukt habe, dann hat der Admin auch eine VPN-Verbindung wenn er von außerhalb arbeiten soll. Und wenn nicht, dann muss er von außerhalb auch nicht auf die ECP. Oder habe ich dich falsch verstanden?

Gruß
Doskias
Member: StefanKittel
StefanKittel Feb 27, 2023 at 12:56:27 (UTC)
Goto Top
Zitat von @Doskias:
Hallo Stefan,
da sind wir wieder bei dem Punkt des Netzwerkdesigns. Wenn ich es mir schon leiste einen eigenen Exchange-Server on premise zu betreiben, was ja auch einiges an Hardware, Lizenzen und Aufwand kostet, dann sollte man das auch bis zum Ende durchdenken.
Du glaubst gar nicht wieviele KMUs es da draußen mit Exchange gibt ohne eigenes IT-Personal und mit zu geringem IT-Budget. Die SBS2011 mal gar nicht mitgerechnet.

Aber wieso sollte die ECP ohne VPN von außen erreichbar sein.
Weil man ohne ECP in Outlook keine Abwesenheitskonfiguration vornehmen kann.

Dazu der Unwille der Mitarbeiter sich auf ihren Privathandys für die Firmenemails mit VPN befassen zu wollen.

Nein, ich finde das auch nicht gut und will es nicht schönreden. Aber häufig ist es halt so.
Inzwischen betreue ich keine IT-Mehr vollzeit, sondern Web-Kunden. Da wird aber um so mehr von Kundenseitig konstruiert face-smile
Member: Doskias
Doskias Feb 27, 2023 at 14:04:59 (UTC)
Goto Top
Zitat von @StefanKittel:
Zitat von @Doskias:
Hallo Stefan,
da sind wir wieder bei dem Punkt des Netzwerkdesigns. Wenn ich es mir schon leiste einen eigenen Exchange-Server on premise zu betreiben, was ja auch einiges an Hardware, Lizenzen und Aufwand kostet, dann sollte man das auch bis zum Ende durchdenken.
Du glaubst gar nicht wieviele KMUs es da draußen mit Exchange gibt ohne eigenes IT-Personal und mit zu geringem IT-Budget. Die SBS2011 mal gar nicht mitgerechnet.
Oh doch das glaube ich. Das weiß ich. Ich glaube nach 18 Jahren Systemhaus kann ich mir das gaaanz gut vorstellen. Jetzt interne IT, aus gutem Grund face-wink. Und ich weiß auch, dass grade dort die Firewall oft nur blockt was gesperrt wird. Und genau da liegt ja das Problem, grade bei KMUs. Und es muss kein eigenes IT-Personal sein. Ich war teilweise 1 x die Woche bei einem Kunden, Rest hat das Office übernommen, wenn es nicht warten konnte.

Aber wieso sollte die ECP ohne VPN von außen erreichbar sein.
Weil man ohne ECP in Outlook keine Abwesenheitskonfiguration vornehmen kann.
Stimmt doch nicht. Das geht im Owa genau so gut:
owaooo
Die ECP hat bislang noch keiner meiner User gebraucht. Nicht in den letzten 9 Jahren. Das was man von unterwegs mal schnell machen muss, geht alles über OWA. Mit der ECP kann man zu viel Unsinn anstellen, grade wenn das Adminkennwort nicht gut gewählt ist. Und das, das kann ich dir nach 18 Jahren sagen, ist bei KMUs leider auch häufig der Fall.

Dazu der Unwille der Mitarbeiter sich auf ihren Privathandys für die Firmenemails mit VPN befassen zu wollen.
Das hat ja nichts mit Unwille zu tun. Ich persönlich bin ein Fan von strikter Trennung zwischen dienstlichen und Privatem Handy. Wenn der AG will, dass der AN seine Mails abruft, dann muss er dafür auch das Equipment zur Verfügung stellen. Wenn ich es auf meinem Privathandy zusätzlich einrichte, dann besteht immer die Gefahr, dass Firmendaten abwandern. Das einzige, was ich auf meinem privaten Handy habe, sind die Tokens für die MFAs. Aber auch eher als Backuplösung und datenschutztechnisch unkritisch.

Nein, ich finde das auch nicht gut und will es nicht schönreden. Aber häufig ist es halt so.
Ja, aber wir müssen ja immer darauf hinweisen, damit es anders wird. Grade und vor allem in KMUs face-smile

Und da schließt sich der Kreis zum Ursprungsthema auch schon wieder, bevor wir zu weit abschweifen:
Kommt ja darauf an was das für ein System ist. Das hat er leider noch nicht gesagt.
@ Thor68: Magst du uns noch ein Paar Infos zu dem System und Netzwerkaufbau geben?

Gruß
Doskias
Member: thor68
thor68 Feb 28, 2023 at 18:27:44 (UTC)
Goto Top
Ups, ihr habt ja noch etwas geschrieben! face-smile

Jemand wollte noch wissen, von welchem System ich gesprochen habe. Also, es ist ein virtueller Server auf Basis von (Windows Server 2019), der sich bei einem Hoster befindet. Ich habe Zugang per Remote-Desktop und führe im Eigentlichen nur Datenschutzanalysen darauf aus.

VPN habe ich noch nicht eingerichtet, sollte ich aber zeitnahe tun. Trotz allem habe ich den Zugang abgesichert. Ein anderer Server hat eine Ausnahmegenehmigung für Remote-Desktop, die an dessen IP gebunden ist. Bevor ich mich von Zuhause aus auf dem virtuellen System per Remote einloggen kann, muss ich mir am zweiten Server zuvor eine Art Ticket besorgen, wobei meine dynamische IP ebenfalls in die Firewall eingetragen wird. Das ist schon ein ganz guter Schutz. Ruft jemand den Port 3389 ohne Ausnahmegenehmigung auf, wird er direkt ausgesperrt.

Für mein ergänzendes Skript zur Windows-Firewall habe ich folgende Strategie und freue mich auf euer Für und Wider:

Mittels PHP und MySQL setze ich das Projekt um. Mein Ziel ist es - wie ich bereits erwähnt habe - eine Früherkennung von Angriffen zu realisieren.

Das Skript geht wie folgt vor:

Mit tShark von Wireshark analysiere ich den Datenverkehr 24/7 in Echtzeit.

Meinen eigenen Traffic und IPs, die zum System gehören, filtere ich aus, sodass nur noch fremder Verkehr übrig bleibt.

Direkt zu Anfang beschaffe ich mir die Geo-Daten des Aufrufers und kann Kontinente, Zeitzonen oder Länder im ISO-Format ausfiltern, bzw. direkt blockieren. Mir ist natürlich klar, dass Angreifer ihren Standort manipulieren können. Mit einer Gegenprüfung der IP könnte ich rausbekommen, ob am System Ports geöffnet sind, die ein normaler User nicht nutzt. Das überlege ich mir noch.

Danach kanalisiere ich den Verkehr in "ein Port wurde übermittelt" und "es wurde kein Port übermittelt".

Falls kein Port übermittelt worden ist, filtere ich das nach PING aus und lasse nur jene zu, die vom eigenen Rechenzentrum erzeugt werden. Das Übrige dokumentiere ich und blockiere es zunächst. Wofür brauche ich einen PING aus Indien oder Pakistan?

Ganz zu Anfang mache ich einen externen Portscan auf mein eigenes System und trage die Ports in die Datenbank ein, die im Regelbetrieb geöffnet sind.

Kommen wir zu dem Verkehr, bei dem Ports übertragen werden. Diese gleiche ich mit den geprüften Ports ab. Steht ein Port gar nicht zur Verfügung, blockiere ich den Aufruf direkt. Ich nutze beispielsweise keinen FTP-Server. Daher kann ein Aufruf darauf nur von einem Angreifer erfolgen.

Existiert ein Port, analysiere ich die IP wie folgt:

1.) Ich löse die IP in ihren Hostnamen auf. Und protokolliere zunächst, das Ergebnis. Nicht alle IPs haben - aus gutem Grund - einen Hostnamen hinterlegt. Ich möchte aber gern wissen, wie das Verhältnis bei reinem Kundenverkehr ist.

2.) Falls ich den Hostnamen bekomme, löse ich ihn postwendend wieder in seine IP oder seine IPs auf. Sollte der Aufrufer die IP: 127.0.0.1 oder 0.0.0.0 oder gar eine andere nichtöffentliche IP nutzen, blockiere ich ihn direkt.

3.) Es gibt noch zwei Ergebnisse, die womöglich interessant sind. Bei manchen Auflösungen vom Hostnamen zu dessen IPs befindet sich die ursprüngliche Remote-IP darunter und manchmal auch nicht. Letzteres könnte ein Hinweis darauf sein, dass jemand den Hostnamen gefälscht hat.

Nachdem ich diese Tests durchgeführt habe, prüfe ich die Datenpakete bezüglich der verwandten Flags. Womit SYN, SYN-ACK, ACK und die übrigen Abwandlungen gemeint sind.

In einem nächsten Schritt möchte ich das Verhältnis zwischen SYN und ACK analysieren, um feststellen zu können, ob jemand überhaupt darauf bedacht war, eine Seite abzurufen oder ob er das System nur analysieren möchte.

Dabei prüfe ich auch, ob die aufgerufenen Seiten existieren. Ruft jemand durchweg Seiten auf, die nicht vorhanden sind, ist das als vorbereitender Angriff zu bewerten.

Das Windows-Ergebnisprotokoll zeigt gescheiterte Versuche bei Anmeldung an meine Datenbank. Die IPs parse ich mittels PHP und sperre sie über die Firewall aus.

Ein altes Skript möchte ich noch einbinden, womit sich Mensch von Maschine unterscheiden lässt. Berührt jemand sein Display oder verwendet er die Maus, ist das eher ein Zeichen für einen menschlichen Aufrufer. Auch die Menge der Aufrufe hintereinander geben Aufschluss darüber.

Ich denke, es gibt reichlich an Möglichkeiten, Angreifer früh zu ertappen und auszusperren. Ich möchte die ungern so lange wirken lassen, bis sie Erfolg haben.

Was denkt ihr darüber? Nicht vergessen, das befindet sich noch in experimenteller Phase, ist aber schon relativ weit fortgeschritten.

Meinen Server nutze ich nur allein und nur über drei Ports. Innerhalb weniger Stunden habe ich mehrere tausend IPs blockiert, die aus vielen verschiedenen Ländern stammen und wohl nichts Gutes im Schilde geführt haben.