TOBIAS KNOBLOCH
AN
AUDIENCE
OF
ONE
TOBIAS KNOBLOCH · IT & SICHERHEIT

Fängt meistens damit an, dass mich irgendwas nervt. Ein paar Wochenenden später läuft dann ein Programm dafür.

SCROLLEN
MIT DER MAUS ÜBER DEN TEXT FAHREN

Steht nur da, damit der Effekt was zum Aufdecken hat.

Fünf Sachen, die laufen

STAND JULI 2026
01 — WEB-ANWENDUNG

Was auf meinem Server läuft, und ob es noch läuft

Auf dem Server laufen ein paar Dienste durch. Wenn einer abstürzt, merke ich das im Zweifel erst Tage später, weil irgendwo etwas fehlt. Vorher müsste ich mich einloggen und die Statusausgaben durchgehen, und das mache ich natürlich nicht jeden Morgen.

Jetzt gibt es eine Weboberfläche, die das für mich abfragt: Zustand, Laufzeit, die letzten Logzeilen. Wichtig war mir dabei, dass die Dienste selbst nichts davon mitbekommen. Kein Agent, den ich überall mitinstallieren muss. Sie schreiben ihre Logs und JSON-Dateien weiter wie vorher, das Board liest die nur aus. Wenn es abstürzt, läuft der Rest einfach weiter.

AUFBAU
PYTHON / FLASKSYSTEMDTOTPPSUTILVPS

Läuft bei mir hinter einem Login. Nichts zum Angucken, deshalb hier nur beschrieben.

DIENSTE gerade eben
collector.service14T 06:224 %
scheduler.service14T 06:222 %
notifier.service3T 11:041 %
watchdog.service28T 02:471 %
archiver.servicegestoppt
JOURNAL

14:28:04collector — Durchlauf beendet, 412 Datensätze

14:27:31watchdog — alle Prüfpunkte bestanden

14:12:09archiver — beendet mit Code 1

4 VON 5 AKTIV ANMELDUNG: 2FA AKTIV
PROZESSE schreiben Logs
und Statusdateien
DATEISYSTEM JSON, Logs,
systemd-Zustand
OBERFLÄCHE liest, cacht 30 s,
zeigt an

Läuft nur in eine Richtung.

02 — FLUTTER-APP

Fahrradkarte mit Nebel drüber

Ich fahre in Karlsruhe seit Jahren im Grunde dieselben drei Strecken. Irgendwann wollte ich wissen, wie viel von der Stadt ich eigentlich noch nie gesehen habe.

Die App legt Nebel über die Karte. Wo ich langfahre, geht der weg und bleibt auch weg. Das Prinzip kennt man aus Strategiespielen. Karten kommen von OpenStreetMap, die Orte zum Freischalten zieht sie sich über Overpass, damit ich keine Liste pflegen muss. Karlsruhe steht nur als Startkoordinate im Code, mit einem anderen Wert läuft sie woanders genauso.

FLUTTER / DARTOPENSTREETMAPOVERPASS-APIGPS IM HINTERGRUND

Liegt bisher nur auf meinem Rechner und dem Handy.

↔  Mit der Maus den Nebel wegfahren
Unberührt → durchgefahren
03 — CLAUDE SKILL + JS-MODUL

An CORS und Cloudflare vorbei, ohne Backend

Beim Windows-95-Dashboard bin ich dagegengelaufen: Eine HTML-Datei ohne eigenen Server darf fremde Seiten nicht auslesen, das unterbindet CORS. Und wo CORS mal nicht blockt, sitzt Cloudflare davor.

Die übliche Antwort sind öffentliche Proxys, nur sterben die ständig weg oder liefern eine Fehlerseite zurück, die auf den ersten Blick wie ein Treffer aussieht. Meine Variante schickt deshalb alle gleichzeitig los statt der Reihe nach und nimmt den ersten, der etwas Brauchbares zurückgibt. Blockseiten fliegen vorher raus, sonst gewinnt am Ende eine Cloudflare-Warteseite das Rennen. Kommt keiner durch, übernimmt ein Reader-Dienst, der einen echten Browser laufen lässt.

JAVASCRIPTKEINE DEPENDENCIESCLAUDE SKILL

Repo ist noch privat, ich muss da vorher aufräumen.

PROXY-RENNEN0 ms
rss2json
corsproxy.io
cors.sh
allorigins
codetabs
✓ cors.sh — 640 ms, 41 kB, gültiges XML
04 — KOMMANDOZEILEN-WERKZEUG

Vorlesungsvideos zu Text, mitsamt den Folien

Eine Aufzeichnung nochmal durchzugucken dauert genauso lang wie beim ersten Mal. Nur bringt eine reine Tonabschrift wenig, wenn der halbe Inhalt auf Folien steht, über die der Dozent bloß redet.

