Cyber Security Academy · leksjon

Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger

Hindre at API-nøkler og passord committes ved å bruke git-secrets, gitleaks og pre-commit-hooks.

Leksjon 3 av 413 trinn

Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger er en gratis leksjon i Cyber Security Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cyber Security Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cyber Security Academy inneholder totalt 4 leksjoner.

Problemet med hardkodede hemmeligheter

Utviklere committer ved et uhell API-nøkler, passord, private nøkler og tokener til kildekoderepositorier. Når de først er i Git-historikken, blir de værende selv etter sletting. Offentlige repositorier skannes av roboter innen sekunder etter en push.

Hva som committes

Vanlige hemmeligheter som finnes i repositorier:

  • AWS-tilgangsnøkler (AKIA...)
  • Personlige GitHub-tilgangstokener
  • Databasepassord i konfigurasjonsfiler
  • Stripe-/betalings-API-nøkler
  • Private TLS-/SSH-nøkler
  • Slack-webhook-URL-er

Forebygging med pre-commit-hooker

Hindre hemmeligheter i å nå Git i utgangspunktet:

# 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

Skanning av eksisterende repositorier

Skann eksisterende repositorier etter hemmeligheter:

# 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 Secret Scanning

GitHub skanner automatisk offentlige repositorier etter kjente mønstre for hemmeligheter (AWS-nøkler, GitHub-tokener og så videre) og varsler leverandøren. For private repositorier utvider GitHub Advanced Security denne funksjonaliteten. Tjenesteleverandører som AWS tilbakekaller nøkler automatisk når de oppdages.

Løsningen med .gitignore (og begrensningene)

Hvis .env legges til i .gitignore, hindrer det utilsiktede commit-er. Utviklere kan likevel komme til å committe hemmeligheter i andre filer, og .gitignore hjelper ikke hvis filen allerede er committet. Forsvar i dybden: gitignore + pre-commit-hooker + CI-skanning.

Bruk av miljøvariabler

Hemmeligheter skal aldri ligge i kode. Bruk miljøvariabler som lastes inn under kjøring:

# 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

Systemer for håndtering av hemmeligheter

Produksjonsapplikasjoner bør bruke dedikerte systemer for håndtering av hemmeligheter:

  • AWS Secrets Manager – automatisk rotering, tilgang styrt av IAM
  • HashiCorp Vault – åpen kildekode, for virksomheter, mange backend-systemer
  • Azure Key Vault / GCP Secret Manager

Hemmeligheter finnes aldri i kode eller miljøvariabler lagret på disk.

Rotering av kompromitterte hemmeligheter

Hvis en hemmelighet blir eksponert:

  1. Tilbakekall hemmeligheten umiddelbart (før undersøkelsen starter)
  2. Kontroller tilgangslogger for uautorisert bruk
  3. Generer en ny hemmelighet
  4. Oppdater alle systemer som bruker den gamle hemmeligheten
  5. Fjern den fra Git-historikken med git-filter-repo eller BFG Repo Cleaner

Fjerne hemmeligheter fra Git-historikken

Etter tilbakekallingen må hemmeligheten fjernes fra historikken:

# 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

Hemmeligheter i CI/CD-pipelines

CI/CD-systemer har egne løsninger for håndtering av hemmeligheter:

  • GitHub Actions: Hemmeligheter lagres i innstillingene for repositoriet eller organisasjonen → åpnes som ${{ secrets.API_KEY }}
  • GitLab CI: CI/CD-variabler
  • Jenkins: Credentials-plugin

Masker hemmeligheter i logger. Skriv dem aldri ut i debug-utdata.

Hurtigsjekk: Skanning etter hemmeligheter

Hva er den mest effektive første forsvarslinjen for å hindre at hemmeligheter kommer inn i et repositorium?

Oppsummering av leksjonen

Hardkodede hemmeligheter i Git utgjør en kritisk risiko – offentlige repositorier skannes av roboter innen sekunder. Forebygging: pre-commit-hooker (gitleaks), gitignore. Oppdagelse: truffleHog, GitHub secret scanning. Lagre hemmeligheter i miljøvariabler eller dedikerte systemer for håndtering av hemmeligheter (Vault, AWS Secrets Manager). Roter dem umiddelbart når de eksponeres, og fjern dem fra Git-historikken med BFG Repo Cleaner.

Gratis å komme i gang

Lær deg Cyber Security Academy med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
303

Ofte stilte spørsmål

Er leksjonen «Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Cyber Security Academy, inkludert «Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Cyber Security Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger»?

Hindre at API-nøkler og passord committes ved å bruke git-secrets, gitleaks og pre-commit-hooks. Du øver på Cyber Security Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cyber Security Academy?

Ingen tidligere erfaring er nødvendig. Cyber Security Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cyber Security Academy-leksjonen?

Ja. Alle Cyber Security Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. SAST og DAST i CI/CD-pipelines
  2. Analyse av programvaresammensetning (SCA)
  3. Skanning etter hemmeligheter og hardkodede legitimasjonsopplysninger
  4. Sikkerhetsambassadører og trusselmodellering
← Tilbake til Cyber Security Academy