Tl;dr: Jemand fremdes könnte zufällig deine Daten bekommen haben, wenn du heute zwischen 18:34 und 19:49 Uhr im GURU eingeloggt warst und du einen Timeout bekommen hast.
Heute, am 19.12.2020 haben wir eine neue Version des GURU3 deployed, bei der es zu einem Sicherheitsproblem kam, wenn zwei Nutzer*innen zum selben Zeitpunkt eine beliebige Seite im GURU aufgerufen haben. Es ist reproduzierbar zu der Situation gekommen, dass eine Nutzer*in eine Seite anforderte und einen Timeout bekam, während die Seite an eine andere Nutzer*in ausgeliefert wurde. Es konnte somit z. B. eine fremde Nutzer*in die Übersicht der Extensions einer anderen Nutzer*in sehen und somit auch an die SIP Zugangsdaten und / oder die DECT-Tokens gelangen. Wer heute zwischen 18:34 und 19:49 Uhr im GURU eingeloggt war und einen Timeout bekommen hat muss unbedingt seine SIP Kennwörter von aktiven Events (aktuell rC3 und EPVPN) ändern, um sicherzugehen, dass diese nicht missbraucht werden. Dies ist mit dem “Regenerate Password” Knopf beim Schlüsselsymbol in der Extensions-Übersicht zu bewerkstelligen. Bereits genutzte DECT-Tokens sind “invalid”. Wer ein neues nicht benutztes DECT-Token möchte, meldet sich bei poc at eventphone.de oder meldet sein DECT Gerät an, dadurch wird der Token unbrauchbar. Eine DECT Extension in SIP ändern und dann wieder zurück in DECT, löst das Problem auch, da ein neues Token generiert wird.
Analyse
Die Ursache lag in einem Update der Django Channels Komponente von kleiner 3 auf Version 3.0.2. In den Release Notes wird erwähnt, dass die bisherige Konfiguration nicht mehr unterstützt wird und es sollte auch eine Warnung ausgegeben werden, was in unserem Setup jedoch nicht passierte.
./manage.py runserver Performing system checks... Libdtmx not found. Barcodes not available! System check identified no issues (0 silenced). December 19, 2020 - 17:44:34 Django version 3.0.11, using settings 'guru3.settings' Starting ASGI/Channels version 3.0.2 development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. Performing system checks...
Im Daphne GitHub Repository gibt es auch ein geschlossenes Issue das den Fehler und eine Lösung beschreibt.
Zeitlicher Ablauf
2020-12-19 18:34 Deployment der problematischen Konfiguration
2020-12-19 19:28 PoC Mitglieder bemerken das Problem
2020-12-19 19:44 Vermutung, dass die Reponse an andere User ausgeliefert wird
2020-12-19 19:49 Abschaltung des GURU3
2020-12-19 20:45 Reaktivierung des GURU3
Was haben wir gelernt?
- Bei allen Updates immer die Release Notes genau durchlesen.
- Nicht unter Zeitdruck auf das Livesystem deployen.
- Immer Vier-Augen-Prinzip.
- Im Testsystem ausgiebig testen und dann erst auf Live deployen.
Bei Fragen wendet euch an uns via poc at eventphone.de.
Wir entschuldigen uns für die Panne und arbeiten daran, unsere Abhängigkeiten von Komponenten zu verringern, bei denen wir keine Kontrolle über die Qualität haben, um das Risiko solcher Vorfälle zu minimieren.
Euer PoC / Eventphone Team
ST ist Künstler. Er hat eine Ausbildung zum Energieelektroniker absolviert, Informatik, Physik, generalistisches Management sowie bildende Kunst studiert und arbeitet neben seinen Kunstprojekten freiberuflich als Agile Coach, Scrum Master, Datenschutzbeauftragter oder IT-Manager.
Seit 2000 treibt er sich im Umfeld des Chaos Computer Club und den entsprechenden Veranstaltungen herum. Er ist Mitgründer der BlinkenArea und seit 2003 Teil des Eventphone Teams.