Wenige Tage nach v0.2 sind gestern gleich zwei kleine Updates erschienen, die Versionen v0.2.1 und v0.2.2. Neue Funktionen sind darin nicht enthalten, sondern Fehlerbehebungen, die nicht bis zur nächsten Version warten sollten. Das nehme ich nun zum Anlass, einmal kurz aufzuschreiben, wie die Plattform während der Beta gepflegt wird: wann es solche Hotfixes gibt und was im Hintergrund für die Sicherheit passiert.
Was die beiden Hotfixes behoben haben
- v0.2.1 betrifft den Import der Schließungslisten: Manche Kliniken bekommen aus IVENA eine Schließungsliste, in der alle Fachabteilungen einer Schließungseinheit in einer einzigen Zeile zusammengefasst sind. Diese Variante kannte die Plattform noch nicht, solche Importe sind vollständig gescheitert. Jetzt können beide Varianten verarbeitet werden. Außerdem werden als Nebeneffekt auch Schließungen während einer Zeitumstellung nicht mehr abgelehnt, und Zeilenumbrüche in Bemerkungen bleiben bei allen Importen erhalten.
- v0.2.2 betrifft die Schließungsanalyse: Nachdem nun bereits einige Schließungsdaten importiert worden sind, ließ sich die Übersicht nicht mehr öffnen, weil die Berechnung der erwarteten Zuweisungen zu viel Arbeitsspeicher brauchte. Der Code arbeitet die Daten jetzt Stück für Stück ab und braucht somit nur noch einen Bruchteil des Speichers, die angezeigten Werte sind dieselben wie vorher. Die beiden betroffenen KPI-Karten laden jetzt asynchron und ihr Ergebnis wird zwischengespeichert, bis die Analyse das nächste Mal neu berechnet wird. Am selben Tag hat das Symfony-Projekt, auf dem die Plattform aufbaut, Sicherheitsupdates veröffentlicht. Die sind gleich mit in v0.2.2 eingeflossen.
Beide Fehler sind aufgefallen, nachdem in der Testphase der Schließungsanalyse neue Schließungslisten dazugekommen sind, also genau dort, wo solche Fehler auffallen sollen. Danke an alle, die dort mitmachen und sich melden, wenn etwas nicht stimmt!
Welche Versionen Updates bekommen
Auf versorgungsforschung.io läuft immer die aktuelle Version, als Nutzerin oder Nutzer muss man also nichts tun. Welche Version gerade läuft, steht ganz unten im Footer jeder Seite. Weil die Plattform als Open Source auf GitHub liegt und grundsätzlich auch anderswo betrieben werden kann, gibt es dafür aber eine feste Regel, die in der Datei SECURITY.md im Repository steht.
Wie die Sicherheit geprüft wird
Vor jeder Version gibt es eine interne Sicherheitsprüfung. Dabei helfen mir KI-Programmierassistenten wie Claude und Chat-GPT. Geprüft wird unter anderem auf die häufigsten Risiken von Webanwendungen, wie sie die OWASP Top 10 beschreiben, und auf die bewährten Regeln für Symfony und moderne Webanwendungen. Was dabei auffällt, wird vor der Veröffentlichung behoben oder als eigene Aufgabe festgehalten. Vor v0.2 hat diese Prüfung zum Beispiel dazu geführt, dass einige Zugriffsprüfungen geschärft wurden.
Daneben laufen einige Dinge automatisch:
- Bekannte Sicherheitslücken in verwendeten Bibliotheken werden laufend gemeldet, Updates dafür werden automatisch vorgeschlagen und vor jeder Version noch einmal geprüft.
- Versionen von Bibliotheken mit bekannten Sicherheitslücken lassen sich gar nicht erst installieren.
- Jede Änderung am Code durchläuft vor der Übernahme automatische Tests und eine statische Analyse, die unter anderem prüft, ob Eingaben ungeprüft in Datenbankabfragen oder Seiten gelangen können.
Für die Daten der Kliniken gilt außerdem eine einfache Regel: Echte Zuweisungs- oder Schließungsdaten gehören nicht ins Repository und werden für Entwicklung, Tests und Vorführungen nicht gebraucht. Dafür erzeugt die Plattform seit v0.2 realistische, aber vollständig synthetische Daten. Auch die Screenshots in den letzten Devlogs stammen aus einer solchen Demo-Umgebung.
Sicherheitslücken melden
Wer eine mögliche Sicherheitslücke findet, meldet sie bitte nicht öffentlich, sondern vertraulich über die Funktion „Security Advisory“ auf GitHub. Der Link und die Angaben, die dabei helfen, stehen in der SECURITY.md im Repository. Alles andere, von Fehlern über unklare Werte in den Statistiken bis hin zu Wünschen für neue Features, kann wie immer über die Feedback-Sprechblase in der Anwendung oder per E-Mail an mich gemeldet werden.