Indice

Git e GitHub sono diventati strumenti essenziali non solo per chi sviluppa software, ma anche per chi lavora nella cyber security. Comprenderne il funzionamento significa poter gestire in modo sicuro e collaborativo il codice sorgente, tenere traccia delle modifiche e prevenire errori potenzialmente gravi. In questo articolo scopriremo cosa sono Git e GitHubcome funzionano insieme, e come iniziare a usarli anche se sei alle prime armi, con esempi pratici e comandi reali.

GitHub: molto più di un archivio online

GitHub è una piattaforma basata su cloud che consente di salvaregestire e condividere codice. Ma è molto di più: è un vero e proprio ambiente collaborativo, usato da team di sviluppo, aziende, ricercatori e appassionati di sicurezza informatica in tutto il mondo.

Quando crei un progetto su GitHub, lo organizzi in un repository. Questo contiene:

  • I file del progetto (codice, documentazione, risorse)
  • La cronologia delle modifiche
  • Le proposte di aggiornamento (pull request)
  • Le segnalazioni di problemi (issue)
  • I collaboratori e i loro permessi

Esempio reale

Immagina di voler creare uno script per analizzare i log di sistema alla ricerca di attività sospette. Puoi iniziare così:

mkdir analisi-log
cd analisi-log
git init

Scrivi un semplice script:

# analisi.py
with open("/var/log/auth.log") as log:
for riga in log:
if "Failed password" in riga:
print("Tentativo fallito:", riga.strip())

Ora puoi pubblicare il tuo progetto su GitHub, rendendolo visibile ad altri analisti o sviluppatori per ricevere suggerimenti o segnalazioni.

Git: il sistema che tiene tutto sotto controllo

Git è un sistema di controllo versione distribuito, creato da Linus Torvalds. In pratica, è come una scatola nera che registra ogni modifica fatta ai file del tuo progetto. Ma non solo: consente di gestire più versioni in parallelo, senza interferenze.

Come funziona Git in pratica?

  1. Crei un branch (un ramo di lavoro separato dal codice principale).
  2. Lavori sul tuo branch, aggiungi nuove funzionalità o correggi bug.
  3. Quando sei pronto, fondi (merge) le tue modifiche nel branch principale, dopo revisione.

Esempio con Git

git checkout -b scansione-porte
# scansione.py
import socket

def scan(ip):
for port in range(20, 1025):
s = socket.socket()
s.settimeout(0.5)
if s.connect_ex((ip, port)) == 0:
print(f"Porta aperta: {port}")
s.close()

scan("192.168.1.1")
git add scansione.py
git commit -m "Aggiunto script per scansione porte TCP"

Ora il tuo lavoro è salvato, tracciato e pronto per essere condiviso.

Git + GitHub: come lavorano insieme

Quando usi GitHub, in realtà stai lavorando su un repository Git remoto. Git gestisce le modifiche, mentre GitHub offre gli strumenti per collaborarerevisare, e sincronizzare il lavoro.

Due ambienti collegati

  • Locale: dove lavori (sul tuo computer)
  • Remoto: dove salvi e condividi il progetto (su GitHub)

Puoi sincronizzare questi ambienti con due comandi fondamentali:

  • Push: invii le modifiche al repository remoto
  • Pull: scarichi gli aggiornamenti dal repository remoto
git push origin scansione-porte
git pull origin main

Pull request: collaborazione senza rischi

Quando lavori in squadra, ogni modifica importante dovrebbe essere fatta su un branch e proposta tramite una pull request.

Esempio:

  1. Crei un nuovo branch: git checkout -b miglioramento-logging
  2. Fai le modifiche e il commit
  3. Carichi il branch: git push origin miglioramento-logging
  4. Su GitHub, apri una pull request

Il team può allora:

  • Commentare le modifiche
  • Chiedere correzioni
  • Approvare o rifiutare
  • Unire il branch al codice principale

Iniziare da zero: guida pratica per principianti

1. Crea un account su GitHub

