Heartbleed Attack


Sekilas Tentang Heartbleed

Written by Achmad Rizal Muttaqin on Tuesday January 10, 2017
- Comments
Achmad Rizal Muttaqin

Para pembaca yang budiman, kali ini saya akan share sedikit informasi mengenai istilah Heartbleed dalam dunia Sistem Informasi atau teknis perangkat lunak secara general. Seperti yang sudah pembaca ketahui, Heartbleed merupakan sebuah bug pada pengimplementasian Heartbeat Extension Transport Layer Security (TLS) pada library OpenSSL yang mana Heartbeat Extension merupakan fitur yang berfungsi untuk menjaga koneksi tetap terhubung (keep-alive) tanpa melalui negosiasi ulang seperti pada saat pertama kali melakukan koneksi. Adapun mekanisme keep-alive yang dimaksud yaitu client mengirimkan suatu paket dengan informasi berupa payload (data) dan length (panjang data) untuk kemudian server akan merespon dengan paket yang sama yang berasal dari client tersebut.

Adapun yang membuat Heartbleed terjadi adalah dikarenakan ketiadaan pengecekan informasi length (panjang data) terhadap panjang payload (data) yang sebenarnya untuk setiap paket yang masuk, sehingga respon yang diberikan oleh server dapat mengandung informasi yang tidak seharusnya diberikan. Berikut ilustrasi untuk Heartbleed yang diambil dari website forumsys.com

Diagram 1

Pada Diagram 1 dapat dilihat bahwa untuk paket yang normal berisi informasi payload HELLO dan length 5. Server kemudian akan menyimpan payload ke memori agar dapat dikirimkan kembali kepada client sebagai respon Heartbeat. Selain konten HELLO, pada memori server juga terdapat data lain yang direpresentasikan dengan USERSSENS-ITIVEDATA!. Maka selanjutnya, server akan mengirimkan data sepanjang 5 yang tidak lain adalah HELLO itu sendiri. Pada skenario normal ini, tidak ada data yang tidak seharusnya dikirim oleh server karena paket mempunyai informasi yang cocok

Adapun berikutnya adalah skenario saat Heartbleed terjadi

Diagram 2

Pada Diagram 2 dapat dilihat bahwa paket berisi informasi payload HELLO dan length sebesar 25. Sama seperti pada skenario normal, server akan menyimpan payload ke memori agar dapat dikirimkan kembali sebagai respon Heartbeat kepada client. Dan pada saat mengirimkan respon, server akan mengirimkan respon sepanjang 25 sesuai dengan yang informasi yang dikirimkan oleh client. Dan sebagai akibatnya, selain mengirimkan kembali payload HELLO, server juga akan mengirimkan data yang tidak seharusnya dikirimkan, yaitu USERSSENS-ITIVEDATA!

Bug ini ditemukan oleh Matti, Antti, Riku (dari Codenomicon), dan Neel Metha (dari Google) dan terdapat pada library OpenSSL versi 1.0.1 sampai dengan 1.0.1f. Adapun untuk mengatasi bug ini, dapat dilakukan antara lain dengan melakukan update pada library OpenSSL yang digunakan atau melakukan compile ulang pada library OpenSSL yang digunakan dengan tambahan opsi -DOPENSSL_NO_HEARTBEATS

comments powered by Disqus

— Copyright © 2017 PT. Comestoarra Bentarra Noesantarra —