Zugangsdaten bei Railway wechseln: den Produktivbetrieb prüfen

Prüfen Sie den Wechsel Ihrer Zugangsdaten nach dem Railway-Vorfall: alte Zugriffe sperren, neue Einstellungen übernehmen und abhängige Abläufe testen.

Ernest Bursa

Ernest Bursa

Founder · · 10 Min. Lesezeit
An older East Asian man wearing a StartupKit sweatshirt reads a paper checklist on a San Francisco rooftop at dawn.

Beim Wechsel von Zugangsdaten stellen Sie die Dienste um, die diese Daten verwenden, machen die bisherigen Zugangsdaten ungültig und prüfen, ob der vorgesehene Ablauf mit dem Ersatz funktioniert. Eine neue Umgebungsvariable zu speichern, erledigt einen Teil dieser Arbeit. Sie müssen außerdem feststellen, welche laufenden Komponenten den neuen Wert übernommen haben und welche Prüfungen noch offen sind.

Der Sicherheitsvorfall bei Railway zeigt diesen Unterschied konkret. In seiner Mitteilung vom 21. Oktober, die auch auf Hacker News diskutiert wurde, warnte Railway: Ein unbefugter Dritter könnte entschlüsselte Inhalte einiger Umgebungsvariablen von Kunden erlangt haben. Railway empfahl, gespeicherte Zugangsdaten zu ersetzen und die beim jeweiligen Anbieter protokollierten Aktivitäten zu prüfen. Builds waren damals ausgesetzt. Kunden konnten neue Zugangsdaten deshalb nur eingeschränkt per Deployment übernehmen.

Die praktische Aufgabe geht über das Erstellen eines weiteren Schlüssels hinaus. Ihre Webanwendung, Hintergrundprozesse, zeitgesteuerte Aufgaben und Ihre Deployment-Pipeline können jeweils Zugangsdaten benötigen. Manche verwenden denselben Wert. Andere brauchen eine erneute Verknüpfung auf anderem Weg. Für die Wiederherstellung benötigen Sie eine Übersicht dieser Abhängigkeiten und eine verantwortliche Person für jede noch nicht umgestellte Komponente.

Was hat sich an Railways Hinweisen zur Wiederherstellung geändert?

Prüfen Sie die aktuelle Mitteilung des Anbieters, bevor Sie einem älteren Beitrag zum Vorfall folgen. Eine während des Deployment-Stopps veröffentlichte Empfehlung kann weiterhin sinnvoll sein, obwohl ihre Angaben zur Verfügbarkeit inzwischen überholt sind.

Zum Stand unserer Recherche am 23. Oktober um 22:06 UTC meldete Railways Statusseite zum Vorfall Builds, Deployments, API und Dashboard als betriebsbereit. Die Hinweise sahen weiterhin vor, sensible Zugangsdaten zu wechseln, die bisherigen zu sperren und abhängige Dienste erneut bereitzustellen. Railway stellte außerdem klar: Dass ein Workspace nicht zu den benachrichtigten Gruppen mit höherem Risiko gehörte, bestätigte seine Sicherheit nicht. Kunden, die ihre Zugangsdaten nach der Eindämmung bereits gewechselt hatten, mussten den Wechsel allein wegen dieser Aktualisierung nicht wiederholen.

Der Leitfaden zur Wiederherstellung von Deployments vom 23. Oktober erklärt eine weitere Lücke: Während der Unterbrechung gepushte Commits wurden nicht zur späteren Verarbeitung vorgemerkt. Dienste liefen mit ihrem letzten erfolgreichen Deployment weiter, bis ein neues ausgelöst wurde. Auch widerrufene GitHub-Verknüpfungen, CLI-Sitzungen oder Deployment-Tokens konnten dieses nächste Deployment verhindern. Railway weist Kunden an, den jeweiligen Zugriff vor einem erneuten Versuch wieder zu verknüpfen oder neu einzurichten.

Daraus ergeben sich zwei Fragen für die Wiederherstellung: Können Sie ein Deployment durchführen, und hat die Anwendung ihre neuen Zugangsdaten erhalten? Ein wieder funktionierendes Deployment beantwortet die erste Frage. Für die zweite brauchen Sie einen Nachweis von der betroffenen Komponente.

