Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
bpflock — eBPF 기반의 Linux 시스템 잠금 및 감사 보안 도구입니다. 커널 기능을 제한하고, 파일리스 실행을 차단하며, 메모리를 보호하고, 선언적 프로필을 통해 컨테이너와 IoT 디바이스를 강화합니다. | Kitploit
도구/GitHubGitHub/linux-lock/bpflock
Defensive ToolsContainer SecurityIoT Security
GitHublinux-lock/bpflock

bpflock

eBPF 기반의 Linux 시스템 잠금 및 감사 보안 도구입니다. 커널 기능을 제한하고, 파일리스 실행을 차단하며, 메모리를 보호하고, 선언적 프로필을 통해 컨테이너와 IoT 디바이스를 강화합니다.

저장소 보기
15715554년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

bpflock - Linux 머신 잠금

Bpflock Logo

bpflock - Linux 머신을 잠그고 감사하기 위한 eBPF 기반 보안.

참고: bpflock은 현재 실험 단계에 있으며, 동작이 중단되거나 옵션과 보안 의미가 변경될 수 있으며, 일부 BPF 프로그램은 Cilium ebpf 라이브러리를 사용하도록 업데이트될 예정입니다.

섹션

  • 1. 소개
  • 2. 기능 개요
    • 2.1 보안 기능
    • 2.2 의미론
  • 3. 배포
  • 4. 문서
  • 5. 빌드

1. 소개

bpflock은 eBPF를 사용하여 Linux 보안을 강화합니다. 다양한 Linux 기능에 대한 접근을 제한함으로써, bpflock은 공격 표면을 줄이고 잘 알려진 공격 기술을 차단할 수 있습니다.

호스트 pid 및 네트워크 네임스페이스에서 실행되는 컨테이너 관리자, systemd 및 기타 컨테이너/프로그램과 같은 프로그램만 전체 Linux 기능에 접근할 수 있으며, 자체 네임스페이스에서 실행되는 컨테이너 및 애플리케이션은 제한됩니다. bpflock bpf 프로그램이 restricted 프로필에서 실행되는 경우, 권한 있는 프로그램/컨테이너를 포함한 모든 프로그램/컨테이너의 접근이 거부됩니다.

bpflock은 Linux Security Modules + BPF를 포함한 여러 보안 기능을 활용하여 Linux 머신을 보호합니다.

아키텍처 및 보안 설계 참고 사항:

  • bpflock은 강제 접근 제어 라벨링 솔루션이 아니며, AppArmor, SELinux 및 기타 MAC 솔루션을 대체하려는 의도가 없습니다. bpflock은 간단한 선언적 보안 프로필을 사용합니다.
  • bpflock은 Cloud Native 배포부터 Linux IoT 장치에 이르기까지 여러 컨텍스트에서 재사용할 수 있는 여러 개의 작은 bpf 프로그램을 제공합니다.
  • bpflock은 특정 Linux 기능에 대한 root의 접근을 제한할 수 있지만, 악의적인 root로부터 보호하지는 않습니다.

2. 기능 개요

2.1 보안 기능

bpflock은 다음과 같이 분류할 수 있는 여러 보안 보호 기능을 제공합니다:

  • 메모리 보호

    • 커널 이미지 잠금
    • 커널 모듈 보호
    • BPF 보호
  • 프로세스 보호

    • 파일리스 메모리 실행
    • 네임스페이스 보호
  • 하드웨어 추가 공격

    • USB 추가 보호
  • 시스템 및 애플리케이션 추적

    • 애플리케이션 실행 추적
    • 권한 있는 시스템 작업 추적
  • 파일시스템 보호

    • 읽기 전용 루트 파일시스템 보호
    • sysfs 보호
  • 네트워크 보호

    • bpflock은 향후 단일 머신 워크로드 또는 Linux-IoT에서 사용할 수 있는 간단한 네트워크 보호를 포함할 수 있지만, Cloud Native 보호는 포함하지 않습니다. Cilium 및 기타 kubernetes CNI 관련 솔루션이 훨씬 더 뛰어납니다.

2.2 의미론

bpflock은 보안 의미론을 간단하게 유지합니다. 보안 스펙트럼을 광범위하게 포괄하고 특정 Linux 기능에 대한 접근을 제한하기 위해 세 가지 전역 프로필을 지원합니다.

  • profile: bpf 프로그램별로 적용할 수 있는 전역 프로필이며, 다음 중 하나를 취합니다:

    • allow|none|privileged : 동일하며, 가장 덜 안전한 프로필을 정의합니다. 이 프로필에서는 모든 프로세스에 대해 접근이 기록되고 허용됩니다. 보안 이벤트를 기록하는 데 유용합니다.
    • baseline : 제한적인 프로필로, 호스트 네임스페이스에서 실행되는 권한 있는 애플리케이션 및 컨테이너, 또는 bpflock_cgroupmap bpf 맵의 cgroup별 허용 프로필을 제외한 모든 프로세스에 대해 접근이 거부됩니다.
    • restricted : 모든 프로세스에 대해 접근이 거부되는 강력하게 제한된 프로필입니다.
  • 허용 또는 차단 작업/명령:

    allow|privileged 또는 baseline 프로필에서 허용 또는 차단할 명령 목록을 지정하고 적용할 수 있습니다.

    • --protection-allow : 허용되는 작업의 쉼표로 구분된 목록입니다. baseline 프로필에서 유효하며, 매우 특정하고 권한 있는 작업을 수행하는 애플리케이션에 유용합니다. allow | privileged 프로필의 사용을 줄일 수 있습니다. 즉, privileged 프로필을 사용하는 대신 baseline 프로필을 지정하고 허용된 명령 집합을 추가하여 해당 애플리케이션에 대한 사례별 정의를 제공할 수 있습니다.
    • --protection-block : 차단되는 작업의 쉼표로 구분된 목록입니다. allow|privileged 및 baseline 프로필에서 유효하며, 특정 애플리케이션을 손상시킬 수 있는 전체 restricted 프로필을 사용하지 않고도 일부 기능에 대한 접근을 제한할 수 있습니다. baseline 또는 privileged 프로필을 사용하면 대부분의 Linux 기능에 대한 접근이 열리지만, --protection-block 옵션을 사용하면 이러한 접근 중 일부를 차단할 수 있습니다.

