Un cont de GitHub compromis nu înseamnă doar pierderea accesului la propriul cod — poate deveni punctul de plecare al unui atac asupra oricui folosește proiectele la care contribui, prin așa-numitele atacuri de tip supply-chain. Din acest motiv, GitHub a impus treptat cerințe de securitate mai stricte decât majoritatea platformelor, iar respectarea lor nu este opțională pentru mulți dezvoltatori.
Un atacator care obține acces la un cont GitHub activ poate publica direct cod malițios într-un pachet folosit de mii de alte proiecte, poate modifica istoricul unui repository sau poate genera tokenuri noi de acces pentru a menține controlul chiar și după ce proprietarul își schimbă parola. Tocmai pentru că miza depășește contul individual, GitHub a făcut autentificarea în doi factori obligatorie pentru conturile care contribuie cu cod la platformă, iar înțelegerea corectă a cheilor SSH și a tokenurilor de acces este la fel de importantă ca parola în sine.
Cum îți securizezi contul de GitHub (pas cu pas)
- Deschide Settings → Password and authentication.
- Setează o parolă unică — vezi ghidul despre parole sigure.
- Activează autentificarea în doi factori (vezi secțiunea următoare) — pentru multe conturi este deja obligatorie.
- Verifică Settings → SSH and GPG keys și șterge orice cheie pe care nu o recunoști sau nu o mai folosești.
- Verifică Settings → Developer settings → Personal access tokens și revocă tokenurile vechi, nefolosite sau cu permisiuni prea largi.
- Consultă Settings → Sessions pentru dispozitivele conectate și Security log pentru orice acțiune neobișnuită din contul tău.
Activează autentificarea în doi pași
Din Settings → Password and authentication → Two-factor authentication, GitHub recomandă o cheie de acces (passkey) sau o cheie de securitate fizică (FIDO2/U2F) ca metodă principală, cu o aplicație de autentificare TOTP ca alternativă — SMS-ul nu mai este acceptat ca metodă unică din motive de securitate. Detalii generale despre acest tip de protecție găsești în ghidul despre autentificarea în doi pași. Descarcă și păstrează codurile de recuperare într-un loc sigur, offline.
Tokenurile de acces personal (Personal Access Tokens) merită o atenție separată: preferă întotdeauna variantele fine-grained, cu permisiuni limitate strict la ce e necesar și cu o dată de expirare setată, în locul tokenurilor clasice, cu acces nelimitat și fără expirare. Un token scurs (de exemplu, publicat din greșeală într-un repository sau într-un fișier de configurare) oferă acces direct la codul tău, ocolind complet parola și 2FA — de aceea revocarea promptă a tokenurilor vechi contează la fel de mult ca protejarea parolei.
Semne că ți-a fost spart contul de GitHub
- Nu te mai poți autentifica, deși parola pare corectă.
- Apar commituri, repository-uri noi sau modificări de cod pe care nu le-ai făcut tu.
- Găsești chei SSH, tokenuri de acces sau aplicații OAuth autorizate pe care nu le recunoști.
- Primești o notificare despre o schimbare de parolă, e-mail sau dezactivare a 2FA pe care nu ai inițiat-o.
- Colaboratorii tăi raportează activitate neobișnuită într-un repository comun.
Ce faci dacă ți-a fost spart contul de GitHub
- Dacă mai ai acces, schimbă imediat parola și revocă toate tokenurile de acces și cheile SSH pe care nu le recunoști.
- Verifică Security log pentru a înțelege exact ce a modificat atacatorul și de când.
- Dacă nu te mai poți autentifica, folosește fluxul de recuperare al GitHub (github.com/password_reset), iar dacă e blocat și acesta, contactează suportul oficial GitHub cu cât mai multe detalii despre cont.
- Revocă accesul tuturor aplicațiilor OAuth conectate din Settings → Applications și reautorizează doar ce recunoști cu certitudine.
- Dacă a fost publicat cod malițios într-un pachet sau repository public, anunță imediat comunitatea și, dacă e cazul, platforma de distribuție a pachetului (de exemplu npm sau PyPI).
Cum eviți pe viitor
- Folosește tokenuri fine-grained, cu expirare și permisiuni minime, în loc de tokenuri clasice nelimitate.
- Nu publica niciodată chei SSH private, tokenuri sau parole în cod, nici măcar temporar — verifică fișierele înainte de commit.
- Fii circumspect la e-mailuri sau mesaje care imită notificări GitHub și cer autentificare urgentă — este o formă comună de phishing îndreptată către dezvoltatori.
- Ia în calcul un manager de parole pentru a genera și stoca separat parola de GitHub și tokenurile sensibile.
Un exemplu concret
Un dezvoltator publică, fără să observe, un fișier de configurare cu un token de acces personal activ într-un repository public, în timpul unui commit rapid seara târziu. În câteva ore, un instrument automat de scanare a repository-urilor publice detectează tokenul expus și îl folosește pentru a publica o versiune modificată a unui pachet folosit de mii de alte proiecte, cu cod care fură date din mediile în care e instalat. Incidentul a fost descoperit abia după ce mai mulți utilizatori au raportat comportament suspect, iar rezolvarea a necesitat revocarea tokenului, publicarea unei versiuni curate a pachetului și un anunț public către comunitate.
Dacă administrezi și găzduirea unui site legat de proiectele tale, vezi și ghidul despre securizarea găzduirii web (cPanel) — aceleași principii de acces minim și tokenuri temporare se aplică și acolo.
Întrebări frecvente
De ce GitHub cere obligatoriu 2FA pentru unele conturi?
Pentru că un cont de dezvoltator compromis poate afecta indirect mii de alte proiecte care depind de codul publicat de acel cont — GitHub a impus 2FA treptat, începând cu conturile cu cea mai mare vizibilitate și contribuție de cod.
Ce fac dacă am publicat din greșeală un token sau o cheie SSH într-un repository public?
Revocă imediat tokenul sau cheia din Settings, chiar dacă ștergi ulterior commitul — istoricul git poate păstra o copie recuperabilă, deci simpla ștergere a fișierului nu e suficientă.
Care e diferența dintre un token clasic și unul fine-grained?
Un token clasic are, de regulă, acces larg la tot contul și nu expiră automat. Un token fine-grained poate fi limitat la un singur repository, la permisiuni specifice și la o dată de expirare, reducând mult impactul dacă e scurs.
