Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Cordon — Linux에서 제한된 파일 시스템 뷰 내에서 모든 명령 실행 | Kitploit
도구/GitHubGitHub/vishnunandan555/cordon
General Purpose UtilitiesContainer SecurityDynamic Analysis (Sandboxing)Scripting & AutomationConfiguration AuditingSecurity VirtualizationNetwork SecurityDevSecOpsSupply Chain SecurityArchived
GitHubvishnunandan555/cordon

Cordon

23개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Linux에서 제한된 파일 시스템 뷰 내에서 모든 명령 실행

저장소 보기

Cordon

⚠️ 프로젝트 중단

이 프로젝트의 개발이 중단되었습니다. 다른 누군가가 같은 아이디어를 가지고 더 나은 솔루션을 구축했기 때문입니다.
다음을 확인하시길 적극 권장합니다: Use-Tusk의 Fence.

참고: 이 저장소는 원래 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

루트 권한 불필요. 컨테이너 불필요. 백그라운드에서 실행되는 데몬 없음.


왜 필요한가?

npm install 또는 pip install을 실행하면 해당 코드가 전체 사용자 권한으로 실행됩니다. ~/.ssh/id_rsa를 읽고, 서버로 빼돌리고, 소유한 파일을 수정할 수 있습니다. 마치 패키지를 설치하는 것처럼 보이면서 말이죠.

이는 편집증이 아닙니다. 실제로 발생한 사례입니다:

Cordon의 해결책: 코드가 악의적이더라도 프로세스가 보면 안 되는 것을 보지 못하게 합니다.


작동 방식

각 cordon run은 새로운 격리된 환경을 생성합니다:

  • /usr, /bin, /lib는 읽기 전용으로 마운트됩니다 — 프로그램은 실행되지만 시스템을 망가뜨리지는 않습니다
  • 프로젝트 디렉터리는 쓰기 가능합니다 — npm install이 node_modules/를 생성하고, 빌드가 작동합니다
  • src/가 존재하면 읽기 전용입니다 — 소스 파일이 조용히 덮어쓰여지지 않습니다
  • ~/.ssh, ~/.aws, HOME — 기본적으로 전혀 마운트되지 않음
  • 네트워크는 기본적으로 off이거나, --net=allow를 사용하여 내장된 도메인 허용 목록 프록시를 통해 필터링됩니다

프로세스가 종료되면 샌드박스도 사라집니다. 아무것도 유지되지 않습니다.

프록시

--net=allow 모드는 내장된 Rust HTTP/HTTPS 프록시를 임의의 로컬호스트 포트에 띄우고 환경 변수(HTTP_PROXY, https_proxy, npm_config_proxy 등)를 통해 샌드박스에 주입합니다. CONNECT 터널을 가로채서 각 도메인을 허용 목록과 대조한 후 전달합니다.

기본 허용 목록에는 registry.npmjs.org, pypi.org, crates.io, github.com이 포함됩니다. 목록에 없는 것은 403을 반환합니다 — 패키지의 postinstall 스크립트가 외부로 통신을 시도하더라도 마찬가지입니다.

root@kitploit:~
# npmjs.org와 그 CDN에만 접근 — 그 외에는 불가
cordon run --net=allow -- npm install

# 프라이빗 레지스트리용 도메인 추가
cordon run --net=allow --domain my.internal.registry -- npm install

Seccomp

선택적으로 시스템 콜 필터를 추가할 수 있습니다:

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

# 엄격한 허용 목록 — 알려진 안전한 시스템 콜만 허용
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        # 릴리스 바이너리 빌드 → ~/.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    # 시스템을 한 번 스캔, 약 30초 소요, ~/.config/cordon/system.toml에 기록
cordon check   # 상태 확인 — 모든 것이 준비되었는지 확인

사용법

root@kitploit:~
# 기본
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   # 제한 없음 (필터링 없음)

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

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

# 내장 프로파일 (일반적인 런타임에 맞게 미리 구성됨)
cordon run --profile node -- npm install
cordon run --profile python -- python3 script.py
cordon run --profile rust -- cargo build

# 차단되는 항목 디버깅
cordon run --trace -- node server.js              # strace 래퍼, 거부된 경로 보고
cordon add --from-trace ~/.config/cordon/logs/last-trace.log  # 누락된 경로 일괄 추가

# 리소스 제한 (systemd 필요)
cordon run --mem 512M --cpu 2.0 --timeout 60 -- npm install

