1.033 actieve Stripe secret keys zijn blootgesteld bij 669 leveranciers nadat .env-bestanden en debuglogs toegankelijk bleven op het publieke internet. De keys stellen iedereen in staat om betalingen te creëren, facturen op te vragen en klantgegevens te verzamelen – een datalek dat binnen enkele minuten portemonnees kan leegtrekken en reputaties kan ruïneren.
Wat de lekkage veroorzaakte
Ontwikkelaars slaan routinematig configuratiegegevens op – databasewachtwoorden, API-tokens en Stripe secret keys – in een bestand genaamd .env. Het bestand staat naast de broncode en wordt tijdens runtime ingelezen om geheimen buiten de codebase te houden. Deze praktijk werkt alleen als de server nooit bestanden serveert die met een punt beginnen. In dit geval zorgden verkeerd geconfigureerde webservers (zowel Nginx als Apache) ervoor dat verzoeken naar “/.env”, “/.env.example”, “/.git/HEAD” en een aangepast “/debug”-endpoint het ruwe bestand retourneerden met een 200 OK-status.
De lekkage werd niet veroorzaakt door een kwetsbaarheid in het platform van Stripe, noch door een fout in een specifieke e-commerce plugin. Het was pure blootstelling van bestanden die onzichtbaar voor de wereld hadden moeten blijven.
Waarom de blootstelling belangrijk is
Een Stripe secret key is in feite een hoofdwachtwoord voor het betalingsverkeer van een handelaar. Iedereen die deze bezit, kan:
- Willekeurige betalingen uitvoeren op opgeslagen kaarten
- Facturen en uitbetalingsgeschiedenissen ophalen
- Persoonlijke gegevens ophalen – namen, e-mails, telefoonnummers, huisadressen, IP-adressen
- Promotiecodes verzilveren voor gratis of met korting aangeboden aankopen
De gelekte dataset bevatte al het bovenstaande, plus uitbetalingsgegevens die onthullen hoeveel elke leverancier heeft verdiend. Voor een bedrijf is het directe risico frauduleuze transacties die leiden tot chargebacks, verlies van klantvertrouwen en mogelijke boetes onder PCI-DSS, AVG (GDPR) of andere privacywetgeving. De langetermijnkosten kunnen veel hoger uitvallen: juridische kosten, kosten voor herstelwerkzaamheden en een beschadigd merk dat mogelijk nooit meer herstelt.
Snelle test: is uw .env blootgesteld?
Open een terminal en vervang yourdomain.com door uw eigen hostnaam:
for p in "/.env" "/.env.example" "/.git/HEAD" "/debug"; do
echo -n "$p -> "
curl -s -o /dev/null -w "%{http_code}\n" "https://yourdomain.com$p"
done
Elke regel moet 403 (forbidden) of 404 (not found) retourneren. Een 200-respons betekent dat het bestand publiekelijk leesbaar is – een kritiek beveiligingsincident dat onmiddellijke aandacht vereist.
Onmiddellijke herstelstappen
1. Blokkeer dotfiles op de webserver
- Nginx – voeg een location-block toe die elk verzoek naar bestanden die met een punt beginnen weigert.
- Apache – gebruik een
FilesMatch-directive in.htaccessom een 403 te retourneren voor bestanden die met een punt beginnen.
2. Versterk uw Docker-workflow
- Voeg
.envtoe aan.dockerignorezodat het bestand nooit in de image wordt gekopieerd. - Vermijd het gebruik van de
COPY-instructie voor bestanden die geheimen bevatten.
3. Roteer elke gecompromitteerde key
- Log in op het Stripe Dashboard → Developers → API keys.
- Genereer een nieuwe secret key en trek de oude onmiddellijk in.
4. Gebruik keys met minimale rechten
- Stop met het gebruik van één enkele secret key voor alle operaties.
- Maak restricted keys aan die alleen de vereiste acties toestaan – bijvoorbeeld heeft een checkout-service toestemming nodig om payment intents aan te maken, maar niet om terugbetalingen uit te voeren of uitbetalingen in te zien.
5. Verwijder elke kopie van de oude key
- Scan CI/CD-logs, build-artefacten en back-uparchieven.
- Gebruik secret-scanning tools zoals Gitleaks of TruffleHog op uw Git-geschiedenis.
Een gelekte key verdwijnt niet wanneer u het bestand van de server verwijdert; het blijft voor altijd in handen van iedereen die het heeft gedownload. Rotatie is de enige manier om de gestolen gegevens onbruikbaar te maken.
Verder dan de oplossing: bouw een veiligere pipeline
- Geautomatiseerde scanning – integreer secret-detectie in elke pull request en CI-job.
- Configuratiebeheer – sla geheimen op in een speciale vault (bijv. HashiCorp Vault, AWS Secrets Manager) en injecteer ze tijdens runtime in plaats van te vertrouwen op statische bestanden.
- Toegangscontroles – controleer periodiek welke Stripe-keys actief zijn en welke rechten ze hebben.
Deze praktijken verkleinen de kans dat een enkele verkeerd geconfigureerde server de gehele betalingsinfrastructuur blootstelt.
Waar u op moet letten
De security-community is al op zoek naar extra blootgestelde keys met dezelfde methodologie. Verwacht meer onthullingen naarmate geautomatiseerde scanners het web afzoeken naar “/.env”-bestanden die Stripe-tokens bevatten. Stripe kan aanvullende richtlijnen geven over de frequentie van key-rotatie en restricted keys aanbevelen voor risicovolle operaties.
Kernpunt
Als een dotfile via een browser kan worden opgehaald, is je betalingssysteem al gecompromitteerd – blokkeer het bestand, roteer de sleutel en ontwerp je workflow voor geheimenbeheer opnieuw voordat fraude je grootboek raakt.
