Web Timing dan Race Conditions
Aplikasi web konvensional relatif mudah dipahami, diidentifikasi, dan dieksploitasi. Jika terdapat masalah dalam kode aplikasi web, kita dapat memaksa aplikasi tersebut melakukan aksi yang tidak diinginkan dengan mengirimkan input tertentu. Hal ini mudah dimengerti karena biasanya ada hubungan langsung antara input dan output. Ketika kita mengirimkan data yang buruk, kita mendapatkan output yang buruk, sehingga menunjukkan adanya celah keamanan. Namun, bagaimana jika kita bisa menemukan kerentanan hanya dengan menggunakan data yang valid? Bagaimana jika masalahnya bukan pada datanya, tetapi pada cara kita mengirimkannya? Inilah peran dari serangan web timing dan race condition! Mari kita eksplorasi dunia serangan ini yang sering tersembunyi dari permukaan!
Dalam bentuknya yang paling sederhana, web timing attack berarti kita memperoleh informasi dari aplikasi web dengan menganalisis berapa lama aplikasi memproses permintaan kita. Dengan melakukan sedikit perubahan pada apa yang kita kirimkan atau bagaimana cara kita mengirimkannya, lalu mengamati waktu responsnya, kita dapat mengakses informasi yang sebenarnya tidak diizinkan untuk kita akses.
Race conditions adalah subset dari serangan web timing yang lebih spesifik. Dalam serangan race condition, tujuan kita tidak hanya memperoleh akses ke informasi, tetapi juga memaksa aplikasi web melakukan tindakan yang tidak diinginkan atas nama kita.
Kerentanan web timing sering kali sangat halus. Berdasarkan penelitian, perbedaan waktu respons mulai dari 1300ms hingga 5ns dapat digunakan untuk melancarkan serangan. Karena sifatnya yang subtil, kerentanan ini sulit dideteksi dan sering kali memerlukan berbagai teknik pengujian. Namun, dengan meningkatnya adopsi HTTP/2, kerentanan ini menjadi lebih mudah ditemukan dan dieksploitasi.