Stranger Than Usual

Running at a constant 20 watts, our brains are enough to power a lightbulb – whether any bright ideas are forthcoming or not. 💡

PBS Eons: How Brawn Led to Brains

Lilith Wittmann zerforscht illegale Online-Casinos

Lilith Wittmann hat wieder zugeschlagen. Dieses Mal hat sie die Strukturen hinter illegalen Onlinecasinos aufgedeckt. So hat sie über Sicherheitslücken Einblicke in die Glücksspiellizenzvergabe von Curaçao erhalten und den Eigentümer des größten illegalen deutschen Onlinecasinos ermittelt (der unabhängig davon seitdem festgenommen wurde). Es geht nicht nur darum, dass Menschen viel Geld verloren haben, sondern auch, dass diese Online-Casinos massiv Steuerhinterziehung betreiben.

Aus ihren Andeutungen auf Mastodon zu schließen hat wurde sie auch von Malta aus angeklagt und musste sich verteidigen (teuer), weil sieso schwere Hacking-Aktivitäten begangen hat, in einem HTML-Formular ein gesperrtes Eingabefeld zu entsperren, um auf Daten zuzugreifen. Die Klage ist, soweit ich das mitbekommen habe (habe das nur am Rande verfolgt), eher eine SLAPP-Klage.

Ich bin immer wieder beeindruckt von Liliths Aktionen. Sie ist fähig, persistent, arbeitet nach der Hackerethik und nimmt kein Blatt vor den Mund. Ich betrachte sie definitiv als Investigativjournalistin, auch wenn ich nicht weiß, ob sie sich selber so sieht. Ich hoffe mal, es gibt auf dem 40C3 wieder einen Vortrag von ihr.

Rollenspielszenen: Zauber oder Schatz

Rollenspielszene. Der Schatz, den die Gruppe erbeutet hat muss aufgeteilt werden. Die Abmachung besagt: Nini und Sprinkle kriegen je ein Fünftel des Schatzes. Und unter dem Schatz ist auch ein mächtiger Heilzauber: Heal the Itchy Poison.

Allerdings ist ein Teil des Schatzes auch funkelnder und glitzernder Schmuck. Und Nini mag glitzernde Sachen. Jetzt muss zie sich entscheiden: Vernünftig sein und den Zauber nehmen, oder dem Verlangen nachgeben, den glitzernden Schmuc zu horten?

Tankrabatt 3.0

Jetzt ist es soweit. Es wurde schon wieder ein Tankrabatt beschlossen. Der wird wieder nicht viel an den Preisen ändern, ist nicht nachhaltig (weil wir trotzdem weiter auf Verbrenner setzen) und kostet auch noch ordentlich. Nehmt nicht nur mein Wort dafür, eine Wirtschaftsweise sagt das auch.

Was wir tun sollten, ist das Geld, das wir offensichtlich haben und in den Tankrabatt stecken, stattdessen in den Verkehrswandel stecken. 2022 haben wir das mit dem 9 €-Ticket auch gemacht (zugegeben, das war leider auch nur kurzfristig). Also: ÖPNV verbessern und günstiger machen, Bahn-Fernreisen günstiger machen und von mir aus auch E-Autos fördern.

Auf EU-Ebene wird immerhin über eine Übergewinnsteuer für Ölkonzerne geredet. Irritierend finde ich, dass während unser Finanzminister das auf EU-Ebene verbreitet, wir in Deutschland den Ölkonzernen weiter Geld in den Arsch schieben. Konsequent ist das nicht.

Rollenspielszenen: Ein Hund

Rollenspielszene. In der Audienz bei der Fürstin wurde uns klar gemacht, dass, bis die akute Gefahr durch Drow-Angriffe in den nordöstlichen Gegenden von Zin-Zylave gebannt ist, keine weiteren Missionen zuer Aufklärung des Mysteriums, das wir untersuchen, finanziert werden. Außerdem wird ein hochrangige Aldamir-Priesterin vermisst, die kurz vor den Drow-Angriffen in die betroffenen Gebiete aufgebrochen ist. Mavas (Aldamir-Paladin) meldet sich freiwillig für die Suche, und auch die anderen schließen sich bereitwillig an.

Bei einer Nachtwache in einem Gefahrengebiet hören Mavas und seine Knappin, Adile, Kratzen und Knurren aus dem Wald, und ein zerzauster, etwas heruntergekommener Hund erscheint. Er ist nicht aggressiv, aber vorsichtig. Ist er vielleicht hungrig?

Mavas' Spieler würfelt Animal Handling. Seine Erkenntnis: Es ist ein Hund. Adile schaut den Hund auch genauer an. Ja, ein Hund.

