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

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

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

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

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

Категории

Все категории
Loading categories
Cordon — Запускайте любую команду в ограниченном представлении файловой системы в Linux | Kitploit
Инструменты/GitHubGitHub/vishnunandan555/cordon
Утилиты общего назначенияБезопасность контейнеровДинамический анализ (песочница)Скриптинг и автоматизацияАудит конфигурацииВиртуализация для безопасностиСетевая безопасностьDevSecOpsБезопасность Цепочки ПоставокArchived
GitHubvishnunandan555/cordon

Cordon

23 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

Запускайте любую команду в ограниченном представлении файловой системы в Linux

Репозиторий

Cordon

⚠️ ПРОЕКТ УСТАРЕЛ

Разработка этого проекта остановлена, потому что кто-то другой работал над той же идеей и создал лучшее решение.
Настоятельно рекомендуем ознакомиться: Fence от Use-Tusk.

Примечание: Этот репозиторий изначально создавался для FOSS HACK 2026, но, к сожалению, мы не успели завершить его вовремя.
Однако мы создали аналогичный проект для Hackathena '26, который занял 3-е место!
Если вам интересно, вы можете найти этот репозиторий здесь: A56-A5/lion.

Cordon запускает любую команду в ограниченном представлении файловой системы в Linux. Он использует пространства имён Linux (через bubblewrap), чтобы скрыть всё, что не нужно вашему процессу — домашний каталог, SSH-ключи, учётные данные AWS, всё — при этом позволяя команде выполнять свою работу.

root@kitploit:~
cordon run --net=allow -- npm install
cordon run -- bash setup.sh
cordon run --profile python -- pip install -r requirements.txt

Никакого root. Никаких контейнеров. Никаких фоновых демонов.


Почему?

Когда вы запускаете npm install или pip install, этот код выполняется с вашими полными правами пользователя. Он может прочитать ~/.ssh/id_rsa, передать его на сервер, изменить принадлежащие вам файлы — и всё это, притворяясь обычной установкой пакета.

Это не паранойя. Такое случалось:

Ответ Cordon: не позволяйте процессу видеть то, что ему не положено, даже если код вредоносный.


Как это работает

Каждый cordon run создаёт свежее изолированное окружение:

  • /usr, /bin, /lib смонтированы только для чтения — программы могут работать, не ломая систему
  • Ваш каталог проекта доступен для записи — npm install создаёт node_modules/, сборки работают
  • src/ только для чтения, если существует — исходные файлы нельзя незаметно перезаписать
  • ~/.ssh, ~/.aws, HOME — вообще не монтируются по умолчанию
  • Сеть отключена по умолчанию или фильтруется через встроенный прокси-сервер с белым списком доменов при --net=allow

Когда процесс завершается, песочница исчезает. Ничего не сохраняется.

Прокси

Режим --net=allow запускает встроенный Rust-прокси HTTP/HTTPS на случайном порту localhost и внедряет его в песочницу через переменные окружения (HTTP_PROXY, https_proxy, npm_config_proxy и т.д.). Он перехватывает CONNECT-туннели и проверяет каждый домен по белому списку перед пересылкой.

Белый список по умолчанию включает registry.npmjs.org, pypi.org, crates.io, github.com. Всё, что не в списке, получает 403 — даже если скрипт postinstall пакета пытается «позвонить домой».

root@kitploit:~
# Only reaches npmjs.org and its CDNs — nothing else
cordon run --net=allow -- npm install

# Add a domain for a private registry
cordon run --net=allow --domain my.internal.registry -- npm install

Seccomp

Опционально добавьте фильтр системных вызовов:

root@kitploit:~
# Blocks ptrace, kexec_load, mount, perf_event_open, process_vm_*
cordon run --seccomp basic --net=allow -- npm install

# Strict allowlist — only known-safe syscalls
cordon run --seccomp strict -- python3 untrusted.py

Это вторая линия обороны. Даже если что-то вырвется из ограничений файловой системы, оно всё равно не сможет вызвать ptrace для присоединения к другому процессу или perf_event_open для работы по побочным каналам.


Установка

root@kitploit:~
git clone https://github.com/LORDv1shnu/Cordon
cd Cordon
bash install.sh        # builds release binary → ~/.local/bin/cordon

Или вручную:

root@kitploit:~
cargo build --release
cp target/release/cordon ~/.local/bin/

Вам необходимо установить bubblewrap:

root@kitploit:~
sudo apt install bubblewrap    # Ubuntu/Debian
sudo dnf install bubblewrap    # Fedora
sudo pacman -S bubblewrap      # Arch

Первый запуск после установки:

root@kitploit:~
cordon scan    # scans your system once, takes ~30s, writes ~/.config/cordon/system.toml
cordon check   # sanity check — makes sure everything's ready

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

root@kitploit:~
# The basics
cordon run -- echo "hello"
cordon run --net=allow -- npm install
cordon run --net=allow -- pip install -r requirements.txt
cordon run --net=full -- curl https://example.com   # unrestricted (no filtering)

