Potenziali rischi per la sicurezza dei blog open source: come proteggere le informazioni personali dalle fughe

Panoramica

GitHub Pages, come piattaforma di hosting gratuita per blog open source, è ampiamente utilizzata grazie alla sua praticità e gratuità. Tuttavia, la versione gratuita richiede che il repository sia pubblico per fornire servizi di accesso pubblico, una caratteristica che può portare a rischi inaspettati di fuga di informazioni.

Anche se il contenuto degli articoli non contiene informazioni sensibili, il repository del codice sorgente del blog potrebbe involontariamente rivelare informazioni personali. Questo articolo esplorerà questi potenziali rischi e fornirà soluzioni pratiche.

🔍 Tipi comuni di fuga di informazioni

Parole cinesi sensibili

I seguenti termini cinesi potrebbero contenere informazioni personali sensibili e si consiglia di verificarli prima di inviare il codice:

  • Password
  • Account
  • Carta d’identità
  • Carta bancaria
  • Alipay
  • WeChat
  • Numero di telefono cellulare
  • Indirizzo di casa
  • Luogo di lavoro
  • Carta della previdenza sociale
  • Patente di guida
  • Passaporto
  • Carta di credito

Parole chiave inglesi

Negli ambienti inglesi è necessario prestare particolare attenzione ai seguenti termini chiave:

  • username
  • password
  • account
  • key
  • ini
  • credential
  • card
  • bank
  • alipay
  • wechat
  • passport
  • id
  • phone
  • address
  • company

Rilevamento tramite espressioni regolari

È possibile utilizzare la seguente espressione regolare per analizzare il repository alla ricerca di potenziali informazioni sensibili:

(password|account|carta d'identità|carta bancaria|Alipay|WeChat|numero di telefono cellulare|indirizzo di casa|luogo di lavoro|carta della previdenza sociale|patente di guida|passaporto|carta di credito|username|password|passwd|account|key\s*:|\.ini|credential|card|bank|alipay|wechat|passport|id\s*:|phone|address|company)

Scansione in VSCode

Se si utilizza VSCode come editor del blog, è possibile seguire questi passaggi per eseguire una scansione completa del sito delle informazioni sensibili:

  1. Apri VSCode
  2. Usa la scorciatoia Ctrl+Shift+F (Windows/Linux) o Cmd+Shift+F (Mac) per aprire la ricerca globale
  3. Inserisci l’espressione regolare sopra nella casella di ricerca
  4. Abilita la modalità espressione regolare (clicca sull’icona .* accanto alla casella di ricerca)
  5. Clicca su cerca e controlla i risultati per informazioni sensibili potenziali

Esempio di ricerca regex in VSCode

🕰️ Fuga di informazioni nella cronologia Git

La cronologia delle versioni di Git può contenere informazioni sensibili da file eliminati. Anche se il codice attuale non contiene informazioni sensibili, le commit storiche potrebbero ancora conservarle.

Scansione della cronologia Git

È possibile utilizzare script semplici per analizzare le commit storiche del blog open source alla ricerca di fughe di informazioni.

Pulizia della cronologia Git

Se si conferma la necessità di pulire le informazioni sensibili dalla cronologia Git, è possibile utilizzare i seguenti metodi:

⚠️ Avviso importante: L’esecuzione delle seguenti operazioni eliminerà permanentemente la cronologia Git. Si prega di eseguire il backup dei dati importanti e assicurarsi di comprendere completamente il significato dei comandi.

# Reset al primo commit (conservando le modifiche nell'area di lavoro)
git reset --soft ${first-commit}

# Push forzato al repository remoto
git push -f

Nota: Se è necessario conservare la cronologia completa delle commit, non utilizzare il metodo sopra indicato.

🛠️ Strumenti di scansione professionale raccomandati

Oltre ai controlli manuali, è possibile utilizzare strumenti professionali per una scansione più completa:

TruffleHog

TruffleHog è uno strumento potente per scoprire, verificare e analizzare le credenziali trapelate.

Logo TruffleHog

Caratteristiche:

  • Stelle su GitHub: 17,2k
  • Fork: 1,7k
  • Supporta diversi modi di scansione
  • Può rilevare informazioni sensibili profondamente nidificate

🔒 Alternative per la pubblicazione sicura del blog

Se si teme il rischio di sicurezza derivante da un repository pubblico, si possono considerare le seguenti alternative:

1. Utilizzare GitHub Pro

  • GitHub Pro supporta la pubblicazione di repository privati su Pages
  • Costo: circa 4 USD al mese
  • Vantaggi: mantenere il codice sorgente privato, godendo al contempo della comodità di GitHub Pages

2. Utilizzare Cloudflare Pages

  • Impostare il repository come privato
  • Distribuire tramite Cloudflare Pages
  • Vantaggi: completamente gratuito, supporta repository privati

3. Strategia a doppio repository

  • Repository privato: contenere articoli e bozze in fase di editing
  • Repository pubblico: contenere solo gli articoli finali pubblicati
  • Vantaggi: massima protezione per bozze e contenuti non pubblicati
  • Nota: se si utilizza un sistema di commenti basato su GitHub come giscus, è ancora necessario un repository pubblico

📝 Migliori pratiche raccomandate

  1. Revisioni regolari: utilizzare strumenti di scansione regolarmente per controllare le informazioni sensibili nel repository
  2. Controllo prima del commit: verificare la presenza di informazioni sensibili prima di ogni commit
  3. Utilizzo di .gitignore: configurare correttamente il file .gitignore per escludere file sensibili
  4. Variabili d’ambiente: memorizzare le configurazioni sensibili nelle variabili d’ambiente, non nel repository del codice
  5. Gestione delle bozze: considerare l’uso di sistemi di gestione delle bozze dedicati, evitando che le bozze vengano inviate accidentalmente

I blog open source, sebbene convenienti, presentano effettivamente rischi di fuga di informazioni. Attraverso l’uso di strumenti e metodi appropriati, possiamo ridurre efficacemente questi rischi. Scegliendo una piattaforma e una strategia di pubblicazione adatte, è possibile godere della convenienza open source proteggendo al contempo la sicurezza della privacy personale.

Ricorda, la sicurezza informatica è un processo continuo che richiede la nostra costante vigilanza.

Risorse di riferimento