Gelekte toegangstokens
Een gelekt token zonder vervaldatum is een permanente hoofdsleutel.
Wat is Gelekte toegangstokens?
Een persoonlijk toegangstoken fungeert als het account dat het heeft aangemaakt. Presenteer het en de API behandelt u als die ontwikkelaar, zonder wachtwoord en zonder tweede factor. Omvang en vervaldatum beperken de schade; een klassiek token met brede organisatietoegang en geen vervaldatum heeft geen van beide. Je kiest een token uit een publieke kern, vermeldt de privérepository's van een organisatie, kloont er vervolgens één en pusht een commit terug als eigenaar ervan. Je trekt het in, geeft een verfijnde vervanging opnieuw uit die beperkt is tot één repository, en schakelt geheime scan- en push-beveiliging in.
Wat je leert in Gelekte toegangstokens
- Begrijp waarom een te groot, niet-verlopend persoonlijk toegangstoken gevaarlijk is: een enkele gelekte kopie geeft brede, langdurige toegang om privérepository's te klonen en te pushen, allemaal als de ontwikkelaar
- Traceer hoe een aanvaller een token dat uit een publieke essentie is gehaald, omzet in echte toegang door het in een Authorization-header te presenteren om privérepository's weer te geven en vervolgens te klonen en te pushen
- Reageer correct op een lek door het token in te trekken en te roteren in plaats van alleen de openbare kopie te verwijderen, aangezien iedereen die het al heeft gekopieerd toegang behoudt totdat het token wordt gedood
- Geef een fijnmazig token met de minste bevoegdheden opnieuw uit, gericht op een enkele repository met een korte vervaldatum, in plaats van een klassiek breed token dat uitgebreide toegang verleent zonder vervaldatum
- Verminder de blootstelling door geheime scans en push-beveiliging in te schakelen, zodat tokens die naar gists, CI-logboeken of commits lekken, vroegtijdig worden gemarkeerd en geblokkeerd
Gelekte toegangstokens — Trainingsstappen
-
Bob's gistoogstmachine
Bob leest de essentie niet met de hand. Hij beheert een kleine schraper die de openbare kernfeed van het platform doorzoekt en elk bestand scant op iets dat op een inloggegevens lijkt. De feed is voor iedereen toegankelijk, er is geen account nodig, dus hij kan de hele stroom openbare lijsten doorzoeken.
-
Laat de oogstmachine draaien
Bob bestuurt de schraper. Het haalt de publieke essentie-feed op en vergelijkt elk bestand met zijn referentiepatronen. De meeste treffers zijn dode, verlopen of uitgeschakelde sleutels, maar één is live: een persoonlijk toegangstoken van Loomwick dat zich in de implementatiemap van een ontwikkelaar bevindt.
-
Open de gemarkeerde essentie
Bob opent de kern die de schraper markeerde. De implementatiehelper is een geschenk: hij bevat het token volledig, geeft de repository aan waarop hij zich richt en laat precies zien hoe deze wordt gebruikt.
-
Wat het token kan doen
Voordat hij het hard gaat gebruiken, vraagt Bob aan het platform wat het token is. Hij roept de API van Loomwick aan met het token in een Authorization-header, en het antwoord beschrijft de referentie zelf. Het is eigendom van een gewone ontwikkelaar, niet van een beheerder, maar de reikwijdte is groot en er is geen vervaldatum.
-
Maak een lijst van de privéopslagplaatsen
Nu zet Bob het token aan het werk. Hij vraagt de API om de repository's van de organisatie weer te geven, en de privérepository's komen terug naast de openbare. Hij heeft nooit een Loomwick-rekening gehad. Het teken alleen is voldoende.
-
Kloon een privéopslagplaats
Met het token kloont Bob een privérepository rechtstreeks naar zijn eigen machine. De essentie overhandigde hem zowel de referentie als de exacte opslagplaats waar het op gericht was. De kloon haalt de factureringskern volledig naar beneden: bron, configuratie en geschiedenis.
-
Open het webhookbestand
Leestoegang is al erg genoeg, maar het token kan ook schrijven. Bob opent een webhookbestand in de gekloonde repository, op zoek naar een rustige plek om een eigen regel toe te voegen.
-
Plant de verandering
Bob voegt een enkele regel toe. Elke factureringsgebeurtenis die de service doorstuurt, gaat nu naar zijn eigen verzamelprogramma en naar het interne grootboek. Het is een kleine, stille verandering, het soort dat door een drukke recensie heen glipt.
-
Voer de verandering door
Bob voert de bewerking uit. Het bericht leest als een onschuldige forwarder-tweak, maar de diff draagt stilletjes zijn exfiltratielijn.
-
Push als ontwikkelaar
Vervolgens stuurt Bob de commit terug naar Loomwick via de geverifieerde repository-URL. Het platform accepteert het: het token wordt behandeld als Maya, dus het schrijven komt terecht op de standaardvertakking. Een gelekt token is niet alleen leestoegang. Het draagt de volledige identiteit van de ontwikkelaar, inclusief de kracht om te veranderen wat wordt verzonden.
Dekking van beveiligingsframeworks
CWE
- CWE-522 Insufficiently Protected Credentials
- CWE-798 Use of Hard-coded Credentials
MITRE ATT&CK
- T1552.001 Unsecured Credentials: Credentials In Files
- T1078 Valid Accounts
CIS Controls
- CIS 5 Account Management
- 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.AA Identity Management, Authentication, and Access Control
- PR.PS Platform Security