Laut Railways vorläufigem Bericht blieben bestehende Deployments während der Build-Unterbrechung online. Das ist Railways Darstellung des eigenen Plattformbetriebs. Sie belegt nicht, dass jede externe Integration eines Kunden weiter funktionierte, insbesondere wenn ein vorgeschalteter Anbieter einen Schlüssel gesperrt hatte. Die Untersuchung war noch nicht abgeschlossen. Dieser Artikel trifft keine Aussage darüber, auf welche Zugangsdaten von Kunden zugegriffen wurde.

Ordnen Sie jedem Zugang alle Komponenten zu, die ihn verwenden

Beginnen Sie beim Aussteller der Zugangsdaten und verfolgen Sie den Wert bis zu jeder Komponente, die ihn verwenden soll. Eine Liste von Secret-Namen zeigt, was vorhanden ist. Die Zuordnung zu den verwendenden Komponenten zeigt, wo jeder neue Wert wirksam werden muss.

Legen Sie für unabhängig konfigurierte oder laufende Komponenten jeweils eine eigene Zeile an. Ein Webprozess und ein Worker können zur selben Anwendung gehören und ihre Konfiguration dennoch auf unterschiedlichen Wegen erhalten. Ein CI-Token gelangt möglicherweise überhaupt nicht in die Anwendung: Er berechtigt lediglich zum Deployment.

Die folgende Tabelle ist unser Vorschlag für die Praxis, keine Vorgabe von Railway. Die Komponenten sind Beispiele und beschreiben nicht jede Anwendung auf Railway.

Art der Abhängigkeit Beispiel einer verwendenden Komponente Frage vor der Bestätigung der Übernahme
Deployment-Zugriff CI-Ablauf oder CLI eines Administrators Kann die berechtigte Identität den vorgesehenen Dienst bereitstellen?
Anfragen der Anwendung Webprozess, der eine externe API aufruft Hat diese laufende Version die neuen Zugangsdaten erhalten?
Hintergrundverarbeitung Worker, der wartende Benachrichtigungen versendet Hat auch der Worker die neue Konfiguration übernommen?
Zeitgesteuerte Aufgaben Regelmäßiger Import oder Bereinigungsprozess Welche Konfiguration verwendet die nächste Ausführung?
Externe Integration Versandverbindung in einem anderen Produkt Wurden die dort separat gespeicherten Zugangsdaten aktualisiert und geprüft?

Halten Sie je Zeile Anbieter, Umgebung, verwendende Komponente, verantwortliche Person und eine Referenz auf den Ersatz fest. Nutzen Sie eine nicht geheime Kennung der Zugangsdaten, falls der Anbieter eine solche bereitstellt. Andernfalls verwenden Sie eine interne Konfigurationsreferenz. Damit sollte die verantwortliche Person die Änderung finden können, ohne den geheimen Wert offenzulegen.

Benennen Sie Test- und Produktivumgebung ausdrücklich. Zwei Variablen mit demselben Namen können den Zugriff auf unterschiedliche Konten erlauben. Umgekehrt können gemeinsam genutzte Zugangsdaten mehrere Abhängigkeiten im Produktivbetrieb erzeugen. Lassen Sie die Zuordnung von der Person bestätigen, die für die jeweilige Komponente verantwortlich ist. Gehen Sie nicht davon aus, dass eine Suche im Repository jede Kopie findet.

Kopieren Sie keine Tokens, Passwortfragmente, Autorisierungsheader oder vollständigen Ausgaben der Umgebungsvariablen in die Tabelle. Die Dokumentation soll helfen, die Änderung zu prüfen, ohne selbst zu einem weiteren Speicherort für das Geheimnis zu werden.

Entscheiden Sie über die Eindämmung, bevor Sie den Ersatz planen

Ihr Umstellungsplan muss berücksichtigen, dass offengelegte Zugangsdaten weiterhin funktionieren könnten. Benennen Sie sofort eine verantwortliche Person für die Entscheidung über die Eindämmung, auch wenn Deployments blockiert sind.

Der Wunsch nach einer reibungslosen Umstellung darf nicht automatisch dazu führen, möglicherweise kompromittierte Zugangsdaten aktiv zu lassen. Ihre Sperrung kann einen abhängigen Dienst unterbrechen. Je nach Anbieter, vermutetem Zugriff und verfügbaren Schutzmaßnahmen kann es notwendig sein, diese Unterbrechung hinzunehmen. Folgen Sie den Vorfallhinweisen des Ausstellers und Ihrem autorisierten Verfahren zur Vorfallbehandlung.

