undefinedIch betreibe, für meine Unternehmen, viele Webserver die 24/7 verfügbar sind. Als Webseitenbetreiber weiss man, dass Webseiten inzwischen täglich viele hundert bis tausende Male angegriffen werden. Das verursacht bei wenig frequentierten Services im Web nicht selten mehr Datenverbrauch und fordert mehr Rechenleistung als die legitime Nutzung. Ich mache mir da so meine Gedanken und ärgere mich am meisten darüber, dass diejenigen die eigentlich was dagegen tun könnten und müssten völlig untätig bleiben. Daher möchte ich hier meine Gedanken dazu aufschreiben und auch eine Idee präsentieren.

Weiter lesen? Klicke die Headline um den ganzen Artikel zu sehen!

Angriffsarten

Kurzversion

Stellt euch vor ihr lebt in einem Haus (Webserver) mit Fenstern und Türen und anderen Öffnungen wie Kamin oder Küchenabzug (Ports). Die meisten davon sind zu, einige wenige offen (zB der Briefschlitz für den Postboten). Und jetzt schleichen jeden Tag ein paar Hundert windige Typen um euer Haus und rütteln an jeder Tür, klopfen an jede Ecke und drücken gegen jedes Fenster. Und dann sagt dir jeder nur du musst "besser abschliessen", "Security anheuern" oder noch weitere "Zäune um dein Haus bauen" (besser gleich mehrere). Aber die Typen fasst keiner an, sie werden nichtmal verfolgt oder zu ihren Gründen befragt. Geschweige denn verhaftet oder bestraft. So ist das mit Webservern heute. Und warum die das machen wissen wir alle, oder?

Darf man das?

Das hängt vor allem vom jeweiligen Land und dessen Rechtsprechung ab. Weiterhin auch davon, was der Internet-Anbieter oder Hoster in seinen AGB erlaubt oder nicht. Viele haben entsprechende Verbote in den AGB (Hetzner oder OVH). Man kann davon ausgehen, dass die meisten Hoster und Internet-Anbieter das nicht möchten, denn die Nutzung ihrer Services zu solchen Zwecken ist natürlich potentiell Rufschädigend.

In Deutschland ist das scannen von offenen Ports und auch das Abklopfen durchaus bereits eine Straftat nach § 202c I Nr. 2 StGB – "Vorbereiten des Ausspähens und Abfangens von Daten".

Ich unterscheiden die folgenden Arten von technischen Angriffen. Das ist nicht offiziell und umfassend aber ich fasse das für mich gerne so zusammen:

Port-Scans

Hier werden unter einer IP-Adresse verschiedenste Ports gecheckt, ob die eventuell offen sind. Beliebte Ports sind zum Beispiel 21 (ftp), 22 (ssh), 23 (telnet) und 25 (smtp). Der Angreifer hofft, dass ein Admin hier einen dieser Ports nicht absichtlich offen hat. Wenn das nämlich versehentlich offen ist, ist auch die Chance groß, dass hierfür kein gutes oder sogar gar kein Passwort verwendet wurde.

SSH-Login

Wenn ein Port-Scan einen offenen Port 22 (ssh) gefunden hat, wird gerne versucht hier mit Standard-Passwörtern einzudringen. Es wird also der Login für "root" zusammen mit "passwort", "admin", "login", "iloveyou" und anderen typischen Passwörtern getestet. Wenn es jemand ernst nimmt, wird auch eine Brute-Force-Attacke ausgeführt, in der alle denkbaren Kombinationen aus Buchstaben und Zahlen etc ausprobiert werden. Das dauert aber (sehr) lange und ist meist nicht Erfolgreich. Das Testen mit gängigen Passwörtern ist da deutlich vielversprechender.

Abklopfen auf Sicherheitslücken

Hier wird die Webseite auf verwundbare Software gecheckt. Diesen Punkt mag ich besonders weil er in den jeweiligen Logfiles leicht erkennbare Einträge generiert. Sehr beliebt ist der Check auf bestimmte beliebte Software mit bekannten Sicherheitslücken. Ganz vorne dabei Wordpress, Yoomla, Mediawiki und andere Content Management Systeme (CMS). Dabei wird meist versucht eine Seite aufzurufen die typisch für das System ist. Also zum Beispiel die Admin-Login-Seite. Hier mal ein exemplarischer Angriff dieser Art und was PHP hierfür in die Apache-Logdatei ssl_error.log geschrieben hat (gekürzt):

