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
CyberBattleSim — Una piattaforma di sperimentazione e ricerca per investigare l'interazione di agenti automatizzati in ambienti di rete simulati astratti. | Kitploit
Strumenti/GitHubGitHub/microsoft/cyberbattlesim
Movimento LateralePenetration TestingMachine LearningPaper e RicercaApprendimento e FormazioneRed Teaming
GitHubmicrosoft/cyberbattlesim

CyberBattleSim

Una piattaforma di sperimentazione e ricerca per investigare l'interazione di agenti automatizzati in ambienti di rete simulati astratti.

Vedi Repository
1.8k285351 mese 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

CyberBattleSim

8 aprile 2021: Vedi l'annuncio sul blog Microsoft Security.

CyberBattleSim è una piattaforma di ricerca sperimentale per studiare l'interazione di agenti automatizzati che operano in un ambiente di rete aziendale simulato e astratto. La simulazione fornisce un'astrazione di alto livello delle reti informatiche e dei concetti di sicurezza informatica. La sua interfaccia OpenAI Gym basata su Python consente l'addestramento di agenti automatizzati utilizzando algoritmi di apprendimento per rinforzo.

L'ambiente di simulazione è parametrizzato da una topologia di rete fissa e da un insieme di vulnerabilità che gli agenti possono sfruttare per muoversi lateralmente nella rete. L'obiettivo dell'attaccante è impossessarsi di una porzione della rete sfruttando le vulnerabilità presenti nei nodi del computer. Mentre l'attaccante tenta di diffondersi attraverso la rete, un agente difensore osserva l'attività di rete e cerca di rilevare eventuali attacchi in corso e mitigarne l'impatto sul sistema, espellendo l'attaccante. Forniamo un difensore stocastico di base che rileva e mitiga gli attacchi in corso basandosi su probabilità di successo predefinite. Implementiamo la mitigazione reimmaginando i nodi infetti, un processo astrattamente modellato come un'operazione che si svolge in più passi di simulazione.

Per confrontare le prestazioni degli agenti, consideriamo due metriche: il numero di passi di simulazione necessari per raggiungere il loro obiettivo e le ricompense cumulative nel corso dei passi di simulazione durante le epoche di addestramento.

Obiettivi del progetto

Consideriamo questo progetto come una piattaforma di sperimentazione per condurre ricerche sull'interazione di agenti automatizzati in ambienti di rete simulati e astratti. Rendendolo open-source, speriamo di incoraggiare la comunità di ricerca a studiare come gli agenti informatici interagiscono ed evolvono in tali ambienti di rete.

La simulazione che forniamo è, ammettiamolo, semplicistica, ma ciò presenta dei vantaggi. La sua natura altamente astratta impedisce l'applicazione diretta a sistemi reali, fornendo così una salvaguardia contro un potenziale uso malevolo di agenti automatizzati addestrati con essa. Allo stesso tempo, la sua semplicità ci consente di concentrarci su aspetti di sicurezza specifici che intendiamo studiare e di sperimentare rapidamente con recenti algoritmi di apprendimento automatico e IA.

Ad esempio, l'implementazione attuale si concentra sulle tecniche di attacco informatico di movimento laterale, con la speranza di comprendere come la topologia e la configurazione della rete le influenzino. Con questo obiettivo in mente, abbiamo ritenuto che non fosse necessario modellare il traffico di rete effettivo. Questo è solo un esempio di un limite significativo del nostro sistema che contributi futuri potrebbero voler affrontare.

Sul versante algoritmico, forniamo alcuni agenti di base come punti di partenza, ma saremmo curiosi di scoprire come gli algoritmi di apprendimento per rinforzo più moderni si confrontano con essi. Abbiamo scoperto che il grande spazio delle azioni intrinseco a qualsiasi sistema informatico rappresenta una sfida particolare per l'apprendimento per rinforzo, a differenza di altre applicazioni come i videogiochi o il controllo di robot. Addestrare agenti in grado di memorizzare e recuperare credenziali è un'altra sfida affrontata quando si applicano tecniche di RL in cui gli agenti tipicamente non dispongono di memoria interna. Queste sono altre aree di ricerca in cui la simulazione potrebbe essere utilizzata per scopi di benchmarking.

Altre aree di interesse includono l'uso responsabile ed etico dei sistemi autonomi di cybersicurezza: Come progettare una rete aziendale che dia un vantaggio intrinseco agli agenti difensori? Come condurre una ricerca sicura volta a difendere le aziende dagli attacchi informatici autonomi, prevenendo al contempo un uso malevolo di tale tecnologia?

Documentazione

Leggi la Breve introduzione al progetto.

Stato della build

TipoBranchStato
CImaster.github/workflows/ci.yml
Docker imagemaster.github/workflows/build-container.yml

Benchmark

Vedi la Documentazione del benchmark. I Jupyter notebook con le ultime esecuzioni sono stati inseriti sotto un tag dedicato in /notebooks/benchmarks (latest_benchmark).

Configurazione di un ambiente di sviluppo

È fortemente consigliato lavorare in un ambiente Linux, direttamente o tramite WSL su Windows. Eseguire Python direttamente su Windows dovrebbe funzionare ma non è più supportato.

Inizia clonando il repository:

git clone https://github.com/microsoft/CyberBattleSim.git

Componenti del sistema operativo

Se ottieni il seguente errore eseguendo papermill sui notebook (o in alternativa eseguendo orca --help)

/home/wiblum/miniconda3/envs/cybersim/lib/orca_app/orca: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

o altre librerie condivise come libgdk_pixbuf-2.0.so.0, Esegui quindi il seguente comando:

sudo apt install libnss3-dev libgtk-3-0 libxss1 libasound2-dev libgtk2.0-0 libgconf-2-4

Su Linux o WSL

Le istruzioni sono state testate su una distribuzione Linux Ubuntu (sia nativa che tramite WSL).

Se conda non è già installato, devi installarlo eseguendo lo script install_conda.sh.

bash install-conda.sh

Una volta fatto, apri un nuovo terminale ed esegui lo script di inizializzazione:

bash init.sh

Questo creerà un ambiente conda chiamato cybersim con tutte le dipendenze del sistema operativo e Python richieste.

Per attivare l'ambiente esegui:

conda activate cybersim

Sottosistema Windows per Linux (WSL)

L'ambiente di sviluppo supportato su Windows è tramite WSL. Devi prima installare una distribuzione Ubuntu WSL sulla tua macchina Windows, e poi procedere con le istruzioni per Linux (sezione successiva).

Autenticazione Git da WSL

Per autenticarti con Git, puoi utilizzare l'autenticazione basata su SSH o in alternativa utilizzare il trucco del credential-helper per generare automaticamente un token PAT. Quest'ultimo può essere eseguito con il seguente comando in WSL (maggiori informazioni qui):

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

Docker su WSL

Per eseguire il tuo ambiente all'interno di un contenitore Docker, consigliamo di eseguire docker tramite il Sottosistema Windows per Linux (WSL) seguendo queste istruzioni: Installazione di Docker su Windows tramite WSL).

Windows (non supportato)

Questo metodo non viene più mantenuto; preferisci invece l'esecuzione in un ambiente Linux tramite WSL. Ma se insisti, puoi iniziare installando Python 3.10 poi in un prompt di PowerShell esegui lo script ./init.ps1.

Iniziare rapidamente con Docker

Il metodo più rapido per iniziare è tramite il contenitore Docker.

Scarica lo strumento