Spoofing des Commit-Autors

Spoofing des Commit-Autors

Jeder Commit kann Ihren Namen beanspruchen. Nur eine Unterschrift beweist es.

Was ist Spoofing des Commit-Autors?

Git zeichnet den Autorennamen und die E-Mail-Adresse wörtlich aus der lokalen Konfiguration auf. Sie werden durch nichts überprüft, sodass sich jeder wie jeder andere verpflichten kann, und das Feld „Autor“ ist eher eine Bezeichnung als ein Beweis. Nur eine GPG- oder SSH-Signatur verknüpft einen Commit mit einem Schlüssel, den jemand besitzt. Sie übernehmen den Namen und die E-Mail-Adresse eines Betreuers aus dem Verlauf des Repositorys, legen sie lokal fest und führen eine Änderung durch, die einen Webhook-Signaturvergleich auf acht Zeichen verkürzt. Dann finden Sie das Abzeichen „Unverifiziert“, erfordern signierte Commits ohne Administratorumgehung und sehen, dass der Push abgelehnt wurde.

Was Sie lernen in Spoofing des Commit-Autors

Spoofing des Commit-Autors — Trainingsschritte

  1. Der Branch, zu dem er bereits pushen kann

    Heute nimmt Bob Voxmere ins Visier, ein Zahlungsinfrastrukturunternehmen, bei dem er als Auftragnehmer arbeitet. Sein Vertrag gewährt ihm Push-Zugriff auf den gemeinsamen Integrations-Branch von Ledger-Core, was normal ist: Dort leisten Mitwirkende ihre Arbeit. Was er nicht hat, ist eine Möglichkeit, irgendjemanden dazu zu bringen, ihm zu vertrauen. Nichts auf der Integration wird versendet, bis ein Betreuer das Branch-Protokoll liest und es in den Haupt-Branch hochstuft.

  2. Klonen Sie den Dienst

    Bob klont Ledger-Core, den Dienst, der alle Abwicklungs-, Rückerstattungs- und Versöhnungspfade bei Voxmere abwickelt. Als Auftragnehmer verfügt er über Lesezugriff, es handelt sich also um eine normale Arbeitskasse.

  3. Lesen Sie die Namen aus der Geschichte vor

    Bob benötigt die genaue Identität des Autors des Betreuers und muss diese nicht erraten oder fälschen. Jeder jemals getätigte Commit trägt den Namen und die E-Mail-Adresse seines Autors und das Protokoll druckt sie auf Anfrage aus. Ein Name wiederholt sich weitaus häufiger als die anderen. Dara Whitlock ist die Betreuerin, deren Änderungen ohne Argumente durchgehen, daher ist es ihre Identität wert, ausgeliehen zu werden.

  4. Leihen Sie sich den Namen aus

    Bob richtet seine lokale Git-Konfiguration auf Dara Whitlock. Es gibt keine Herausforderung, keine Überprüfung und keine Bestätigung: Der Befehl legt eine Zeichenfolge fest und Git glaubt daran.

  5. Leihen Sie sich die Adresse aus

    Jetzt die E-Mail. Dies ist wichtiger als der Name: Die Plattform ordnet die E-Mail-Adresse des Autors eines Commits einem Benutzerkonto zu, sodass Bobs Commits ab diesem Zeitpunkt mit Daras Profil und ihrem daran angehängten Avatar gerendert werden.

  6. Der Webhook-Verifizierer

    Bob öffnet die Akte, wegen der er gekommen ist. Jedes Zahlungsereignis, das das Hauptbuch erreicht, kommt als vom Prozessor signierter Webhook an, und diese Funktion entscheidet, ob diese Signatur gut ist. Im Moment wird der vollständige Digest in konstanter Zeit verglichen. Es ist richtig.

  7. Verkürzen Sie den Vergleich

    Bob ändert eine Zeile. Der Vergleich wird immer noch ausgeführt, verwendet immer noch denselben Helfer und sieht immer noch wie eine Signaturüberprüfung aus. Es stoppt einfach nach den ersten acht Zeichen. Er schreibt es als Leistungsoptimierung, denn so sieht es aus.

  8. Was acht Zeichen kosten

    Eine vollständige Signatur besteht aus vierundsechzig Hexadezimalzeichen. Wenn man acht davon vergleicht, bleiben zweiunddreißig Bits übrig, was ein paar Sekunden Raten erfordert. Jeder, der den Webhook-Endpunkt erreichen kann, kann dann beliebige Zahlungsereignisse signieren, und das Hauptbuch akzeptiert jedes einzelne davon als echt.

  9. Unter dem geliehenen Namen verpflichten

    Bob verpflichtet sich. Er übergibt kein Flag, überschreibt nichts und verwendet keinen speziellen Befehl: Die Identität, die er vor zwei Schritten festgelegt hat, ist einfach das, was Git auf den Commit stempelt.

  10. Lesen Sie es noch einmal

    Bob überprüft seine Arbeit. Der Commit, den er gerade durchgeführt hat, nennt Dara Whitlock als Autorin, mit ihrer Adresse daneben. Es gibt nichts in der Ausgabe, das es als ungewöhnlich kennzeichnet, da aus Git-Sicht nichts Ungewöhnliches passiert ist. Es zeichnete die Identität auf, die ihm gegeben wurde.

Abdeckung der Sicherheits-Frameworks

CWE

  • CWE-345 Insufficient Verification of Data Authenticity
  • CWE-347 Improper Verification of Cryptographic Signature

MITRE ATT&CK

  • T1036 Masquerading

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security