Skip to content

Commit 73c0673

Browse files
matteobisiugho16
andauthored
Localize ebpf #2334 (#2361)
Signed-off-by: Matteo Bisi <[email protected]> Co-authored-by: Paolo Martinoli <[email protected]>
1 parent bf6adde commit 73c0673

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

content/it/ebpf.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
title: eBPF
3+
status: Completed
4+
category: architettura
5+
---
6+
7+
## Cos'è
8+
9+
eBPF, per esteso "Berkeley Packet Filter", è una tecnologia che consente di eseguire piccoli programmi o script in sandbox nello spazio kernel di un sistema Linux,
10+
senza dover modificare il codice sorgente del kernel o caricare moduli del kernel Linux specifici.
11+
Un sistema Linux ha due spazi di esecuzione dei processi: il kernel e lo spazio utente.
12+
Il kernel rappresenta il nucleo del sistema operativo ed è l'unica parte con accesso illimitato all'hardware.
13+
Le applicazioni risiedono nello spazio utente e, quando necessitano di autorizzazioni più elevate, inviano una richiesta al kernel.
14+
Per le applicazioni che richiedono piu previlegi, come l'accesso diretto all'hardware,
15+
il kernel può essere esteso tramite l'approccio noto come "moduli kernel Linux".
16+
Questo approccio estende la funzionalità predefinita del kernel, consentendo alle applicazioni un accesso più profondo ai componenti sottostanti.
17+
Tuttavia, questo approccio introduce anche rischi di sicurezza, rendendo eBPF un'alternativa interessante.
18+
19+
## Quali problematiche affronta
20+
In genere, le applicazioni vengono eseguite nello spazio utente e, se l'applicazione richiede alcuni privilegi dal kernel (ad esempio per accedere a una parte hardware),
21+
lo richiede al kernel tramite una "chiamata di sistema".
22+
Nella maggior parte dei casi, questo approccio funziona bene. Ci sono però dei casi, come ad esempio nell'utilizzo di funzionalità di osservabilità, sicurezza e networking,
23+
in cui gli sviluppatori richiedono una maggiore flessibilità per l'accesso al sistema a basso livello.
24+
A questo scopo, possiamo utilizzare i moduli del kernel Linux, che estendono la base del kernel senza richiederne la modifica del codice sorgente.
25+
Sebbene ci siano vantaggi nell'utilizzo dei moduli del kernel Linux, questo approccio introduce anche rischi per la sicurezza:
26+
operando nello spazio kernel, in caso di problemi i moduli del kernel Linux possono causare il crash del kernel stesso e, quando il kernel si blocca, si blocca anche l'intera macchina.
27+
Inoltre, i moduli del kernel hanno privilegi elevati e accesso diretto alle risorse di sistema. Se non sono adeguatamente protetti, gli aggressori possono sfruttarli.
28+
29+
## In che modo aiuta
30+
eBPF offre un ambiente controllato e delimitato per l'esecuzione di programmi definiti dall'utente rispetto ai moduli del kernel Linux.
31+
Viene eseguito in un ambiente sandbox all'interno del kernel, fornendo isolamento e mitigazione dei rischi.
32+
Se una vulnerabilità o un difetto vengono sfruttate in un programma eBPF, l'impatto è generalmente limitato all'ambiente sandbox.
33+
Inoltre, prima che un programma eBPF possa iniziare a essere eseguito nel kernel, deve superare alcune verifiche.
34+
All'interno del kernel, un componente chiamato "eBPF verifier", controlla il programma eBPF per potenziali violazioni di sicurezza,
35+
come l'accesso alla memoria fuori dai limiti, i loop infiniti e le funzioni del kernel non autorizzate.
36+
In questo modo, si assicura che il programma non entri in un loop infinito e causi un crash del kernel.
37+
Questi controlli di sicurezza rendono eBPF un'opzione più sicura per eseguire applicazioni nel kernel Linux rispetto ai moduli del kernel Linux.

0 commit comments

Comments
 (0)