[Feb 26 08:35:59.716231 2023] [8555] [2.57.122.71:55729] '/var/www/adocs/wp-load.php' not found
[Feb 26 08:36:04.937288 2023] [8553] [2.57.122.71:55924] '/var/www/adocs/style.php' not found
[Feb 26 08:36:13.016611 2023] [8557] [2.57.122.71:56190] '/var/www/adocs/s_e.php' not found
[Feb 26 08:36:17.777781 2023] [8556] [2.57.122.71:56341] '/var/www/adocs/s_ne.php' not found
[Feb 26 08:36:23.850371 2023] [8571] [2.57.122.71:56526] '/var/www/adocs/1index.php' not found
[Feb 26 08:36:29.241646 2023] [8554] [2.57.122.71:56695] '/var/www/adocs/radio.php' not found
[Feb 26 08:36:34.776341 2023] [8738] [2.57.122.71:56865] '/var/www/adocs/doc.php' not found
[Feb 26 08:36:41.734032 2023] [8737] [2.57.122.71:57086] '/var/www/adocs/wp_wrong_datlib.php' not found
[Feb 26 08:36:47.052683 2023] [8555] [2.57.122.71:57277] '/var/www/adocs/beence.php' not found
[Feb 26 08:36:51.285950 2023] [8553] [2.57.122.71:57462] '/var/www/adocs/ups.php' not found
[Feb 26 08:36:55.451392 2023] [8556] [2.57.122.71:57629] '/var/www/adocs/wp-signin.php' not found
[Feb 26 08:37:42.812321 2023] [8554] [2.57.122.71:58843] '/var/www/adocs/media-admin.php' not found
[Feb 26 08:37:47.708486 2023] [8737] [2.57.122.71:59059] '/var/www/adocs/export.php' not found
[Feb 26 08:38:12.365005 2023] [8556] [2.57.122.71:60061] '/var/www/adocs/defau1t.php' not found
[Feb 26 08:38:17.174654 2023] [8555] [2.57.122.71:60249] '/var/www/adocs/moduless.php' not found
[Feb 26 08:38:21.116746 2023] [8557] [2.57.122.71:60413] '/var/www/adocs/wp-booking.php' not found
[Feb 26 08:38:40.475626 2023] [8553] [2.57.122.71:61092] '/var/www/adocs/config.bak.php' not found
[Feb 26 08:38:47.781071 2023] [8737] [2.57.122.71:61366] '/var/www/adocs/legion.php' not found
[Feb 26 08:38:58.987534 2023] [8555] [2.57.122.71:61746] '/var/www/adocs/wp-plugins.php' not found
[Feb 26 08:39:14.060619 2023] [8556] [2.57.122.71:62251] '/var/www/adocs/archives.php' not found
[Feb 26 08:39:19.882312 2023] [8738] [2.57.122.71:62446] '/var/www/adocs/defau11.php' not found
[Feb 26 08:39:29.214022 2023] [8737] [2.57.122.71:62758] '/var/www/adocs/system_log.php' not found
[Feb 26 08:39:34.463788 2023] [8557] [2.57.122.71:62944] '/var/www/adocs/wp-backup-sql-302.php' not found
[Feb 26 08:39:40.266967 2023] [8555] [2.57.122.71:63118] '/var/www/adocs/error.php' not found
[Feb 26 08:42:46.992000 2023] [8553] [2.57.122.71:52941] '/var/www/adocs/olux.php' not found
[Feb 26 08:42:53.830094 2023] [8556] [2.57.122.71:53260] '/var/www/adocs/xleet.php' not found
[Feb 26 08:42:56.692065 2023] [8556] [2.57.122.71:53260] '/var/www/adocs/wso.php' not found
[Feb 26 08:43:02.626208 2023] [8554] [2.57.122.71:53531] '/var/www/adocs/shell.php' not found
[Feb 26 08:43:05.893160 2023] [8554] [2.57.122.71:53531] '/var/www/adocs/up.php' not found
[Feb 26 08:43:09.354367 2023] [8554] [2.57.122.71:53531] '/var/www/adocs/upload.php' not found
[Feb 26 08:43:16.117738 2023] [8571] [2.57.122.71:53963] '/var/www/adocs/1.php' not found
[Feb 26 08:43:18.709725 2023] [8571] [2.57.122.71:53963] '/var/www/adocs/x.php' not found
[Feb 26 08:43:21.779828 2023] [8571] [2.57.122.71:53963] '/var/www/adocs/z.php' not found
[Feb 26 08:43:27.972031 2023] [8553] [2.57.122.71:54255] '/var/www/adocs/a.php' not found
[Feb 26 08:43:30.540035 2023] [8553] [2.57.122.71:54255] '/var/www/adocs/test.php' not found
[Feb 26 08:43:39.666494 2023] [8554] [2.57.122.71:54484] '/var/www/adocs/wp.php' not found
[Feb 26 08:43:43.322167 2023] [8554] [2.57.122.71:54484] '/var/www/adocs/alfa.php' not found
[Feb 26 08:43:49.672811 2023] [8738] [2.57.122.71:54663] '/var/www/adocs/config.php' not found
[Feb 26 08:43:56.143059 2023] [8738] [2.57.122.71:54663] '/var/www/adocs/about.php' not found
[Feb 26 08:43:59.380403 2023] [8738] [2.57.122.71:54663] '/var/www/adocs/shells.php' not found