Vai su github.com e registrati gratuitamente.

2. Crea un repository

Puoi farlo dal browser o con il comando:

git init mio-progetto
git remote add origin https://github.com/tuonomeutente/mio-progetto.git

3. Segui il GitHub Flow

Il flusso di lavoro consigliato è:

  • Branch: crea un ramo per ogni nuova funzionalità
  • Commit: salva le modifiche in modo tracciato
  • Push: invia le modifiche a GitHub
  • Pull request: proponi l’integrazione del tuo lavoro
  • Review e merge: revisione, approvazione e unione nel ramo principale

Perché Git e GitHub sono fondamentali nella cyber security

Nel mondo della sicurezza informatica, Git e GitHub offrono vantaggi essenziali:

  • Tracciabilità completa: ogni riga di codice ha una “firma” e una cronologia
  • Collaborazione sicura: ogni modifica è verificata prima dell’integrazione
  • Recupero rapido: se qualcosa va storto, puoi sempre tornare a una versione funzionante
  • Audit e trasparenza: perfetto per progetti open source e indagini su eventuali vulnerabilità

Esempio reale

Un team scopre che una modifica recente ha introdotto un bug critico. Con Git, si può risalire al commit esatto che lo ha generato e ripristinare la versione precedente:

git log
git checkout abc1234 # commit sicuro

Conclusione

Git e GitHub non sono solo strumenti per programmatori, ma alleati fondamentali per chi lavora nella cyber security. Offrono controllo, trasparenza, collaborazione e sicurezza. Imparare a usarli significa migliorare il proprio modo di lavorare e contribuire a progetti professionali, strutturati e protetti.

Che tu sia uno sviluppatore, un sistemista o un ethical hacker, questi strumenti diventeranno presto una parte indispensabile della tua cassetta degli attrezzi digitale.

Domande frequenti (FAQ)

1. Qual è la differenza tra Git e GitHub?
Git è un sistema di controllo versione che funziona in locale, mentre GitHub è una piattaforma online che usa Git per offrire funzionalità collaborative e di condivisione del codice.

2. Posso usare Git senza GitHub?
Sì. Puoi utilizzare Git localmente per gestire versioni di un progetto senza mai pubblicarlo online. Tuttavia, GitHub rende più semplice lavorare in team o salvare il codice in modo sicuro.

3. Serve sapere programmare per usare GitHub?
Non necessariamente. GitHub è utile anche per scrivere documentazione, segnalare bug, seguire progetti open source, ma è soprattutto uno strumento pensato per sviluppatori e tecnici.

4. GitHub è gratuito?
Sì. Esiste un piano gratuito che offre repository pubblici e privati, perfetto per uso personale, didattico o per piccoli team.

5. Cos’è un branch in Git?
Un branch è una “copia virtuale” del codice principale in cui puoi lavorare senza rischiare di danneggiare il progetto originale. È essenziale per testare nuove funzionalità in modo isolato.

6. Come faccio a collaborare con altri su GitHub?
Puoi collaborare con fork e pull request, oppure essere aggiunto come collaboratore diretto a un repository. Le pull request sono il modo più sicuro per proporre modifiche.

7. Cosa succede se sbaglio con Git? Posso tornare indietro?
Sì. Git tiene traccia di ogni versione del tuo progetto. Puoi annullare modifiche, ripristinare file o tornare a versioni precedenti in qualsiasi momento.

8. Git può essere utile nella sicurezza informatica?
Assolutamente. Permette di tracciare ogni modifica, garantire integrità del codice, gestire audit, analizzare repository open source, e collaborare a strumenti di sicurezza.

9. Cos’è una pull request e a cosa serve?
Una pull request è una proposta di modifica al progetto principale. Permette di revisarecommentare e discutere le modifiche prima di integrarle nel codice.

10. È possibile lavorare su GitHub senza usare il terminale?
Sì. GitHub offre un’interfaccia web completa e uno strumento desktop chiamato GitHub Desktop che permette di fare molte operazioni senza scrivere comandi.