Perlindungan DDoS menggunakan eBPF/XDP

“Bekerja lebih cerdas, bukan lebih keras” adalah motif yang didukung oleh para Engineer di Herza Cloud, itulah sebabnya kami terus mengembangkan teknik mitigasi DDoS (Distributed Denial-of-Service) dengan cara yang belum pernah terjadi sebelumnya menggunakan kekuatan eBPF dan XDP. Penambahan terbaru kami, yang dikenal sebagai filter, memungkinkan pelanggan menerima perlindungan tanpa hambatan dari banyak serangan yang berbeda, baik yang dikenal maupun tidak dikenal, dengan mengklik tombol.

Cara kerja eBPF dan XDP

Jika Anda tidak familiar dengan apa itu eBPF atau XDP, kami memberikan pengenalan singkat tentang teknologi yang cukup baru ini di postingan blog kami berjudul Apa itu eBPF, XDP and Network Security. Pada dasarnya, ini memungkinkan seseorang untuk memfilter paket secara terprogram dengan kecepatan sangat tinggi. Perusahaan besar seperti Cloudflare dan Facebook sudah memanfaatkan fleksibilitasnya untuk memeras kinerja sebanyak mungkin dari sistem mereka.

Mengatasi solusi mitigasi DDoS saat ini

Cara paling menonjol untuk bertahan melawan serangan DDoS melibatkan penerapan beberapa aturan untuk memblokir serangan yang umum dan dikenal. Solusi ini sering mendasarkan stacking mereka pada pemfilteran berurutan, di mana rangkaian aturan diterapkan. Setiap kali sebuah paket datang, paket tersebut harus melintasi setiap aturan satu per satu hingga menemukan kecocokan. Pendekatan ini secara linier akan meningkatkan seberapa mahal untuk memfilter paket, dan membatasi skalabilitas seiring berkembangnya aturan. iptables, program ruang pengguna untuk memfilter paket di kernel Linux, adalah salah satu penyebab terbesar, namun tidak jelas berapa banyak perusahaan yang masih menggunakan perangkat lunak ini untuk mendorong mitigasi DDoS mereka.

iptables performance (source: RedHat Developers)

Kekhawatiran lain adalah di mana penyaringan paket dilakukan. Banyak layanan menggunakan “pusat scrubbing”, yang melibatkan pengubahan rute lalu lintas jauh untuk mengurangi serangan, dan dengan demikian menurunkan kinerja. Dalam skenario tertentu, overhead dari pengalihan yang mahal ini dapat berdampak pada jaringan hampir sama buruknya dengan serangan itu.

Lebih mendasar lagi, masalahnya terletak pada pola pikir. Dengan Internet yang terus tumbuh dan berkembang, penyerang tidak terlalu jauh di belakang. Serangan DDoS baru meningkat setiap hari, dan terlepas dari upaya terbaik, tidak mungkin untuk melacak setiap serangan. Ini menimbulkan pertanyaan tentang bagaimana penyedia mitigasi DDoS tradisional akan menangani serangan yang belum mereka temui.

Ketika Aplikasi Filter Lebih Berfungsi

Menggunakan firewall rules, seringkali sulit untuk mengungkapkan dengan tepat apa yang diinginkan pengguna. Biasanya, tingkat kontrol paling terperinci yang dapat Anda terima mencakup kemampuan memfilter pada lapisan transport, yang hanya mencakup UDP dan TCP. Meskipun ini bagus untuk memblokir serangan yang tidak terkoordinasi dengan baik dengan memblokir atau membatasi lalu lintas di porta, ini tidak cukup.

Misalnya, Anda memiliki server OpenVPN yang berjalan di port UDP 1194. Jika lalu lintas UDP di port lain tidak diperlukan, mungkin terlihat seperti ini:

PROTOCOLSOURCE IPSOURCE PORTDESTINATION PORTACTION
UDP1194Accept
UDPDrop

Jika serangan DDoS berbasis UDP menargetkan port selain 1194, solusi ini akan berfungsi dengan baik. Namun, apa yang akan dilakukan ACL (Access Control List) ini ketika penyerang menargetkan port UDP 1194? Itu akan mengizinkannya! Ini belum tentu kesalahan firewall Anda karena melakukan sesuatu selain yang diperintahkan; itu memberikan persis apa yang diminta. Masalahnya adalah bahwa pengguna tidak memiliki tingkat kontrol yang cukup baik untuk mewakili apa yang diperlukan dengan benar. Yang ingin kami sampaikan adalah bahwa semua lalu lintas OpenVPN harus diizinkan di port ini, bukan semua lalu lintas UDP. Dengan berapa banyak serangan DDoS yang menyalahgunakan properti UDP tanpa koneksi, mengizinkan semuanya tidak dapat diterima. Jadi bagaimana kita membuat keputusan pada paket yang setepat mungkin? Jawabannya: filter aplikasi pada Layer 7.

Di Herza Cloud, kami telah menghilangkan rasa frustrasi itu. Menggunakan eBPF/XDP, filter aplikasi diterapkan di tepi jaringan untuk jumlah protokol yang terus bertambah. Segera setelah filter diterapkan, semua lalu lintas yang menuju ke layanan tertentu melewati filter aplikasi ini, di mana perangkat lunak memastikan bahwa setiap paket terbatas pada konvensi yang digunakan aplikasi. Ini dilakukan melalui penelitian yang cermat untuk menemukan apa yang membedakan paket milik aplikasi yang ingin kami lindungi dari paket lain. Semua filter aplikasi kami menggunakan Stateful Mitigation untuk memblokir jenis Floods / DDoS yang paling canggih sekalipun. Bersihkan lalu lintas melewati dengan mulus, sementara paket berbahaya atau tidak sah ditolak; semua tanpa intervensi apa pun yang diperlukan, atau kemungkinan bahwa lalu lintas klien dapat dihentikan dalam proses. Saat ini kami telah membuat filter aplikasi untuk sejumlah layanan berbeda, termasuk OpenVPN, TeamSpeak 3, TLS, dan banyak lagi!

Hasil

Sejak rilis awal filter aplikasi kami, klien mendapat manfaat dari tingkat ketahanan yang tak tertandingi terhadap DDoS, apakah itu serangan volumetrik, banjir aplikasi bandwidth rendah, atau apa pun di antaranya! Filter aplikasi Path bukan hanya cara yang lebih logis untuk menyediakan pemfilteran paket, tetapi juga sangat efisien, sangat terukur, dan lebih tahan masa depan. Path berencana untuk melanjutkan perluasan teknologi ini, karena infrastruktur kami menjadi lebih modular.

One of our application filters are shown above withstanding an attack