μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

SKTν•΄ν‚Ή κ΄€λ ¨ BPF(Berkeley Packet Filter)λž€

호레 2025. 5. 8. 10:09
λ°˜μ‘ν˜•

🧠 1. BPF(Berkeley Packet Filter)λž€?

πŸ“Œ μ •μ˜

  • BPFλŠ” λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ ν•„ν„°λ§ν•˜λŠ” 컀널 레벨의 λ©”μ»€λ‹ˆμ¦˜μœΌλ‘œ, λ¦¬λˆ…μŠ€ 컀널 λ‚΄λΆ€μ—μ„œ νŒ¨ν‚· 필터링 및 뢄석을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  • μ›λž˜λŠ” tcpdump 같은 νŒ¨ν‚· 뢄석 λ„κ΅¬μ—μ„œ ν•„μš”ν•œ νŒ¨ν‚·λ§Œ μΊ‘μ²˜ν•˜λ„λ‘ μ§€μ›ν•˜κΈ° μœ„ν•΄ 개발됨.

πŸ“¦ λ™μž‘ 방식

  • 링크 계측 μˆ˜μ€€μ—μ„œ λ„€νŠΈμ›Œν¬ νŒ¨ν‚·μ„ κ°€λ‘œμ±„κ³ , μ‚¬μš©μž μ •μ˜ν•œ ν•„ν„° 쑰건에 따라 **μ‚¬μš©μž μ˜μ—­(User Space)**으둜 νŒ¨ν‚·μ„ μ „λ‹¬ν•˜κ±°λ‚˜ λ¬΄μ‹œν•¨.
  • μ»€λ„μ—μ„œ λ™μž‘ν•˜λ―€λ‘œ μ„±λŠ₯이 맀우 λ†’κ³ , λ³΄μ•ˆ μ†”λ£¨μ…˜κ³Ό μ‹œμŠ€ν…œ μ½œμ„ μš°νšŒν•˜λŠ” 데 μ‚¬μš©λ  수 있음.

πŸ”§ eBPF (extended BPF)

  • μ΅œμ‹  λ¦¬λˆ…μŠ€μ—μ„œλŠ” eBPF둜 ν™•μž₯λ˜μ–΄ λ„€νŠΈμ›Œν¬ 외에도 μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§, 좔적, λ³΄μ•ˆ λ“± λ‹€μ–‘ν•œ μš©λ„λ‘œ ν™œμš©λ©λ‹ˆλ‹€.
  • eBPFλŠ” λ¦¬λˆ…μŠ€ 컀널 4.xλΆ€ν„° 적극적으둜 μ‚¬μš©λ˜λ©°, μ‚¬μš©μž μ •μ˜ ν”„λ‘œκ·Έλž¨μ„ 컀널에 μ•ˆμ „ν•˜κ²Œ μ£Όμž…ν•  수 있음.

🧨 2. BPFDoor μ•…μ„±μ½”λ“œλž€?

πŸ“Œ κ°œμš”

  • BPFDoorλŠ” 2022λ…„κ²½λΆ€ν„° 보고된 κ³ λ„ν™”λœ 백도어 μ•…μ„±μ½”λ“œμž…λ‹ˆλ‹€.
  • Linux μ‹œμŠ€ν…œμ— BPF μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν™œμš©ν•΄ μΉ¨νˆ¬ν•˜κ³  μ€λ‹‰λ˜λ©°, 일반적인 λ³΄μ•ˆ μ†”λ£¨μ…˜μœΌλ‘œλŠ” νƒμ§€ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

