Identifizieren vorab signierter Anfragen - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Identifizieren vorab signierter Anfragen

Identifizieren von Anfragen, die eine vorsignierte URL verwendeten

Amazon S3 bietet zwei integrierte Mechanismen zur Überwachung der Nutzung auf Anforderungsebene: Amazon S3 S3-Serverzugriffsprotokolle und AWS CloudTrail Datenereignisse. Beide Mechanismen können die Nutzung vorab signierter URLs identifizieren. 

Um Logs nach der Nutzung vorsignierter URLs zu filtern, können Sie den Authentifizierungstyp verwenden. Überprüfen Sie für Serverzugriffsprotokolle das Feld Authentifizierungstyp, das normalerweise den Namen authtype hat, wenn es in einer Amazon Athena Athena-Tabelle definiert ist. Für CloudTrail, untersuchen Sie das AuthenticationMethodadditionalEventDataFeld. In beiden Fällen ist der Feldwert für Anfragen, die vorsignierte URLs verwendenQueryString, der AuthHeader Wert für die meisten anderen Anfragen.

QueryStringDie Verwendung ist nicht immer mit vorsignierten URLs verknüpft. Um Ihre Suche nur auf die Verwendung vorsignierter URLs zu beschränken, suchen Sie nach Anfragen, die den Abfragezeichenfolgenparameter enthalten. X-Amz-Expires Überprüfen Sie bei Serverzugriffsprotokollen die Anforderungs-URI und suchen Sie nach Anfragen, die einen X-Amz-Expires Parameter in der Abfragezeichenfolge enthalten. Untersuchen Sie das requestParameters Element für ein X-Amz-Expires Element. CloudTrail

{"Records": [{…, "requestParameters": {…, "X-Amz-Expires": "300"}}, …]}

Die folgende Athena-Abfrage wendet diesen Filter an:

SELECT * FROM {athena-table} WHERE authtype = 'QueryString' AND request_uri LIKE '%X-Amz-Expires=%';

Für AWS CloudTrail Lake wendet die folgende Abfrage diesen Filter an:

SELECT * FROM {data-store-event-id} WHERE additionalEventData['AuthenticationMethod'] = 'QueryString' AND requestParameters['X-Amz-Expires'] IS NOT NULL

Identifizieren anderer Arten von vorab signierten Anfragen

Die POST-Anforderung hat auch einen eindeutigen AuthentifizierungstypHtmlForm, in den Amazon S3 S3-Serverzugriffsprotokollen und CloudTrail. Dieser Authentifizierungstyp ist weniger verbreitet, sodass Sie diese Anfragen möglicherweise nicht in Ihrer Umgebung finden.

Die folgende Athena-Abfrage wendet den Filter für HtmlForm an:

SELECT * FROM {athena-table} WHERE authtype = 'HtmlForm';

Für CloudTrail Lake wendet die folgende Abfrage den Filter an:

SELECT * FROM {data-store-event-id} WHERE additionalEventData['AuthenticationMethod'] = 'HtmlForm'

Identifizieren von Anforderungsmustern

Sie können vorsignierte Anfragen mithilfe der im vorherigen Abschnitt beschriebenen Techniken finden. Um diese Daten jedoch nutzbar zu machen, sollten Sie nach Mustern suchen. Die einfachen TOP 10 Ergebnisse Ihrer Abfrage geben Ihnen vielleicht Aufschluss, aber wenn das nicht ausreicht, verwenden Sie die Gruppierungsoptionen in der folgenden Tabelle.

Gruppierungsoption

Serverzugriffsprotokolle

CloudTrailSee

Beschreibung

Benutzeragent

GROUP BY useragent

GROUP BY userAgent

Diese Gruppierungsoption hilft Ihnen dabei, die Quelle und den Zweck von Anfragen zu finden. Der Benutzeragent wird vom Benutzer bereitgestellt und ist als Authentifizierungs- oder Autorisierungsmechanismus nicht zuverlässig. Es kann jedoch viel verraten, wenn Sie nach Mustern suchen, da die meisten Clients eine eindeutige Zeichenfolge verwenden, die zumindest teilweise von Menschen lesbar ist.

Auftraggeber

GROUP BY requester

GROUP BY userIdentity['arn']

Diese Gruppierungsoption hilft dabei, IAM-Prinzipale zu finden, die Anfragen signiert haben. Wenn Sie diese Anfragen blockieren oder eine Ausnahme für bestehende Anfragen erstellen möchten, bieten diese Abfragen ausreichend Informationen für diesen Zweck. Wenn Sie Rollen gemäß den Best Practices von IAM verwenden, hat die Rolle einen eindeutig identifizierten Besitzer, und Sie können diese Informationen verwenden, um mehr zu erfahren.

Quell-IP-Adresse

GROUP BY remoteip

GROUP BY sourceIPAddress

Diese Option gruppiert nach dem letzten Netzwerkübersetzungsschritt, bevor Amazon S3 erreicht wird.

  • Wenn der Datenverkehr ein NAT-Gateway passiert, ist dies die NAT-Gateway-Adresse.

  • Wenn der Verkehr über ein Internet-Gateway geleitet wird, ist dies die öffentliche IP-Adresse, die den Verkehr an das Internet-Gateway gesendet hat.

  • Wenn der Verkehr von außen stammt AWS, ist dies die öffentliche Internetadresse, die dem Ursprung zugeordnet ist.

  • Wenn es über einen Gateway-VPC-Endpunkt (Virtual Private Cloud) geleitet wird, ist dies die IP-Adresse der Instanz in der VPC.

  • Wenn sie eine öffentliche virtuelle Schnittstelle (VIF) passiert, ist dies die lokale IP-Adresse des Anforderers oder eines beliebigen Vermittlers wie eines Proxyservers oder einer Firewall, die nur dessen IP-Adresse offenlegt.

  • Wenn es einen VPC-Schnittstellen-Endpunkt passiert, kann dies die IP-Adresse einer Instanz in der VPC sein. Es kann sich auch um eine IP-Adresse von einer anderen VPC oder einem lokalen Netzwerk handeln. Wie bei öffentlichen VIFs kann dies die IP-Adresse eines beliebigen Vermittlers sein.

Diese Daten sind nützlich, wenn Sie Netzwerkkontrollen durchsetzen möchten. Möglicherweise müssen Sie diese Option mit Daten wie endpoint (für Serverzugriffsprotokolle) oder vpcEndpointId (für CloudTrail Lake) kombinieren, um die Quelle zu klären, da verschiedene Netzwerke private IP-Adressen duplizieren können.

Name des S3-Buckets

GROUP BY bucket_name

GROUP BY requestParameters['bucketName']

Diese Gruppierungsoption hilft dabei, Buckets zu finden, die Anfragen erhalten haben. Auf diese Weise können Sie erkennen, ob Ausnahmen erforderlich sind.