Cyber Security Academy · Lektion

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.

Lektion 3 af 413 trin

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: gitleaks

Scanning 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 alerts

GitHub-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 git

Tjenester 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:

  1. Tilbagekald hemmeligheden med det samme (før du undersøger sagen)
  2. Kontrollér adgangslogfiler for uautoriseret brug
  3. Generér en ny hemmelighed
  4. Opdatér alle systemer, der bruger den gamle hemmelighed
  5. Fjern den fra git-historikken med git-filter-repo eller 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 team

Hemmeligheder 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.

Gratis at komme i gang

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

  1. SAST og DAST i CI/CD-pipelines
  2. Software Composition Analysis (SCA)
  3. Scanning efter secrets og hardcodede legitimationsoplysninger
  4. Security champions og threat modeling
← Tilbage til Cyber Security Academy