Pengantar

Linux memiliki banyak mekanisme untuk mengatur sistem, tetapi kebutuhan terhadap networking, observability, tracing, dan security yang semakin kompleks membuat kemampuan kernel harus terus berkembang. Salah satu teknologi yang banyak digunakan untuk kebutuhan tersebut adalah eBPF (Extended Berkeley Packet Filter).

eBPF memungkinkan program dijalankan pada titik tertentu di kernel tanpa harus mengubah atau melakukan patch langsung terhadap source code kernel. Teknologi ini banyak digunakan untuk networking, monitoring, tracing, performance analysis, hingga keamanan sistem (dikutip dari: eBPF.io – What is eBPF?).


Apa Itu eBPF?

eBPF merupakan teknologi yang berasal dari Linux kernel dan memungkinkan program yang telah diverifikasi berjalan dalam konteks yang memiliki akses dekat dengan kernel.

Berbeda dengan BPF klasik yang awalnya digunakan untuk filtering paket jaringan, eBPF memiliki kemampuan jauh lebih luas.

Saat ini, eBPF dapat digunakan untuk:

  • Network monitoring.
  • Packet processing.
  • Performance tracing.
  • Application observability.
  • Security monitoring.
  • Runtime enforcement.
  • Troubleshooting sistem.

Dokumentasi resmi Linux Kernel juga menjelaskan bahwa BPF modern mencakup berbagai komponen seperti verifier, maps, helper functions, program types, dan libbpf (dikutip dari: Linux Kernel – BPF Documentation).

baca juga : Shimcache Forensics: Membongkar Jejak Eksekusi Program di Windows untuk Investigasi Digital


Bagaimana Cara Kerja eBPF?

Program eBPF

Program eBPF biasanya ditulis menggunakan bahasa seperti C dan kemudian dikompilasi menjadi bytecode BPF.

Alur sederhananya:

Source Code
     ↓
Compiler
     ↓
eBPF Program
     ↓
Kernel Verifier
     ↓
JIT Compilation
     ↓
Program Berjalan

Sebelum dimuat ke kernel, program diperiksa oleh eBPF verifier untuk memastikan program memenuhi aturan keamanan dan tidak melakukan operasi yang tidak diperbolehkan.


eBPF Hook

Salah satu kekuatan eBPF adalah kemampuannya untuk dipasang pada berbagai hook point.

Contohnya:

  • System calls.
  • Kernel tracepoints.
  • Network events.
  • Kprobes.
  • Uprobes.
  • XDP.
  • cgroup.

Ketika event tertentu terjadi, program eBPF dapat dijalankan untuk mengumpulkan informasi, melakukan filtering, atau mengambil tindakan tertentu.


eBPF Maps

Apa Itu Maps?

eBPF Maps merupakan struktur data yang digunakan untuk menyimpan informasi dan menjadi media komunikasi antara program eBPF dengan aplikasi di userspace.

Contohnya:

eBPF Program
     ↓
   Map
     ↓
Userspace Application

Map dapat digunakan untuk menyimpan counter, IP address, statistik koneksi, informasi proses, dan berbagai data lainnya.

Dokumentasi eBPF menjelaskan bahwa maps dapat diakses oleh program eBPF maupun userspace sehingga berfungsi sebagai salah satu mekanisme komunikasi penting dalam arsitektur eBPF.


Penggunaan eBPF dalam Networking

Packet Processing

eBPF dapat digunakan untuk memproses paket jaringan secara efisien, termasuk melalui XDP (eXpress Data Path).

Teknologi ini banyak digunakan untuk:

  • Packet filtering.
  • Load balancing.
  • DDoS protection.
  • Network monitoring.
  • Traffic management.

Karena program dapat bekerja sangat dekat dengan network stack, eBPF dapat memberikan performa tinggi untuk berbagai kebutuhan networking.


eBPF untuk Observability

eBPF juga banyak digunakan untuk melihat apa yang terjadi di dalam sistem tanpa harus menambahkan logging secara manual ke setiap aplikasi.

Misalnya administrator ingin mengetahui:

Process mana yang lambat?
↓
System call apa yang digunakan?
↓
File apa yang diakses?
↓
Koneksi jaringan apa yang dibuat?

eBPF dapat membantu mengumpulkan informasi tersebut secara real-time.

Inilah alasan eBPF banyak digunakan dalam cloud-native observability dan performance monitoring.

baca juga : HTTP/2 Multiplexing: Cara Kerja dan Rahasia di Balik Koneksi Web yang Lebih Cepat


eBPF untuk Cybersecurity

Runtime Security

Dalam keamanan, eBPF dapat digunakan untuk mengamati aktivitas proses, system call, network connection, dan perilaku container.

Contohnya:

Process
   ↓
System Call
   ↓
eBPF
   ↓
Security Monitoring
   ↓
Alert

Dengan pendekatan tersebut, aktivitas mencurigakan dapat dideteksi lebih dekat dengan sumber aktivitasnya.


Kelebihan dan Keterbatasan eBPF

Kelebihan

  • Performa tinggi.
  • Tidak perlu melakukan patch kernel untuk setiap kebutuhan.
  • Mendukung observability yang detail.
  • Dapat digunakan untuk networking dan security.
  • Memiliki mekanisme verifier untuk memeriksa program.
  • Dapat digunakan pada berbagai hook point.

Keterbatasan

eBPF tetap memiliki kompleksitas tersendiri. Developer perlu memahami Linux kernel, program types, verifier, maps, permissions, dan kompatibilitas kernel.

Selain itu, tidak semua fitur eBPF tersedia atau berperilaku sama pada setiap versi kernel.

Untuk aplikasi yang membutuhkan kompatibilitas lintas versi kernel, konsep BPF CO-RE (Compile Once – Run Everywhere) dapat membantu membuat program lebih portabel dengan memanfaatkan informasi BTF dan libbpf.


Tools yang Populer

Pengembangan dan penggunaan eBPF biasanya dibantu berbagai tools dan framework, seperti:

  • libbpf
  • bpftrace
  • BCC
  • Cilium
  • bpftool

Pengguna tidak selalu harus menulis program eBPF dari awal. Beberapa tools menyediakan abstraksi sehingga administrator dapat melakukan tracing atau observability dengan lebih sederhana.

baca juga : Privileged Identity Management (PIM): Strategi Mengamankan Akses Istimewa dari Ancaman Siber


Kesimpulan

Linux eBPF (Extended Berkeley Packet Filter) telah berkembang jauh dari konsep awal packet filtering. Saat ini, eBPF menjadi salah satu teknologi penting untuk networking, observability, performance monitoring, tracing, dan cybersecurity pada sistem Linux.

Kemampuan menjalankan program yang telah diverifikasi pada berbagai hook point membuat eBPF mampu memberikan visibilitas yang sangat detail terhadap aktivitas kernel dan aplikasi.

Dengan dukungan seperti eBPF Maps, Verifier, XDP, Kprobes, Uprobes, BTF, dan CO-RE, eBPF menjadi fondasi menarik bagi teknologi cloud-native dan keamanan Linux modern.