0Pricing
Cyber Security Academy · Lezione

Scansione dei segreti e credenziali hardcoded

Impedisca il commit di chiavi API e password utilizzando git-secrets, gitleaks e hook pre-commit.

Scansione dei segreti e credenziali hardcoded è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Il problema dei segreti hardcoded

Gli sviluppatori inseriscono accidentalmente chiavi API, password, chiavi private e token nei repository del codice sorgente. Una volta presenti nella cronologia di git, persistono anche dopo l'eliminazione. I repository pubblici vengono acquisiti dai bot entro pochi secondi dal push.

Cosa viene inserito nel repository

Segreti comunemente presenti nei repository:

  • Chiavi di accesso AWS (AKIA...)
  • Token di accesso personali GitHub
  • Password dei database nei file di configurazione
  • Chiavi API di Stripe e per i pagamenti
  • Chiavi private TLS/SSH
  • URL dei webhook Slack

Hook pre-commit per la prevenzione

Impedire ai segreti di raggiungere git fin dall'inizio:

# 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

Scansione dei repository esistenti

Eseguire la scansione dei repository esistenti alla ricerca di segreti:

# 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

Scansione dei segreti su GitHub

GitHub analizza automaticamente i repository pubblici alla ricerca di pattern di segreti noti (chiavi AWS, token GitHub e così via) e informa il provider. Per i repository privati, GitHub Advanced Security estende questa funzionalità. Provider come AWS revocano automaticamente le chiavi quando vengono rilevate.

La soluzione .gitignore (e i suoi limiti)

Aggiungere .env a .gitignore impedisce i commit accidentali. Tuttavia, gli sviluppatori possono comunque inserire segreti in altri file e .gitignore non è utile se il file è già stato sottoposto a commit. Difesa a più livelli: gitignore, hook pre-commit e scansione CI.

Usare le variabili d'ambiente

I segreti non devono mai comparire nel codice. Usare variabili d'ambiente caricate a runtime:

# 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

Secrets manager

Le applicazioni di produzione dovrebbero usare secrets manager dedicati:

  • AWS Secrets Manager — rotazione automatica, accesso controllato tramite IAM
  • HashiCorp Vault — open source, di livello enterprise, compatibile con numerosi backend
  • Azure Key Vault / GCP Secret Manager

I segreti non vengono mai memorizzati nel codice o in variabili d'ambiente su disco.

Ruotare i segreti compromessi

Se un segreto viene esposto:

  1. Revocare immediatamente il segreto (prima di svolgere le verifiche)
  2. Controllare i log di accesso per individuare utilizzi non autorizzati
  3. Generare un nuovo segreto
  4. Aggiornare tutti i sistemi che usano il vecchio segreto
  5. Rimuoverlo dalla cronologia git con git-filter-repo o BFG Repo Cleaner

Rimuovere i segreti dalla cronologia Git

Dopo la revoca, rimuoverli dalla cronologia:

# 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

Segreti nelle pipeline CI/CD

I sistemi CI/CD dispongono di una gestione separata dei segreti:

  • GitHub Actions: segreti memorizzati nelle impostazioni del repository o dell'organizzazione → accessibili come ${{ secrets.API_KEY }}
  • GitLab CI: variabili CI/CD
  • Jenkins: plugin Credentials

Mascherare i segreti nei log. Non stamparli mai nell'output di debug.

Verifica rapida: scansione dei segreti

Qual è la prima linea di difesa più efficace per impedire che i segreti entrino in un repository?

Riepilogo della lezione

I segreti hardcoded in git rappresentano un rischio critico: i repository pubblici vengono acquisiti dai bot entro pochi secondi. Prevenzione: hook pre-commit (gitleaks), gitignore. Rilevamento: truffleHog, scansione dei segreti di GitHub. Memorizzare i segreti in variabili d'ambiente o in secrets manager dedicati (Vault, AWS Secrets Manager). Ruotarli immediatamente quando vengono esposti e rimuoverli dalla cronologia git con BFG Repo Cleaner.

Domande Frequenti

La lezione «Scansione dei segreti e credenziali hardcoded» è gratuita?

Sì — il testo completo di «Scansione dei segreti e credenziali hardcoded» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Scansione dei segreti e credenziali hardcoded»?

Impedisca il commit di chiavi API e password utilizzando git-secrets, gitleaks e hook pre-commit. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Scansione dei segreti e credenziali hardcoded»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. SAST e DAST nelle pipeline CI/CD
  2. Analisi della composizione del software (SCA)
  3. Scansione dei segreti e credenziali hardcoded
  4. Security Champion e threat modeling
← Torna a Cyber Security Academy