Alle diese Checks wurden von der selben IP-Adresse aus versucht. Dieser Nutzer hat offensichtlich mein System auf bestimmte Software gescannt. Es gibt kein Szenario in dem das nicht aus böser Absicht erfolgt (wenn wir seriöse und beauftragte Pen-Tester mal ausnehmen).

An wen kann man das melden?

Mir ging vor kurzem die Frage durch den Kopf: Was würde passieren wenn ich alle diese Abklopf-Versuche direkt an den Hoster des Angreifers melden würde? Dazu müsste ich aber wissen, wem ich das jeweils melden muß. Dafür gibt es zum Glück Whois. Damit kann man zu IP-Adressen viele Daten abfragen. Unter anderem auch Kontaktinformationen des IP-Adressen-Besitzers bei vermutetem Missbrauch (Abuse). Das könnte doch was werden, oder? Mal ein Test zu dem oben gelisteten Angriff. Die IP-Adresse war 2.57.122.71. Was liefert eine Whois-Abfrage?

volker@volker-pc:~> whois 2.57.122.71
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.

% Information related to '2.57.122.0 - 2.57.122.255'

% Abuse contact for '2.57.122.0 - 2.57.122.255' is 'abuse.pptechnology@gmail.com'

inetnum: 2.57.122.0 - 2.57.122.255
netname: DMZHOSTdotco
descr: https://dmzhost.co
country: NL
admin-c: ACRO26775-RIPE
tech-c: ACRO26775-RIPE
org: ORG-PA1232-RIPE
status: ASSIGNED PA
mnt-by: pptechnology
created: 2019-03-21T15:15:17Z
last-modified: 2022-12-21T16:42:31Z
source: RIPE

organisation: ORG-PA1232-RIPE
org-name: PPTECHNOLOGY LIMITED
country: GB
org-type: OTHER
address: 35 Firs Avenue, London, England, N11 3NE
abuse-c: ACRO26775-RIPE
mnt-ref: pptechnology
mnt-by: pptechnology
created: 2019-09-02T14:59:13Z
last-modified: 2022-12-01T17:22:22Z
source: RIPE # Filtered

role: Abuse contact role object
address: 35 Firs Avenue, London, England, N11 3NE
abuse-mailbox: abuse.pptechnology@gmail.com
nic-hdl: ACRO26775-RIPE
mnt-by: pptechnology
created: 2019-09-02T14:58:45Z
last-modified: 2022-10-03T17:04:32Z
source: RIPE # Filtered

% Information related to '2.57.122.0/24AS47890'

route: 2.57.122.0/24
origin: AS47890
mnt-by: pptechnology
created: 2022-08-06T20:32:00Z
last-modified: 2022-08-06T20:32:00Z
source: RIPE

% Information related to '2.57.122.0/24AS48090'

route: 2.57.122.0/24
origin: AS48090
mnt-by: pptechnology
created: 2020-06-30T20:02:53Z
last-modified: 2020-08-01T19:52:17Z
source: RIPE

