php2shell auf 13 Servern
| Wer | Ein Admin, vom Handy aus |
| Server | Alle 13 der Beispiel GmbH, web01 zuerst |
| Ihr Anteil | Ein Satz, zwei Tipps auf Freigeben, ein Los |
| Stufe | rw- Fragt vor Änderungen, siehe die drei Stufen |
Problem
Am Nachmittag veröffentlicht php.net zwei Lücken in PHP, zusammen php2shell genannt. Jede Webanwendung ist betroffen, der Fix liegt bereit. Die Beispiel GmbH hat 13 Server, nicht auf jedem läuft PHP, und der Admin ist unterwegs. Jeden Server einzeln prüfen und patchen kostet den Abend, und wer einen vergisst, merkt es zu spät.
Gesucht: Alle betroffenen Server noch heute dicht, erst einer zur Probe, dann die anderen, vom Handy aus.
Lösung
Ein Satz vom Handy, und Heinzel Pro recherchiert, prüft jeden Server und spielt den Fix ein: erst auf einem, nach Ihrem Los auf allen.
Schritt 1: Sie beschreiben die Aufgabe, für alle Server
Eingabe: Recherchiere php2shell und fixe das Problem auf allen davon betroffenen Servern.
Ein Satz, wie Sie ihn einem Kollegen schreiben würden. „Dasselbe auf vielen“ macht daraus einen Rollout: eine Session je Server, erst auf web01, die anderen nach Ihrem Los. Die Stufe bleibt „Fragt vor Änderungen“.

Schritt 2: Es recherchiert, und selbst dafür fragt es
Heinzel Pro will die Meldung von php.net lesen. Ein Abruf aus dem Netz kann auch Daten senden, also wartet er auf Ihren Tipp. Danach liest es allein: welche PHP-Pakete auf web01 liegen, ob die neue Version schon im Spiegel ist, welche Dienste laufen.
Dann steht es: web01 ist betroffen, PHP 8.2.29 als php-fpm hinter nginx, und der Fix liegt bereit.

Schritt 3: Sie lesen den Plan und geben ihn frei
Drei Schritte, jeder mit Befehl, Server und Einstufung: Paket, Dienst, nur lesen. Dazu, was schiefgehen kann und wie es zurückgeht. Ein Tipp gibt alle drei frei; sie laufen in dieser Reihenfolge, jeder erst, wenn der vorige gelang.

Schritt 4: Nach Ihrem Los folgen die anderen zwölf
web01 ist nach 24 Sekunden dicht, das Portal antwortet mit 200. Sie sagen Los, und die anderen Server bekommen je eine eigene Session, vier gleichzeitig. Was auf web01 freigegeben wurde und gelang, läuft dort ohne Nachfrage. backup2 hat kein PHP: seine Session meldet das und ändert nichts.