βš™οΈ μž‘λ™ λ©”μ»€λ‹ˆμ¦˜

  1. BPF μ†ŒμΌ“ 생성: μ•…μ„±μ½”λ“œλŠ” λ¦¬λˆ…μŠ€ 컀널에 BPF μ†ŒμΌ“μ„ μƒμ„±ν•˜μ—¬ λͺ¨λ“  νŒ¨ν‚·μ„ κ°μ²­ν•©λ‹ˆλ‹€.
  2. νŒ¨ν‚· λ‚΄ λͺ…λ Ή μˆ˜μ‹ : μ™ΈλΆ€μ˜ νŠΉμ • ν¬νŠΈλ‚˜ ν”„λ‘œν† μ½œμ„ 톡해 μ „λ‹¬λœ νŒ¨ν‚·μ— λͺ…령을 μ€λ‹‰μ‹œμΌœ μ „λ‹¬λ°›μŒ.
  3. λ³΄μ•ˆ 우회: μ‹œμŠ€ν…œ 콜 없이 컀널 λ ˆλ²¨μ—μ„œ νŠΈλž˜ν”½μ„ κ°μ²­ν•˜λ―€λ‘œ, 호슀트 기반 λ°©ν™”λ²½μ΄λ‚˜ IDS/IPS둜 νƒμ§€λ˜μ§€ μ•ŠμŒ.
  4. λ°˜μ‘ μ—†μŒ: 일반적인 λ°±λ„μ–΄μ²˜λŸΌ 포트λ₯Ό μ—΄μ–΄ 놓지 μ•ŠκΈ° λ•Œλ¬Έμ— νŒ¨μ‹œλΈŒ(passthrough) λ°©μ‹μœΌλ‘œ μž‘λ™ν•˜μ—¬ 흔적이 거의 μ—†μŒ.

πŸ•΅οΈ‍♂️ μΉ¨ν•΄ μ§€ν‘œ (IoC)

  • /dev/shm/.bpfd λ“±μ˜ 은닉 경둜 μ‚¬μš©
  • sock_filter, setsockopt와 같은 컀널 API ν™œμš© 흔적
  • ν”νžˆ μ“°μ΄λŠ” 포트 없이 RAW_SOCKET으둜 톡신

πŸ›‘οΈ 3. λ³΄μ•ˆ μœ„ν˜‘ 및 λŒ€μ‘ λ°©μ•ˆ

πŸ“‰ λ³΄μ•ˆ μœ„ν˜‘

  • 탐지 νšŒν”Ό: 일반적인 둜그 및 포트 μŠ€μΊλ‹μœΌλ‘œ νƒμ§€λ˜μ§€ μ•ŠμŒ
  • κ³ μ •ν˜• 인프라 곡격: λ¦¬λˆ…μŠ€ 기반 μ„œλ²„, 특히 ν΄λΌμš°λ“œ λ˜λŠ” IoT μž₯λΉ„ λŒ€μƒ
  • λͺ…λ Ή μ œμ–΄(C2) κΈ°λŠ₯이 λ‚΄μž₯λ˜μ–΄ μžˆμ–΄ μž₯κΈ° 은닉 κ°€λŠ₯

πŸ›‘οΈ λŒ€μ‘ λ°©μ•ˆ

  • eBPF λ™μž‘ κ°μ‹œ: bcc, bpftrace 도ꡬλ₯Ό 톡해 μ˜μ‹¬μŠ€λŸ¬μš΄ eBPF ν™œλ™μ„ λͺ¨λ‹ˆν„°λ§
  • 비정상 BPF μ†ŒμΌ“ 확인: ss -l λ˜λŠ” /proc/net/packet 검사
  • ν–‰μœ„ 기반 탐지: 정적 뢄석보닀 동적 μ‹œμŠ€ν…œ 콜, λ©”λͺ¨λ¦¬ λ‚΄ ν™œλ™ 좔적 ν•„μš”
  • EDR/XDR μ†”λ£¨μ…˜ ν™œμš©: 컀널 μˆ˜μ€€ ν™œλ™ 감지 κ°€λŠ₯ν•œ λ³΄μ•ˆ μ†”λ£¨μ…˜ λ„μž…
λ°˜μ‘ν˜•