Empfehlungen für die Härtung von Ressourcen
Gilt für diese Empfehlung für die Sicherheit von Azure Well-Architected Framework:
SE:08 | Härten Sie alle Workloadkomponenten, indem Sie zusätzliche Oberflächenbereiche reduzieren und Konfigurationen straffen, um die Kosten des Angreifers zu erhöhen. |
---|
In diesem Leitfaden werden die Empfehlungen für die Härtung von Ressourcen beschrieben, indem lokalisierte Steuerelemente innerhalb einer Workload entwickelt und verwaltet werden, um wiederholten Angriffen standzuhalten.
Die Sicherheitshärtung ist eine absichtliche Selbsterhaltungsübung. Ziel ist es, eine Angriffsfläche zu reduzieren und die Kosten von Angreifern in anderen Bereichen zu erhöhen, was die Möglichkeiten für böswillige Akteure beschränkt, Sicherheitsrisiken auszunutzen. Um Ihre Workload zu schützen, implementieren Sie bewährte Methoden und Konfigurationen der Sicherheit.
Die Sicherheitshärtung ist ein fortlaufender Prozess , der kontinuierliche Überwachung und Anpassung an sich entwickelnde Bedrohungen und Sicherheitsrisiken erfordert.
Definitionen
Begriff | Definition |
---|---|
Härtung | Die Vorgehensweise zum Reduzieren eines Angriffsfläches durch Entfernen zusätzlicher Ressourcen oder Anpassen von Konfigurationen. |
Arbeitsstation für privilegierten Zugriff (PAW) | Ein dedizierter und sicherer Computer, den Sie zum Ausführen vertraulicher Aufgaben verwenden, wodurch das Risiko einer Kompromittierung verringert wird. |
Sichere administrative Arbeitsstation (SAW) | Eine spezialisierte PAW, die von kritischen Auswirkungskonten verwendet wird. |
Oberfläche | Ein logischer Fußabdruck einer Workload, die Sicherheitsrisiken enthält. |
Wichtige Entwurfsstrategien
Die Sicherheitshärtung ist eine stark lokalisierte Übung, die Kontrollen auf Komponentenebene stärkt, unabhängig davon, ob es sich um Ressourcen oder Prozesse handelt. Wenn Sie die Sicherheit der einzelnen Komponenten erhöhen, wird die aggregierte Sicherheit Ihrer Workload verbessert.
Die Sicherheitshärtung berücksichtigt nicht die Funktionalität der Workload und erkennt keine Bedrohungen oder führt automatisierte Überprüfungen durch. Die Sicherheitshärtung konzentriert sich auf die Konfigurationsoptimierung mit einer Annahmeverletzung und einer tiefen Mentalität der Verteidigung. Ziel ist es, einem Angreifer die Kontrolle über ein System zu erleichtern. Die Härtung sollte nicht den beabsichtigten Nutzen einer Workload oder ihrer Vorgänge ändern.
Erstellen eines Inventars von Workloadressourcen
Der erste Schritt des Härtungsprozesses besteht darin, eine umfassende Bestandsaufnahme aller Hardware-, Software- und Datenressourcen zu sammeln. Halten Sie Ihre Bestandsdatensätze auf dem neuesten Stand, indem Sie neue Ressourcen hinzufügen und außer Betrieb genommene Ressourcen entfernen. Berücksichtigen Sie für alle Ressourcen in Ihrem Bestand die folgenden bewährten Methoden:
Reduzieren Sie den Fußabdruck. Entfernen Sie zusätzliche Oberflächenfläche, oder reduzieren Sie den Bereich. Beseitigen Sie einfache Ziele oder billige und gut etablierte Angriffsvektoren, z. B. nicht gepatchte Software-Exploits und Brute-Force-Angriffe. Vor der Produktionsbereitstellung sollten Sie Identitäten, Buildkomponenten und andere nicht angeforderte Ressourcen aus der Quellstruktur bereinigen.
Feinabstimmung der Konfigurationen. Auswerten und Verknennen des verbleibenden Oberflächenbereichs. Wenn Ressourcen gehärtet werden, sind bewährte Methoden, die Angreifer verwenden, nicht mehr erfolgreich. Er erzwingt Angreifern, erweiterte oder nicht getestete Angriffsmethoden zu erwerben und zu verwenden, wodurch ihre Kosten erhöht werden.
Warten Sie Abwehrmaßnahmen. Halten Sie Schutzmaßnahmen aufrecht, indem Sie eine kontinuierliche Bedrohungserkennung durchführen, um sicherzustellen, dass härtende Anstrengungen im Laufe der Zeit zuverlässig sind.
Berücksichtigen Sie auch die folgenden Faktoren.
Vertrauenswürdige Quelle. Ein Teil der Härtungsübung umfasst die Software-Lieferkette. In diesem Leitfaden wird davon ausgegangen, dass alle Komponenten aus vertrauenswürdigen Quellen abgerufen werden. Ihre Organisation muss Software genehmigen, die von Drittanbietern bezogen wird. Diese Genehmigung gilt für Quellen des Betriebssystems, images und anderer Tools von Drittanbietern. Ohne vertrauenswürdige Ressourcen kann die Härtung eine unendliche Abfluss von Sicherheitsüberprüfungen für nicht vertrauenswürdige Quellen sein.
Empfehlungen zur Sicherheit ihrer Lieferkette finden Sie unter Empfehlungen zum Sichern eines Entwicklungslebenszyklus.
Training. Härtung ist eine spezielle Fähigkeit. Es ist methodisch und erfordert ein hohes Maß an Kompetenz. Sie müssen die Funktionalität einer Komponente verstehen und wie sich Änderungen auf die Komponente auswirken. Ein Teammitglied muss in der Lage sein, die Anleitungen, die von Branchenexperten und der Plattform stammen, zu erkennen, um sie von einer Anleitung aus unsicheren Quellen zu unterscheiden. Sensibilisieren Sie Ihre Teammitglieder für die Schaffung einer sicherheitsbewussten Arbeitskultur. Stellen Sie sicher, dass Ihr Team in bewährten Sicherheitspraktiken kompetent ist , über potenzielle Bedrohungen informiert ist und aus Retrospektiven nach dem Vorfall lernt.
Dokumentation: Dokumentieren und veröffentlichen Sie Härtungsanforderungen, Entscheidungen und definierte Methoden. Dokumentieren Sie aus Gründen der Transparenz auch Ausnahmen oder Abweichungen von diesen Anforderungen.
Die Härtung kann umständlich sein, aber es ist eine wichtige Sicherheitsübung, die Sie dokumentieren müssen. Härten Sie zunächst die Kernkomponenten, und erweitern Sie dann auf andere Bereiche wie automatisierte Prozesse und menschliche Prozesse, um potenzielle Lücken zu straffen. Seien Sie vorsichtig mit Änderungen. Beispielsweise besteht ein erforderlicher Schritt darin, die Standardeinstellungen zu deaktivieren, da sich Änderungen an Standardwerten auf die Stabilität des Systems auswirken können. Auch wenn die Ersatzkonfiguration mit dem Standard identisch ist, muss sie definiert werden. In den folgenden Abschnitten werden allgemeine Ziele für die Härtung beschrieben. Bewerten Sie wichtige Entwurfsbereiche Ihrer Arbeitsauslastung, und befolgen Sie die wichtigsten Strategien, um auf Komponentenebene zu härten.
Härtung von Netzwerkkomponenten
Teilen Sie das Netzwerk in Segmente auf, um kritische Ressourcen und vertrauliche Daten von weniger sicheren Ressourcen zu isolieren, wodurch laterale Bewegungen von Angreifern reduziert werden. Wenden Sie in diesen Segmenten einen standardmäßigen Verweigerungsansatz an. Fügen Sie nur Zugriff auf die Zulassungsliste hinzu, wenn sie gerechtfertigt ist.
Deaktivieren Sie Ports und Protokolle, die nicht aktiv verwendet werden. Wenn Sie z. B. auf Azure-App Dienst nicht über FTP bereitstellen müssen, können Sie sie deaktivieren. Oder wenn Sie Verwaltungsvorgänge über ein internes Netzwerk ausführen, können Sie den Administratorzugriff über das Internet deaktivieren.
Entfernen oder Deaktivieren von Legacyprotokollen. Angreifer nutzen Systeme, die alte Versionen verwenden. Verwenden Sie einen Azure-Erkennungsdienst, um Protokolle zu überprüfen und die Protokollnutzung zu bestimmen. Es kann schwierig sein, Protokolle zu entfernen, da sie die Funktionalität des Systems stören kann. Testen Sie alle Änderungen vor der Implementierung, um das Risiko einer Betriebsunterbrechung zu verringern.
Behandeln Sie öffentliche IP-Adressen (PIP) als Risikoressourcen , da sie leicht zugänglich sind und eine breite weltweite Reichweite haben. Um die Belichtung zu verringern, entfernen Sie unnötigen Internetzugriff auf die Workload. Verwenden Sie freigegebene öffentliche IP-Adressen, die Microsoft-Dienste, z. B. Azure Front Door, bereitstellen. Diese Dienste sind darauf ausgelegt, internetgeschützt zu sein, und sie blockieren den Zugriff auf nicht zulässige Protokolle. Viele solche Dienste führen anfängliche Überprüfungen für eingehende Anforderungen am Netzwerkrand durch. Mit einem dedizierten PIP sind Sie für die Verwaltung seiner Sicherheitsaspekte, das Zulassen oder Blockieren von Ports und das Scannen eingehender Anforderungen verantwortlich, um ihre Gültigkeit sicherzustellen.
Beschränken Sie für internetorientierte Anwendungen den Zugriff, indem Sie einen Layer-7-Dienst hinzufügen, der ungültigen Datenverkehr filtern kann. Erkunden Sie systemeigene Dienste, die denial-of-Service(DDoS)-Schutz erzwingen, Über Webanwendungsfirewalls verfügen und Schutz am Edge bereitstellen, bevor der Datenverkehr die Anwendungsebene erreicht.
Die Dns-Härtung (Domain Name System) ist eine weitere Netzwerksicherheitspraxis. Um sicherzustellen, dass die DNS-Infrastruktur sicher ist, empfehlen wir, vertrauenswürdige DNS-Resolver zu verwenden. Um Informationen von DNS-Resolvern zu überprüfen und nach Möglichkeit eine zusätzliche Sicherheitsebene bereitzustellen, verwenden Sie ein DNS-Sicherheitsprotokoll für streng vertrauliche DNS-Zonen. Um Angriffe wie DNS-Cachevergiftungen, DDoS-Angriffe und Amplifikationsangriffe zu verhindern, untersuchen Sie andere DNS-bezogene Sicherheitskontrollen wie Das Einschränken der Abfragerate, die Begrenzung der Antwortrate und DNS-Cookies.
Härtung von Identitätszugriffssteuerelementen
Entfernen Sie nicht verwendete oder Standardkonten. Deaktivieren Sie nicht verwendete Authentifizierungs- und Autorisierungsmethoden.
Deaktivieren Sie legacyauthentifizierungsmethoden , da sie häufig Angriffsvektoren sind. Alte Protokolle fehlen häufig an Angriffsbekämpfungsmaßnahmen, z. B. Kontosperrungen. Externalisieren Sie Ihre Authentifizierungsanforderungen an Ihren Identitätsanbieter (IdP), z. B. Microsoft Entra ID.
Bevorzugen Sie den Partnerverbund, um doppelte Identitäten zu erstellen. Wenn eine Identität kompromittiert wird, ist es einfacher, den Zugriff zu widerrufen, wenn sie zentral verwaltet wird.
Grundlegendes zu Plattformfunktionen für erweiterte Authentifizierung und Autorisierung. Erhärten Sie Zugriffskontrollen, indem Sie die mehrstufige Authentifizierung, die kennwortlose Authentifizierung, den bedingten Zugriff und andere Features nutzen, die Microsoft Entra ID zum Überprüfen der Identität bietet. Sie können zusätzlichen Schutz für Anmeldeereignisse hinzufügen und den Umfang verringern, in dem ein Angreifer eine Anforderung stellen kann.
Verwenden Sie verwaltete Identitäten und Workloadidentitäten ohne Anmeldeinformationen, sofern möglich. Anmeldeinformationen können verloren gehen. Weitere Informationen finden Sie unter Empfehlungen zum Schutz geheimer Anwendungsschlüssel.
Verwenden Sie den Ansatz mit den geringsten Berechtigungen für Ihre Verwaltungsprozesse. Entfernen Sie unnötige Rollenzuweisungen, und führen Sie regelmäßige Microsoft Entra-Zugriffsüberprüfungen durch. Verwenden Sie Rollenzuweisungsbeschreibungen, um eine Papierspur von Begründungen beizubehalten, was für Audits von entscheidender Bedeutung ist.
Härtung von Cloudressourcenkonfigurationen
Die vorstehenden Härtungsempfehlungen für Netzwerk und Identität gelten für einzelne Clouddienste. Achten Sie für Netzwerke besonders auf Firewalls auf Serviceebene und bewerten ihre eingehenden Regeln.
Entdecken und deaktivieren Sie nicht verwendete Funktionen oder Features, z. B. den Zugriff auf nicht verwendete Datenebenen und Produktfeatures, die andere Komponenten möglicherweise abdecken. Beispielsweise unterstützt App Service Kudu, das FTP-Bereitstellungen, Remotedebugging und andere Features bereitstellt. Wenn Sie diese Features nicht benötigen, deaktivieren Sie sie.
Halten Sie immer mit der Azure-Roadmap und der Workload-Roadmap schritt. Wenden Sie Patching- und Versionsverwaltungsupdates an, die Azure-Dienste anbieten. Lassen Sie von der Plattform bereitgestellte Updates zu, und abonnieren Sie automatisierte Updatekanäle.
Risiko: Cloudressourcen verfügen häufig über Anforderungen für Zertifikate oder müssen in dokumentierten Konfigurationen ausgeführt werden, um als unterstützt betrachtet zu werden. Einige Härtungstechniken, z. B. aggressives Blockieren von ausgehendem Datenverkehr, können dazu führen, dass ein Dienst außerhalb einer unterstützten Konfiguration fällt, auch wenn der Dienst normal ausgeführt wird. Verstehen Sie die Laufzeitanforderungen jeder Cloudressource von Ihrer Plattform, um sicherzustellen, dass Sie die Unterstützung für diese Ressource beibehalten.
Festigen von Coderessourcen
Bewerten Sie Bereiche, in denen Ihre Anwendung versehentlich Informationen durchlecken kann. Angenommen, Sie haben eine API, die Benutzerinformationen abruft. Eine Anforderung verfügt möglicherweise über eine gültige Benutzer-ID, und Ihre Anwendung gibt einen Fehler vom Typ 403 zurück. Bei einer ungültigen Kunden-ID gibt die Anforderung jedoch einen Fehler vom Typ 404 zurück. Anschließend werden Informationen zu Ihren Benutzer-IDs effektiv geleert.
Es kann subtilere Fälle geben. Die Antwortlatenz mit einer gültigen Benutzer-ID ist beispielsweise höher als eine ungültige Kunden-ID.
Erwägen Sie die Implementierung der Anwendungshärtung in den folgenden Bereichen:
Eingabeüberprüfung und Bereinigung: Verhindern Sie Einfügungsangriffe wie SQL Injection und cross-site scripting (XSS), indem Sie alle Benutzereingaben überprüfen und bereinigen. Automatisieren Sie die Eingabebereinigung mithilfe von Eingabeüberprüfungsbibliotheken und Frameworks.
Sitzungsverwaltung: Schützen Sie Sitzungs-IDs und Token vor Diebstahl- oder Sitzungsbehebungsangriffen mithilfe sicherer Sitzungsverwaltungstechniken. Implementieren Sie Sitzungstimeouts, und erzwingen Sie die erneute Authentifizierung für vertrauliche Aktionen.
Fehlerverwaltung: Implementieren Sie die benutzerdefinierte Fehlerbehandlung, um das Verfügbarmachen vertraulicher Informationen für Angreifer zu minimieren. Protokollieren Sie Fehler sicher, und überwachen Sie diese Protokolle auf verdächtige Aktivitäten.
HTTP-Sicherheitsheader: Verringern allgemeiner Websicherheitsrisiken durch Verwendung von Sicherheitsheadern in HTTP-Antworten, z. B. der Inhaltssicherheitsrichtlinie (Content Security Policy, CSP), X-Content-Type-Options und X-Frame-Options.
API-Sicherheit: Sichern Sie Ihre APIs mit ordnungsgemäßen Authentifizierungs- und Autorisierungsmechanismen. Um die Sicherheit weiter zu verbessern, implementieren Sie Ratenbeschränkungen, Anforderungsüberprüfungen und Zugriffssteuerungen für API-Endpunkte.
Befolgen Sie sichere Codierungsmethoden, wenn Sie Anwendungen entwickeln und verwalten. Führen Sie regelmäßig Codeüberprüfungen durch, und scannen Sie Anwendungen auf Sicherheitsrisiken. Weitere Informationen finden Sie unter Empfehlungen zum Sichern eines Entwicklungslebenszyklus.
Härtung von Verwaltungsvorgängen
Außerdem werden andere Ressourcen, die nicht zur Laufzeit verwendet werden, gehärtet. Verringern Sie beispielsweise den Speicherbedarf ihrer Buildvorgänge, indem Sie eine Bestandsaufnahme aller Ressourcen durchführen und nicht verwendete Ressourcen aus Ihrer Pipeline entfernen. Ziehen Sie dann Aufgaben ein, die von vertrauenswürdigen Quellen veröffentlicht werden, und führen Sie nur überprüfte Aufgaben aus.
Ermitteln Sie, ob Sie von Microsoft gehostete oder selbst gehostete Build-Agents benötigen. Selbst gehostete Build-Agents benötigen zusätzliche Verwaltung und müssen gehärtet werden.
Implementieren Sie aus Sicht der Observability einen Prozess zum Überprüfen von Protokollen für potenzielle Verstöße. Regelmäßig überprüfen und aktualisieren Sie Zugriffssteuerungsregeln basierend auf Zugriffsprotokollen. Arbeiten Sie mit zentralen Teams zusammen, um Sicherheitsinformationsereignisverwaltungsprotokolle (SECURITY Information Event Management, SIEM) und Sicherheits-Orchestrierungsprotokolle (Automated Response, SOAR) zu analysieren, um Anomalien zu erkennen.
Erwägen Sie die Anforderung von PAWs oder SAWs für privilegierte Verwaltungsvorgänge. PAWs und SAWs sind gehärtete physische Geräte, die erhebliche Sicherheitsvorteile bieten, aber ihre Implementierung erfordert sorgfältige Planung und Verwaltung. Weitere Informationen finden Sie unter Sichern von Geräten im Rahmen des Abschnitts "Privilegierter Zugriff".
Azure-Erleichterung
Microsoft Defender für Cloud bietet mehrere Härtungsfunktionen:
- Serverhärtung
- Adaptives Erhöhen des Netzwerkschutzes
- Docker-Hosthärtung
Das Center for Internet Security (CIS) bietet gehärtete Bilder in Azure Marketplace.
Sie können azure VM Image Builder verwenden, um einen wiederholbaren Prozess für gehärtete Betriebssystemimages zu erstellen. Common Base Linux-Mariner ist eine gehärtete Linux-Distribution, die von Microsoft entwickelt wird, die Sicherheitsstandards und Branchenzertifizierungen befolgt. Sie können es mit Azure-Infrastrukturprodukten verwenden, um Workloadimplementierungen zu erstellen.
Beispiel
Das folgende Verfahren ist ein Beispiel für die Härtung eines Betriebssystems:
Reduzieren Sie den Fußabdruck. Entfernen Sie unnötige Komponenten in einem Bild. Installieren Sie nur das, was Sie benötigen.
Feinabstimmung der Konfigurationen. Nicht verwendete Konten deaktivieren. Die Standardkonfiguration von Betriebssystemen verfügt über zusätzliche Konten, die mit Sicherheitsgruppen verknüpft sind. Wenn Sie diese Konten nicht verwenden, deaktivieren oder entfernen Sie sie aus dem System. Zusätzliche Identitäten sind Bedrohungsvektoren, die verwendet werden können, um Zugriff auf den Server zu erhalten.
Deaktivieren Sie unnötigen Zugriff auf das Dateisystem. Verschlüsseln Sie das Dateisystem, und optimieren Sie Zugriffssteuerungen für Identität und Netzwerk.
Führen Sie nur die erforderlichen Aktionen aus. Blockieren von Anwendungen und Diensten, die standardmäßig ausgeführt werden. Genehmigen Sie nur Anwendungen und Dienste, die für die Workloadfunktionalität erforderlich sind.
Warten Sie Abwehrmaßnahmen. Aktualisieren Sie regelmäßig Komponenten des Betriebssystems mit den neuesten Sicherheitsupdates und Patches, um bekannte Sicherheitslücken zu mindern.
Verwandte Links
- Adaptives Erhöhen des Netzwerkschutzes
- Empfehlungen zum Schutz geheimer Anwendungsschlüssel
- Empfehlungen für die Sicherung eines Entwicklungslebenszyklus
- Schützen von Geräten im Rahmen der Geschichte des privilegierten Zugriffs
- Serverhärtung
Communitylinks
Checkliste für die Sicherheit
Lesen Sie den vollständigen Satz von Empfehlungen.