Glücklicherweise ist Soris aufgewacht und hat ziemlich schnell erkannt, dass der Hund nicht nur hungrig ist, sondern auch hinkt und einen Armbrustbolzen im Bein hat.

Ein paar Essensreste und einen Heilzauber später und wir haben einen neuen, vierbeinigen Freund.

SystemD-Security für einen Minecraft-Server

Auf dem Server, auf dem ich dieses Blog hoste, ist auch ein Minecraftserver. Tatsächlich war der Minecraftserver zuerst da. Es lief zwar auch standardmäßig ein Webserver (Apache), aber den habe ich kaum genutzt. Nun ist Minecraft in erster Linie ein Spiel, und Computerspielentwickler sind nicht unbedingt bekannt dafür, einen security-first-Ansatz zu verfolgen. Kann jemand meinen Minecraft-Server als Einfallstor für meinen Server nutzen?

Nun, Minecraft ist ein sehr verbreitetes Spiel. Es bietet daher ein lohnendes Ziel für weit verbreitete, automatische Angriffe. Bei der Größe und Popularität kann man aber auch erwarten, dass ein bisschen mehr Wert auf Security gelegt wird. Und es steht ein Milliardenschwerer Konzern hinter Minecraft.

Dummerweise ist dieser Konzern Microsoft, und selbst wenn die Entwickler alles richtig machen, kann immer noch eine weit verbreitete Bibliothek wie log4j mit einer Sicherheitslücke allem einen Strich durch die Rechnung machen. Es ist schon einmal passiert, es kann wieder passieren. Ein paar zusätzliche Sicherheitsvorkehrungen wären nicht schlecht.

Bei solchem „Security-Hardening“ geht man ungefähr so vor, wie ein CDU-Politiker, wenn es um Sicherheit geht: Möglichst viele Rechte einschränken. Wenn es dann eine Sicherheitslücke in einem Programm gibt, dann hat der Angreifer wesentlich weniger Optionen, Schaden anzurichten. Grundlegende Maßnahmen in der Richtung habe ich schon getroffen (z.B. läuft der Server mit einem eigenen User), aber da geht noch mehr. Viel mehr.

Auf diesem (Debian-)System läuft SystemD als init-Prozess und bei allem Negativen, was man über Systemd sagen könnte: Selber einen Daemon zu konfigurieren ist ziemlich einfach. Und Systemd bietet einen Haufen Optionen, Rechte von Daemonen einzuschränken. Für den Anfang habe ich mich mal an diesen Post zu SystemD Service Hardening gehalten. Das ist eine schöne Einführung, in denen auch die Flags erklärt werden. Außerdem habe ich diesen speziellen Post für eine Minecraft-Systemd-Konfiguration angeschaut, damit ich weniger herumexperimentieren musste, was Minecraft braucht und was nicht.

Hier ist der Ausschnitt aus meiner minecraft_otherland.service-Datei, der die Rechte einschränkt:

ProtectHome=yes
ProtectSystem=strict
PrivateTmp=yes
PrivateDevices=yes
ReadWritePaths=/var/minecraft_otherland
NoExecPaths=/
ExecPaths=/usr/bin -/usr/lib -/usr/lib64 -/usr/libexec

ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectSystem=full
ProtectClock=yes
ProtectHostname=yes
ProtectKernelTunables=yes
RestrictSUIDSGID=yes

UMask=0077
LockPersonality=yes
RestrictRealtime=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RemoveIPC=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
NoNewPrivileges=yes

ProtectProc=invisible
PrivateUsers=yes
PrivateMounts=yes
SystemCallFilter=@system-service
CapabilityBoundingSet=

Ich gehe da jetzt nicht im Detail drüber, lest die Artikel bzw. sucht im Netz nach den einzelnen Optionen. Nur so viel: Der Daemon darf praktisch nur nach /var/minecraft_otherland schreiben (wobei die server.jar root gehört und nicht beschrieben werden darf). Er hat einen Haufen Einschränkungen und Abschottungen zu anderen Prozessen. Und ich war erfreut zu sehen, dass ich ohne spezielle Capabilities ausgekommen bin, daher CapabilityBoundingSet=. Einziges Problem: MemoryDenyWriteExecute=yes konnte ich nicht setzen, weil Minecraft in Java geschrieben ist und anscheinend irgendwelche JIT-Sachen macht oder so.

Ich habe das auch soweit getestet: Server gestartet, mich mit einem Client eingelogged, ein paar Sachen verändert, überprüft, dass alles lief. Das ging soweit gut. Gründlich getestet habe ich das aber bisher nicht.

