Peningkatan Keamanan Server GraphQL Terhadap Serangan DDOS Dengan Tipe Batch Attack Menggunakan Metode Rate Limiting
Authors: Diash Firdaus  , Sumardi Idi , Nugraha Ginanjar 
Published: December 2024

GraphQL telah memperkenalkan pergeseran paradigma tentang bagaimana aplikasi berkomunikasi dengan data, menawarkan opsi yang lebih efisien dan ampuh dibandingkan dengan RESTful API tradisional. Namun, atribut yang membuat GraphQL fleksibel dan efisien juga dapat membuatnya rentan terhadap ancaman siber yang ditargetkan, termasuk serangan batch. Eksploitasi ini memanfaatkan kemampuan untuk menggabungkan beberapa kueri atau mutasi ke dalam satu permintaan HTTP, yang dapat menyebabkan server kelebihan beban. Di berbagai industri, termasuk di Facebook, tempat kelahiran GraphQL, teknologi ini digunakan untuk menangani pertukaran data yang rumit antara aplikasi dan basis pengguna yang luas di seluruh dunia. Pembatasan kecepatan muncul sebagai penanggulangan yang tangguh terhadap ancaman serangan batch. Dengan membatasi frekuensi permintaan yang dapat dilakukan pengguna dalam interval waktu tertentu, pembatasan laju melindungi kinerja dan waktu aktif server sekaligus menggagalkan penyalahgunaan. Pendekatan ini tidak hanya membantu dalam manajemen sumber daya server yang bijaksana tetapi juga bertindak sebagai pencegah terhadap aktor jahat yang ingin memanfaatkan sistem. Data empiris mengungkapkan bahwa pembatasan laju efektif dalam mengurangi beban CPU dan Memori secara substansial, mengurangi penggunaan CPU rata-rata dari 4,8% menjadi 0,86% dan penggunaan Memori dari 87MB menjadi 49,6MB selama serangan. Sebaliknya, server tanpa pembatasan kecepatan mengalami lonjakan konsumsi CPU dan Memori setiap beberapa detik, sedangkan dengan pembatasan kecepatan, lonjakan seperti itu terbatas pada 5 detik awal. Bukti ini menggarisbawahi bahwa pembatasan kecepatan memungkinkan server untuk mempertahankan kinerja dan ketersediaan dalam menghadapi potensi serangan.
Kata kunci: DdoS, GraphQL, Batch Attack
-------------------------------------------------------
Abstract
GraphQL has introduced a paradigm shift in how applications communicate with data, offering a more streamlined and potent option compared to traditional RESTful APIs. However, the very attributes that make GraphQL flexible and efficient can also render it vulnerable to targeted cyber threats, including batch attacks. These exploits leverage the capability to bundle multiple queries or mutations into a single HTTP request, which can lead to server overload. Across various industries, including at Facebook, the birthplace of GraphQL, this technology is employed to handle intricate data exchanges between applications and a vast user base worldwide. Rate limiting emerges as a formidable countermeasure to the threat of batch attacks. By capping the frequency of requests a user can initiate within a specified time interval, rate limiting safeguards server performance and uptime while thwarting misuse. This approach not only aids in the judicious management of server resources but also acts as a deterrent against malicious actors seeking to take advantage of the system. The empirical data reveals that rate limiting is effective in substantially reducing the strain on CPU and Memory, decreasing average CPU usage from 4.8% to 0.86% and Memory usage from 87MB to 49.6MB during an attack. In contrast, servers without rate limiting experience a surge in CPU and Memory consumption every few seconds, whereas with rate limiting, such a spike is confined to the initial 5 seconds. This evidence underscores that rate limiting enables servers to sustain performance and availability in the face of potential attacks.
Keywords: DdoS, GraphQL, Batch Attack