
Hacker, die Zugriff auf den Code Ihrer Anwendung erhalten, können verheerende Folgen haben proprietäre Software, aber das Speichern von Anmeldeinformationen in Git kann ihnen erhöhten Datenbankzugriff ermöglichen. Auch wenn Sie nicht vorhaben, dass Ihr Git-Repository gehackt wird, ist es ein gutes Risikomanagement, um potenzielle Schäden zu minimieren.
Quelle Kontrollieren Sie den Zugriff als Angriffsvektor
Open-Source-Software ist nicht unsicher; Schließlich wird ein Großteil der Software, die zum Betrieb des Internets verwendet wird, öffentlich auf GitHub entwickelt. Während die Veröffentlichung des Codes bedeutet, dass Hacker Exploits leichter finden können, hat Open Source bewiesen, dass es großartig für die Transparenz und die Behebung von Fehlern in der Community sein kann.
Dies bedeutet jedoch nicht, dass Closed-Source-Software grundsätzlich sicherer ist. Wenn Entwickler davon ausgehen, dass die Quellcodeverwaltung privat ist, wählen sie bei der Verwaltung von Geheimnissen wie API-Schlüsseln oder Datenbankanmeldeinformationen oft die einfachste Lösung: sie fest in die Anwendung zu codieren, anstatt eine ordnungsgemäße Geheimnisverwaltung zu verwenden.
Eine davon Hauptangriffsvektoren für Hacker sind der Zugriff auf die Quellcodeverwaltung und das Durchsuchen von Projekten nach API-Schlüsseln oder anderen Geheimnissen, die nicht dort sein sollten. Dadurch können sie ihre Berechtigungen erhöhen und den Rest des Netzwerks angreifen, wodurch sie sich häufig Zugriff auf sensible Kundendaten oder Datenbanken verschaffen.
Kürzlich hat die TSA „Flugverbot“ erlassen. Die Liste wurde genau auf diese Weise durchgesickert. Ein unsicherer Jenkins-Build-Server wurde der Öffentlichkeit zugänglich gemacht, ein häufiger Fehler beim Einrichten von Software, die sich in privaten Subnetzen hinter der Zugriffskontrolle befinden sollte. Auf dem Jenkins-Server konnte der Hacker auf den Build-Verlauf zugreifen, der den Code enthielt, und fand AWS S3-Anmeldeinformationen für die Fluggesellschaft, die fest in die Anwendung codiert waren.
Speichern Sie Geheimnisse nicht in der Quellcodeverwaltung
Jede Anwendung verfügt über unterschiedliche Methoden zum sicheren Speichern von API-Schlüsseln und Datenbankanmeldeinformationen, es gibt jedoch einige gängige Methoden.
Die erste besteht darin, Konfigurationsdateien zu verwenden, die in der Produktion auf dem Server bereitgestellt und von der Anwendung zur Laufzeit gelesen werden können. Beispielsweise verwenden ASP.NET-Projekte standardmäßig eine appsettings.json-Datei, die leer ist, während sie in der Quellcodeverwaltung gespeichert wird. Es ist Sache des Administrators, der die Anwendung bereitstellt, die Produktionskonfigurationsdatei bereitzustellen.
Sie können auch Umgebungsvariablen verwenden, die vom System vor dem Ausführen einer Anwendung festgelegt werden. Dies wird häufig für Docker-Container verwendet, da es eine einfache Möglichkeit ist, Anmeldeinformationen in einen bereits erstellten Container einzufügen. Beispielsweise bietet Portainer die Verwaltung von Umgebungsvariablen als Teil seiner Docker-Webschnittstelle an.

Normalerweise ist es eine gute Idee, Geheimnisse regelmäßig zu wechseln, da veraltete Anmeldeinformationen ein Sicherheitsrisiko darstellen. Eines der Tools, die rotierende Geheimnisse verwalten können, ist der Secrets Manager von AWS, der als Speichersystem fungiert, das Geheimnisse problemlos für Ihre AWS-Anwendungen bereitstellen kann.

Für Anwendungen außerhalb von AWS oder jede Anwendung, die einen ähnlichen Dienst verwendet, besteht ein kleines Problem darin, dass Sie immer noch einen IAM-Schlüssel benötigen, um auf Secrets Manager zuzugreifen, was bedeutet, dass Sie einen verwalten müssen IAM-Schlüssel, das ist genau das Problem, mit dem Sie begonnen haben.
Das IAM-System von AWS ermöglicht jedoch eine diskrete Verwaltung von Rollen und Berechtigungen. Sie könnten beispielsweise für jeden Ihrer Server einen Benutzer erstellen und steuern, auf welche Schlüssel im Secrets Manager er zugreifen kann. Sie können auch Sicherheitsrichtlinien für die IAM-Benutzer durchsetzen, sodass diese ebenfalls regelmäßig rotiert werden müssen.
VERWANDTE: Lassen Sie keine Passwörter in Ihrem Code; Verwenden Sie stattdessen den Secrets Manager von AWS
Speichern Sie keine Geheimnisse in Build-Skripten
Eine der schlechtesten Sicherheitsmaßnahmen Ein Fehler, den Entwickler machen können, ist das Speichern von Schlüsseln für Produktionsbereitstellungen in Build-Skripten, die in einer CI/CD-Pipeline verwendet werden.
Beispielsweise verfügen Sie möglicherweise über ein Shell-Skript oder eine YAML-Datei, die zum Steuern des Erstellens, Testens und vor allem der Bereitstellung Ihrer Anwendung auf Ihren Servern oder einem Speicherdienst wie Amazon S3 verwendet wird. Sollte ein Angreifer jedoch Zugriff auf dieses Skript erhalten, könnte er alles auf Ihren Servern oder Speicher-Buckets bereitstellen.
Eine der gängigsten Möglichkeiten, dies zu umgehen, ist die Verwendung eines Secrets-Management-Tools wie GitHub Secrets speichert Anmeldeinformationen in Ihrem Repository, auf die in GitHub Actions-Build-Skripts namentlich zugegriffen werden kann.

Wenn Ihre Anwendung automatisch mithilfe von GitHub-Aktionen bereitgestellt wird und Anmeldeinformationen benötigt, um zu funktionieren, können Sie Secrets auch verwenden, um sie zur Laufzeit in den Build-Prozess einzuschleusen, indem Sie entweder die erforderlichen Konfigurationsdateien erstellen oder die erforderlichen Umgebungsvariablen festlegen. Auf diese Weise könnte Ihr Repository sogar öffentlich sein und trotzdem eine Anwendung erstellen, die vor der Bereitstellung mit Produktionsanmeldeinformationen injiziert wird.
Innerhalb einer Organisation erstellte GitHub-Geheimnisse können sogar über mehrere Repositorys hinweg geteilt werden, was eine einfache Möglichkeit zur zentralen Bereitstellung darstellt Sichere Schlüssel verwalten. Andere Build-Server-Tools wie Jenkins oder TeamCity verfügen ebenfalls über eine integrierte Geheimnisverwaltung.
WEITER LESEN
- › Intel gibt seine NUC Tiny PCs auf
- › Die 4 besten kostenlosen Passwort-Manager
- › Die besten Prime Day-Angebote von Apple, Samsung und mehr
- › Sparen Sie 45 % beim Roborock-Staubsaugersortiment im großen Prime Day Sale
- › Mozilla Thunderbird 115 kommt heute und es sieht großartig aus
- › Über 100 großartige Indie-Apps sind heute im Angebot