# Dry run / 자세한 출력
cordon run --dry-run -- npm install               # bwrap 명령어 출력, 실행하지 않음
cordon run --verbose -- npm install               # 각 bwrap 인수를 실행 시 출력

프로젝트 설정 (cordon.toml)

root@kitploit:~
cordon init                            # Cargo.toml / package.json / pyproject.toml 자동 감지
cordon set --net=allow                 # 플래그를 유지하여 매번 입력할 필요 없음
cordon add /path/to/assets --mode ro   # 샌드박스에 추가 경로 노출
cordon edit                            # $EDITOR에서 cordon.toml 열기

검사 및 디버그

root@kitploit:~
cordon check               # 상태 점검: bwrap, 네임스페이스, AppArmor, 모듈
cordon doctor              # 상세 진단: 커널 버전, 배포판 특이사항, 정확한 수정 제안
cordon status              # 현재 system.toml 내용 표시
cordon list                # 다음 실행 시 활성화될 모든 마운트 표시
cordon log --errors        # 마지막 실행 로그, 오류만 표시
cordon syscalls --preset basic   # 각 seccomp 프리셋이 차단하는 내용 목록

프로파일 및 이식성

root@kitploit:~
# 이름 있는 프로파일 (~/.config/cordon/profiles.toml에 저장)
cordon profile create ci-node --net=allow --optional ld_so_cache
cordon run --profile ci-node -- npm test

# 재현 가능한 환경을 위한 Lockfile
cordon lock update          # 모든 마운트 경로 SHA-256 해싱 → cordon.lock
cordon lock verify          # 변경 사항 확인

# 팀과 샌드박스 구성 공유
cordon export > sandbox.json
cordon import sandbox.json

셸 통합

root@kitploit:~
# 탭 완성
cordon completions zsh > ~/.zfunc/_cordon

# 투명 래퍼 — "npm"이 항상 샌드박스에서 실행되도록 함
cordon wrap npm
cordon wrap pip
npm install                # 실제로 실행: cordon run -- npm install "$@"
cordon unwrap npm

# 매뉴얼 페이지
cordon man | man -l -

구성 계층

네 가지 구성 파일이 있으며, 순서대로 적용됩니다:

CLI 플래그가 항상 우선합니다. cordon.toml이 이름 있는 프로파일보다 우선합니다. 바이너리에 내장된 core.toml은 런타임에 수정할 수 없습니다.


종료 코드

bwrap 및 셸과 동일한 규칙입니다.


제한 사항

Cordon은 컨테이너, 안티바이러스, 또는 SELinux나 AppArmor의 대체품이 아닙니다. 파일 시스템 가시성과 네트워크 액세스를 제한합니다 — 악성코드를 탐지하려는 것이 아닙니다. 커널 익스플로잇이 있다면 탈출할 수 있습니다. 목표는 공급망 공격을 훨씬 어렵게 만드는 것이지, 불가능하게 만드는 것이 아닙니다.

또한: 현재 Linux x86_64 및 aarch64만 지원합니다. bubblewrap이 필요합니다.


기술

Rust로 제작되었습니다. 네임스페이싱에 bubblewrap, BPF 필터 컴파일에 seccompiler, CLI에 clap, 구조화된 로깅에 tracing을 사용합니다. 도메인 필터링 프록시는 순수 Rust로 처음부터 작성되었습니다 (외부 프록시 도구 없음).

→ COMMANDS.md — 전체 플래그 참조
→ SCANNER_LOGIC.md — 시스템 스캐너 작동 방식
→ MODULE_INFO.md — 모든 소스 파일 설명


AI 도움(Gemini)을 받아 제작되었습니다. 아키텍처, 보안 모델 및 설계 결정은 저자의 작업입니다.

도구 다운로드
공격수행한 작업
LiteLLM (2024)악성 PyPI 패키지가 pip install 시 SSH 키와 환경 변수를 읽음
xz-utils (2024)설치 중 make 단계를 통해 빌드 타임 백도어가 주입됨
event-stream (npm, 2018)손상된 npm 패키지가 비트코인 지갑을 조용히 탈취
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성공
1cordon 내부 오류
2잘못된 CLI 사용법
125샌드박스 설정 실패 (bwrap 누락 등)
126명령이 샌드박스 내에서 발견되었지만 실행 불가능
127샌드박스 내에서 명령을 찾을 수 없음
N샌드박스된 프로세스로부터 전달됨