Beschreiben Sie den Zielkonflikt konkret: Welche Zugangsdaten müssen ungültig werden? Welcher Ablauf könnte ausfallen? Wer kann den Zugriff sperren, und wer stellt den Ablauf wieder her? Damit erhält die Vorfallleitung eine greifbare Entscheidungsgrundlage. „Wir warten auf die Plattform“ lässt sowohl das Zugriffsrisiko als auch die Folgen für die Verfügbarkeit offen.

Prüfen Sie außerdem den Mechanismus für den Wechsel, bevor Sie eine Übergangsphase mit parallelem Zugriff einplanen. Manche Anbieter erlauben mehrere aktive Zugangsdaten; andere ersetzen ein Passwort sofort. Ein Plan, der zwei funktionierende Schlüssel voraussetzt, lässt sich nicht unverändert auf einen Aussteller übertragen, der nur einen zulässt.

Unsere frühere Checkliste zum Abschluss von Meldungen über offengelegte Zugangsdaten behandelt den Nachweis der Sperrung und die Grenzen einer Untersuchung der Auswirkungen. Behalten Sie diese Fragen bei der Umstellung im Blick und verfolgen Sie die Wiederherstellung anhand der Zeilen für die einzelnen Komponenten. Neue Zugangsdaten zu erstellen, belegt nicht, dass die bisherigen keinen Zugriff mehr gewähren.

GitHub beschreibt diesen Unterschied ausdrücklich in seiner Dokumentation zum Widerruf von Tokens: Ein widerrufener oder abgelaufener Token kann nicht mehr zur Authentifizierung verwendet und auch nicht wiederhergestellt werden. Es muss ein neuer erstellt werden. Andere Anbieter haben eigene Regeln. Prüfen Sie deshalb das Verhalten des jeweiligen Ausstellers, statt für alle Zugangsdaten dieselben Eigenschaften wie für einen GitHub-Token anzunehmen.

Weisen Sie nach, dass der laufende Dienst die neue Konfiguration übernommen hat

Dokumentieren Sie, wie jede Komponente ihre Konfiguration übernimmt, und benennen Sie anschließend die geprüfte Instanz oder Ausführung. Dass ein Secret-Speicher den neuen Wert anzeigt, sagt wenig über einen bereits laufenden Prozess aus, solange dieser ihn nicht übernommen hat.

Laut Railways Dokumentation zu Variablen erzeugen Änderungen an Variablen vorgemerkte Änderungen, die Sie prüfen und per Deployment anwenden müssen. In diesem Verfahren sind eine gespeicherte Änderung und ein angewendetes Deployment getrennte Ereignisse. Halten Sie die Deployment-Referenz zusammen mit der Konfigurationsänderung fest.

Bei einem anderen System kann der vorgesehene Weg ein Neustart, das erneute Laden der Konfiguration oder eine Änderung in den Integrationseinstellungen sein. Folgen Sie dem dokumentierten Verfahren der jeweiligen Komponente. Schreiben Sie nicht überall einen Neustart vor: Manche Systeme können Zugangsdaten neu laden, und manche Änderungen erfordern einen anderen Vorgang.

Eine hilfreiche Dokumentation der Wiederherstellung unterscheidet drei Zustände:

  1. Ersatz vorbereitet: Der Aussteller hat den neuen Zugriff angelegt, und eine berechtigte verantwortliche Person hat ihn in der vorgesehenen Konfiguration gespeichert.
  2. Ersatz übernommen: Die Komponente hat das vorgesehene Verfahren zur Übernahme abgeschlossen; eine Deployment- oder Konfigurationsreferenz liegt vor.
  3. Ablauf geprüft: Ein gezielter Vorgang hat die vorgesehene Integration verwendet, und das Ergebnis wurde dokumentiert.

Diese Zustände sollten getrennt bleiben, wenn der letzte noch blockiert ist. „Neuer Wert gespeichert; Übernahme durch den Worker unbestätigt“ hilft mehr als ein einziges grünes Häkchen für den gesamten Wechsel. Die nächste Person erkennt damit, wo sie weitermachen muss.

