Heim >Backend-Entwicklung >Python-Tutorial >Code-Geruch – Hocken

Code-Geruch – Hocken

PHPz
PHPzOriginal
2024-08-14 10:38:13737Durchsuche

Verwenden Sie keine erratenen Namen im Voraus für geschäftskritische Ressourcen

TL;DR: Sichern Sie Ihre Cloud-Ressourcen, indem Sie vorhersehbare Benennungsmuster vermeiden.

Probleme

  • Vorhersehbare Namen

  • Unberechtigter Zugriff

  • Risiken der Datenexposition

  • Schattenressourcen

  • Kontoübernahmen

  • Idor-Schwachstelle

  • Vorzeitige Optimierung

Lösungen

  1. Verwenden Sie eindeutige Bucket-Namen mit dunklen Schlüsseln

  2. Bestätigen Sie den Besitz bei der Erstellung

  3. Ressourcen vollständig sichern

  4. Ableitungen haben, die echte Namen verschleiern

  5. Buchnamen, um Hocken vorzubeugen

  6. Namen zufällig auswählen

Kontext

Resource Squatting geschieht, wenn Angreifer die Benennungsmuster von Cloud-Ressourcen, wie z. B. S3-Buckets, vorhersehen.

Der Angreifer erstellt sie in Regionen, in denen der Benutzer noch keine Ressourcen bereitgestellt hat.

Benutzerinteraktion mit diesen Ressourcen im Besitz des Angreifers kann zu schwerwiegenden Sicherheitsverletzungen wie Datenoffenlegung, unbefugtem Zugriff oder Kontoübernahmen führen.

Diese Schwachstelle ist in Umgebungen wie AWS von entscheidender Bedeutung, in denen häufig vorhersehbare Namenskonventionen verwendet werden.

Viele Systeme vermeiden diese Indirektion aus Angst vor Leistungseinbußen, was ein klarer Fall vorzeitiger Optimierung ist.

Beispielcode

Falsch

def create_bucket(account_id, region):
    bucket_name = f"aws-glue-assets-{account_id}-{region}"
    create_s3_bucket(bucket_name)  
   # This is deterministic and open

Rechts

import uuid

def create_bucket(account_id, region):
    unique_id = uuid.uuid4().hex
    # This number is not deterministic
    # is a way to generate a random UUID (Universally Unique Identifier) 
    # in Python and then retrieve it as a hexadecimal string.
    bucket_name = f"aws-glue-assets-{unique_id}-{account_id}-{region}"
    create_s3_bucket(bucket_name)
    verify_bucket_ownership(bucket_name, account_id)

Erkennung

[X] Automatisch

Ein Sicherheitsaudit kann diesen Geruch erkennen, indem es Ihre Ressourcennamen auf Vorhersehbarkeit analysiert.

Suchen Sie nach Mustern in Namen, die ein Angreifer leicht vorhersehen oder erraten kann.

Viele automatisierte Tools und manuelle Codeüberprüfungen können dabei helfen, diese Risiken zu identifizieren.

Schlagworte

  • Sicherheit

Ebene

[X] Mittelstufe

KI-Generierung

KI-Generatoren können diesen Geruch mithilfe von Standardvorlagen mit vorhersehbaren Namensmustern erzeugen.

Passen Sie den generierten Code immer an und überprüfen Sie ihn auf Sicherheit.

KI-Erkennung

KI kann dabei helfen, diesen Geruch zu erkennen, wenn sie mit Regeln konfiguriert wird, die vorhersehbare oder unsichere Namenskonventionen für Ressourcen identifizieren.

Dies ist ein Sicherheitsrisiko, das ein Verständnis der Cloud-Infrastruktur und potenzieller Angriffsvektoren erfordert.

Abschluss

Die Vermeidung vorhersehbarer Benennungsmuster ist für die Sicherung Ihrer Cloud-Ressourcen von entscheidender Bedeutung.

Verwenden Sie immer eindeutige, undurchsichtige und schwer zu erratende Namen und überprüfen Sie auch den Ressourcenbesitz, um sich vor Squatting-Angriffen zu schützen.

Beziehungen

Weitere Informationen

GB-Hacker

Wikipedia

Haftungsausschluss

Code Smells sind meine Meinung.

Credits

Foto von Felix Koutchinski auf Unsplash


Das einzige System, das wirklich sicher ist, ist eines, das ausgeschaltet und vom Stromnetz getrennt, in einem mit Titan ausgekleideten Safe eingeschlossen, in einem Betonbunker vergraben und von Nervengas und sehr gut bezahlten bewaffneten Wachen umgeben ist. Selbst dann würde ich nicht mein Leben darauf setzen.

Gene Spafford


Dieser Artikel ist Teil der CodeSmell-Reihe.

Das obige ist der detaillierte Inhalt vonCode-Geruch – Hocken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn