Die wunderbare Welt von Isotopp

... and a happy new hack.

Kristian Köhntopp - January 1, 2022
Und das neue Jahr beginnt für uns mit einem Minecraft-Server, auf dem wichtige Personen, die sich nichts haben zuschulden kommen lassen, plötzlich gebannt sind. Nach einem Unban an der Console: Der Spawn, der Eintrittspunkt für neue Spieler, ist komplett verwüstet. Wir haben tägliche Backups, sodass das schnell behoben ist. Bleibt die Frage, was passiert ist. Gehackt Unter den Spielern ist die Frage schnell geklärt: “<user> wurde gehackt.” Es stellt sich raus:

Dein Kind will Minecraft spielen

Kristian Köhntopp - December 20, 2021
Nachdem mich jetzt das dritte Paar computer-affiner Eltern mal gefragt hat, was man denn braucht, sobald der Nachwuchs sich “Minecraft” wünscht, hier der Aufschrieb zum Thema. Minecraft ist ursprünglich von der schwedischen Firma Mojang in Java entwickelt worden. Der Eigner, Markus “Notch” Persson, hat das Spiel und die Firma Mitte 2014 auf Twitter zum Verkauf angeboten, und Microsoft hat die Firma gekauft. Spiel zu verkaufen - Minecraft ist auf Twitter angeboten worden.

Es funktioniert wie spezifiziert

Kristian Köhntopp - December 14, 2021
Dieser Artikel basiert auf einem Twitter-Thread und ist in deutscher Sprache als Heise Kommentar erschienen. Über den Java-Slogan “Write Once, Run Everywhere” wurden schon viele Witze gemacht. Den log4j-Exploit behandeln viele nun wie einen Bug – das ist er nicht. Eine kritische Lücke in der Java-Bibliothek Log4j beherrscht gerade die Schlagzeilen. Die IT-Welt ruft “Warnstufe Rot” aus – weil offenbar der log4j-Code JNDI-Variablenexpansion vornehmen kann. Doch was ist JNDI? Jindi al Dap ist der Name eines alten arabischen Philosophen und Mathematik-Pioniers, der für Sun/Oracle gearbeitet hat, um ein System von Directory Lookups in Java zu entwickeln.

Discord Nitro Spam and 2FA

Kristian Köhntopp - November 30, 2021
This morning the Discord account of my son started to send “free nitro” spam to his friends on the friend list, and to some Discords he was a member of. He had 2FA (Google Authenticator) on the account. That fact alone made this a recoverable failure. My son is playing minecraft, has a friend list of around 100 fellow players, and is member of around 40 Discords. He also connected his Discord to Spotify, YouTube and other services, and he authorized around 12 application services, mostly Discord/Minecraft bot services.

MySQL: Moving Average

Kristian Köhntopp - November 24, 2021
MySQL window functions can be used to calculate daily averages or moving averages for a 24h time window relatively easily. In an earlier article basic window functions were already discussed. In this article, we want to see how we can get daily buckets and moving averages. A sample program is available, as usual, on GitHub . Getting sample data We will be working with a data table named data, with three columns: a sensor id, a measurement datetime d and a metric value m that was sampled at that time.

Arista Type 7 Passwords

Kristian Köhntopp - November 22, 2021
A friend of mine wanted to provision BGP passwords for their Arista switch configuration. So a config stanza such as router bgp 65001 router-id 10.1.1.1 neighbor mydevices peer-group neighbor mydevices password 7 8kjYaye5DsQh0epELyKNe0oZ3E3zp39X requires generation of the Password (actually “supersecretpassword”) in an encrypted form. Arista switches can do this using CLI tools, apparently. They seem to have an onboard Linux, which seems to provide limited tooling, but is good enough to run a 32-bit Python 3.

A01:2021 - Broken Access Control

Kristian Köhntopp - November 16, 2021
Dieser Artikel wurde von Lenz Grimmer auch ins Englische übersetzt. In einem Twitter-Thread von Christian Basl ging es um die von zerforschte App “Learnu” . Basl schreibt: Die Betreiber von Learnu sagen, sie hätten keine Fachkenntnisse in IT-Sicherheit und hätten sich auf externe Berater verlassen. So kam Learnu unbekannterweise unsicher auf den Markt. In der sich entwickelnden Diskussion vertrat Andreas Dewes den Standpunkt Die meisten Start-ups die ich kenne gehen durch eine Phase, in der IT-Sicherheit und Compliance eher im Hintergrund stehen.

A01:2021 - Broken Access Control (en)

Kristian Köhntopp - November 16, 2021
Translation by Lenz Grimmer, German version here . A twitter thread by Christian Basl discussed the dissection of the “Learnu” app . Basl wrote: Learnu operators say they have no expertise in IT security and have relied on outside consultants. As a result, Learnu came to market insecurely, unbeknownst to them. In the discussion that developed, Andreas Dewes took the view that Most startups I know go through a phase where IT security and compliance tend to take a back seat.

Die kommende Kündigungswelle

Kristian Köhntopp - November 12, 2021
Ein guter Freund sinnierte gestern mit anderen Freunden von mir über die Situation auf der Arbeit und schrieb mir heute: Wie man es auch dreht und wendet: Corona ist auch ein Lackmustest für Unternehmen in ihrer Rolle als Arbeitgeber. Anhand der vierten Welle lässt sich das hervorragend nachvollziehen. Denn Unternehmen und Organisationen, denen am Wohl ihrer Mitarbeiter/-innen etwas liegt, haben schon vor Wochen überall dort, wo es möglich ist, ihre Leute kategorisch wieder ins Homeoffice geschickt und Präsenzveranstaltungen untersagt.