Prüfen Sie auch, welche Codeversion Sie bereitstellen. Ein Deployment zur Wiederherstellung kann Änderungen enthalten, die während des Ausfalls entstanden sind. Bestätigen Sie, dass Ihr Team die ausgewählte Version tatsächlich veröffentlichen will. Unser Leitfaden zur Trennung von Repository und Veröffentlichung erklärt, warum der Repository-Zustand und veröffentlichte Artefakte jeweils eigene Nachweise brauchen.

Prüfen Sie einen klar begrenzten Ablauf der Integration

Wählen Sie einen gezielten Vorgang, der die geänderte Abhängigkeit verwendet. Eine erfolgreiche Antwort des allgemeinen Health-Endpunkts kann zeigen, dass die Anwendung reagiert. Ihre Verbindung zu einem Mail-, Zahlungs-, Speicher- oder KI-Anbieter bleibt dabei möglicherweise ungeprüft.

Legen Sie das erwartete Ergebnis vor der Prüfung fest. Bei Benachrichtigungen könnte das eine einzelne autorisierte Nachricht an einen vom Team verwalteten Empfänger sein, die der vorgesehene Worker verarbeitet. Bei einer API-Integration könnte es ein erlaubter Lesezugriff auf eine bekannte Ressource sein. Wählen Sie einen Vorgang, der zum Anbieter und zu Ihrer Berechtigung passt. Eine Prüfung zur Wiederherstellung sollte keinen Massenversand, unnötige Kosten oder destruktive Transaktionen auslösen.

Halten Sie Komponente, Zeitpunkt, Referenz des laufenden Deployments oder der Konfiguration und Ergebnis fest. Ergänzen Sie, soweit verfügbar, eine Anfragekennung des Anbieters oder eine Nachrichtenreferenz. Wenn die Protokolle des Anbieters die nicht geheime Kennung der Zugangsdaten enthalten, kann diese helfen nachzuweisen, welcher Zugriff verwendet wurde. Setzen Sie nicht voraus, dass jeder Anbieter sie protokolliert.

Prüfen Sie genau, was ein Erfolg tatsächlich belegt. Eine bestehende Verbindung aus einem Datenbankpool oder ein zwischengespeicherter Zugriffstoken kann einen Vorgang ermöglichen, ohne die neu konfigurierten Zugangsdaten zu verwenden. Klären Sie diese Unsicherheit mit den vom Anbieter vorgesehenen Prüfungen. Können Sie nicht feststellen, welcher Zugriff verwendet wurde, dokumentieren Sie das und weisen Sie die weitere Prüfung einer verantwortlichen Person zu.

Auch ein fehlgeschlagener Vorgang muss eingeordnet werden. Ein Authentifizierungsfehler, fehlende Berechtigungen, ein nicht verfügbarer Dienst und eine ungültige Testanfrage deuten auf unterschiedliche Probleme hin. Bewahren Sie eine unbedenkliche Fehlerreferenz auf und geben Sie sie an die zuständige Person weiter. Wiederholt neue Zugangsdaten zu erstellen, ohne den Fehler zu verstehen, kann die Konfigurationsdokumentation unzuverlässiger machen.

Dokumentieren Sie offene Komponenten, bevor Sie die Wiederherstellung abschließen

Schließen Sie die Umstellung erst anhand der Nachweise für jede relevante Komponente ab. Lassen Sie eine ungeklärte Zeile offen, auch wenn der Rest der Anwendung wieder funktioniert.

Das folgende Übergabeprotokoll ist frei erfunden. Namen, Referenzen und Ergebnisse veranschaulichen das Format. Sie beschreiben weder Railway noch einen Kit-Kunden.

Zugangsdaten: Identität beim Mailanbieter für den Produktivbetrieb, interne Referenz mail-rotation-24.

Bisheriger Zugriff: Lena hat die Sperrung durch den Aussteller im verlinkten Anbieterereignis dokumentiert.

Ersatz: Arun hat die Konfigurationsversion sender-12 aktualisiert.

Übernommen: Web-Deployment release-208 bestätigt; die Übernahme der Konfiguration durch den Benachrichtigungs-Worker ist noch unbestätigt.

