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
batea — Classificazione dei dispositivi di rete basata sull'IA e guidata dal contesto | Kitploit
Strumenti/GitHubGitHub/delvelabs/batea
Analisi delle VulnerabilitàRaccolta InformazioniSicurezza di ReteMachine LearningRilevamento di Anomalie
GitHubdelvelabs/batea

batea

Classificazione dei dispositivi di rete basata sull'IA e guidata dal contesto

Vedi Repository
303474 anni 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
Sito web

Python package

logo

Batea

Una batea è una grande padella poco profonda di legno o ferro utilizzata tradizionalmente dai cercatori d'oro per lavare sabbia e ghiaia e recuperare pepite d'oro.

Batea è un framework di ranking di dispositivi di rete basato sul contesto, che utilizza la famiglia di algoritmi di machine learning per il rilevamento di anomalie. L'obiettivo di Batea è consentire ai team di sicurezza di filtrare automaticamente gli asset di rete interessanti in grandi reti utilizzando i report delle scansioni nmap. Li chiamiamo Gold Nuggets (Pepite d'Oro).

Per maggiori informazioni sul Gold Nuggeting e sulla scienza alla base di Batea, consulta il nostro whitepaper qui

Come funziona

Batea costruisce una rappresentazione numerica (numpy) di tutti i dispositivi dai tuoi report nmap (XML) e quindi applica metodi di rilevamento di anomalie per scoprire le pepite d'oro. È facilmente estendibile aggiungendo caratteristiche specifiche, o caratteristiche interessanti, alla rappresentazione numerica degli elementi di rete.

La rappresentazione numerica della rete è costruita utilizzando caratteristiche (features), ispirate all'esperienza della comunità della sicurezza. Le caratteristiche agiscono come elementi di intuizione, e i metodi di rilevamento di anomalie non supervisionati permettono di utilizzare il contesto dell'asset di rete, o la descrizione completa della rete, come elemento centrale dell'algoritmo di ranking. L'algoritmo esatto utilizzato è Isolation Forest (https://en.wikipedia.org/wiki/Isolation_forest)

I modelli di machine learning sono il cuore di Batea. I modelli sono algoritmi addestrati sull'intero dataset e utilizzati per prevedere un punteggio sugli stessi (e altri) punti dati (dispositivi di rete). Batea permette anche la persistenza dei modelli. Cioè, puoi riutilizzare modelli pre-addestrati ed esportare modelli addestrati su grandi dataset per un uso futuro.

Utilizzo

root@kitploit:~
# Informazioni complete
$ sudo nmap -A 192.168.0.0/16 -oX output.xml

# Informazioni parziali
$ sudo nmap -O -sV 192.168.0.0/16 -oX output.xml


$ batea -v output.xml

Installazione

root@kitploit:~
$ git clone [email protected]:delvelabs/batea.git
$ cd batea
$ python3 setup.py sdist
$ pip3 install -r requirements.txt
$ pip3 install -e .

Installazione per sviluppatori

root@kitploit:~
$ git clone [email protected]:delvelabs/batea.git
$ cd batea
$ python3 -m venv batea/
$ source batea/bin/activate
$ python3 setup.py sdist
$ pip3 install -r requirements-dev.txt
$ pip3 install -e .
$ pytest

Esempio di utilizzo

root@kitploit:~
# Utilizzo semplice (output delle prime 5 pepite d'oro con formato predefinito)
$ batea nmap_report.xml

# Output delle prime 3
$ batea -n 3 nmap_report.xml

# Output di tutti gli asset
$ batea -A nmap_report.xml

# Utilizzo di più file di input
$ batea -A nmap_report1.xml nmap_report2.xml

# Utilizzo di wildcard (default xsl)
$ batea ./nmap*.xml
$ batea -f csv ./assets*.csv

# Puoi usare batea su modelli pre-addestrati ed esportare modelli addestrati.

# Addestramento, output e dump del modello per persistenza
$ batea -D mymodel.batea nmap_report.xml

# Utilizzo di un modello pre-addestrato
$ batea -L mymodel.batea nmap_report.xml

# Utilizzo di csv preformattato insieme a file xml
$ batea -x nmap_report.xml -c portscan_data.csv

# Regola la verbosità
$ batea -vv nmap_report.xml

Come aggiungere una caratteristica (feature)

Batea assegna caratteristiche numeriche a ogni host nel report (o serie di report). Gli host sono oggetti Python derivati dal report nmap. Consistono nel seguente elenco di attributi: [ipv4, hostname, os_info, ports] dove ports è un elenco di oggetti porta. Ogni porta ha il seguente elenco di attributi: [port, protocol, state, service, software, version, cpe, scripts], tutti con valore predefinito None.

Le caratteristiche sono oggetti ereditati dalla classe FeatureBase che istanziano un metodo specifico _transform. Questo metodo prende sempre come input l'elenco di tutti gli host e restituisce una funzione lambda che mappa ogni host a una colonna numpy di valori numerici (l'ordine degli host è conservato). La colonna viene quindi aggiunta alla rappresentazione matriciale del report. Le caratteristiche devono produrre valori numerici corretti (float o interi) e nient'altro.

