Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
holo — Suite di protocolli di routing basata su Rust che implementa BGP, OSPF, IS-IS, RIP e VRRP con configurazione modellata con YANG, automazione gNMI/gRPC e fuzzing integrato per reti ad alta scala guidate dall'automazione. | Kitploit
Strumenti/GitHubGitHub/holo-routing/holo
Mappatura della ReteAudit di ConfigurazioneFuzzingSicurezza di ReteAnalisi DNS
GitHubholo-routing/holo

holo

Suite di protocolli di routing basata su Rust che implementa BGP, OSPF, IS-IS, RIP e VRRP con configurazione modellata con YANG, automazione gNMI/gRPC e fuzzing integrato per reti ad alta scala guidate dall'automazione.

Vedi Repository
53546319 giorni 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

MIT licensed Build Status codecov Discord

Holo è una suite di protocolli di routing progettata per supportare reti su larga scala e guidate dall'automazione.

Per una descrizione di cosa sia un protocollo di routing, fare riferimento a questa pagina Wikipedia.

Puoi provare Holo nel tuo browser, senza installare nulla, su Holo Lab.

Funzionalità

Focus su semplicità e correttezza

L'obiettivo principale di Holo è creare una base di codice affidabile, facile da mantenere ed estensibile. Con la crescente complessità dei protocolli di routing e delle loro estensioni, è cruciale disporre di implementazioni dei protocolli di routing costruite su una base solida. A tal fine, la base di codice di Holo dà priorità alla semplicità, alla modularità e a una documentazione approfondita. Grazie al rigore del compilatore Rust e agli estesi unit test, ci si aspetta che la maggior parte delle regressioni venga individuata precocemente nel ciclo di sviluppo di nuove funzionalità. Per maggiori dettagli, fare riferimento alla pagina Architecture.

Pronto per l'automazione

Holo è stato sviluppato specificamente per reti su larga scala guidate dall'automazione che richiedono configurazione e monitoraggio programmabili tramite dati strutturati e modellati. Holo implementa nativamente i moduli YANG standard dell'IETF e supporta molteplici interfacce di gestione, tra cui gRPC e gNMI nativi. Inoltre, Holo dispone di una CLI autonoma che genera dinamicamente i comandi dai moduli YANG e comunica con il daemon Holo tramite gRPC.

Le modifiche apportate alla configurazione vengono elaborate come transazioni, garantendo che tutte le modifiche vengano applicate o nessuna di esse. Questa funzionalità facilita notevolmente l'automazione della rete, poiché elimina la necessità di recupero dagli errori nelle applicazioni di gestione. Holo supporta anche transazioni a livello di rete che coinvolgono più dispositivi di rete. Ulteriori capacità di automazione della rete includono commit confermati e supporto al rollback della configurazione.

Sicurezza

In virtù dell'essere scritto in un linguaggio memory-safe, Holo è immune a un'ampia varietà di bug legati alla memoria e vulnerabilità di sicurezza. Oltre alle garanzie di sicurezza fornite da Rust, il daemon Holo rilascia anche i privilegi all'avvio. Per determinate operazioni, come il binding dei socket, vengono utilizzate le capabilities di Linux per ottenere il permesso minimo richiesto per il minor tempo possibile.

Holo fornisce inoltre una protezione robusta contro il vettore di attacco più comune negli stack dei protocolli di routing: gli attacchi denial-of-service (DoS) tramite input di pacchetti malevoli. I pacchetti in ingresso vengono decodificati in task asincroni isolati e supervisionati, consentendo alle implementazioni dei protocolli di riprendersi con garbo dai panic, ad esempio ignorando i pacchetti malformati o chiudendo solo il flusso TCP interessato, senza compromettere la stabilità dell'intero daemon. Inoltre, grazie al design modulare di Holo e al supporto integrato per il fuzzing guidato dalla copertura, ci si aspetta che la maggior parte dei bug di parsing venga rilevata e risolta durante lo sviluppo.

Implementazioni integrate dei protocolli

Alcuni protocolli, come OSPF e RIP, hanno versioni diverse ampiamente distribuite, tipicamente una per IPv4 e un'altra per IPv6. Holo sfrutta i generics di Rust per avere implementazioni dei protocolli indipendenti dalla versione, in cui la maggior parte del codice è condivisa dalle diverse versioni del protocollo. Questo approccio riduce il costo di manutenzione di questi protocolli e facilita il rilascio di nuove funzionalità che beneficiano tutte le versioni del protocollo.

Parallelismo

Holo fa ampio uso di operazioni asincrone e si affida al runtime Tokio per pianificare i task ed eseguirli su un pool di thread. Per ottenere prestazioni migliori, sia le richieste di I/O che gli algoritmi ad alta intensità di CPU vengono spostati su task separati, massimizzando l'utilizzo di tutti i core CPU disponibili. Il supporto per codice indipendente dal runtime è previsto per il futuro, una volta che le astrazioni necessarie saranno standardizzate dal team del linguaggio Rust.

Logging strutturato

Holo genera messaggi di log che contengono dati strutturati, che possono essere presentati in vari formati come JSON, testo, ecc. Poiché il logging viene effettuato tramite la facade tracing, è possibile utilizzare diversi subscriber tracing per soddisfare le diverse esigenze degli utenti. Ad esempio, il logging può essere indirizzato a un file, a journald, a un collector OpenTelemetry centralizzato o a qualsiasi combinazione di queste opzioni con livelli di logging potenzialmente diversi.

Bug riproducibili

Holo fornisce la funzionalità di registrazione e riproduzione, consentendo di riprodurre facilmente qualsiasi bug segnalato dall'utente. Il daemon Holo può essere configurato per registrare l'intero ciclo di vita di un'istanza di protocollo su un file. Quel file può poi essere riprodotto su un'altra macchina, riproducendo la stessa sequenza di eventi. Mentre una sessione di registrazione può durare ore o giorni, il processo di riproduzione dovrebbe richiedere solo pochi secondi. Ciò è possibile grazie all'architettura modulare di Holo, in cui tutte le operazioni legate al tempo e all'I/O vengono eseguite in task separati e astratte come messaggi di evento.

Installazione

Per istruzioni dettagliate sull'installazione, fare riferimento al file INSTALL.md.

Piattaforme supportate

Holo funziona su Linux. La base di codice è in gran parte indipendente dalla piattaforma, e le parti che interagiscono con il sistema operativo, come l'I/O di rete, la gestione delle interfacce e l'installazione delle route, sono isolate in pochi punti, quindi Holo può essere portato su altre piattaforme con poco sforzo. Può anche essere compilato in WebAssembly, principalmente per eseguire reti virtuali nel browser.

Per iniziare

Il modo più rapido per provare Holo è Holo Lab, che esegue topologie di rete di router Holo direttamente nel browser.

Per una configurazione completa, utilizzare container Docker precompilati in combinazione con il software containerlab. Puoi trovare una varietà di topologie di rete preconfigurate a questo link. Queste topologie possono essere distribuite con un singolo comando, permettendoti di testare Holo in varie configurazioni di rete, incluso il test di interoperabilità con altre implementazioni.

Scarica lo strumento