Geprüft: Der Anbieter hat eine einzelne autorisierte, über die Webanwendung ausgelöste Testnachricht angenommen. Damit wurde weder der Hintergrundversand von Benachrichtigungen geprüft noch die Zustellung im Posteingang nachgewiesen.

Offene Arbeit: Lena ist für die Prüfung des Workers verantwortlich. Der Kampagnenversand bleibt bis zu diesem Ergebnis pausiert.

Das Protokoll hält ein Teilergebnis fest, ohne die Lücke zu verbergen. Ein Teammitglied erkennt die verbleibende Aufgabe, ohne erst nachfragen zu müssen, was die erste Person mit „gewechselt“ gemeint hat.

Verknüpfen Sie die Untersuchung der Auswirkungen, beschreiben Sie sie aber separat. Die Wiederherstellung des vorgesehenen Zugriffs belegt nicht, was vor der Sperrung geschehen ist. Ebenso beweist das Fehlen verdächtiger Aktivitäten in den verfügbaren Protokollen nicht, dass der gesamte Zeitraum der möglichen Offenlegung abgedeckt ist. Benennen Sie die geprüften Systeme und den untersuchten Zeitraum und halten Sie wesentliche Lücken fest.

Prüfen Sie die Versandverbindung in Kit

Behandeln Sie eine separat konfigurierte Versandverbindung als weitere Komponente der Umstellung. Eine Änderung der Umgebungsvariablen Ihrer Anwendung aktualisiert kein Passwort, das in einer externen Integration gespeichert ist.

Tragen Sie für eine Versandverbindung in Kit den neuen Wert im passenden Einstellungsformular ein und verifizieren Sie die Verbindung. Kit setzt die bisherige SMTP-Verifizierung zurück, wenn sich Verbindungsdaten wie Host, Port, Benutzername oder Passwort ändern. Bei der SMTP-Verifizierung verbindet sich Kit mit dem konfigurierten Server und authentifiziert sich dort.

Das ist eine Authentifizierungsprüfung. Sie versendet keine Nachricht und belegt weder die Annahme durch den Empfänger noch die Zustellung im Posteingang, die Domain-Authentifizierung oder die Verarbeitung eingehender Antworten. Prüfen Sie anschließend gezielt den Ablauf, den Sie wiederherstellen möchten. Der Leitfaden zur E-Mail-Zustellung erklärt die Einrichtung der Verbindung; die Checkliste zur Authentifizierung von Recruiting-E-Mails behandelt die gesonderten Fragen zur Domain-Authentifizierung.

Wenn Sie außerdem IMAP zur Erkennung von Antworten verwenden, prüfen Sie dessen Konfiguration separat. Kit kann ein eigenes IMAP-Passwort verwenden. Bleibt es leer, greift Kit auf das SMTP-Passwort zurück. Halten Sie fest, welche Variante Ihre Verbindung verwendet. So bleibt beim Austausch eines Werts keine weitere Abhängigkeit ungeklärt.

Die Sperrung des alten Passworts beim Mailanbieter bleibt Aufgabe Ihres Teams. Kit wechselt keine Railway-Zugangsdaten und erfasst nicht, welche Komponenten ein Cloud-Secret verwenden. Seine Versandverbindung ist eine der Stellen, an denen Sie den neuen Wert möglicherweise übernehmen und testen müssen.

Benennen Sie bei Ihrer nächsten Umstellung den Aussteller, listen Sie die verwendenden Komponenten auf und legen Sie fest, wer über die Eindämmung entscheidet. Trennen Sie die Übernahme der Konfiguration von der Funktionsprüfung. Beginnen Sie mit einer tatsächlichen Abhängigkeit und benennen Sie offen, was noch ungeklärt ist. Wenn Kit zu Ihren versendenden Systemen gehört, nutzen Sie die Verbindungsprüfungen für diese Dokumentation. Oder starten Sie einen Testzeitraum, um den Ablauf mit einem kontrollierten Postfach zu prüfen.

Verwandte Artikel

Testen Sie Kit 30 Tage lang.

Recruiting, Sicherheitsmeldungen und Schulungen in einem Konto, für Teams, in denen nichts davon ein Vollzeitjob ist. 30 Tage kostenlos, Kreditkarte erforderlich. Kündigen Sie vor Ablauf, zahlen Sie nichts.

Kostenlos starten