Bahaya Besar di Balik Kesederhanaan SNMP

Simple Network Management Protocol (SNMP) adalah sebuah protokol yang digunakan untuk memonitor berbagai macam perangkat yang terkoneksi ke jaringan seperti router, switch, server, printer, dan sebagainya. SNMP terdiri dari 3 bagian yaitu Network Management Station (NMS), Agent, dan Management Information Base (MIB). NMS berfungsi sebagai pusat kendali aktivitas SNMP. Agent merupakan software yang berjalan pada perangkat yang dimonitor sedangkan MIB berisi informasi tentang perangkat yang dimonitor. Proses kerja SNMP diwakili oleh 3 aktivitas yaitu get request untuk menerima manajemen data dari perangkat, set request memodifikasi konfigurasi perangkat, dan trap message yang memungkinkan perangkat mengirimkan notifikasi asynchronous dan sinyal ketika terjadi perubahan kondisi pada perangkat seperti suhu melewati batas yang ditetapkan. Komunikasi data SNMP menggunakan protokol UDP, agent menerima permintaan dari NMS pada port 161 sedangkan NMS menerima sinyal trap pada port 162.
SNMP digunakan secara masif karena sederhana. Hampir semua perangkat jaringan mendukung protokol ini. Namun berdasarkan data Common Vulnerability and Exposure (CVE) ditemukan banyak kerentanan pada SNMP. Kerentanan ini terutama pada SNMP v1 dan v2 yang tidak mengenkripsi datanya seperti SNMPv3. Kenyataannya, banyak perangkat yang beroperasi saat ini masih menggunakan SNMPv1 atau v2 dengan alasan perangkat tidak kompatibel dengan v3 atau admin yang malas mengupgrade SNMP-nya. Beberapa kerentanan yang ditemukan yaitu kesalahan NMS dalam men-decode dan memproses trap message dan kesalahan agent dalam men-decode dan memproses get request message. Selain itu terdapat pengaturan yang tidak aman seperti tidak dibutuhkannya pesan SNMP untuk menggunakan community name (password) yang tepat dalam berkomunikasi. Penggunaan UDP yang connectionless menyebabkan NMS atau agent bisa menerima request atau trap dari agent atau NMS di luar jaringan lokal (spoofing). Community name yang tidak terenkripsi pada SNMPv1 dan v2 menyebabkan penyerang dapat melakukan sniffing pada paket dan mendapatkan community name untuk dieksploitasi. Kerentanan ini bisa berakibat DDOS attack, format string vulnerability, ataupun buffer overflow.
Salah satu contoh kerentanan terbaru SNMP menurut CVE yaitu fungsi snmp_pdu_parse di snmp_api.c (net-snmp 5.7.2 dan versi sebelumnya) tidak menghapus variabel varBind pada netsnmp_variable_list ketika memparsing SNMP PDU fails, yang memungkinkan penyerang melakukan serangan DDOS dan mengeksekusi sembarang kode melalui sebuah crafted packet (CVE-2015-5621).  Kerentanan ini diumumkan pada April 2015 dan menginfeksi Ubuntu 12.04 (32 dan 64bit), Red Hat Enterprise 6, Oracle Enterprise Linux 6, IBM Tivoli Netcool/OMNIbus 7.3, dan Centos 6. Kerentanan ini dapat dieksploitasi tanpa akses ke jaringan lokal, tidak membutuhkan kondisi khusus atau tahap yang kompleks untuk dieksploitasi serta tidak membutuhkan otentikasi. Pengaruh yang ditimbulkan yaitu penyerang dapat mengakses dan memodifikasi file system pada area tertentu (akses terbatas). Selain itu, penyerang bisa melakukan interupsi dan menurunkan kinerja sistem. Beragam vendor telah mengeluarkan patch untuk memperbaiki kerentanan tersebut.
Beberapa solusi untuk mengurangi kerentanan pada SNMP sebagai berikut :
Gunakan SNMPv1 scanner untuk mengidentifikasi perangkat yang SNMP-nya sedang aktif
Pasang patch yang disediakan oleh vendor
Matikan service SNMP pada perangkat yang tidak membutuhkannya
Terapkan ingress dan egress filtering pada firewall untuk protokol UDP port 161 dan 162 untuk paket yang masuk dan keluar untuk mencegah serangan dari luar atau inisiasi dari dalam sistem.
Ganti community string default pada perangkat sehingga tidak mudah ditebak oleh penyerang.
SNMP adalah sebuah protokol yang sangat bermanfaat untuk mengelola sistem. Namun perlu diketahui bahwa SNMP memiliki banyak kerentanan sehingga perlu diperhatikan untuk menjaga keamanan sistem.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s