Articoli

Come proteggere l’esecuzione di software: eBPF

Il software rappresenta sempre un rischio perchè la sua esecuzione potrebbe essere sfruttata per scopi malevoli ed è proprio quello che gli hacker fanno: agire su un determinato software per magari acquisire privilegi di amministratore ed esfiltrare dati sensibili.

Il problema è talmente sentito che la Casa Bianca ha rilasciato un paperwork per cercare di innalzare la consapevolezza degli sviluppatori riguardo ai problemi di sicurezza insiti nel software( per un approfondimento ti invitiamo a leggere il nostro articolo “Come garantire la sicurezza dello sviluppo di software: i consigli della Casa Bianca“).

Contattaci subito e senza impegno per garantire e/o verificare la sicurezza del tuo software.

eBPF: la modalità sandbox a livello kernel

eBPF è una tecnologia rivoluzionaria che permettere di estendere le capacità del kernel Linux in maniera sicura ed efficiente senza richiedere alcun cambiamento del codice del kernel o di caricare alcun modulo esterno. In pratica eBPF esegue i programmi in maniera sandboxed.

La capacità privilegiata del kernel di poter supervisionare e controllare l’intero sistema operativo è tradizionalmente sfruttata per implementare funzionalità di osservabilità, sicurezza e di networking. Ma il kernel è complicato da far evolvere ed inoltre la sua modifica o estensione comporta sempre un rischio grave.

eBPF cambia il paradigma di sviluppo permettendo di avere programmi in sandbox che vengono resi sicuri grazie a compiler Just-in-Time(JIT) e verification engine. Questa straordinaria capacità ti abilita allo sviluppo avanzato di funzionalità a livello kernel come:

  • high performance networking ed analysis;
  • gestione del load balancing a livello pacchetto;
  • estrazione di dati granulari per l’osservabilità;
  • tracciamento delle applicazioni;
  • insights sulle performance;
  • application security enforcement,

senza incorrere in particolari rischi.

Contattaci subito e senza impegno per garantire e/o verificare la sicurezza del tuo software.

Come sono scritti i programmi eBPF

In tantissimi scenari, eBPF non è utilizzato direttamente ma attraverso progetti in Ciliumbcc, o bpftrace che forniscono un layer di astrazione sopra eBPF e che offrono la capacità di definire intenti che vengono quind eseguiti in eBPF.

Se non esistessero o non si usassero programmi di maggiore astrazione, sarebbe necessario scrivere programmi in bytecode, la qual cosa non è molto comoda e semplice anche volendo sfruttare un compilatore come LLVM.

La sicurezza di eBPF

Ci sono diversi elementi che garantiscono la sicurezza dei programmi in eBPF:

  • Privilegi di root: se non è abilitata la modalità unprivileged, tutti i programmi devono essere in grado di agire con privilegi di root per poter essere eseguiti;
  • Verifier: tutti i programmi devono passare dal verificatore di eBPF che valida il codice affinchè non siano presenti blocchi, loop, variabili non inizializzate, accessi alla memoria fuori dai confini stabiliti. Inoltre valida che la dimensione del programma sia quella stabilita e che i processi esecutivi siano completi. Il Verificatore non è un tool di sicurezza ma garantisce che il programma operi in maniera corretta, non verifica ciò che il programma esegue.
  • Hardening: la memoria di kernel in uso viene mantenuta in read-only e se ci fosse un bug a livello di kernel o una manipolazione malevole, il kernel va in crash e non permette l’esecuzione del programma. Inoltre vengono mitigati gli attacchi Spectre e rese inattaccabili le costanti dagli attacchi di JIT Spraying.
  • Abstracted Runtime Context: i programmi eBPF non possono accedere direttamente alla memoria di kernel ma solo attraverso degli appositi helper.

Contattaci subito e senza impegno per garantire e/o verificare la sicurezza del tuo software.

Glue Labs e lo sviluppo di software sicuro

Abbiamo realizzato applicazioni business critical impiegate in ambienti sensibili come quello energeticomedico e della sicurezza del cittadino. Gli ambienti critici in cui il nostro software opera ci hanno permesso di costruire un’importante sensibilità verso la qualità e la sicurezza del software, sensibilità che ci permette di fornirti la tua applicazione con garanzia 12 mesi da qualsiasi bug.

Grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti forniamo le competenze per progettare, sviluppare e manutenzionare anche in maniera evolutiva le tue applicazioni. Infine ti forniamo un catalogo di servizi di CyberSecurity per qualsiasi analisi che vorrai fare sul tuo software ed anche sulla tua architettura IT. Contattaci subito e senza impegno per maggiori informazioni.