Das Skript macht deshalb zwei Sachen gleichzeitig. Der Ton läuft durch Whisper, lokal auf dem M-Chip. Parallel schneidet ffmpeg Standbilder raus, die ein Vision-Modell wieder in Markdown zurückschreibt: Aus einem Balkendiagramm wird ein Mermaid-Block, aus einer Folientabelle eine Markdown-Tabelle, Zelle für Zelle statt zusammengefasst. Am Ende steht beides zusammen in einer Obsidian-Notiz, pro Zeitmarke die Folie und was dazu gesagt wurde.

Der Teil, an dem ich am längsten gesessen habe: In einer Vorlesung ist minutenlang dieselbe Folie zu sehen. Die alle einzeln analysieren zu lassen wäre absurd teuer geworden. Also vergleicht das Skript die Standbilder vorher über ihre Graustufen und schickt nur die weg, auf denen sich wirklich etwas geändert hat.

PYTHONMLX-WHISPERFFMPEGVISION-MODELLMERMAID

Der Ton bleibt auf dem Rechner. Die Folienbilder gehen zur Auswertung an eine Programmierschnittstelle — das nehme ich für die Diagramm-Erkennung in Kauf. Repo ist noch privat.

TON0 %
EINZELBILDER0 / 0

00:31Also: Was unterscheidet die beiden Verfahren in der Praxis?

FOLIE BEI 00:31 → MARKDOWN
erkannt
```mermaid
xychart-beta
  x-axis [10², 10³, 10⁴, 10⁵]
  bar [12, 41, 96, 240]
```
ZIELObsidian/Vorlesungen/2026-07-22.md
05 — PLAYBOOK

Notfallplan für Büro-IT und Anlagen gleichzeitig

In der Büro-IT nimmt man ein System im Zweifel vom Netz. An einer laufenden Anlage kann genau das teurer werden als der Vorfall selbst. Die Playbooks, die man so findet, kennen aber immer nur eine der beiden Seiten.

Also einen Ablauf geschrieben, der beide abdeckt: welche Schritte gleich bleiben, welche in der Anlagensteuerung anders laufen, und an welchen Stellen sich die zwei Seiten abstimmen müssen, bevor jemand einen Schalter umlegt.

INCIDENT RESPONSEOT/ICSÖFFENTLICH
Auf GitHub ansehen
DERSELBE VORFALL — WELCHE SCHRITTE AUSEINANDERGEHEN
ERKENNEN
EINDÄMMEN
BESEITIGEN
WIEDERANLAUF
NACHBEREITEN
06 — POWERSHELL-WERKZEUGE

Meinen eigenen Code von 2016 bis 2022 nochmal richtig gemacht

Das Älteste auf meinem GitHub sind PowerShell-Skripte aus meiner Zeit im OT-Security-Support: Endpoints härten, Asset-Inventar erheben. Damals zählte nur, dass sie taten, was sie sollten — nicht, dass sie schön aussahen. Sauber liefen sie nie: tote Funktionsaufrufe, alles in einer einzigen Datei, kein einziger Test.

Statt sie zu verstecken, habe ich mich nochmal drangesetzt. Das größte war eine Klick-Oberfläche für den Helpdesk — 414 Zeilen in einer einzigen Datei. Die habe ich so weit auseinandergezogen, bis die eigentliche Arbeit vom Fenster-Drumherum getrennt war und ich sie endlich testen konnte. Bei den kleineren Skripten kamen beim genauen Hinschauen echte Fehler raus: eine Abfrage, die immer „ja" sagte, ein Feld, das leer blieb, weil ich damals die falsche Stelle ausgelesen hatte.

POWERSHELLPESTERGITHUB ACTIONSPSSCRIPTANALYZERCIM

Alte Helpdesk-Werkzeuge, keine Produkte. Der Punkt ist nicht, was sie tun, sondern dass ich sie nicht so liegen lassen wollte.

EIGENER CODE, ÜBERARBEITET2016–2022 → 2026
Aufruf einer Funktion, die es nie gabBug gefunden, entfernt
Eine Bedingung, die immer wahr warzweiter echter Bug behoben
Eine 414-Zeilen-Datei, kein TestLogik in Modulen, 26 Tests
Lief nur auf altem WindowsCI gegen PowerShell 5.1 & 7
PESTER · TESTS26 / 26 grün
PSScriptAnalyzer0 Befunde

Nebenan läuft noch Windows 95.

Mein Nachrichten-Dashboard: siebzehn Feeds in Fenstern, die man ziehen, vergrößern und in die Taskleiste legen kann. Dazu ein Lesemodus, der Artikel aus fremden Seiten rausholt. Das Ganze steckt in einer einzigen HTML-Datei, die man auch einfach doppelklicken kann.

Das rechts ist kein Screenshot, die Seite läuft wirklich. Auf dem Handy allerdings eher mäßig.

Zum Desktop
📁 Security & OSINT_×
Kritische Lücke in weit verbreiteter Bibliothek
BleepingComputer · vor 2 Std.
Ransomware-Gruppe listet neues Opfer
The Hacker News · vor 4 Std.
Warum Passwortrichtlinien scheitern
Schneier on Security · vor 6 Std.
Analyse: Angriffskette über Lieferanten
Krebs on Security · vor 9 Std.
4 ArtikelAktualisiert 14:28