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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
krie — eBPF를 이용한 리눅스 커널 런타임 무결성 | Kitploit
도구/GitHubGitHub/gui774ume/krie
Defensive ToolsBinary AnalysisIntrusion Detection
GitHubgui774ume/krie

krie

eBPF를 이용한 리눅스 커널 런타임 무결성

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

KRIe

License: GPL v2 License

KRIe는 eBPF를 사용하여 Linux 커널 익스플로잇을 탐지하는 것을 목표로 하는 연구 프로젝트입니다. KRIe는 완벽한 방어 전략과는 거리가 멉니다. eBPF 관련 제한 사항부터, 보안 이벤트를 방출하기 위해 손상된 커널에 의존할 수 있는 사후 탐지까지, 동기 부여된 공격자는 결국 이를 우회할 수 있을 것이 분명합니다. 그럼에도 불구하고 이 프로젝트의 목표는 공격자들의 삶을 더 어렵게 만들고, 궁극적으로 취약한 커널에서 즉시 사용 가능한 익스플로잇이 작동하는 것을 방지하는 것입니다.

KRIe는 다양한 커널 버전과 호환되도록 CO-RE (Compile Once - Run Everywhere)를 사용하여 개발되었습니다. 커널이 BTF 디버그 정보를 내보내지 않는 경우 KRIe는 BTFHub에서 자동으로 다운로드를 시도합니다. 커널이 BTFHub에 없지만 수동으로 BTF 데이터를 생성했다면 설정 파일에 제공할 수 있습니다(아래 참조).

시스템 요구 사항

이 프로젝트는 Ubuntu Focal 20.04 (Linux Kernel 5.15)에서 개발되었으며 Ubuntu Bionic 18.04 (Linux Kernel 4.15)까지의 이전 릴리스에서 테스트되었습니다.

  • golang 1.18+
  • (선택 사항) 커널 헤더는 lib/modules/$(uname -r)에 설치되어 있어야 합니다. 그렇지 않은 경우 Makefile에서 위치를 업데이트하십시오.
  • (선택 사항) clang & llvm 14.0.6+

선택적 필드는 eBPF 프로그램을 다시 컴파일하는 데 필요합니다.

빌드

  1. KRIe는 CORE를 사용하여 빌드되었으므로 eBPF 프로그램을 다시 빌드할 필요가 없을 것입니다. 그래도 eBPF 프로그램을 다시 빌드하려면 다음 명령을 사용할 수 있습니다:
root@kitploit:~
# ~ make build-ebpf
  1. KRIE를 빌드하려면 다음을 실행합니다:
root@kitploit:~
# ~ make build
  1. KRIE를 설치하려면 (/usr/bin/krie로 복사) 다음을 실행합니다:
root@kitploit:~
# ~ make install

시작하기

KRIe는 루트 권한으로 실행해야 합니다. 도움말을 보려면 sudo krie -h를 실행하십시오.

root@kitploit:~
# ~ krie -h
Usage:
  krie [flags]

Flags:
      --config string   KRIe config file (default "./cmd/krie/run/config/default_config.yaml")
  -h, --help            help for krie

설정

root@kitploit:~
## Log level, options are: panic, fatal, error, warn, info, debug or trace
log_level: debug

## JSON output file, leave empty to disable JSON output.
output: "/tmp/krie.json"

## BTF information for the current kernel in .tar.xz format (required only if KRIE isn't able to locate it by itself)
vmlinux: ""

## events configuration
events:
  ## action taken when an init_module event is detected
  init_module: log

  ## action taken when an delete_module event is detected
  delete_module: log

  ## action taken when a bpf event is detected
  bpf: log

  ## action taken when a bpf_filter event is detected
  bpf_filter: log

  ## action taken when a ptrace event is detected
  ptrace: log

  ## action taken when a kprobe event is detected
  kprobe: log

  ## action taken when a sysctl event is detected
  sysctl:
    action: log

    ## Default settings for sysctl programs (kernel 5.2+ only)
    sysctl_default:
      block_read_access: false
      block_write_access: false

    ## Custom settings for sysctl programs (kernel 5.2+ only)
    sysctl_parameters:
      kernel/yama/ptrace_scope:
        block_write_access: true
      kernel/ftrace_enabled:
        override_input_value_with: "1\n"

  ## action taken when a hooked_syscall_table event is detected
  hooked_syscall_table: log

  ## action taken when a hooked_syscall event is detected
  hooked_syscall: log

  ## kernel_parameter event configuration
  kernel_parameter:
    action: log
    periodic_action: log
    ticker: 1 # sends at most one event every [ticker] second(s)
    list:
      - symbol: system/kprobes_all_disarmed
        expected_value: 0
        size: 4
      #      - symbol: system/selinux_state
      #        expected_value: 256
      #        size: 2

      # sysctl
      - symbol: system/ftrace_dump_on_oops
        expected_value: 0
        size: 4
      - symbol: system/kptr_restrict
        expected_value: 0
        size: 4
      - symbol: system/randomize_va_space
        expected_value: 2
        size: 4
      - symbol: system/stack_tracer_enabled
        expected_value: 0
        size: 4
      - symbol: system/unprivileged_userns_clone
        expected_value: 0
        size: 4
      - symbol: system/unprivileged_userns_apparmor_policy
        expected_value: 1
        size: 4
      - symbol: system/sysctl_unprivileged_bpf_disabled
        expected_value: 1
        size: 4
      - symbol: system/ptrace_scope
        expected_value: 2
        size: 4
      - symbol: system/sysctl_perf_event_paranoid
        expected_value: 2
        size: 4
      - symbol: system/kexec_load_disabled
        expected_value: 1
        size: 4
      - symbol: system/dmesg_restrict
        expected_value: 1
        size: 4
      - symbol: system/modules_disabled
        expected_value: 0
        size: 4
      - symbol: system/ftrace_enabled
        expected_value: 1
        size: 4
      - symbol: system/ftrace_disabled
        expected_value: 0
        size: 4
      - symbol: system/sysctl_protected_fifos
        expected_value: 1
        size: 4
      - symbol: system/sysctl_protected_hardlinks
        expected_value: 1
        size: 4
      - symbol: system/sysctl_protected_regular
        expected_value: 2
        size: 4
      - symbol: system/sysctl_protected_symlinks
        expected_value: 1
        size: 4
      - symbol: system/sysctl_unprivileged_userfaultfd
        expected_value: 0
        size: 4

  ## action to check when a register_check fails on a sensitive kernel space hook point
  register_check: log

문서

  • KRIe의 첫 번째 버전은 BlackHat 2022의 브리핑에서 발표되었습니다: Return to Sender - Detecting Kernel Exploits with eBPF

라이선스

  • golang 코드는 Apache 2.0 라이선스에 따릅니다.
  • eBPF 프로그램은 GPL v2 라이선스에 따릅니다.
도구 다운로드