AMD und 128 cores

Kristian Köhntopp - November 8, 2021
Wir sprachen in Software Defined Silicon darüber, wie die CPU-Bedürfnisse von Hyperscalern und normalen Kunden divergieren. Hyperscaler haben Interesse an immer größeren CPUs mit immer mehr Kernen, und immer höherer Dichte in ihren Rechenzentren. […] Normale Kunden sehen das nicht so: man kann in einer 64C/128T-Core-Single-Socket-Konfiguration mit 2-4 TB RAM unter Umständen den gesamten Serverbedarf einer kleineren Firma in einer einzelnen physikalischen Maschine in VMs unterbringen. Das Problem dabei: Explosionsradius, wenn mal etwas ausfällt.

MySQL: Parallel Replication

Kristian Köhntopp - November 8, 2021
At work, replication is a central feature in our MySQL Standard Architecture. But until MySQL 5.6, replication was strictly sequential: Even if transactions happened in parallel on a primary, they would be downloaded to the replica by the IO_THREAD into the relay log. From there, a single SQL_THREAD would apply them, one after the other in strict binlog order. That can lead to Replication Delay. We had a monitor for that, courtesy of Dennis Kaarsemaker .

This Blog is now Hugo powered

Kristian Köhntopp - November 7, 2021
I started blogging almost 20 years ago, because a piece of software I was using to manage calendars and discussion boards to organize the “Dienstag” also offered blogging functionality. That software was very buggy and full of HTML injections. My patches to fix things touched almost all files, and were rejected, because they… touched too many files. So I was looking around for something better, and the good people on ircnet:#php.

Relational, and an Algebra

Kristian Köhntopp - October 29, 2021
What is “relational” and “algebra” about “Relational Algebra” and SQL? It is likely that you know all this. There is nothing new in this text, if you had Databases 101 in school or university, so you do not have to read any of this. In case you had not, or you forgot because it was a long time ago, here it is, again. *This is the english version of a much older german writeup .

MySQL: Python and WHERE ... IN ()

Kristian Köhntopp - October 28, 2021
As a developer using Python, I want to be able to hand a list to an SQL statement with a WHERE id IN (…) clause, and it should do the right thing. Well, that is not how it started, because it was asked on the internal no-work-channel, so it kind of escalated more. A question The original question was: Dev> Why is it 2021, and SQL prepared statements still can’t deal with IN?

Metaverse (en)

Kristian Köhntopp - October 27, 2021
I wrote on Twitter something about the term “Metaverse”. That led to a contact with Michael Carl , who wanted to make an episode for his Podcast with me. My german notes and talk prep are now also available here: Metaverse The term “Metaverse” was initially coined by Neal Stephenson in 1992, but in the context of the current discussion it was defined as in The Metaverse: What It Is, Where to Find it, Who Will Build It, and Fortnite by Matthew Ball.

Metaverse

Kristian Köhntopp - October 26, 2021
Ich schrieb auf Twitter was zum aktuellen Begriff “Metaverse”. Das hat zu einem Kontakt mit Michael Carl geführt, der mich in seinem Podcast haben wollte. Meine Gesprächsnotizen und Vorbereitung habe ich nun auch hier: Metaverse Der Begriff “Metaverse” stammt ursprünglich von Neal Stephenson, aus dem Jahre 1992, aber er ist im aktuellen Kontext von Matthew Ball in The Metaverse: What It Is, Where to Find it, Who Will Build It, and Fortnite mit Sinn gefüllt worden.

Understanding git

Kristian Köhntopp - October 12, 2021
It occurred to me that I do not know nearly enough how git works, internally. The contents of the .git directory seem to be accessible enough, so I am going on a Safari in the git repository of this blog. You can follow along if you check out the blog . Refs All things git live in .git. The thing we are working with seem to live in .git/refs: $ find .

Empty commits and other wrong tools for the job

Kristian Köhntopp - October 6, 2021
This is how you can make an empty commit: $ git commit --allow-empty -m "Kick it" This has the disadvantage of also generating a commit message. Another way to achieve this seems to be $ git commit --amend --no-edit && git push -f but that will make people hate you in other ways. So lets stop and ask: Why would you want to make an empty commit? Most people want this because they attached a server-side action to a commit, a CI/CD activity.

99% secure

Kristian Köhntopp - October 2, 2021
Linus Neumann zitiert Prof. Norbert Pohlmann : Ich glaube, das ist so. Diese 100%ige Sicherheit wird es nicht geben, und wenn der Chaos Computer Bild was findet, dann findet er das, und dann sagen wir, das ist gut. Und dann überlegen wir uns, wie wir das wieder schließen können und dann ist es wieder besser. Und dann können sie auch weiter suchen. Also, ich glaube, wir brauchen auch eine andere Grundhaltung und es geht nicht immer um 100 %, sondern die 99 %, die reichen und wir müssen mit den Restrisiken umgehen.

Projektschmerzen

Kristian Köhntopp - October 1, 2021
Es beginnt mit einem Tweet von Manuel Atug : “Wegen Überlastung der Server: #Notruf-App vorerst nicht mehr in App-Stores” und der Tweet verlinkte einen (inzwischen nicht mehr existierenden) Artikel beim Deutschlandfunk. Christoph Petrausch erklärt, wie solche Projekte falsch laufen können: Sowas erfordert eine Fehlerkultur. Du musst als Organisation in der Lage sein, nach so einem Incident einen Schritt zurückzutreten. Alle Fakten auf den Tisch zu legen und zu fragen: Warum kam es dazu?