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
shh — Systemd Hardening Helper - Mirror di https://github.com/desbma/shh | Kitploit
Strumenti/GitHubGitHub/synacktiv/shh
Sicurezza dell'Infrastruttura CloudStrumenti DifensiviAudit di ConfigurazioneDevSecOpsUtilità e FrameworkConfigurazione Errata
GitHubsynacktiv/shh

shh

Systemd Hardening Helper - Mirror di https://github.com/desbma/shh

Vedi Repository
17633 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

SHH (Systemd Hardening Helper)

CI status crates.io version AUR version nixpkgs unstable version License

Indurimento automatico dei servizi systemd guidato dal profiling con strace.

SHH può generare un set ottimale di opzioni di indurimento per ciascuno dei tuoi servizi, così puoi aumentare il livello di sicurezza del tuo sistema senza preoccuparti di errori casuali in produzione causati da sandboxing troppo restrittivo.

Repository ufficiale - Repository mirror

Documentazione

  • Introduzione di alto livello: Systemd hardening made easy with SHH
  • FAQ
  • Registro delle modifiche
  • Opzioni systemd attualmente supportate

Installazione

Dipendenze

Strace deve essere installato e il suo eseguibile deve essere raggiungibile nel PATH. È attualmente richiesta la versione di Strace >= 6.6.

Dal sorgente

Hai bisogno di un ambiente di build Rust, ad esempio da rustup.

Esegui nel repository corrente:

root@kitploit:~
cargo build --release
install -Dm 755 -t /usr/local/bin target/release/shh

Da crates.io

root@kitploit:~
sudo cargo install --root /usr/local systemd-hardening-helper

Debian (o distribuzione basata su Debian)

Vedi GitHub releases per i pacchetti Debian compilati per ogni versione taggata.

Arch Linux

Gli utenti Arch Linux possono installare il pacchetto AUR shh.

Nixpkgs

Gli utenti Nixos/Nix possono installare l'ultima versione del pacchetto dal ramo unstable.

Utilizzo

Indurimento di un servizio

Per indurire una unità di sistema denominata SERVICE.service:

  1. Avvia la profilazione del servizio: shh service start-profile SERVICE. Il servizio verrà riavviato con la profilazione strace.
  2. Utilizza il servizio normalmente per un po', cercando di coprire quante più funzionalità e casi d'uso possibile.
  3. Esegui shh service finish-profile SERVICE -a. Il servizio verrà riavviato con una configurazione indurita costruita in base alla profilazione di runtime precedente, per consentirgli di funzionare in sicurezza come osservato durante il periodo di profilazione e per negare altre azioni di sistema pericolose.

Esegui shh -h per il riferimento completo della riga di comando, oppure aggiungi -h a un sottocomando per ottenere aiuto.

[!WARNING] Le opzioni di indurimento generate da shh sono per costruzione non portabili tra sistemi diversi. Dipendono da molti fattori e potrebbero rompere il servizio se uno di questi cambia:

  • il percorso del codice coperto durante la profilazione
  • la versione del kernel Linux
  • la libc utilizzata
  • la versione di systemd

Riutilizzare le opzioni generate da shh su un sistema con un ambiente diverso (ad es. distribuzione Linux diversa) molto probabilmente romperà il servizio.

Test locale

Se vuoi eseguire un test rapido per vedere quali opzioni verrebbero generate, puoi usare shh run -- COMMAND.

La directory corrente e la variabile d'ambiente PATH influenzano entrambe l'esecuzione del programma; reimpostale prima:

root@kitploit:~
$ cd /
export PATH=/usr/local/bin:/usr/bin:/bin

Poi, per vedere quali opzioni verrebbero generate per un'invocazione di curl https://www.example.com:

root@kitploit:~
$ shh run -- curl https://www.example.com
...
-------- Start of suggested service options --------
ProtectSystem=strict
ProtectHome=true
PrivateTmp=disconnected
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
ProtectProc=ptraceable
LockPersonality=true
RestrictRealtime=true
ProtectClock=true
MemoryDenyWriteExecute=true
RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
SocketBindDeny=ipv4:tcp
SocketBindDeny=ipv4:udp
SocketBindDeny=ipv6:tcp
SocketBindDeny=ipv6:udp
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_BPF CAP_CHOWN CAP_MKNOD CAP_NET_RAW CAP_PERFMON CAP_SYS_BOOT CAP_SYS_CHROOT CAP_SYS_MODULE CAP_SYS_NICE CAP_SYS_PACCT CAP_SYS_PTRACE CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM
SystemCallFilter=~@aio:EPERM @chown:EPERM @clock:EPERM @cpu-emulation:EPERM @debug:EPERM @ipc:EPERM @keyring:EPERM @memlock:EPERM @module:EPERM @mount:EPERM @obsolete:EPERM @pkey:EPERM @privileged:EPERM @raw-io:EPERM @reboot:EPERM @resources:EPERM @sandbox:EPERM @setuid:EPERM @swap:EPERM @sync:EPERM @timer:EPERM
-------- End of suggested service options --------

Oppure per isolare (sandbox) il più possibile:

root@kitploit:~
$ shh run --mode aggressive --filesystem-whitelisting --network-firewalling -- curl https://www.example.com -o /dev/null
...
-------- Start of suggested service options --------
ProtectSystem=strict
ProtectHome=true
PrivateTmp=disconnected
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
ProtectProc=ptraceable
LockPersonality=true
RestrictRealtime=true
ProtectClock=true
MemoryDenyWriteExecute=true
SystemCallArchitectures=native
ReadOnlyPaths=-/
ReadWritePaths=-/dev
InaccessiblePaths=-/boot -/home -/lost+found -/media -/mnt -/opt -/root -/srv -/sys -/tmp -/var
TemporaryFileSystem=/usr:ro
BindReadOnlyPaths=-/usr/bin -/usr/lib -/usr/lib64 -/usr/local -/usr/share
NoExecPaths=-/
ExecPaths=-/usr/bin/curl -/usr/lib/x86_64-linux-gnu
RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
SocketBindDeny=ipv4:tcp
SocketBindDeny=ipv4:udp
SocketBindDeny=ipv6:tcp
SocketBindDeny=ipv6:udp
IPAddressDeny=any
IPAddressAllow=[redacted]
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_BPF CAP_CHOWN CAP_MKNOD CAP_NET_RAW CAP_PERFMON CAP_SYS_BOOT CAP_SYS_CHROOT CAP_SYS_MODULE CAP_SYS_NICE CAP_SYS_PACCT CAP_SYS_PTRACE CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM
SystemCallFilter=~@aio:EPERM @chown:EPERM @clock:EPERM @cpu-emulation:EPERM @debug:EPERM @ipc:EPERM @keyring:EPERM @memlock:EPERM @module:EPERM @mount:EPERM @obsolete:EPERM @pkey:EPERM @privileged:EPERM @raw-io:EPERM @reboot:EPERM @resources:EPERM @sandbox:EPERM @setuid:EPERM @swap:EPERM @sync:EPERM @timer:EPERM
-------- End of suggested service options --------

Licenza

GPLv3

Scarica lo strumento