Questa è una presentazione fatta il 26 Ottobre 2019 in occasione del Linux Day tenuto ad Avellino. Ho cercato di dare le nozioni base di come proteggere i dati e ho mostrato una soluzione semplice basata su Raspberry Pi.
2. Imprenditore digitale e Scrum Master
Chi sono ?
Consulente informatico con esperienza
nella R&D applicazioni software and
hardware nel dominio TELCO,
Sicurezza e IoT.
Appassionato di Linux e videogames
3. Acquisire nozioni e consapevolezza su
come limitare il problema anche su un
sistema semplice come Raspberry.
Obiettivo del talk
Sensibilizzare sull’importanza dei dati e
su come è perchè dobbiamo proteggerli.
Quando è
GRATIS
il
prodotto
sei TU!
4. Da un un esigenza reale lavorativa
grazie a Linux ho trovato una
soluzione di sicurezza utile per tutti.
Perché
questo talk?
La passione per Linux e
l’informatica è diventata la mia
professione.
La voglia di condividere un’esperienza è
alla base della filosofia open source.
5. Domande, curiosità non esitate a
chiedere, alzando la mano durante
il talk.
Ho bisogno
di voi!
Partecipazione attiva.
Suggerimenti e feedback anche dopo il
talk sono ben accetti, sbagliando si
impara.
6. Questi vengono ospitati in una
Micro SD (Secure Digital ) card
usata sia per il sistema operativo e
anche per archiviare i dati.
Raspberry lo
conoscete ?
I sistemi operativi di
Raspberry PI sono basati su Linux .
Ha a disposizione 1 a 4 GB
di RAM in base al modello.
7. Gestire dati e accessi al sistema in
maniera sicura.
Posso proteggere i
dati e garantire più
sicurezza sul
Raspberry?
Vogliamo proteggere i dati sensibili
come username, password
evidenze digitali personali.
Garantire il funzionamento H24
riducendo corruzioni e accessi inutili
al sistema,
8. Controllo del dato garantisce
sicurezza adeguata al rischio.
Regolamento europeo
protezione dati
Protezione dei dati come diritto
fondamentale.
Tutela applicare medesime norme a
tutto il territorio europeo.
9. Possiamo cifrare sia l’intera SD o
una partizione e usare diversi
metodi per accedere ai file.
Protezione dei
dati sensibili
Per risolvere il problema della ci
viene in aiuto la crittografia.
.
Questa soluzione è flessibile e
adattabile a tutti i sistemi Linux e
non solo.
10. Proteggere il sistema da persone
malintenzionate o un uso
maldestro.
Perché cifrare i
dati?
Proteggere i dati dagli accessi non
autorizzati o alla copia o clonazione.
Mantenere immutabili credenziali o
altre impostazioni predefinite
11. Partizionamento
standard
Esistono solo due partizioni:
/dev/root montato su / partizione root
/dev/mmcblk0p1 montato su /boot partizione boot
In questo caso ha senso crittografare
la partizione di root per proteggere
tutto.
12. Partizionamento
personalizzato
Nel nostro caso la partizione di boot e
quella di root rimangono invariate ma
avranno l’accesso in sola lettura.
A queste aggiungeremo altre due
partizioni una per effettuare le scritture
utili al sistema e una partizione cifrata
per contenere dati sensibili.
13. Perché tutto
questo?
Questo permette di avere separazione
logica dei dati in base al criteri di
sensibilità, inoltre migliora stabilità e
flessibilità nella gestione degli stessi.
La partizione in scrittura, ci permette di
garantire affidabilità e robustezza in
caso corruzione della SD. La
partizione criptata a garantire
protezione ai dati sensibili.
14. Creazione partizioni
dati scrivibile cifrata
A questo punto dobbiamo aggiungere
le nuove partizioni alla nostra SD card.
Per fare questo possiamo utilizzare
sia tool da linea di comando come
fdisk oppure tool grafici come gparted.
Dopo questa operazione possiamo
cifrare una delle due
partizioni appena create con
e poi agganciarla in maniera
‘trasparente’ al sistema.
15. Lo standard è indipendente dalla
piattaforma e può essere utilizzato
per cifrare dischi con un ampia
varietà di strumenti.
Soluzione di
cifratura scelta
Nel campo della sicurezza informatica,
è un metodo di cifratura dei dischi rigidi.
Le specifiche scritte nel 2004 ed è
pensato per Linux. Vedremo come.
LUKS1 On-Disk Format Specification
Version 1.2.3
16. Flessibilità della gestione delle
password e soluzione ben
documentata.
Perché LUKS?
Compatibilità e interoperabilità tra
software e sistemi diversi.
L’implementazione di riferimento
per Linux, basata su una versione
migliorata di cryptsetup.
17. Per utilizzarlo dobbiamo controllare se
abbiamo una versione del pacchetto
cryptsetup.
Possiamo verificare la
presenza del pacchetto
con il comando:
cryptsetup --help
Nel caso non sia presente lo
installiamo semplicemente
digitando:
apt-get update
apt-get install cryptsetup
Crypsetup installazione e
creazione disco cifrato
comandi cryptsetup per creazione
disco cifrato con LUKS
18. Il primo campo indica il nome che si darà al
dispositivo cifrato sotto /dev/mapper. Nel
secondo campo indichiamo il dispositivo fisico
con il nome dello stesso(/dev/sdd1) o con
UUID.
UUID può essere ottenuto attraverso il
comando:
Il terzo campo indica la modalità con cui si
sblocca il dispositivo ed il campo default vuoto
indica la necessità di fornire la passphrase
sulla console.
L’ultimo campo indica le opzioni con cui viene
creato il dispositivo cifrato, nel nostro caso
deve essere LUKS.
Descrizione formato
cryptsetup
comandi cryptsetup per creazione
disco cifrato con LUKS
19. Il primo passo è inizializzare la
partizione per la cifratura
utilizzando il comando in
figura.
Nota bene questa è una fase
irreversibile quindi non si torna
più indietro. Dopo aver di
confermato non ci rimane che
scegliere una password
ADEGUATA.
Crypsetup inizializzazione
comandi cryptsetup per creazione
disco cifrato con LUKS
20. La verità come sempre sta nel
mezzo. Usare una password di
8-9 caratteri, con almeno un
carattere minuscolo, uno
maiuscolo, un numero e un
carattere speciale è per me
una buona definizione di
password ADEGUATA.
Password adeguata
21. LUKS, consente l’uso di più passphrase fino ad un
massimo di otto che possono essere aggiunte o
rimosse ,posto che almeno una resti presente per
accedere al dispositivo.
Il comando che ci permette di aggiungere una
passphrase è il seguente:
.
Gestione delle password
comandi cryptsetup per creazione
disco cifrato con LUKS
22. Possiamo attivare la cifratura con il seguente
comando:
Se tutto è andato a buon fine, l’output del
comando:
ls /dev/mapper
dovrebbe restituire anche il cifrato, confermando
l’avvenuto aggancio della partizione criptata al
device mapper, il quale fornirà su :
/dev/mapper/cifrato
il dispositivo su cui operare in chiaro.
Crypsetup inizializzazione
comandi cryptsetup per creazione
disco cifrato con LUKS
23. Per creare un filesystem criptato utilizziamo il
seguente comando:
Una volta creato, possiamo montarlo con:
Creare filesystem mkfs
comandi cryptsetup per creazione
disco cifrato con LUKS
24. Si tenga presente che una volta formattato
un disco con LuksFormat questo potrà
essere identificato anche con UUID ad esso
associato rendendo il riconoscimento dello
stesso indipendente.
In particolare è possibile individuare la
presenza di dischi cifrati attraverso questo
comando in figura.
Identificazione dischi cifrati
comandi cryptsetup per creazione
disco cifrato con LUKS
25. Il primo comando smonta la partizione cifrata e il
secondo comando rimuove il disco dal device mapper
rendendo impossibile l’accesso ai dati del disco.
Chiudere filesystem
comandi cryptsetup per creazione
disco cifrato con LUKS
26. Quando viene collegata una SD
contenente una partizione cifrata con
LUKS, questa viene riconosciuta e
compare una finestra in cui ci chiede di
inserire la passphrase.
Dopo aver cifrato una
partizione della nostra
SD possiamo utilizzarla
al di fuori di Raspberry?
Le distribuzioni usano pacchetti
(hal, dbus e gnome-volume
manager) per la gestione dei volumi
nel sistema.
27. Limitiamo il rischio della corruzione
dei dati e del sistema dovuti dalla
fragilità del SD.
Gestire dati e accessi
attraverso un sistema
operativo in sola
lettura che gira in RAM
Riduciamo l’accesso ai dati in scrittura
ai dati.
Evitiamo attività di scrittura del
sistema superflue, la modifica
impropria e le manomissioni
accidentali dell’utente.
28. L’insieme dei dati astratti necessari
per la memorizzazione, accesso,
manipolazione e navigazione dei
file.
Filesystem Linux
Indica il meccanismo con il quale i file
vengono salvati e organizzati i file.
In Unix anche le periferiche
vengono trattate come file.
29. Consente di gestire file e directory
in maniera diversa come se fossero
rami separati che formano un unico
albero.
Soluzione adottata
Unionfs
Un filesystem che consente di simulare
l’unione di più filesystem sottostanti,
mantenendo la semantica Unix.
I rami possono essere in lettura o
scrittura, ma appare unico e
consente letture o scritture solo se
autorizzate.
30. Docker nella creazione dei
Container.
Dove si utilizza
Unionfs
Le distro live Linux(es. Knoppix 30
Giugno 2006).
Quando si vuole una base
comune a più filesystem Windows,
Solaris e FreeBSD .
31. 1. Per utilizzarlo dobbiamo installare il
pacchetto union-fuse:
apt-get update
apt-get install union-fuse
2. Dopo l’installazione dobbiamo
disabilitare il meccanismo di SWAP di
default.
3. Creiamo un file in cui definiamo le
regole per usare UnionFs.
Installazione Unionfs e creazione sistema
operativo il sola lettura
Comandi installazione sistema
operativo read only
32. Con l’aggiunta del filesystem readonly
unita ad una soluzione di cifratura che usa
LUKS abbiamo reso il nostro sistema più
robusto dal punto di vista della sicurezza,
affidabile e flessibile con separazione
logica dei dati .
La fragilità intrinseca legata all’uso di una
scheda SD per salvare i dati viene mitigata.
La sicurezza viene garantita da una
cifratura standard supportata su vari
sistemi e da una gestione delle password
diversificata e adattabile ad ogni esigenza.
Conclusioni