cybersecurity_linux/programma/cybersecurity_linux.md

144 lines
6.4 KiB
Markdown
Raw Permalink Normal View History

2024-03-13 09:34:15 +01:00
---
title: Cybersecurity con sistemi GNU/Linux
subtitle: Programma del corso
author: Andrea Fazzi
data: 17.01.202
urlcolor: blue
---
# Presentazione
Il corso ha lo scopo di fornire una comprensione approfondita di Arch
Linux, configurandolo opportunamente per utilizzarlo nel campo della
sicurezza informatica e del penetration testing. Il corso copre una
vasta gamma di argomenti, tra cui l'installazione di Arch Linux,
l'analisi delle informazioni pubbliche e lo scanning di reti, le
tecniche e le problematiche di sniffing, la sicurezza dei servizi come
posta, DNS, web e SSH, l'hardening di Arch Linux, la prevenzione da
tecniche di hacking comuni, e infine l'uso del bash scripting per la
cybersecurity. Attraverso una combinazione di lezioni teoriche e
pratiche, gli studenti avranno l'opportunità di acquisire competenze
pratiche nel campo della sicurezza informatica.
# Obiettivi
* Fornire una comprensione delle caratteristiche e dei vantaggi di
Arch Linux.
* Insegnare le tecniche di raccolta di informazioni e di scanning di
reti.
* Spiegare le tecniche e le problematiche di sniffing e come
proteggersi.
* Fornire una comprensione della sicurezza dei servizi di posta, DNS,
web e SSH.
* Insegnare come rafforzare un sistema Arch Linux attraverso
l'hardening.
* Fornire una comprensione delle tecniche di hacking comuni e come
prevenirle.
* Insegnare l'uso del bash scripting per automatizzare le attività di
sicurezza e migliorare la cybersecurity.
# Metodologie
Le lezioni saranno dialogiche e partecipate. Gli studenti verranno
condotti verso la costruzione delle conoscenze e competenze attraverso
esempi, compiti di realtà, attività di problem solving.
# Mezzi e strumenti
Ciascuno studente avrà a disposizione un'installazione di Arch Linux
GNU/Linux predisposta all'interno di una macchina virtuale.
# Articolazione dei contenuti (40 ore)
## Installazione di Arch Linux
* Caratteristiche della distribuzione: Arch Linux è una distribuzione
Linux basata su Debian che è stata progettata specificamente per il
penetration testing e la sicurezza informatica. Include numerose
utility preinstallate per l'hacking etico, come Wireshark, Nmap,
Metasploit e altre.
* Installazione su macchina laptop: l'installazione di Arch Linux su
un laptop comporta il download dell'immagine ISO dal sito ufficiale,
la creazione di una chiavetta USB avviabile, il boot da questa
chiavetta e infine la configurazione dell'installazione. Durante
l'installazione, è possibile selezionare le utility specifiche che
si desidera installare.
## Analisi delle Informazioni pubbliche e network scanning
* Tecniche di raccolta di informazioni: utilizzo di strumenti come
Whois, Nslookup e Dig per ottenere informazioni su un dominio o un
indirizzo IP.
* Utilizzo di scanner di rete: utilizzo di strumenti come Nmap per
identificare i dispositivi sulla rete e le porte aperte su questi
dispositivi.
* Analisi delle vulnerabilità: utilizzo di strumenti come Nessus o
OpenVAS per identificare le vulnerabilità nei dispositivi e nei
servizi di rete.
* Metodi di mitigazione: implementazione di patch e aggiornamenti,
configurazione di firewall e IDS, utilizzo di VPN e crittografia.
## Tecniche e problematiche di sniffing
* Cos'è lo sniffing e come funziona: lo sniffing è una tecnica
utilizzata per intercettare e leggere il traffico di rete. Può
essere fatto utilizzando strumenti come Wireshark o Tcpdump.
* Tecniche di sniffing: sniffing passivo, sniffing attivo, sniffing
diretto, sniffing indiretto.
* Protezione da sniffing: utilizzo di protocolli crittografati come
HTTPS e SSH, configurazione di VPN, utilizzo di firewall e IDS.
## Sicurezza dei servizi: posta, dns, web, ssh
* Sicurezza del servizio di posta elettronica: configurazione di
protocolli sicuri come SMTPS, POP3S e IMAPS, implementazione di SPF,
DKIM e DMARC.
* Sicurezza del servizio DNS: implementazione di DNSSEC,
configurazione di firewall per limitare le query DNS, monitoraggio
del traffico DNS per rilevare attività sospette.
* Sicurezza del servizio web: configurazione di HTTPS, implementazione
di HSTS, utilizzo di WAF, attuazione di politiche di sicurezza del
contenuto.
* Sicurezza del servizio SSH: disabilitazione dell'accesso root,
limitazione degli utenti che possono utilizzare SSH, configurazione
di chiavi SSH, utilizzo di Fail2ban.
## Hardening di Arch Linux
* Cosa significa hardening: l'hardening è il processo di rafforzamento
di un sistema informatico per ridurre la sua superficie di attacco.
* Passaggi per l'hardening di un sistema Arch Linux: aggiornamento del
sistema, rimozione di servizi non necessari, configurazione di
firewall e IDS, implementazione di politiche di sicurezza avanzate.
* Strumenti e tecniche per l'hardening: utilizzo di strumenti come
Lynis per l'hardening automatizzato, implementazione di SELinux o
AppArmor, configurazione di auditd.
## Prevenzione da tecniche di hacking comuni
* Tipi comuni di attacchi hacking: attacchi brute force, attacchi
DDoS, phishing, SQL injection, cross-site scripting.
* Tecniche di prevenzione: utilizzo di password complesse, limitazione
del numero di tentativi di login, configurazione di firewall e IDS,
aggiornamento e patching del sistema e delle applicazioni,
formazione degli utenti.
* Strumenti di monitoraggio e rilevamento degli attacchi: utilizzo di
strumenti come Snort, Wireshark, Syslog, ELK Stack.
## Bash Scripting e Cybersecurity
* Introduzione al bash scripting: cos'è lo scripting bash, perché è
utile, come scrivere script bash di base.
* Utilizzo di script bash per automatizzare le attività di sicurezza:
creazione di script per l'automazione di attività come il
monitoraggio del sistema, la scansione di rete, l'hardening del
sistema.
* Esempi di script bash utili per la cybersecurity: script per
l'analisi dei log, script per l'automazione di Nmap o Wireshark,
script per la generazione di report di sicurezza.
* Best practices per la scrittura di script bash sicuri: utilizzo di
variabili non modificabili, controllo degli input, gestione degli
errori, limitazione dei privilegi.
# Verifiche e valutazione
Le verifiche saranno somministrate nella forma di test strutturati a
risposta chiusa (4 risposte di cui solo una corretta). All'inizio del
corso verrà proposto agli studenti un test per verificare le loro
competenze iniziali. Al termine del corso verrà proposto una
simulazione di test utile alla preparazione dell'esame conclusivo.