Was steht als nächstes an? Nginx sollte sicher genug sein, aber man weiß ja nie. Nur muss ich hier aufpassen, denn nginx hat vielleicht noch einen ganzen Haufen anderer Rechte, die es benötigt, also muss ich vorsichtig sein. Und natürlich Nextcloud. Nextcloud läuft in irgendeinem PHP-Daemon, der vermutlich separat konfiguriert ist. Meiner groben Einschätzung nach ist Nextcloud vermutlich neben Minecraft das wahrscheinlichste Einfallstor. Nextcloud nutzt außerdem eine Datenbank, wenn Nextcloud übernommen wurde, sollte die Datenbank nicht der Weg zum Rest des Systems sein. Also die Datenbank auch absichern.

Und natürlich SSH. Aber da muss ich wirklich, wirklich vorsichtig sein, sonst sperre ich mich aus meinem eigenen Server aus und muss bei meinem Hoster anfragen, um wieder Zugriff zu bekommen (was vermutlich Geld kostet).

Bis jetzt bin ich froh, dass ich zumindes den Minecraft-Server endlich abgesichert habe. Ich hatte das schon länger vor, bin aber jetzt erst dazu gekommen, das mal durchzuziehen.

Rollenspielszenen: Was möchtest du?

Rollenspielszene. Wir sind den Marktkräfte entkommen. Bevor wir es wieder mit dem Krarket aufnehmen wollen, muss Jacksnipes Augenlicht wiederherstegellt werden. Also suchen wir eine Siedlung namens Capybara, wo ein berühmter Bastler/Mediziner namens Fantasy Name Generator („Ihr könnt mich Name nennen“) lebt.

Mit Jacksnipes Problem konfrontiert, stellt Name ein paar… interessante Fragen, zum Beispiel

  • was willst du?
  • du willst wieder sehen? Mit den Augäpfeln, die du hast, oder mit anderen?
  • sollen die danach noch in ihren Sockeln sein?
  • können wir die Augen zwischendurch rausnehmen, oder würdest du bevorzugen, wenn sie drinblieben?

Jacksnipe ist ein bisschen beunruhigt und besteht darauf, dass sie wieder sehen möchte, mit ihren eigenen Augen, so wie vorher, und wenn möglich, ohne die Augen zwischendurch herauszunehmen.

Name ist ein bisschen enttäuscht von diesen Anforderungen, kann sie aber erfüllen. Allerdings braucht er dafür ein Heilkraut, das hier in der Gegend nur in einem Höhlensystem lebt, aus dem kaum jemand zurückkommt (und bisher niemand mit diesem Kraut). Aller Wahrscheinlichkeit treibt sich dort eine Notion (lies: Eldritch Abomination) herum.

Name: „Nun, alternativ kann ich auch deine Augen herausnehmen, ein bisschen an ihnen herumbasteln, vielleicht ein paar Gadgets einbauen und sie dann wieder einsetzen“. Jacksnipe muss nicht lange nachdenken:

Ich glaube, ich versuche mein Glück mit der Notion.

Kontaktseite

Ich bin endlich mal dazu gekommen, eine Kontaktseite hinzuzufügen. Schreibt mir gerne Feedback zu meinen Blogposts. Eventuell werde ich eure Kommentare auch unter den Blogpost setzen (wenn ihr das nicht wünscht, schreibt es mir bitte).

Ansonsten: Wenn ihr so pedantisch seit wie ich und Tippfehler einfach nicht übersehen könnt: Ich habe schon früher einmal erwähnt, dass ich gerne auch Hinweise zu Tippfehlern entgegennehme.

Das trifft übrigens auch auf Hinweise zur Benutzbarkeit (insbes. zur Barrierefreiheit) und zu kaputtem / ungültigem HTML zu.

Wenn die AfD „Remigration“ sagt, meint sie „ethnische Säuberung“

Ich habe ja nicht viel für Friedrich Merz übrig. Der Mann ist „1 Pimmel“ (uh, und jetzt muss ich aufpassen, dass mir keine Wohnungsdurchsuchung bevorsteht). Er ist durch aggressive, beratungsresistente Inkompetenz mit daran Schuld, dass die AfD so gut abschneidet. Und trotz aller Belege die für ein AfD-Verbot sprechen, weigert er sich weiterhin, ein AfD-Verbotsverfahren auch nur prüfen zu lassen.

Aber diese Woche hat er etwas gesagt, dem ich nur zustimmen kann: Remigration ist nichts anderes als eine ethnische Säuberung nach Hautfarbe und Herkunft.

Nehmen wir das erst einmal auseinander. Zunächst: „ethnische Säuberung“ ist meinem Sprachgefühl nach auch nur ein Euphemismus. Es klingt so schön hygienisch und sauber, meint aber im Prinzip: Mord oder Vertreibung. Der Begriff ist auf der Euphemismus-Tretmühle ganz unten angekommen. Also braucht die AfD einen neuen Begriff, um dasselbe in der Öffentlichkeit auszudrücken.

