Torna agli aggiornamenti
New releaseJul 31, 2026

macnoise v0.2.0

Generatore di telemetria di sistema MacOS estensibile.

Condividi
Descrizione dell'immagine

CI Release

MacNoise

MacNoise genera telemetria macOS reale: connessioni di rete, scritture su file, avvio di processi, mutazioni di plist, sonde TCC e altro. Puntalo su una macchina che esegue il tuo stack EDR, SIEM o firewall e osserva cosa scatta davvero - non ciò che la scheda tecnica del vendor sostiene che scatti.

Per il contesto su motivazioni e progettazione, consulta il post del blog di rilascio.

Avvio rapido

# Build (add build-amd64 / build-arm64 to cross-compile for Darwin, or release for both)
make build

# List available modules
./macnoise list

# Run a single module
./macnoise run net_connect --param target=127.0.0.1 --param port=8080

# Preview without executing
./macnoise run svc_launch_agent --dry-run

# Run all network modules
./macnoise run --category network

# Run a scenario
./macnoise scenario configs/scenarios/edr_validation.yaml

# Emit structured JSONL output
./macnoise run --category file --format jsonl --output /tmp/events.jsonl

Categorie di telemetria

CategoriaDescrizioneModuli
networkConnessioni in uscita, DNS, beaconing, listener, reverse shell, esfiltrazionenet_connect, net_listen, net_beacon, net_revshell, net_dns, net_exfil
processAvvio di processi, invio di segnali, iniezione dylib, discovery, bypass di Gatekeeper, osascriptproc_spawn, proc_signal, proc_inject, proc_discovery, proc_gatekeeper, proc_osascript
fileCreazione di file, modifica, lettura di credenziali del browser, archiviazione, occultamentofile_create, file_modify, file_browser_creds, file_archive, file_hide
tccSonde di autorizzazione TCC (FDA, Contatti, Keychain)tcc_fda, tcc_contacts, tcc_keychain
endpoint_securityAttivatori di eventi del framework ESes_file, es_process
servicePersistenza LaunchAgent/Daemon, cron, profilo di shellsvc_launch_agent, svc_launch_daemon, svc_cron, svc_shell_profile
plistCreazione e modifica di plistplist_create, plist_modify
xpcEnumerazione dei servizi XPCxpc_connect

Comandi

macnoise run <module> [--param key=val ...]   Run a specific module
macnoise run --category <cat>                 Run all modules in a category
macnoise run --all                            Run all modules
macnoise list [--category <cat>]              List modules
macnoise info <module>                        Show module details, params, MITRE
macnoise scenario <file.yaml>                 Run a YAML scenario
macnoise categories                           List categories with counts
macnoise version                              Print version

Flag globali

FlagPredefinitoDescrizione
--formathumanFormato di output: human o jsonl
--output(nessuno)Scrive l'output su file (oltre che su stdout)
--verbosefalseOutput verboso inclusi gli errori di pulizia
--dry-runfalseAnteprima delle azioni senza eseguirle
--timeout30Timeout per modulo in secondi
--audit-log(nessuno)Scrive i record di audit OCSF 1.7.0 in un file JSONL
--config(nessuno)Carica le impostazioni predefinite da un file di configurazione YAML

Registrazione di audit

MacNoise scrive due flussi separati. Gli eventi di telemetria - ciò che il tuo EDR/SIEM vede effettivamente - vanno su stdout o su --output. Un secondo flusso opzionale registra ciò che MacNoise ha fatto: quali moduli sono stati eseguiti, esiti dei prerequisiti/pulizia e mapping MITRE, in JSONL OCSF 1.7.0.

./macnoise scenario configs/scenarios/amos_atomic_stealer.yaml --audit-log /tmp/audit.jsonl

Il log di audit si apre in modalità append, quindi i record di più esecuzioni si accumulano in un unico file per l'analisi batch. Se stai aggiungendo un modulo e vuoi sapere come un nuovo tipo di evento viene classificato in OCSF, consulta CONTRIBUTING.md.

Riferimento moduli

La documentazione dei moduli si trova accanto a ciascuna categoria:

Scenari

Gli scenari concatenano i moduli in sequenze ordinate: un singolo file YAML che riproduce un pattern di intrusione multi-fase contro le tue rilevazioni.

FileDescrizione
network_only.yamlTutti i moduli di rete
edr_validation.yamlCopertura completa delle rilevazioni EDR
full_sweep.yamlTutte le categorie
lazarus_group.yamlLazarus Group: iniezione dylib, discovery dei servizi, reverse shell, persistenza plist
amos_atomic_stealer.yamlAMOS / Atomic Stealer: infostealer MaaS, bypass di Gatekeeper, dump del Keychain, esfiltrazione ZIP, persistenza backdoor

I due scenari APT seguono sequenze di intrusione reali e documentate, tecnica per tecnica: ogni file YAML cita la threat intelligence effettiva da cui è stato costruito e annota ogni passaggio con la tecnica MITRE che esercita, quindi parti da lì per l'analisi completa invece di una riscrittura qui.

Esegui prima la dry-run:

./macnoise scenario configs/scenarios/<scenario>.yaml --dry-run

Incrocia i risultati con il tuo SIEM/EDR: il commento di ogni passaggio indica la tecnica che dovrebbe attivare. Nessun alert corrispondente dopo un'esecuzione reale è un vuoto nella tua copertura.

Creare il tuo scenario:

name: My Custom Scenario
steps:
  - module: net_connect
    params:
      target: "192.168.1.1"
      port: "443"
  - category: file
    params:
      base_dir: "/tmp/test"

Contribuire

Consulta CONTRIBUTING.md per aggiungere nuovi moduli, lo stile del codice e l'intero processo delle PR.

I rilasci sono automatizzati: release-please crea una nuova versione direttamente dal titolo della tua PR Conventional Commit, quindi feat: add net_tls module o fix: correct beacon jitter è sia il titolo della PR sia la voce del changelog.

Dichiarazione di non responsabilità

MacNoise è pensato per test di sicurezza autorizzati, validazione EDR e ingegneria delle rilevazioni su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta a testare. Gli autori non si assumono alcuna responsabilità per un uso improprio.

Politica sul codice AI

I contributi di codice AI sono ben accetti, ma tieni presente che la revisione del codice è attualmente un processo guidato da esseri umani, il che significa che possiamo recensire solo una quantità limitata di codice. Limita le PR a un fix specifico o a un nuovo modulo di telemetria. Le PR con modifiche estese verranno probabilmente chiuse.

Categorie