Commetti spoofing dell'autore

Commetti spoofing dell'autore

Qualsiasi commit può rivendicare il tuo nome. Solo una firma lo dimostra.

Cos’è Commetti spoofing dell'autore?

Git registra il nome dell'autore e l'e-mail dalla configurazione locale alla lettera. Niente li controlla, quindi chiunque può impegnarsi come chiunque altro, e il campo autore è un'etichetta piuttosto che una prova. Solo una firma GPG o SSH lega un commit a una chiave in possesso di qualcuno. Prenderai il nome e l'e-mail di un manutentore dalla cronologia del repository, li imposterai localmente e apporterai una modifica che accorcia il confronto della firma del webhook a otto caratteri. Quindi troverai il badge Non verificato, richiederai commit firmati senza bypass dell'amministratore e vedrai il push rifiutato.

Cosa imparerai in Commetti spoofing dell'autore

Commetti spoofing dell'autore — Fasi della formazione

  1. Il ramo verso cui può già spingersi

    Oggi Bob prende di mira Voxmere, una società di infrastrutture di pagamento dove lavora come appaltatore. Il suo contratto gli dà accesso immediato al ramo di integrazione condivisa di Ledger-Core, il che è normale: è lì che i contributori mettono in scena il lavoro. Ciò che non ha è un modo per far sì che qualcuno si fidi di lui. Niente sull'integrazione viene fornito finché un manutentore non legge il registro del ramo e lo promuove in main.

  2. Clona il servizio

    Bob clona ledger-core, il servizio che gestisce ogni percorso di liquidazione, rimborso e riconciliazione presso Voxmere. Ha l'accesso in lettura come appaltatore, quindi questa è una normale cassa funzionante.

  3. Leggi i nomi dalla storia

    Bob ha bisogno dell'esatta identità dell'autore del manutentore e non deve indovinarla o cercarla tramite phishing. Ogni commit mai effettuato porta il nome e l'e-mail dell'autore e il registro li stamperà su richiesta. Un nome si ripete molto più degli altri. Dara Whitlock è la manutentrice le cui modifiche vengono apportate senza discussioni, quindi la sua è l'identità che vale la pena prendere in prestito.

  4. Prendi in prestito il nome

    Bob indica la sua configurazione Git locale a Dara Whitlock. Non c'è sfida, verifica e conferma: il comando imposta una stringa e Git ci crede.

  5. Prendi in prestito l'indirizzo

    Ora l'e-mail. Questo conta più del nome: la piattaforma abbina l'e-mail dell'autore di un commit a un account utente, quindi da questo momento in poi i commit di Bob verranno visualizzati con il profilo di Dara e il suo avatar allegato.

  6. Il verificatore del webhook

    Bob apre il file per cui è venuto. Ogni evento di pagamento che raggiunge il registro arriva come webhook firmato dal processore e questa funzione è ciò che decide se quella firma è valida. In questo momento confronta il riepilogo completo, in tempo costante. È corretto.

  7. Accorcia il confronto

    Bob cambia una riga. Il confronto viene ancora eseguito, utilizza ancora lo stesso helper e sembra ancora una verifica della firma. Si ferma solo dopo i primi otto caratteri. Lo scrive come una modifica delle prestazioni, perché è così che sembra.

  8. Quanto costano otto caratteri

    Una firma completa è composta da sessantaquattro caratteri esadecimali. Confrontandone otto si ottengono trentadue bit, ovvero pochi secondi per indovinare. Chiunque riesca a raggiungere l'endpoint del webhook può quindi firmare qualsiasi evento di pagamento desideri e il registro li accetterà come autentici.

  9. committati sotto il nome preso in prestito

    Bob si fa il commit. Non passa un flag, non sovrascrive nulla o usa un comando speciale: l'identità che ha impostato due passaggi fa è semplicemente ciò che Git stampa sul commit.

  10. Rileggilo

    Bob controlla il suo lavoro. Il commit appena effettuato riporta Dara Whitlock come autrice, con accanto il suo indirizzo. Non c'è nulla nell'output che lo segnali come insolito, perché dal punto di vista di Git non è successo nulla di insolito. Ha registrato l'identità che gli è stata data.

Copertura dei framework di sicurezza

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