Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
shh — Systemd Hardening Helper - Зеркало https://github.com/desbma/shh | Kitploit
Инструменты/GitHubGitHub/synacktiv/shh
Безопасность облачной инфраструктурыОборонительные ИнструментыАудит конфигурацииDevSecOpsУтилиты и фреймворкиНеправильная Конфигурация
GitHubsynacktiv/shh

shh

Systemd Hardening Helper - Зеркало https://github.com/desbma/shh

Репозиторий
17633 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

SHH (Systemd Hardening Helper)

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

Автоматическое ужесточение безопасности сервисов systemd на основе профилирования с помощью strace.

SHH может генерировать оптимальный набор параметров ужесточения для каждого из ваших сервисов, позволяя повысить уровень безопасности системы, не беспокоясь о случайных ошибках в production, вызванных слишком строгой песочницей.

Официальный репозиторий — Зеркало репозитория

Документация

  • Введение высокого уровня: Упрощение ужесточения systemd с помощью SHH
  • FAQ
  • Журнал изменений
  • Поддерживаемые в настоящее время параметры systemd

Установка

Зависимости

Strace должен быть установлен, а его исполняемый файл доступен в PATH. В настоящее время требуется версия Strace >= 6.6.

Из исходников

Вам понадобится окружение для сборки Rust, например из rustup.

Выполните в текущем репозитории:

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

Из crates.io

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

Debian (или дистрибутив на основе Debian)

Смотрите релизы GitHub — там доступны пакеты Debian, собранные для каждой помеченной версии.

Arch Linux

Пользователи Arch Linux могут установить пакет shh из AUR.

Nixpkgs

Пользователи NixOS/Nix могут установить последнюю версию пакета из ветки unstable.

Использование

Ужесточение сервиса

Чтобы ужесточить системный юнит с именем SERVICE.service:

  1. Начните профилирование сервиса: shh service start-profile SERVICE. Сервис будет перезапущен с профилированием strace.
  2. Используйте сервис в обычном режиме некоторое время, стараясь охватить как можно больше функций и сценариев использования.
  3. Выполните shh service finish-profile SERVICE -a. Сервис будет перезапущен с ужесточённой конфигурацией, построенной на основе предыдущего профилирования во время выполнения, чтобы он мог безопасно работать так, как наблюдалось в период профилирования, и чтобы запретить другие опасные действия системы.

Выполните shh -h для получения полной справки по командной строке или добавьте -h к подкоманде, чтобы получить справку.

[!WARNING] Параметры ужесточения, генерируемые shh, по своей природе не переносимы между разными системами. Они зависят от многих факторов и могут сломать сервис при изменении любого из них:

  • пути выполнения кода, затронутые профилированием
  • версии ядра Linux
  • используемой libc
  • версии systemd

Повторное использование параметров, сгенерированных shh, в системе с другим окружением (то есть в другом дистрибутиве Linux) с высокой вероятностью приведёт к поломке сервиса.

Локальное тестирование

Если вы хотите быстро проверить, какие параметры будут сгенерированы, используйте shh run -- COMMAND.

Текущий каталог и переменная окружения PATH влияют на выполнение программы; сначала сбросьте их:

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

Затем, чтобы увидеть, какие параметры будут сгенерированы для вызова 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 --------

Или для максимально строгой изоляции:

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 --------

Лицензия

GPLv3

Скачать инструмент