# Seccomp
cordon run --seccomp basic --net=allow -- npm install

# GUI apps
cordon run --gui -- code .
cordon run --gui --optional audio_pipewire --optional dbus_session -- discord

# Built-in profiles (pre-configured for common runtimes)
cordon run --profile node -- npm install
cordon run --profile python -- python3 script.py
cordon run --profile rust -- cargo build

# Debug what's being blocked
cordon run --trace -- node server.js              # strace wrapper, reports denied paths
cordon add --from-trace ~/.config/cordon/logs/last-trace.log  # batch-add missing paths

# Resource limits (needs systemd)
cordon run --mem 512M --cpu 2.0 --timeout 60 -- npm install

# Dry run / verbose
cordon run --dry-run -- npm install               # print the bwrap command, don't run it
cordon run --verbose -- npm install               # print each bwrap arg as it runs

Настройка проекта (cordon.toml)

root@kitploit:~
cordon init                            # auto-detects Cargo.toml / package.json / pyproject.toml
cordon set --net=allow                 # persist flags so you don't type them every time
cordon add /path/to/assets --mode ro   # expose extra paths into the sandbox
cordon edit                            # open cordon.toml in $EDITOR

Проверка и отладка

root@kitploit:~
cordon check               # health check: bwrap, namespaces, AppArmor, modules
cordon doctor              # deeper: kernel version, distro quirks, exact fix suggestions
cordon status              # show what's in system.toml right now
cordon list                # show every mount that would be active on next run
cordon log --errors        # tail the last run's log, errors only
cordon syscalls --preset basic   # list what each seccomp preset blocks

Профили и переносимость

root@kitploit:~
# Named profiles (stored in ~/.config/cordon/profiles.toml)
cordon profile create ci-node --net=allow --optional ld_so_cache
cordon run --profile ci-node -- npm test

# Lockfile for reproducible environments
cordon lock update          # SHA-256 all mount paths → cordon.lock
cordon lock verify          # check nothing drifted

# Share sandbox config with the team
cordon export > sandbox.json
cordon import sandbox.json

Интеграция с оболочкой

root@kitploit:~
# Tab completions
cordon completions zsh > ~/.zfunc/_cordon

# Transparent wrappers — make "npm" always run sandboxed
cordon wrap npm
cordon wrap pip
npm install                # actually runs: cordon run -- npm install "$@"
cordon unwrap npm

# Man page
cordon man | man -l -

Слои конфигурации

Существует четыре конфигурационных файла, применяемых по порядку:

Флаги CLI всегда имеют приоритет. cordon.toml переопределяет именованный профиль. Встроенный в бинарный файл core.toml нельзя изменить во время выполнения.


Коды завершения

Та же конвенция, что и в bwrap и оболочке.


Ограничения

Cordon — это не контейнер, не антивирус и не замена SELinux или AppArmor. Он ограничивает видимость файловой системы и сетевой доступ — он не пытается обнаруживать вредоносное ПО. Если у чего-то есть эксплойт ядра, оно вырвется. Цель — сделать атаки на цепочку поставок значительно сложнее, а не невозможными.

Также: в настоящее время только Linux x86_64 и aarch64. Требуется bubblewrap.


Технологии

Создан на Rust. Использует bubblewrap для пространств имён, seccompiler для компиляции BPF-фильтров, clap для CLI, tracing для структурированного логирования. Прокси-сервер фильтрации доменов написан с нуля на чистом Rust (без внешних прокси-инструментов).

→ COMMANDS.md — полная справка по флагам
→ SCANNER_LOGIC.md — как работает системный сканер
→ MODULE_INFO.md — описание каждого исходного файла


Создано с помощью AI (Gemini). Архитектура, модель безопасности и проектные решения являются работой автора.

Скачать инструмент
АтакаЧто она делала
LiteLLM (2024)Вредоносный PyPI-пакет читал SSH-ключи и переменные окружения при pip install
xz-utils (2024)Бэкдор на этапе сборки, внедрённый на шаге make во время установки
event-stream (npm, 2018)Скомпрометированный npm-пакет незаметно похищал Bitcoin-кошельки
SolarWindsАтака на цепочку поставок через конвейер сборки/обновления
СлойГдеКто пишет
core.tomlскомпилирован в бинарный файлнельзя редактировать во время выполнения (защищено от изменений)
system.toml~/.config/cordon/cordon scan
profiles.toml~/.config/cordon/cordon profile create
cordon.tomlкаталог проектаcordon init / cordon set / cordon add
КодЗначение
0успех
1внутренняя ошибка cordon
2неверное использование CLI
125не удалось настроить песочницу (отсутствует bwrap и т.д.)
126команда найдена, но не может быть выполнена внутри песочницы
127команда не найдена внутри песочницы
Nпередано от изолированного процесса