La maggior parte delle trasformazioni delle caratteristiche sono implementate usando una semplice funzione lambda. Assicurati solo di assegnare un valore numerico predefinito a ogni host per la compatibilità del modello.

Es:

root@kitploit:~

class CustomInterestingPorts(FeatureBase):
    def __init__(self):
        super().__init__(name="some_custom_interesting_ports")

    def _transform(self, hosts):
      """Questo metodo prende un elenco di host e restituisce una funzione che conta il numero
      di porte dell'host appartenenti a un elenco predefinito di porte "interessanti", con valore predefinito 0.

      Parametri
      ----------
      hosts : list
          L'elenco di tutti gli host

      Restituisce
      -------
      f : funzione lambda
          Conta il numero di porte nell'elenco definito.
      """
        member_ports = [21, 22, 25, 8080, 8081, 1234]
        f = lambda host: len([port for port in host.ports if port.port in member_ports])
        return f

Puoi quindi aggiungere la caratteristica al report usando il metodo NmapReport.add_feature in batea/__init__.py

root@kitploit:~
from .features.basic_features import CustomInterestingPorts

def build_report():
    report = NmapReport()
    #[...]
    report.add_feature(CustomInterestingPorts())

    return report

Utilizzo di dati tabulari precalcolati (CSV)

È possibile utilizzare dati preelaborati per addestrare il modello o per la previsione. I dati devono essere indicizzati da (ipv4, port) con una combinazione unica per riga. Il tipo di dati dovrebbe essere simile a quanto ci si aspetta dalla versione XML di un report nmap. Una colonna deve utilizzare uno dei seguenti nomi, ma non è necessario utilizzarli tutti. Il parser assegna valori nulli se una colonna è assente.

root@kitploit:~
  'ipv4',
  'hostname',
  'os_name',
  'port',
  'state',
  'protocol',
  'service',
  'software_banner',
  'version',
  'cpe',
  'other_info'

Esempio:

root@kitploit:~
ipv4,hostname,os_name,port,state,protocol,service,software_banner
10.251.53.100,internal.delvesecurity.com,Linux,110,open,tcp,rpcbind,"program version   port/proto  service100000  2,3,4        111/tcp  rpcbind100000  2,3,4    "
10.251.53.100,internal.delvesecurity.com,Linux,111,open,tcp,rpcbind,
10.251.53.188,serious.delvesecurity.com,Linux,6000,open,tcp,X11,"X11Probe: CentOS"

Output della rappresentazione numerica

Per il data scientist che è in te, o solo per divertimento e profitto, puoi produrre la matrice numerica insieme alla colonna del punteggio invece dell'output normale. Questo può essere utile per ulteriori analisi dei dati e scopi di debug.

root@kitploit:~
$ batea -oM network_matrix nmap_report.xml
Scarica lo strumento