Linux e strumenti per sviluppatori
Basi di Bash per il lavoro di sicurezza
Impara pipe, redirezioni, variabili, loop, codici di uscita e set -euo pipefail, poi usali per contare gli accessi falliti e calcolare l'hash di una cartella.
GitHub spiegato a chi comincia: che cosa fanno Git e GitHub, i termini che ti servono, una prova locale con Git e come controllare un progetto prima di eseguirlo.
GitHub è un sito dove le persone conservano, condividono e revisionano progetti software. La maggior parte di quei progetti è tracciata con Git, uno strumento di controllo di versione che registra ogni modifica a un insieme di file. GitHub tiene online i repository Git, aggiunge un'interfaccia web e dà ai team pull request, issue e release per lavorare insieme sul codice.
La risposta breve: Git è lo strumento, e GitHub è uno dei posti dove i progetti Git vengono ospitati e discussi.
Git gira sul tuo computer. Puoi trasformare qualsiasi cartella in un repository e registrare le modifiche senza connessione a internet e senza un account GitHub.
GitHub è un servizio online. Conserva copie dei repository Git, mostra file e cronologia in un browser e aggiunge funzioni come il tracciamento delle issue e le pull request. Anche altri servizi ospitano repository Git, quindi GitHub è solo uno dei posti in cui stanno i progetti Git.
Il modo più rapido per capire che cosa significano queste parole è creare un repository tu stesso.
Per imparare le basi non ti serve GitHub. Installa Git dal sito ufficiale git-scm.com, poi controlla la versione installata:
git --versionSulla macchina Windows su cui è stato verificato questo articolo, il comando ha stampato:
git version 2.49.0.windows.1Il tuo output mostrerà una versione diversa. Adesso imposta il nome e l'email che Git associa a ogni commit. Usa i tuoi valori:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"Ora crea un repository di prova con due branch e due commit:
mkdir security-learning-notes
cd security-learning-notes
git init
printf '# security-learning-notes\n' > README.md
git add README.md
git commit -m "Add README"
git switch -c add-glossary
printf -- '- DNS\n- HTTPS\n- hash\n- encryption\n' > glossary.md
git add glossary.md
git commit -m "Add glossary terms"
git branchSul repository così creato, git branch ha stampato questo:
* add-glossary
masterL'asterisco indica il branch su cui ti trovi. Il tuo branch predefinito può chiamarsi master o main, a seconda delle impostazioni di Git. Su Windows, Git può anche stampare avvisi sulle terminazioni di riga. Quegli avvisi non cambiano i commit.
La guida Hello World di GitHub illustra questo flusso nel browser. Menu e nomi dei pulsanti cambiano nel tempo, quindi segui la guida ufficiale se il tuo schermo non corrisponde a questo testo:
security-learning-notes. Scegli pubblico o privato.README.md con una frase che descrive il progetto.add-glossary.Il passaggio della pull request conta anche in un repository personale. La vista del diff mostra esattamente quali righe sono cambiate prima che qualcosa arrivi al branch principale.
Per mandare un repository locale su GitHub, crea un repository vuoto sul sito, poi collegalo dal terminale. OWNER e REPOSITORY sono segnaposto. Sostituisci main con il nome del tuo branch se git branch mostra master:
git remote add origin https://github.com/OWNER/REPOSITORY.git
git push -u origin mainUn git clone copia un repository con tutta la sua cronologia:
git clone https://github.com/OWNER/REPOSITORY.gitSostituisci OWNER e REPOSITORY con il proprietario e il nome che vedi nella barra degli indirizzi della pagina del progetto. La clonazione scarica i file. Non esegue niente del progetto e non dimostra che il progetto sia sicuro. Un download ZIP dal sito ti dà i file senza cronologia, il che va bene per leggerli, ma così perdi la traccia dei commit.
Prima di eseguire uno strumento che non hai mai usato, controlla il repository stesso:
install.sh o uno script di setup cambia i pacchetti di sistema, installa servizi o chiede diritti di amministratore?Leggi gli script di installazione prima di eseguirli. Un README che ti dice di incollare un comando in un terminale ti sta chiedendo di eseguire del codice sulla tua macchina.
Gli strumenti di sicurezza servono per il lavoro dentro il perimetro. Fai pratica su macchine tue, su un laboratorio che hai costruito o su bersagli per cui hai un permesso scritto di test.
Confondere Git con GitHub è un errore frequente. Git funziona sul tuo computer e non ha bisogno di nessun sito. GitHub è un servizio costruito attorno a Git.
Il secondo è fare il commit di segreti. Un token o una password finiti in un repository pubblico possono essere copiati da chiunque li trovi. Cancellare la riga in un commit successivo non la toglie dalla cronologia. Prima revoca la credenziale, poi segui la guida di GitHub per rimuovere i dati sensibili da un repository.
Il terzo è eseguire i comandi di un README senza leggerli. Gli script di installazione possono cambiare il tuo computer, quindi leggili prima di eseguirli.
Il prossimo articolo di questo percorso spiega come creare un account GitHub e il tuo primo repository. Quando queste basi ti verranno naturali, potrai cominciare a guardare gli strumenti di sicurezza. Prova ciascuno in un laboratorio tuo prima di affidargli qualcosa di reale.
Linux e strumenti per sviluppatori
Impara pipe, redirezioni, variabili, loop, codici di uscita e set -euo pipefail, poi usali per contare gli accessi falliti e calcolare l'hash di una cartella.
Linux e strumenti per sviluppatori
Proprietari e gruppi Linux, bit rwx, chmod, umask e setuid, con un lab che prova l'accesso come secondo utente e trova i permessi rischiosi sui file.
Linux e strumenti per sviluppatori
Come funzionano le chiavi host e utente di SSH, perché la scelta predefinita è Ed25519 con passphrase e come impostare un accesso con chiave e fare hardening su una VM di laboratorio tua.