% This query was served by the RIPE Database Query Service version 1.106 (DEXTER)

Okay, das ist doch schon ergiebig. Es handelt sich um einen englischen Hoster (PPTECHNOLOGY LIMITED) der sein Rechenzentrum in Holland betreiben lässt (dmzhost.com). Er liefert auch eine E-Mail-Adresse für das melden von Missbrauch: abuse.pptechnology@gmail.com

Hier müsste man das eigentlich melden können. Mit Datum und Uhrzeit kann er genau herausfinden, welcher seiner Kunden hier die Scans und die Einbruchsversuche durchführt.

Eine zweite IP ist am selben Tag aufgefallen: 44.210.18.217

volker@volker-pc:~> whois 44.210.18.217 | grep abuse
OrgAbuseEmail:  abuse@amazonaws.com

Auch hier wäre es ein leichtes, den Angreifer an Amazon zu melden.

So Einfach? Warum macht das nicht jeder?

Weil es richtig Aufwand bedeutet. Inzwischen ist es einfach akzeptiert, dass jeden Tag hunderte Leute um das Haus schleichen und an allen Türen und Fenstern wackeln und checken was da so vorhanden ist und wie was gesichert ist. Niemand versucht das einzudämmen. Alle machen nur die Türen dichter und engagieren Security. Aber niemand kümmert sich oder straft die Leute die das den ganzen Tag versuchen.

Die Idee: Automatisieren

Warum macht man solche Abuse-Meldungen dann nicht einfach per Script? Wir könnten doch einmal täglich die Logs checken, die IP-Adressen identifizieren und dann per Whois die Abuse-Adresse ermitteln. Dann noch eine automatische E-Mail mit allen relevanten Angaben an diese Adresse versenden und fertig. Ich ging schon auf die Google-Suche danach, ob man sowas schon irgendwo bekommt. Aber Fehlanzeige :-(

Daher hab ich beschlossen, das mal selbst zu machen. Python würde sich hier anbieten, aber leider bin ich in Python nicht so fit. Aber go kann ich ganz gut und daher habe ich mein Script mal in go geschrieben. Das lässt sich sicher auch einfach in anderen Sprachen machen oder gar übersetzen.

Ihr findet mein Projekt und die zugehörige Dokumentation auf GutHb unter dieser URL:

https://github.com/Kukulkano/reportAbuse

Was wäre wenn?

Ja, was wäre wenn das nur ein tausendstel der Webseiten machen würden? Die Hoster würden sehr(!) viele Mails dieser Art bekommen. Wenn Sie es Ernst meinen, könnten Sie die "Kunden" automatisiert ermitteln und direkt abmahnen oder sogar bei mehrfachen Meldungen konkret sperren. Die Konsequenz wäre ein Internet mit weniger Traffic, Kosten, CO2 und höheren Hürden für Angreifer. Man könnte auch Listen mit Angreifer-IPs machen die für Angriffe häufig gemeldet werden und diese dann Zentral zugängig machen um damit Firewalls und Blacklisten zu füttern (vergleichbares wird mit Spamversendern schon lange gemacht). Der Angreifer müsste dann zumindest häufiger seine Hoster wechseln und hat dadurch massiv mehr Aufwand. Und wenn das an Behörden gemeldet würde, wäre es eigentlich an der Zeit diese Leute anzuzeigen.

Und wenn der Angreifer einen infizierten Rechner hat der Teil eines Botnetzes ist? Naja, dann weiss das der Hoster jetzt auch und er kann den Kunden auffordern seinen Rechner zu reinigen oder die Scans einzustellen. Das wäre doch mal was. Man könnte dadurch also auch Botnets behindern und unbedarfte Nutzer schützen.

Final wäre noch die Abschreckung. Jetzt muß der Angreifer einen Hoster finden der diese Meldungen nicht verfolgt. Und das werden nicht viele sein. Zumal zukünftig deren gesamter IP-Range geblockt werden könnte, wenn auf vielfache Abuse-Meldungen keine Reaktion erfolgt und die Angriffe nicht nachlassen.

Alles in allem eine Interessante Sache die ich weiter verfolgen werde. Eventuell finde ich eine Anwaltskanzlei mit Schwerpunkt auf internationalem IT-Recht die das bewerten kann? Ich wäre interessiert...