bpf 보안 예제는 bpflock 구성 예제를 확인하세요.

3. 배포

3.1 사전 요구 사항

bpflock에는 다음이 필요합니다:

  • Linux 커널 버전 >= 5.13이며, 다음 구성이 필요합니다:

    CONFIG_BPF_SYSCALL=y
    CONFIG_DEBUG_INFO=y
    CONFIG_DEBUG_INFO_BTF=y
    CONFIG_KPROBES=y
    CONFIG_LSM="...,bpf"
    CONFIG_BPF_LSM=y
    
  • 당연히 BTF가 활성화된 커널이 필요합니다.

BPF LSM 지원 활성화

커널이 CONFIG_BPF_LSM=y로 컴파일된 경우 /boot/config-*를 확인하여 확인하세요. 그러나 bpflock을 실행할 때 다음과 같이 실패하면:

must have a kernel with 'CONFIG_BPF_LSM=y' 'CONFIG_LSM=\"...,bpf\"'"

Ubuntu에서 BPF LSM을 활성화하려면 예를 들어:

  1. 물론 권한을 가지고 /etc/default/grub 파일을 엽니다.
  2. GRUB_CMDLINE_LINUX 변수에 다음을 추가하고 저장합니다.
    "lsm=lockdown,capability,yama,apparmor,bpf"
    
    또는
    GRUB_CMDLINE_LINUX="lsm=lockdown,capability,yama,apparmor,bpf"
    
  3. grub 구성을 업데이트합니다:
    sudo update-grub2
    
  4. 커널로 재부팅합니다.

3.2 Docker 배포

기본 allow 또는 privileged 프로필(가장 덜 안전한 프로필)로 실행하려면:

docker run --name bpflock -it --rm --cgroupns=host \
  --pid=host --privileged \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

파일리스 바이너리 실행

파일리스 바이너리 실행을 로깅하고 제한하려면 다음을 실행하세요:

docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -e "BPFLOCK_FILELESSLOCK_PROFILE=restricted" \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

restricted 프로필로 실행할 때 컨테이너 로그에는 다음이 표시됩니다:

time="2022-02-04T14:54:33Z" level=info msg="event=syscall_execve tgid=1833 pid=1833 ppid=1671 uid=1000 cgroupid=8821 comm=loader pcomm=bash filename=./loader retval=0" bpfprog=execsnoop subsys=bpf

time="2022-02-04T14:54:33Z" level=info msg="event=lsm_bprm_creds_from_file tgid=1833 pid=1833 ppid=1671 uid=1000 cgroupid=8821 comm=loader pcomm=bash filename=memfd:memfd-test retval=-1 reason=denied (restricted)" bpfprog=filelesslock subsys=bpf

time="2022-02-04T14:54:33Z" level=info msg="event=syscall_execve tgid=1833 pid=1833 ppid=0 uid=1000 cgroupid=8821 comm= pcomm= filename=/proc/self/fd/3 retval=-1" bpfprog=execsnoop subsys=bpf

restricted 프로필로 실행하면 문제가 발생할 수 있으므로 기본 프로필은 allow입니다.

커널 모듈 보호

커널 모듈 보호를 적용하려면 환경 변수 BPFLOCK_KMODLOCK_PROFILE=baseline 또는 BPFLOCK_KMODLOCK_PROFILE=restricted로 실행하세요:

docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -e "BPFLOCK_KMODLOCK_PROFILE=restricted" \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

예제:

$ sudo unshare -p -n -f
# modprobe xfs
modprobe: ERROR: could not insert 'xfs': Operation not permitted
time="2022-02-07T06:50:25+01:00" level=info msg="event=syscall_execve tgid=52323 pid=52323 ppid=52288 uid=0 cgroupid=7014 comm=modprobe pcomm=bash filename=/usr/sbin/modprobe retval=0" bpfprog=execsnoop subsys=bpf

time="2022-02-07T06:50:25+01:00" level=info msg="event=lsm_kernel_read_file operation=loading module tgid=52323 pid=52323 ppid=52288 uid=0 cgroupid=7014 comm=modprobe pcomm=bash filename=xfs.ko retval=-1 reason=denied (restricted)" bpfprog=kmodlock subsys=bpf

커널 이미지 잠금

도구 다운로드