Primo commit
This commit is contained in:
commit
872779e636
11 changed files with 2648 additions and 0 deletions
4
README.md
Normal file
4
README.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Cybersecurity con sistemi GNU/Linux
|
||||
|
||||
In questo repository sono raccolti i materiali del corso.
|
||||
|
15
dispensa/Makefile
Normal file
15
dispensa/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
PDFDIR=pdf
|
||||
MDS=$(wildcard *.md)
|
||||
PDFS=$(patsubst %.md,$(PDFDIR)/%.pdf, $(MDS))
|
||||
TEMPLATE_ARGS=-V titlepage=true -V titlepage-text-color=000000 -V titlepage-color=B2DFEE -V titlepage-background=./background.pdf
|
||||
PANDOC_ARGS=-N -V lang=it --template default.latex -s
|
||||
|
||||
.PHONY : all
|
||||
|
||||
all : $(PDFS)
|
||||
|
||||
$(PDFDIR):
|
||||
mkdir $(PDFDIR)
|
||||
|
||||
$(PDFDIR)/%.pdf: %.md $(PDFDIR)
|
||||
pandoc $(TEMPLATE_ARGS) $(PANDOC_ARGS) $< -o $@
|
69
dispensa/background.pdf
Normal file
69
dispensa/background.pdf
Normal file
|
@ -0,0 +1,69 @@
|
|||
%PDF-1.5
|
||||
%µí®û
|
||||
3 0 obj
|
||||
<< /Length 4 0 R
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
stream
|
||||
xœeŽKÂ@@÷s
|
||||
. Â8†GpaÛE]¨÷OdÒØÖ4,ø=^x†ï ®w‚éS\=@C±šÁeí“yÀ˜kBsX²p1ÒèÇLHÄðÜ*†a
ßr<C39F>¹œøÕ¬VUb/ÒLPÝ1D®È<ì¢?ç‘\u¢Þ³·jÚmlŽœïp$Ž$Š“~.g~,·òž·>å
|
||||
endstream
|
||||
endobj
|
||||
4 0 obj
|
||||
150
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/ExtGState <<
|
||||
/a0 << /CA 1 /ca 1 >>
|
||||
>>
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 595.275574 841.889771 ]
|
||||
/Contents 3 0 R
|
||||
/Group <<
|
||||
/Type /Group
|
||||
/S /Transparency
|
||||
/I true
|
||||
/CS /DeviceRGB
|
||||
>>
|
||||
/Resources 2 0 R
|
||||
>>
|
||||
endobj
|
||||
1 0 obj
|
||||
<< /Type /Pages
|
||||
/Kids [ 5 0 R ]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Creator (cairo 1.14.8 (http://cairographics.org))
|
||||
/Producer (cairo 1.14.8 (http://cairographics.org))
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Type /Catalog
|
||||
/Pages 1 0 R
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000564 00000 n
|
||||
0000000264 00000 n
|
||||
0000000015 00000 n
|
||||
0000000242 00000 n
|
||||
0000000336 00000 n
|
||||
0000000629 00000 n
|
||||
0000000756 00000 n
|
||||
trailer
|
||||
<< /Size 8
|
||||
/Root 7 0 R
|
||||
/Info 6 0 R
|
||||
>>
|
||||
startxref
|
||||
808
|
||||
%%EOF
|
237
dispensa/cybersecurity_linux.md
Normal file
237
dispensa/cybersecurity_linux.md
Normal file
|
@ -0,0 +1,237 @@
|
|||
---
|
||||
title: Cybersecurity con sistemi GNU/Linux
|
||||
subtitle: Dispensa del corso
|
||||
author: Andrea Fazzi
|
||||
data: 13.03.2024
|
||||
urlcolor: blue
|
||||
---
|
||||
|
||||
# Utilizzo avanzato del terminale
|
||||
|
||||
In questa sezione verranno discussi gli utilizzi più avanzati del
|
||||
terminale. In particolare, ci si soffermerà sui cosidetti *terminal
|
||||
multiplexer*.
|
||||
|
||||
## I *terminal multiplexer*
|
||||
|
||||
I terminal multiplexer in Linux sono strumenti potenti che consentono
|
||||
agli utenti di creare più sessioni di terminale all'interno di una
|
||||
singola finestra del terminale. Questi strumenti sono particolarmente
|
||||
utili per gestire più processi contemporaneamente, mantenendo aperte
|
||||
le sessioni anche dopo la disconnessione, e per organizzare le
|
||||
finestre del terminale in modo efficiente.
|
||||
|
||||
Uno dei terminal multiplexer più popolari e ampiamente utilizzati è
|
||||
`tmux`. `tmux` permette agli utenti di creare, gestire e navigare tra
|
||||
più sessioni di terminale, facilitando l'organizzazione dei processi e
|
||||
la gestione delle finestre. Con `tmux`, è possibile dividere la
|
||||
finestra del terminale in più riquadri, ciascuno dei quali può
|
||||
eseguire un processo separato, e passare facilmente da una sessione
|
||||
all'altra.
|
||||
|
||||
Un altro esempio di terminal multiplexer è `screen`, che offre
|
||||
funzionalità simili a `tmux` ma con una sintassi leggermente
|
||||
diversa. Entrambi gli strumenti sono disponibili per la maggior parte
|
||||
delle distribuzioni Linux e possono essere installati tramite il
|
||||
gestore di pacchetti della distribuzione.
|
||||
|
||||
Utilizzare un terminal multiplexer può migliorare notevolmente
|
||||
l'efficienza e la produttività degli sviluppatori e degli
|
||||
amministratori di sistema, consentendo di lavorare con più processi
|
||||
contemporaneamente senza dover aprire molteplici finestre del
|
||||
terminale.
|
||||
|
||||
### Riferimenti
|
||||
|
||||
1. [https://opensource.com/article/21/5/linux-terminal-multiplexer](https://opensource.com/article/21/5/linux-terminal-multiplexer)
|
||||
|
||||
## Introduzione a `tmux`
|
||||
|
||||
`tmux` è un potente strumento di gestione delle sessioni di terminale
|
||||
in Linux. Permette agli utenti di creare, gestire e navigare tra più
|
||||
sessioni di terminale all'interno di una singola finestra del
|
||||
terminale. Questa funzionalità è particolarmente utile per
|
||||
l'esecuzione di più programmi con una singola connessione, come quando
|
||||
si effettua una connessione remota a una macchina utilizzando Secure
|
||||
Shell (SSH) [1].
|
||||
|
||||
Per iniziare ad utilizzare `tmux`, basta digitare `tmux` nel
|
||||
terminale. Questo comando avvia un server `tmux`, crea una sessione
|
||||
predefinita (numero 0) con una singola finestra e si collega ad
|
||||
essa. Una volta connessi a `tmux`, è possibile eseguire qualsiasi
|
||||
comando o programma come si farebbe normalmente.
|
||||
|
||||
## Installazione di `tmux`
|
||||
|
||||
`tmux` è un'applicazione disponibile nel repository di `Arch
|
||||
Linux`. Per installarla basterà utilizzare il comando `pacman`.
|
||||
|
||||
```bash
|
||||
sudo pacman -S tmux
|
||||
```
|
||||
|
||||
Per verificare che l'installazione sia andata a buon fine:
|
||||
|
||||
```bash
|
||||
tmux -V
|
||||
```
|
||||
|
||||
Il comando restituirà la versione installata.
|
||||
|
||||
### Riferimenti
|
||||
|
||||
1. https://www.redhat.com/sysadmin/introduction-tmux-linux
|
||||
2. https://linuxhandbook.com/tmux/
|
||||
3. https://hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/
|
||||
4. https://linuxize.com/post/getting-started-with-tmux/
|
||||
5. https://linuxconfig.org/introduction-to-terminal-multiplexer-tmux
|
||||
6. https://github.com/tmux/tmux/wiki/Getting-Started
|
||||
7. https://www.howtogeek.com/671422/how-to-use-tmux-on-linux-and-why-its-better-than-screen/
|
||||
8. https://opensource.com/article/17/2/quick-introduction-tmux
|
||||
9. https://wiki.archlinux.org/title/Tmux
|
||||
10. https://github.com/tmux/tmux/wiki
|
||||
|
||||
## Primi passi con `tmux`
|
||||
|
||||
Per eseguire `tmux` si dovrà semplicemente invocare il comando
|
||||
all'interno di una sessione di terminale.
|
||||
|
||||
```bash
|
||||
tmux
|
||||
```
|
||||
|
||||
È possibile staccare la sessione `tmux` premendo `Ctrl+B` seguito da
|
||||
`D`. `tmux` opera utilizzando una serie di scorciatoie da tastiera
|
||||
(keybindings) attivate premendo la combinazione "prefisso". Di
|
||||
default, il prefisso è `Ctrl+B`. Dopo di che, premere `D` per staccare
|
||||
dalla sessione corrente. La sessione continua ad eseguire in
|
||||
background anche dopo la disconnessione, permettendo di riprendere
|
||||
dove si è lasciati quando si è pronti a riconnettersi al server e
|
||||
riattaccarsi alla sessione esistente.
|
||||
|
||||
`tmux` fornisce una serie di scorciatoie da tastiera per eseguire
|
||||
comandi rapidamente all'interno di una sessione `tmux`. Alcune delle
|
||||
più utili includono:
|
||||
|
||||
- `Ctrl+B D` — Stacca dalla sessione corrente.
|
||||
- `Ctrl+B %` — Suddividi la finestra in due pannelli orizzontalmente.
|
||||
- `Ctrl+B "` — Suddividi la finestra in due pannelli verticalmente.
|
||||
- `Ctrl+B` seguito da una freccia (sinistra, destra, su, giù) — Sposta tra i pannelli.
|
||||
- `Ctrl+B X` — Chiudi il pannello.
|
||||
- `Ctrl+B C` — Crea una nuova finestra.
|
||||
- `Ctrl+B N` o `P` — Sposta alla finestra successiva o precedente.
|
||||
- `Ctrl+B 0` (1,2...) — Sposta a una finestra specifica per numero.
|
||||
- `Ctrl+B :` — Entra nella riga di comando per digitare
|
||||
comandi. L'auto-completamento tramite tab è disponibile.
|
||||
- `Ctrl+B ?` — Visualizza tutte le scorciatoie da tastiera. Premere `Q` per uscire.
|
||||
- `Ctrl+B W` — Apre un pannello per navigare tra le finestre in più sessioni.
|
||||
|
||||
### Esercizio
|
||||
|
||||
Utilizza `tmux` per suddividere il terminale in due pannelli
|
||||
verticali. Nel pannello di sinistra apri uno script in Python
|
||||
utilizzando l'editor `nano`. Nel pannello di destra esegui il comando
|
||||
`htop`. Se `htop` non è presente nel sistema, procedi con la sua
|
||||
installazione attraverso il package manager `pacman`.
|
||||
|
||||
## Configurazione di `tmux`
|
||||
|
||||
Il file di configurazione di `tmux`, noto come `tmux.conf`, è un file
|
||||
di testo che permette agli utenti di personalizzare l'ambiente di
|
||||
lavoro di `tmux` secondo le proprie preferenze. Questo file può essere
|
||||
posizionato in due luoghi principali:
|
||||
|
||||
- `~/.tmux.conf` per una configurazione specifica dell'utente corrente.
|
||||
- `/etc/tmux.conf` per una configurazione globale, applicabile a tutti gli utenti del sistema.
|
||||
|
||||
Se il file `~/.tmux.conf` non esiste, può essere creato semplicemente
|
||||
eseguendo il comando `touch ~/.tmux.conf` nel terminale. Questo creerà
|
||||
un file di configurazione vuoto che può essere modificato per
|
||||
aggiungere le impostazioni desiderate.
|
||||
|
||||
La configurazione di `tmux` può includere una vasta gamma di opzioni, tra cui:
|
||||
|
||||
- Cambio del prefisso di comando predefinito.
|
||||
- Abilitazione della modalità mouse.
|
||||
- Impostazione di due prefissi.
|
||||
- Cambio del comportamento predefinito del server.
|
||||
- Inizio del conteggio dei numeri delle finestre e dei pannelli (Base-Index) a 1.
|
||||
- Modifica dello sfondo del pannello corrente.
|
||||
- ...
|
||||
|
||||
Per esempio, per cambiare il prefisso di comando predefinito da
|
||||
`Ctrl+B` a `Ctrl+A`, si potrebbe aggiungere la seguente riga al file
|
||||
`tmux.conf`:
|
||||
|
||||
```
|
||||
set-option -g prefix C-a
|
||||
```
|
||||
|
||||
Dopo aver apportato modifiche al file di configurazione, è necessario
|
||||
ricaricarlo per applicare le nuove impostazioni. Questo può essere
|
||||
fatto eseguendo il comando `tmux source-file ~/.tmux.conf` dal
|
||||
terminale o utilizzando il comando `source-file ~/.tmux.conf` dalla
|
||||
modalità di comando di `tmux`. Per facilitare il processo, è possibile
|
||||
aggiungere un collegamento rapido nel file `tmux.conf` per ricaricare
|
||||
facilmente la configurazione:
|
||||
|
||||
```
|
||||
bind r source-file ~/.tmux.conf \; display "Reloaded!"
|
||||
```
|
||||
|
||||
Questo permette di ricaricare la configurazione premendo il prefisso
|
||||
seguito da `r`, visualizzando un messaggio di conferma.
|
||||
|
||||
### Riferimenti
|
||||
|
||||
1. https://hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/
|
||||
2. https://www.hostinger.com/tutorials/tmux-config
|
||||
3. https://dev.to/iggredible/useful-tmux-configuration-examples-k3g
|
||||
4. https://github.com/gpakosz/.tmux
|
||||
5. https://arcolinux.com/everthing-you-need-to-know-about-tmux-configuration/
|
||||
6. https://thevaluable.dev/tmux-config-mouseless/
|
||||
7. https://github.com/samoshkin/tmux-config
|
||||
8. https://wiki.archlinux.org/title/tmux
|
||||
9. https://medium.com/@bhavik.n/customize-tmux-to-use-it-effectively-28b262c8b692
|
||||
|
||||
## Creazione di layout personalizzati
|
||||
|
||||
Si supponga di voler creare un file di configurazione specifico per un
|
||||
progetto in cui il terminale viene diviso in tre parti: due colonne
|
||||
verticali di cui una a sua volta suddivisa orizzontalmente. In questo
|
||||
caso è possibile utilizzare uno script di configurazione
|
||||
personalizzato per `tmux`. Questo script può essere salvato in un file
|
||||
separato, ad esempio in `~/.config/tmux/split.conf`.
|
||||
|
||||
```
|
||||
new -s splitted_session # crea una nuova sessione
|
||||
|
||||
selectp -t 0 # seleziona il primo pannello
|
||||
splitw -h -p 50 # divide il pannello corrente orizzontalmente in due parti
|
||||
|
||||
selectp -t 1 # seleziona il nuovo secondo pannello
|
||||
splitw -v -p 50 # divide il pannello corrente verticalmente in due parti
|
||||
selectp -t 0 # torna al primo pannello
|
||||
```
|
||||
|
||||
Una volta creato il file di configurazione, occorrerà "eseguirlo" con
|
||||
|
||||
```bash
|
||||
tmux source-file ~/.config/tmux/split.conf
|
||||
```
|
||||
|
||||
### Esercizio
|
||||
|
||||
Crea un file di configurazione `tmux` per produrre un layout con due
|
||||
righe di cui la prima suddivisa in due colonne secondo uno schema
|
||||
simile a quello riportato sotto.
|
||||
|
||||
|
||||
```
|
||||
-----------
|
||||
| | |
|
||||
| | |
|
||||
-----------
|
||||
| |
|
||||
-----------
|
||||
```
|
1048
dispensa/default.latex
Normal file
1048
dispensa/default.latex
Normal file
File diff suppressed because it is too large
Load diff
BIN
dispensa/pdf/cybersecurity_linux.pdf
Normal file
BIN
dispensa/pdf/cybersecurity_linux.pdf
Normal file
Binary file not shown.
15
programma/Makefile
Normal file
15
programma/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
PDFDIR=pdf
|
||||
MDS=$(wildcard *.md)
|
||||
PDFS=$(patsubst %.md,$(PDFDIR)/%.pdf, $(MDS))
|
||||
TEMPLATE_ARGS=-V titlepage=true -V titlepage-text-color=000000 -V titlepage-color=B2DFEE -V titlepage-background=./background.pdf
|
||||
PANDOC_ARGS=-N -V lang=it --template default.latex -s
|
||||
|
||||
.PHONY : all
|
||||
|
||||
all : $(PDFS)
|
||||
|
||||
$(PDFDIR):
|
||||
mkdir $(PDFDIR)
|
||||
|
||||
$(PDFDIR)/%.pdf: %.md $(PDFDIR)
|
||||
pandoc $(TEMPLATE_ARGS) $(PANDOC_ARGS) $< -o $@
|
69
programma/background.pdf
Normal file
69
programma/background.pdf
Normal file
|
@ -0,0 +1,69 @@
|
|||
%PDF-1.5
|
||||
%µí®û
|
||||
3 0 obj
|
||||
<< /Length 4 0 R
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
stream
|
||||
xœeŽKÂ@@÷s
|
||||
. Â8†GpaÛE]¨÷OdÒØÖ4,ø=^x†ï ®w‚éS\=@C±šÁeí“yÀ˜kBsX²p1ÒèÇLHÄðÜ*†a
ßr<C39F>¹œøÕ¬VUb/ÒLPÝ1D®È<ì¢?ç‘\u¢Þ³·jÚmlŽœïp$Ž$Š“~.g~,·òž·>å
|
||||
endstream
|
||||
endobj
|
||||
4 0 obj
|
||||
150
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/ExtGState <<
|
||||
/a0 << /CA 1 /ca 1 >>
|
||||
>>
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 595.275574 841.889771 ]
|
||||
/Contents 3 0 R
|
||||
/Group <<
|
||||
/Type /Group
|
||||
/S /Transparency
|
||||
/I true
|
||||
/CS /DeviceRGB
|
||||
>>
|
||||
/Resources 2 0 R
|
||||
>>
|
||||
endobj
|
||||
1 0 obj
|
||||
<< /Type /Pages
|
||||
/Kids [ 5 0 R ]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Creator (cairo 1.14.8 (http://cairographics.org))
|
||||
/Producer (cairo 1.14.8 (http://cairographics.org))
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Type /Catalog
|
||||
/Pages 1 0 R
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000564 00000 n
|
||||
0000000264 00000 n
|
||||
0000000015 00000 n
|
||||
0000000242 00000 n
|
||||
0000000336 00000 n
|
||||
0000000629 00000 n
|
||||
0000000756 00000 n
|
||||
trailer
|
||||
<< /Size 8
|
||||
/Root 7 0 R
|
||||
/Info 6 0 R
|
||||
>>
|
||||
startxref
|
||||
808
|
||||
%%EOF
|
143
programma/cybersecurity_linux.md
Normal file
143
programma/cybersecurity_linux.md
Normal file
|
@ -0,0 +1,143 @@
|
|||
---
|
||||
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.
|
||||
|
1048
programma/default.latex
Normal file
1048
programma/default.latex
Normal file
File diff suppressed because it is too large
Load diff
BIN
programma/pdf/cybersecurity_linux.pdf
Normal file
BIN
programma/pdf/cybersecurity_linux.pdf
Normal file
Binary file not shown.
Loading…
Reference in a new issue