Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
lfi — Repository di alto livello per LFI: Sandboxing software-based pratico, efficiente e sicuro. | Kitploit
Strumenti/GitHubGitHub/lfi-project/lfi
Sicurezza Sistemi EmbeddedAnalisi StaticaAnalisi Dinamica (Sandboxing)Analisi del CodiceVirtualizzazione per la SicurezzaSicurezza HardwareAnalisi di Binari
GitHublfi-project/lfi

lfi

Repository di alto livello per LFI: Sandboxing software-based pratico, efficiente e sicuro.

Vedi Repository
11613107 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Isolamento Leggero dei Guasti (LFI)

Benvenuti nel repository di primo livello per il progetto Lightweight Fault Isolation (LFI).

Cos'è LFI?

LFI è un sistema per isolare (sandboxing) il codice nativo. Come WebAssembly e Native Client, LFI isola il codice in sandbox in-process (cioè nello stesso spazio di indirizzi dell'applicazione host). Attualmente supportiamo target Arm64 e x86-64, e abbiamo supporto sperimentale per RISC-V.

LFI è progettato fin dall'inizio per isolare codice esistente, come librerie C/C++ (incluso codice assembly) e driver di dispositivo.

LFI mira ai seguenti obiettivi:

  • Compatibilità: LFI può essere utilizzato per isolare quasi tutto il codice C/C++/assembly esistente senza modifiche, funziona con interfacce di chiamate di sistema esistenti, ecc.
  • Prestazioni: LFI mira a un overhead minimo rispetto al codice non isolato.
  • Sicurezza: Il runtime e gli elementi del compilatore di LFI mirano a essere semplici e verificabili quando possibile.
  • Usabilità: Gli strumenti dovrebbero rendere il più semplice possibile l'aggiunta dell'isolamento a codice esistente.

Gli obiettivi non prioritari includono un formato binario stabile e l'indipendenza dalla piattaforma. Utilizzeremo tutte le caratteristiche hardware specifiche dell'architettura e le tecniche del compilatore che possiamo per migliorare le prestazioni.

LFI attualmente impone un overhead di circa il 7% (Arm64) o l'8% (x86-64) rispetto al codice nativo quando si isolano letture e scritture, e un overhead dell'1.5% (Arm64) o del 6% (x86-64) quando si isolano solo le scritture (media geometrica su SPEC 2017). I context switch di LFI (cioè tra sandbox e applicazione host) richiedono solo decine di cicli, e LFI può supportare migliaia di sandbox in un singolo spazio di indirizzi: ~64K (Arm64) o ~3K (x86-64), con ogni sandbox che riceve fino a 4GiB di memoria.

Repository

  • lfi-runtime: il runtime responsabile del caricamento dei programmi LFI, della gestione delle chiamate host e dell'esecuzione della verifica.
  • lfi-verifier: il verificatore LFI.
  • lfi-rewriter: il rewriter LFI per l'assembly GNU e uno strumento post-linker per eseguire trasformazioni binarie dopo il collegamento (necessario solo su x86-64).
  • lfi-bind: uno strumento per generare trampoline e routine di inizializzazione per eseguire librerie all'interno delle sandbox LFI.
  • lfi-llvm-toolchain: script per costruire una toolchain compilatore LFI basata su LLVM, insieme a un sysroot che include compiler-rt, musl, libc++ e mimalloc.
  • llvm-project: il nostro fork di sviluppo del progetto LLVM.
  • lfi-specification: i sorgenti LaTeX per il documento di specifica LFI.
  • lfi-bench: una raccolta di librerie e benchmark per la valutazione delle prestazioni di LFI.

Per Iniziare

Per iniziare con LFI, avrete bisogno di un compilatore LFI. Potete ottenerne uno da https://github.com/lfi-project/lfi-llvm-toolchain. I compilatori precompilati per aarch64 e x86-64 sono disponibili nei rilasci: https://github.com/lfi-project/lfi/releases/latest. Scaricate il pacchetto aarch64-lfi-clang.tar.gz o x86_64-lfi-clang.tar.gz, a seconda della vostra architettura (oppure aarch64-lfi-clang-host-x86_64.tar.gz se volete compilare in modo incrociato per aarch64 da x86-64).

Dopo aver estratto l'archivio, dovreste vedere una struttura di directory come questa:

root@kitploit:~
├── bin
│   ├── LLVM tools (clang, lld, ...)
├── include
├── lfi-bin
│   ├── lfi-postlink
│   ├── lfi-rewrite
│   ├── lfi-run
│   ├── lfi-verify
│   ├── ARCH-lfi-linux-musl-clang -> ../bin/clang
│   └── ARCH-lfi-linux-musl-clang++ -> ../bin/clang++
├── lfi-clang
│   ├── ARCH-lfi-linux-musl-clang -> ../bin/clang
│   └── ARCH-lfi-linux-musl-clang++ -> ../bin/clang++
├── lib
├── libexec
├── share
└── sysroot

Dovreste aggiungere la directory lfi-bin al vostro PATH. Se avete già gli strumenti LFI installati tramite un'installazione separata, considerate di aggiungere solo lfi-clang al vostro PATH.

Una volta ottenuto un compilatore, dovreste essere in grado di compilare un semplice programma C o C++:

root@kitploit:~
#include <stdio.h>
int main() {
    printf("Hello from LFI\n");
    return 0;
}

Compilate ed eseguite usando lfi-run:

root@kitploit:~
$ aarch64-lfi-linux-musl-clang hello.c -O2 -o hello -static-pie
$ lfi-run -v ./hello
Hello from LFI

Potete usare lo strumento precompilato lfi-run dall'archivio precompilato. Potete anche facilmente compilare il runtime LFI dal sorgente:

root@kitploit:~
git clone https://github.com/lfi-project/lfi-runtime
cd lfi-runtime
meson setup build
cd build
ninja
./tools/lfi-run/lfi-run ...

Lo strumento lfi-run è principalmente destinato a benchmark e test. Non esegue la verifica per impostazione predefinita (usare -v per abilitarla) e consente l'accesso completo al filesystem per impostazione predefinita. Consultare l'uso (lfi-run --help) per ulteriori informazioni.

Prossimi Passi

Dopo aver compilato ed eseguito il vostro primo programma LFI, potreste voler esplorare diverse direzioni. Consultate le seguenti guide per alcuni suggerimenti:

  • Impostazione del benchmarking con SPEC 2017 e lfi-bench: guida.
  • Utilizzo di LFI per isolare librerie: guida.
  • Per saperne di più su come funziona LFI: guida.
  • Utilizzo di liblfi per creare un runtime personalizzato: guida

Repository di Ricerca

Questo repository esisteva in precedenza all'indirizzo zyedidia/lfi e conteneva l'implementazione iniziale di LFI. Questi sorgenti possono essere trovati nel branch lfi-research.

Scarica lo strumento