Remigration“ ist ursprünglich ein Begriff, der einfach eine Rückmigration von Menschen bedeutet. Die Rechten, u.a. auch die AfD, verwenden ihn aber seit Jahren als Begriff für ethnische Säuberungen. Nicht zuletzt beim Treffen von Rechtsextremen in Potsdam 2023. Damals hat die AfD geleugnet, etwas damit zu tun zu haben und sich auch ein bisschen von dem Begriff „Remigration“ distanziert. Als dann die öffentliche Empörung ein bisschen abgeflacht ist, haben sie aber angefangen, den Begriff überall zu verwenden.

Er dient jetzt als Dogwhistle. Gegenüber rechtsextremen Wählern kann man so seine menschenverachtenden Vorhaben verbreiten. Gegenüber der gemäßigten Öffentlichkeit kann man trotzdem behaupten, man sei nicht rechtsextrem. Ein Feigenblatt, mehr nicht.

Und deswegen hat die AfD Strafanzeige gegen Merz gestellt:

Der Parlamentarische Geschäftsführer der AfD-Fraktion, Stephan Brandner, erklärte, die Äußerungen von Merz seien »strafrechtlich relevant« und »vollkommen inakzeptabel«. Die AfD-Fraktion stehe »fest auf dem Boden des Grundgesetzes«. Es handle sich »um verleumderische Beleidigungen, die sich nicht nur gegen jedes einzelne Mitglied der AfD-Fraktion richten, sondern letztlich auch politisch gegen Millionen Bürger«.

Die AfD steht nicht fest auf dem Boden des Grundgesetzes. Es ist keine verleumderische Beleidigung. Nur ein Beispiel von vielen: Diese Woche hat der AfD-Spitzenkandidat in Sachsen-Anhalt gesagt, er bräuchte Rüstungsgüter für Deportationen.

Es ist keine Verleumdung, die AfD als rechtsextrem zu bezeichnen. Es ist mittlerweile so offensichtlich, dass es auch keine Entschuldigung mehr für irgendeinen Wähler der AfD gibt. Wer die AfD wählt, wählt Rassismus, wählt Hass, wählt Umweltzerstörung und wählt gegen die Demokratie.

Und um auf die Ursprüngliche Aussage von Merz zurückzukommen: Wer die AfD wählt, wählt die gewaltsame Vertreibung, die „ethnische Säuberung“ aus rassistischen und nationalistischen Gründen. Millionen von Menschen würden unter Waffengewalt gezwungen, das Land zu verlassen.

Antiquiertes HTML

Lesetipp: Antiquated HTML Snippets and Artefacts. Dort zeigt der Autor einen Haufen HTML-Snippets, die früher sehr verbreitet, die aber ihren Nutzen verloren haben. Meist, weil sie ein Workaround für etwas waren, dass man früher nicht anders machen konnte, oder ein Workaround, um mit irgendwelchen kaputten Browsern (IE) klarzukommen.

Ein paar Sachen davon stammen noch aus der Zeit bevor ich mich mit Webentwicklung beschäftigt habe. Viele davon habe ich aber auch schon in HTML-Code gesehen, mit dem ich arbeiten musste, manche habe ich auch entfernt, weil sie nicht mehr benötigt wurden. Ein Klassiker, den ich fast überall gesehen habe, ist

<meta http-equiv="X-UA-Compatible" content="IE=edge">

In eine ähnliche Schiene fallen The HTML Elements Time Forgot, ein Artikel, den der Autor oben auch verlinkt. Da geht es aber um tatsächliche HTML-Elemente, die (standardisiert oder nicht) einmal mehr oder weniger weit verbreitet waren, heute aber nicht mehr benutzt werden sollen und oft von Browsern nicht einmal mehr interpretiert werden.

Und heute hat der Autor auch noch einen weiteren Post veröffentlicht, dieses mal geht es um CSS Curiosities of the Past, wobei mir davon nur die Vendor-Prefixes bekannt waren. Die habe ich mal beruflich genutzt. Ich wollte das damals neue flex benutzen, aber wir mussten einige veraltete Browser noch unterstützen. Also habe ich zusätzlich zum standardisierten flex noch drei oder vier pre-Standard-Regeln mit Vendor-Prefixen genutzt, die (abgesehen von einer Version) sich fast so verhalten haben, wie der spätere Standard.

Auf jeden Fall lesenswert, wenn man in die Ungeheuerlichkeiten des HTMLs der 2000er einsteigen will oder Nostalgie für eine Zeit verspürt, in der das WWW noch ein Ort voller Hoffnung war und nicht der Torment Nexus, der es zu großen Teilen heute ist. Nostalgie halt.

PS: Und gerade eben habe ich über das gleiche Blog (aber einen anderen Artikel) erfahren, dass intitial-scale=1 nicht mehr nötig ist.