Zorg voor spoofing van auteurs

Zorg voor spoofing van auteurs

Elke commit kan jouw naam claimen. Alleen een handtekening bewijst het.

Wat is Zorg voor spoofing van auteurs?

Git registreert de auteursnaam en het e-mailadres woordelijk van de lokale configuratie. Niets controleert ze, dus iedereen kan zich net als ieder ander vastleggen, en het auteurveld is eerder een label dan een bewijs. Alleen een GPG- of SSH-handtekening koppelt een commit aan een sleutel die iemand in zijn bezit heeft. U haalt de naam en het e-mailadres van een beheerder uit de geschiedenis van de repository, stelt deze lokaal in en brengt een wijziging tot stand die de vergelijking van een webhookhandtekening verkort tot acht tekens. Dan zul je de Unverified-badge vinden, ondertekende commits vereisen zonder beheerdersbypass, en zien dat de push wordt afgewezen.

Wat je leert in Zorg voor spoofing van auteurs

Zorg voor spoofing van auteurs — Trainingsstappen

  1. De branch waar hij al naartoe kan duwen

    Vandaag richt Bob zich op Voxmere, een betalingsinfrastructuurbedrijf waar hij als aannemer werkt. Zijn contract geeft hem push-toegang tot de gedeelde integratietak van ledger-core, wat normaal is: dat is waar contribuanten werk uitvoeren. Wat hij niet heeft, is een manier om iedereen erop te laten vertrouwen. Niets over integratie wordt verzonden totdat een beheerder het branchlogboek leest en het naar main promoveert.

  2. Kloon de service

    Bob kloont ledger-core, de service die elk afwikkelings-, terugbetalings- en verzoeningstraject bij Voxmere afhandelt. Hij heeft leestoegang als aannemer, dus dit is een gewone werkende kassa.

  3. Lees de namen uit de geschiedenis

    Bob heeft de exacte auteursidentiteit van de beheerder nodig, en hij hoeft er niet naar te raden of te phishen. Elke commit die ooit is gemaakt, draagt ​​de naam en het e-mailadres van de auteur, en de log zal deze op verzoek afdrukken. De ene naam komt veel vaker voor dan de andere. Dara Whitlock is de onderhouder wiens veranderingen zonder ruzie doorgaan, dus zij heeft de identiteit die het waard is om te lenen.

  4. Leen de naam

    Bob wijst zijn lokale Git-configuratie op Dara Whitlock. Er is geen uitdaging, geen verificatie en geen bevestiging: het commando stelt een string in, en Git gelooft dat.

  5. Leen het adres

    Nu de e-mail. Deze is belangrijker dan de naam: de platform koppelt het e-mailadres van de auteur van een commit aan een gebruikersaccount, dus vanaf dit punt worden de commits van Bob weergegeven met Dara's profiel en haar avatar eraan gekoppeld.

  6. De webhook-verificateur

    Bob opent het dossier waarvoor hij kwam. Elke betalingsgebeurtenis die het grootboek bereikt, arriveert als een webhook die is ondertekend door de processor, en deze functie beslist of die handtekening goed is. Op dit moment vergelijkt het de volledige samenvatting, in constante tijd. Het is juist.

  7. Verkort de vergelijking

    Bob verandert één regel. De vergelijking loopt nog steeds, gebruikt nog steeds dezelfde helper en ziet er nog steeds uit als handtekeningverificatie. Het stopt pas na de eerste acht karakters. Hij schrijft het als een prestatieaanpassing, want zo ziet het eruit.

  8. Wat acht karakters kosten

    Een volledige handtekening bestaat uit vierenzestig hexadecimale tekens. Als je er acht vergelijkt, blijven er tweeëndertig bits over, wat neerkomt op een paar seconden raden. Iedereen die het webhook-eindpunt kan bereiken, kan vervolgens de gewenste betalingsgebeurtenissen ondertekenen, en het grootboek accepteert ze allemaal als echt.

  9. Commit onder de geleende naam

    Bob engageert zich. Hij geeft geen vlag door, overschrijft niets, of gebruikt geen speciaal commando: de identiteit die hij twee stappen geleden heeft ingesteld, is eenvoudigweg wat Git op de commit stempelt.

  10. Lees het terug

    Bob controleert zijn werk. De commit die hij zojuist heeft gemaakt vermeldt Dara Whitlock als auteur, met haar adres ernaast. Er is niets in de uitvoer dat het als ongebruikelijk markeert, omdat er vanuit Git's gezichtspunt niets ongewoons gebeurde. Het registreerde de identiteit die het kreeg.

Dekking van beveiligingsframeworks

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