Scanning efter secrets og hardcodede legitimationsoplysninger
Forhindr, at API-nøgler og adgangskoder committes, ved hjælp af git-secrets, gitleaks og pre-commit-hooks.
Scanning efter secrets og hardcodede legitimationsoplysninger er en gratis Cyber Security Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Cyber Security Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cyber Security Academy-kurset indeholder 4 lektioner i alt.
Problemet med hårdkodede hemmeligheder
Udviklere kommer ved et uheld til at lægge API-nøgler, adgangskoder, private nøgler og tokens i kodearkiver. Når de først findes i git-historikken, bliver de der, selv efter at de er slettet. Offentlige kodearkiver gennemgås af robotter få sekunder efter, at en ændring er sendt.
Hvad der kommer med i versionsstyringen
Almindelige hemmeligheder, der findes i kodearkiver:
- AWS-adgangsnøgler (
AKIA...) - Personlige GitHub-adgangstokens
- Databaseadgangskoder i konfigurationsfiler
- Stripe-/betalings-API-nøgler
- Private TLS-/SSH-nøgler
- URL'er til Slack-webhooks
Hooks før commit til forebyggelse
Forhindr, at hemmeligheder overhovedet når frem til git:
# Install gitleaks as a pre-commit hook:
pip install pre-commit
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/zricethezav/gitleaks
rev: v8.18.1
hooks:
- id: gitleaksScanning af eksisterende kodearkiver
Scan eksisterende kodearkiver for hemmeligheder:
# gitleaks: scan entire git history
gitleaks detect --source . --log-opts="--all"
# truffleHog: high-entropy string + regex detection
trufflehog git file://.
# GitHub secret scanning (automatic for public repos)
# Alerts under Security → Secret scanning alertsGitHub-scanning efter hemmeligheder
GitHub scanner automatisk offentlige kodearkiver for kendte mønstre for hemmeligheder (AWS-nøgler, GitHub-tokens osv.) og underretter udbyderen. For private kodearkiver udvider GitHub Advanced Security denne funktion. Udbydere som AWS tilbagekalder automatisk nøgler ved detektion.
Løsningen med .gitignore og dens begrænsninger
Hvis du føjer .env til .gitignore, forhindrer du utilsigtede tilføjelser. Men udviklere lægger stadig hemmeligheder i andre filer, og .gitignore hjælper ikke, hvis filen allerede er blevet tilføjet. Forsvar i dybden: gitignore, hooks før commit og CI-scanning.
Brug af miljøvariabler
Hemmeligheder må aldrig stå i koden. Brug miljøvariabler, der indlæses under kørsel:
# Python:
import os
api_key = os.environ["API_KEY"]
# Node.js with dotenv (for local dev only):
require("dotenv").config()
const apiKey = process.env.API_KEY
# Never commit .env to gitTjenester til håndtering af hemmeligheder
Applikationer i produktion bør bruge dedikerede tjenester til håndtering af hemmeligheder:
- AWS Secrets Manager — automatisk rotation, adgang styret af IAM
- HashiCorp Vault — åben kildekode, til virksomheder, mange backend-systemer
- Azure Key Vault / GCP Secret Manager
Hemmeligheder findes aldrig i koden eller i miljøvariabler på disken.
Rotation af kompromitterede hemmeligheder
Hvis en hemmelighed er blevet afsløret:
- Tilbagekald hemmeligheden med det samme (før du undersøger sagen)
- Kontrollér adgangslogfiler for uautoriseret brug
- Generér en ny hemmelighed
- Opdatér alle systemer, der bruger den gamle hemmelighed
- Fjern den fra git-historikken med
git-filter-repoeller BFG Repo Cleaner
Fjernelse af hemmeligheder fra git-historikken
Fjern hemmeligheden fra historikken, når den er tilbagekaldt:
# BFG Repo Cleaner (faster than filter-branch):
java -jar bfg.jar --delete-files .env repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
# Note: force push rewrites history - coordinate with teamHemmeligheder i CI/CD-forløb
CI/CD-systemer har deres egen håndtering af hemmeligheder:
- GitHub Actions: Hemmeligheder gemmes i indstillingerne for kodearkivet eller organisationen → tilgås som
${{ secrets.API_KEY }} - GitLab CI: CI/CD-variabler
- Jenkins: Credentials-plugin
Maskér hemmeligheder i logfiler. Udskriv dem aldrig i fejlfindingsoutput.
Hurtigt tjek: Scanning efter hemmeligheder
Hvad er den mest effektive første forsvarslinje til at forhindre, at hemmeligheder kommer ind i et kodearkiv?
Opsummering af lektionen
Hårdkodede hemmeligheder i git udgør en kritisk risiko — offentlige kodearkiver gennemgås af robotter få sekunder efter, at en ændring er sendt. Forebyggelse: hooks før commit (gitleaks), gitignore. Detektion: truffleHog, GitHub-scanning efter hemmeligheder. Gem hemmeligheder i miljøvariabler eller dedikerede tjenester til håndtering af hemmeligheder (Vault, AWS Secrets Manager). Rotér dem straks, når de er blevet afsløret, og fjern dem fra git-historikken med BFG Repo Cleaner.
Lær Cyber Security Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 303
Ofte stillede spørgsmål
Er lektionen “Scanning efter secrets og hardcodede legitimationsoplysninger” gratis?
Ja — alle 3 lektioner i læringssporet Cyber Security Academy, inklusive “Scanning efter secrets og hardcodede legitimationsoplysninger”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Cyber Security Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Scanning efter secrets og hardcodede legitimationsoplysninger”?
Forhindr, at API-nøgler og adgangskoder committes, ved hjælp af git-secrets, gitleaks og pre-commit-hooks. Du øver dig i Cyber Security Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cyber Security Academy?
Der kræves ingen tidligere erfaring. Cyber Security Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Scanning efter secrets og hardcodede legitimationsoplysninger”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cyber Security Academy-lektion?
Ja. Alle Cyber Security Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- SAST og DAST i CI/CD-pipelines
- Software Composition Analysis (SCA)
- Scanning efter secrets og hardcodede legitimationsoplysninger
- Security champions og threat modeling