Ancaman Keamanan NTP dan Penanggulangannya

Network Time Protocol atau NTP beroperasi sebagai layanan sinkronisasi waktu melalui jaringan internet publik, sehingga dalam pengoperasiannya, NTP rentan terhadap berbagai jenis serangan yang bertujuan untuk mengganggu protokol maupun data yang dikirimkan.

Serangan terhadap protokol maupun data NTP dapat menyebabkan sebuah server yang sebenarnya telah terbukti otentik, mengirimkan data waktu yang tidak benar ke sistem yang menggunakan NTP. Hal ini dapat menjadi ancaman serius untuk aplikasi atau layanan dalam sistem operasi yang sangat bergantung pada ketepatan timestamp, seperti pencatatan log pada sistem operasi.

Dalam tulisan ini akan dipaparkan model keamanan NTP dan skenario-skenario serangan yang mungkin terjadi beserta penanggulangan yang telah diterapkan pada protokol NTP.

I.            Sekilas Tentang NTP

NTP atau Network Time Protocol adalah protokol sinkronisasi waktu dalam jaringan antar dua komputer atau lebih. NTP bertujuan untuk mensinkronisasi semua komputer yang terhubung dalam beberapa milidetik dari Coordinated Universal Time (UTC) serta dapat mempertahankan akurasi hinga puluhan milidetik melalui internet publik, bisa mencapai akurasi kurang dari satu milidetik pada jaringan lokal.

a.      Cara Kerja NTP

Gambar 1: Sistem hierarki NTP. Garis kuning mengindikasikan koneksi langsung, garis merah mengindikasikan koneksi via jaringan (internet atau lokal)

NTP pada prinsipnya berbasis client-server, dengan menggunakan sistem hierarki yang disebut stratum untuk mengambil referensi waktu seperti yang ditunjukkan pada Gambar 1:

  • Stratum 0

Hierarki ini mencakup perangkat-perangkat ketepatan waktu presisi tinggi seperti jam atom, GPS receiver, dll. Perangkat-perangkat ini menghasilkan sinyal PPS (pulse per second) yang akurat yang men-trigger interrupt dan timestamp pada komputer yang terhubung. Perangkat stratum 0 disebut juga reference clocks.

  • Stratum 1

Merupakan komputer yang tersinkronisasi secara langsung dengan perangkat-perangkat stratum 0 dalam rentang beberapa mikrodetik. Berfungsi sebagai time server utama, server stratum 1 bisa melakukan komunikasi peer-to-peer dengan server stratum 1 yang lain untuk pengecekan dan backup.

  • Stratum 2

Perangkat stratum 2 tersinkronisasi dengan server stratum 1. Perangkat-perangkat ini bisa menerima timestamp dari satu atau lebih server stratum 1, dan juga dengan perangkat stratum 2 yang lain.

  • Stratum 3 dan seterusnya

Perangkat-perangkat pada stratum 3 tersinkronisasi dengan perangkat stratum 2, dan bertindak sebagai server terhadap perangkat stratum 4, dan seterusnya.

NTP client menghubungi tiga atau lebih server dengan interval tertentu. Untuk melakukan sinkronisasi dengan server, client perlu menghitung round-trip delay dan offset. Round-trip delay δ dikomputasi dengan:

1

t0 : timestamp client mengirimkan paket request.

t1 : timestamp server menerima paket request.

t2 : timestamp server mengirimkan paket respon.

t3 : timestamp client menerima paket respon.

Dan offset θ:

2

Nilai delay dan offset dijadikan bahan analisis dan menentukan server mana yang digunakan sebagai referensi waktu oleh NTP client.

b.      Mode Operasi

NTP beroperasi dengan beberapa bentuk:

  • NTP Client mode

NTP client dikonfigurasi untuk mensinkronisasikan waktu di perangkatnya sendiri dengan time server eksternal. NTP client tidak menyediakan layanan sinkronisasi ke perangkat lain dalam jaringan.

  • NTP Server mode

NTP server menjalankan NTP service dan dikonfigurasi untuk memberikan informasi waktu ke NTP client. NTP server hanya menyediakan informasi waktu untuk NTP client dan tidak akan menerima informasi sinkronisasi waktu dari perangkat lain.

  • NTP Peer mode

NTP peer tidak memiliki otoritas lebih tinggi dari perangkat lain. Dalam NTP peer mode, masing-masing perangkat dapat menerima atau memberikan sinkronisasi waktu ke perangkat lainnya.

  • Broadcast/Multicast

Dalam broadcast/multicast mode, NTP server melakukan broadcasts/multicasts informasi sinkronisasi waktu ke semua NTP client sekaligus.

II.            Serangan Terhadap Network Time Protocol

a.      Tujuan Serangan

Serangan terhadap sistem yang menggunakan NTP dilakukan dengan berbagai tujuan. Tujuan serangan yang paling jelas adalah agar sistem menghasilkan nilai waktu yang tidak benar atau tidak konsisten serhingga dapat menyebabkan layanan-layanan yang kritikal terhadap waktu tidak dapat bekerja dengan benar. Dalam hal sistem operasi, hal ini akan mengganggu ketepatan logging, report, system clock, dll.

Tujuan lainnya adalah untuk menggangu operasi protokol, menyebabkan tersumbatnya jaringan, server atau client dengan trafik bervolume besar, atau memaksa protokol menggunakan sejumlah besar sumber daya seperti komputasi kriptografi.

b.      Tipe Serangan

Tipe serangan yang mungkin terjadi ada bermacam-macam. Beberapa diantaranya adalah:

  • Bogus attack – Penyerang memalsukan paket yang diterima oleh client atau server;
  • Wiretap attack – Penyerang menyalin (menyadap) paket-paket yang dikirimkan client atau server, sehingga dapat disimpan atau digunakan untuk jenis serangan berikutnya;
  • Replay attack – Penyerang mengirimkan kembali salah satu atau lebih paket yang didapat sebelumnya disimpan (old duplicate), atau mengirimkan ulang paket yang terakhir dikirimkan.

Paket-paket yang dikirimkan dalam NTP bersifat publik; tidak ada usaha sama sekali untuk menyamarkan atau mengenkripsi isinya, hanya untuk memastikan keotentikan sumber paket tersebut. Oleh karena itu, serangan-serangan tersebut dapat dilakukan oleh komputer manapun dalam jaringan.

Selain tipe serangan diatas, beberapa kondisi tertentu juga memungkinkan paket NTP hilang dan menyebebkan protokol melakukan restart, sehingga menyebabkan delay yang lebih besar daripada yang seharusnya. Hal ini bisa disebabkan oleh collisions, queue overflow, dan cheksum failure, baik yang terjadi secara alami maupun karena terdapat serangan.

c.      Skenario  Serangan

Skenario serangan yang mungkin dilakukan adalah sebagai berikut:

  • Middleman Attack

Penyerang menyadap paket dari client atau server sehingga paket tersebut tidak langsung mencapai tujuannya. Penyerang kemudian memalsukan paket NTP tersebut atau membuatnya menjadi tidak akurat, namun tetap akan dapat diterima oleh client dan server.

  • Masquearade Attack

Penyerang berpura-pura bertindak sebagai server NTP. Hal ini mungkin dilakukan apabila router dalam jaringan sudah diserang atau menggunakan DNS server palsu.

  • Delay Attack

Penyerang menyebabkan paket NTP tertunda selama beberapa waktu, namun tidak mengubah isinya.

Apabila delay di dua arah antara client dan server berkisaran sama, offset error mungkin tidak terlalu signifikan. Hal ini seperti yang terjadi dalam link data di luar angkasa yang disebabkan karena pergerakan satelit atau pesawat luar angkasa.

Namun apabila delay di kedua arah tersebut memiliki perbedaan secara signifikan, offset error mencapai separuh dari perbedaan delay di kedua arah tersebut.

  • Denial of Service (DoS) Attack

Satu atau lebih penyerang dapat berkolaborasi untuk melakukan DoS attack, dengan membanjiri jaringan, client atau server, dengan sejumlah besar trafik sehingga layanan menjadi terganggu.

Dari pengalaman sebelumnya, serangan DoS belum pernah efektif dilakukan, karena sumber daya perangkat keras dan perangkat lunak yang digunakan oleh NTP cukup minim. Namun, serangan DoS dapat efektif apabila serangan memaksa sistem melakukan kalkulasi kriptografi yang besar dan tidak dibutuhkan.

III.            NTP Security Model

Gambar 2: NTP Security Model

Dalam usaha menanggulangi serangan-serangan yang disebutkan sebelumnya, NTP telah menerapkan security model berbentuk hierarki seperti pada Gambar 2. Pertahanan terhadap serangan dimulai dari lapisan paling bawah (On-Wire Protocol). Apabila serangan lolos dari lapisan ini, pertahanan berikutnya berada dilapisan diatasnya, lapisan Message Digest, menggunakan symmetric key cryptography.

Apabila serangan dapat lolos juga dari lapisan ini, berikutnya adalah lapisan Autokey Sequence, yang menggunakan nilai hash atau teknik pseudo-random sequence untuk mengaitkan setiap paket ke suatu digital signature.

Pertahanan terhadap masquerade attack sangat bergantung terhadap lapisan Autokey Protocol, yang menggunakan public key cryptography untuk mengaitkan server credentials ke digital signatures.

Dapat dilihat apabila suatu serangan tidak dapat digagalkan pada salah satu lapisan, serangan tersebut mungkin dapat digagalkan oleh lapisan diatasnya. Secara umum, lapisan diatas On-Wire Protocol layer bersifat opsional; symmetric key cryptography hanya menggunakan dua lapisan terbawah sementara public key cryptography menggunakan keempat-empatnya.

a.      On-Wire Protocol

On-wire protocol digunakan pada transportasi paket antara client dan server. Secara ringkas, protokol menggunakan timestamp paket NTP ditransmisikan, disebut transmit timestamp, untuk mendeteksi paket palsu atau duplikat dengan melakukan loopback test: beberapa bit acak dimasukkan ke bit non-signifikan dalam 64-bit transmit timestamp. Sangat kecil kemungkinannya penyerang dapat memprediksi transmit timestamp yang dihasilkan. Transmit timestamp tidak harus benar-benar tepat waktu, atau memiliki pola tertentu, asalkan setiap transmit timestamp berbeda satu sama lain dan tidak dapat diprediksi secara tepat dalam kisaran 0.232 ns.

Dalam setiap mode operasi NTP, paket duplikat dapat dideteksi apabila transmit timestamp ditemukan sama dengan paket yang pernah diterima sebelumnya. Dalam hal ini paket duplikat akan dibuang sehingga tidak mengganggu kalkulasi timestamp. Dalam mode client/server dan peer, loopback test membandingkan transmit timestamp di paket client request  dengan timestamp asli di paket server reply. Perbedaan yang terlalu jauh mengindikasikan paket palsu, duplikat, atau hilang di transit.

Menggunakan loopback test pada mode client/server dan peer, semua serangan wiretap yang didekripsikan sebelumnya dapat dihalangi. Namun dalam broadcast mode, on-wire protocol tidak dapat mendeteksi paket palsu dan duplikat, karena loopback test tidak dapat dilakukan (broadcast mode mengirimkan paket ke beberapa client sekaligus).

Namun protokol ini mengasumsikan isi paket tidak dimodifikasi di transit. Serangan yang memodifikasi isi paket tidak akan terdeteksi oleh on-wire protocol, namun dapat dideteksi oleh lapisan berikutnya.

b.      Message Digest

Router tipuan atau yang telah disusupi oleh penyerang, atau bahkan server yang sudah disusupi, dapat memodifikasi bagian manapun dalam paket NTP, kecuali kolom transmit timestamp. Hal ini akan menyebabkan paket salah diklasifikasikan atau dikirimkan pada waktu yang salah. Untuk menanggulangi tipe serangan ini, lapisan message digest menggunakan symmetric key cryptography untuk menghitung sebuah message digest setiap paket.

Message digest adalah nilai kriptografi hash yang dihitung dengan algoritma seperti MD5 atau SHA. Ketika otentikasi dibutuhkan, algoritma menghitung nilai hash sebagai message authentication code (MAC) dari header dan ekstensi paket (bila ada), dan menambahkannya ke akhir paket.

MAC terdiri dari 32-bit identifier (key ID) diikuti dengan 128 atau 160-bit message digest, yang kemudian ditambahkan ke ujung paket ketika paket akan dikirimkan. Ketika paket diterima, penerima paket menghitung message digest dan membandingkannya dengan MAC yang dibawa oleh paket tersebut saat transmisi.

Paket hanya akan diterima apabila message digest identik; apabila tidak, client akan mengabaikan paket tersebut dan memberikan peringatan. Apabila hal ini terjadi pada paket yang diterima oleh server, server akan mengembalikan pesan khusus yang disebut crypto-NAK.

Dengan asumsi bahwa kunci simetris yang digunakan untuk mengenkripsi message digest hanya dibagikan antara server dan client yang benar-benar terlibat, lapisan message digest akan dapat menanggulangi sebagian besar ancaman-ancaman yang didekripsikan sebelumnya, termasuk middleman attack atau masquerade attack.

Symmetric key cryptography dianggap sangat reliabel dan sulit dikelabuhi. Meskipun dalam perkembangan terakhir, diketahui ada kemungkinkan memalsukan paket denga nilai MD5 tertentu, kewajiban paket memiliki format NTP dan transmit timestamp yang valid membuat bahkan algoritma MD5 dapat digunakan sebagai algoritma yang kuat secara kriptografi.

Namun, untuk sebuah time server bertaraf nasional dengan ribuan client, kewajiban memiliki shared message digest keys menjadi terlalu besar, apabila setiap pengguna dan setiap grup harus memiliki kunci message digest yang berbeda. Kolom key ID terbatas untuk 65.534 kunci berbeda. Penggunaan symmetric key cryptography mungkin hanya efektif apabila time server tersebut menggunakan broadcast/multicast modes.

c.      Autokey Sequence

Autokey sequences digunakan untuk mengotentikasi paket NTP menggunakan public key cryptography dan digital signature. Karena public key algorithm umumnya memiliki waktu eksekusi yang panjang dan bervariasi, tidak semua paket NTP dapat menggunakannya. Autokey sequence menggunakan paket yang memiliki digital signature untuk beberapa paket, dan mengaitkan paket-paket berikutnya ke paket tersebut menggunakan fungsi hash atau teknik pseudo-random sequence. Digital signatures digunakan hanya pada respon protokol dari server ke client, dan hanya jika server sudah disinkronisasikan dengan sumber otentik.

Protokol ini memiliki dua pendekatan: satu untuk client/server mode dan peer modes; dan satu untuk broadcast mode.

Client/Server dan Peer Mode

Dalam mode client-server, server mendistribusikan cookie unik per client. Server mengkomputasi cookie klien sebagai MD5 hash dari autokey dengan klien dan alamat IP server, kunci ID dan cookie Server. Ketika menerima request, server mengembalikan client cookie yang terenkripsi dan ditandatangani menggunakan private key server. Di sisi client, client mendekripsi client cookie dan memverifikasinya menggunakan public key server yang ada dalam sertifikat kunci publik. Untuk request-request berikutnya, baik client dan server menghitung dan memverifikasi message digest menggunakan client cookie.

Dalam peer mode, setiap peer beroperasi sebagai server terhadap peer lain yang beroperasi sebagai client; namun setiap peer memiliki sertifikat kunci publik unik, private/public sign key pair dan private/public host key pair masing-masing. Setiap peer mendapatkan client cookie dengan cara yang sama dengan yang didekripsikan diatas. Setelah client cookie didapatkan, masing-masing peer menghitung shared peer cookie sebagai nilai eksklusif OR dari client cookienya sendiri dengan client cookie dari peer lain.

Dengan hal ini, penyerang tidak akan dapat memalsukan sebuah paket tanpa memiliki client cookie, yang juga terkait dengan signature milik server, sehingga middleman attack tidak akan dapat membuat paket palsu atau memodifikasi paket yang dikirimkan antara client dan server.

Namun, terdapat celah keamanan yang disebut cookie snactcher, dimana middleman melakukan wiretap terhadap client cookie request untuk mengetahui IP address client dan server. Middleman kemudian mengirimkan client cookie request menggunakan kunci miliknya sendiri ke server. Dalam hal ini, masquerade attack dapat dilakukan.

Broadcast Modes

Desain protokol dalam broadcast mode jauh lebih rumit karena pertukaran dua arah tidak dimungkinkan. Secara garis besar, broadcast server mengkonstruksi sebuah key list yang digunakan untuk mengkomputasi message digest berdasarkan system clock.

Masing-masing client dan server menghitung kunci message digest dari autokey yang dibuat dari IP address dan key ID didalam paket, dan cookie. Secara prinsip, wiretap attack dapat dilakukan untuk memalsukan paket dengan key ID palsu dan message digest yang valid, namun pada praktiknya, message digest tidak akan cocok dengan key ID sebelumnya.

Dalam kasus terdapat paket palsu atau duplikat, jumlah repetisi nilai hash akan melebihi nilai maksimum yang dispesifikasikan nilai autokey. Dalam hal paket hilang, paket berikutnya akan menyebabkan client mengulangi nilai hash, namun nilai hash tersebut akan cocok dengan nilai autokey setelah beberapa waktu.

Middleman dapat melakukan wiretap terhadap paket NTP valid, mengganti nilai headernya dan menghitung ulang message digest. Namun, karena paket dikirimkan secara broadcast, hal ini akan cukup sulit dilakukan.

d.      Autokey Protocol

Autokey protocol digunakan untuk mengambil dan memperbaharui media kriptografi seperti sertifikat dan kunci identitas. Protokol ini didesain untuk beroperasi tanpa infrastruktur tambahan. Setelah pertukaran awal selesai, tidak akan ada overhead header paket lain untuk tujuan otentikasi.

Media kriptografi dalam protokol ini terbagi dalam dua kategori, nilai private (private values) dan public/private key pair. Private values adalah nilai sekali pakai yang memiliki waktu pakai terbatas, memuat nilai seed autokey dan server cookie. Nilai private secara rutin dibuat dan disamarkan dengan komputasi hash.

Public/private key pairs mencakup host keys, sign keys dan identity keys.

  • Host keys digunakan untuk mengenkripsi client cookie seperti yang dibahas pada autokey sequence sebelumnya.
  • Sign keys digunakan oleh sertifikat untuk memverifikasi signature paket. Apabila sign keys diganti, semua sertifikat yang menggunakannya harus dibuat ulang. Sertifikat memiliki waktu pakai terbatas, umumnya satu tahun, dan dibuat ulang sesuai keperluan.
  • Identity keys digunakan untuk mempersulit masquerade attack. Fungsi utamanya adalah untuk mengotentikasi sign keys ketika sertifikat tidak bisa didapatkan. Identity keys memiliki waktu pakai yang panjang dan digunakan dalam algoritma-algoritma yang sulit di-kriptoanalisis.

Referensi implementasi mengharuskan server dan client memuat RSA host key pair, RSA atau DSA sign key pair dan trusted certificate terkait, dan identity key pair opsional dari file-file ketika NTP pertama kali dijalankan. Client mendapatkan komponen public dari key pair-key pair ini setelah protokol berjalan.

Pesan autokey protocol disimpan di kolom ekstensi paket, yang ditandatangani dengan server private sign key dan diverifikasi menggunakan server public key sign key dari sertifikat server. Paket autokey memuat header NTP diikuti oleh satu atau lebih kolom ekstensi dan diakhiri dengan MAC.

Untuk melindungi dari replay attack yang dapat memakan sumber daya berlebihan, nilai client association mengikutsertakan timestamp setiap media kriptografi seperti client cookie, nilai autokey, dll. Kolom ekstensi memuat tipe pesan, association ID dan timestamp. Kolom init juga memuat filestamp yang digunakan untuk memverifikasi media kriptografi. Association ID adalah nilai sekali pakai yang diberikan ketika client diasosiasikan dengan signature. Timestamp diberikan ketika signature di-update dan filestamp diberikan ketika media di-update.

Timestamp di-update dari variabel paket hanya jika:

  • Tipe pesan dan association ID sama dengan nilai client association. Hal ini mencegah middleman mengganti isi kolom ekstensi sebuah client dengan isi kolom ekstensi milik client lain.
  • Timestamp lebih baru dari media timestamp. Hal ini mencegah middleman mengganti kolom ekstensi dengan nilai dari paket sebelumnya untuk replay attack.
  • Filestamp sama atau lebih baru dari media filestamp. Hal ini untuk memastikan dilakukannnya remobilisasi apabila media diperbaharui.
  • Kolom ekstensi signature valid.

Apabila kriteria diatas tidak terpenuhi, paket akan dibuang. Jika tidak ada paket valid yang diterima dalam suatu periode waktu, asosiasi di remobilisasi dan variabel media kriptografi diperbaharui. Apabila server clock dimundurkan karena alasan tertentu, kolom ekstensinya akan dibuang hingga menyebabkan timeout.

Penyerang dapat mencoba melakukan DoS attack yang memakan sumber daya komputasi server. Sebagai contoh, penyerang dapat melakukan replay sejumlah besar cookie request valid dengan kecepatan tinggi, sehingga menyebabkan server terhambat karena melakukan proses enkripsi dan perhitungan signature terus menerus.

Penceganan efektif terhadap serangan ini dan serangan DoS lainnya adalah dengan menggunakan manajemen rate seperti yang dideskripsikan dalam referensi implementasi. Hal ini akan membatasi operasi kriptografi dari setiap client selama tidak lebih dari satu paket per dua detik. Paket-paket yang berlebih akan dibuang tanpa mengganggu komputasi kriptografi yang berjalan.

IV.            Serangan Menggunakan Network Time Protocol

Selain menjadi target serangan, NTP juga dapat digunakan untuk melakukan serangan ke suatu sistem. Jenis serangan yang paling umum adalah NTP DdoS amplification attack.

a.      NTP DDoS Amplification Attack

NTP DDoS Amplification attack adalah tipe serangan DDoS yang mengeksploitasi NTP server publik untuk menyerang target dengan trafik UDP. Penyerang melakukan NTP DDoS dengan memalsukan pesan request berukuran beberapa byte, yang kemudian akan direspon oleh server dalam runtutan paket hingga berukuran besar.

b.      Cara Kerja NTP DDoS Attack

Protokol NTP didesain menggunakan UDP, yang tidak membutuhkan proses handshake sebagaimana halnya TCP, sehingga tidak selalu ada catatan request. NTP DDoS attack dimulai ketika penyerang membuat paket dengan memalsukan bagian alamat IP sumber, sehingga paket seakan-akan dikirim dari alamat IP yang menjadi target serangan, ke NTP server. Paket ini berukuran beberapa byte, namun NTP akan merespon dengan sejumlah besar data sehingga memperbesar ukurang serangan ini.

Pada ntpd versi 4.2.7 kebawah, serangan ini dapat dilakukan dengan menggunakan perintah MONLIST. Perintah ini sangat jarang digunakan, namun perintah ini memberikan detail 600 client terakhir yang terhubung ke NTP server. Penyerang membuat paket berisi perintah ini, dengan memalsukan alamat IP-nya, sehingga NTP server akan mengirimkan paket-paket berisi detail client terakhir tersebut ke alamat IP target.

c.      Mitigasi

NTP DDoS attack dapat dimitigasi dengan cara berikut:

  • Update NTP server. Semua versi ntpd dibawah versi 4.2.7 rentan dengan serangan ini. Dengan meng-upgrade ntpd ke versi yang lebih baru, serangan ini dapat dimitigasi.
  • Untuk server yang tidak dapat meng-upgrade ntpd ke versi yang lebih baru, fungsi monlist dapat di-disable dengan menambahkan noquery directive di ntp.conf sebagai berikut:

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

  • Men-disable eksekusi remote perintah monlist. Sebagai contoh, sebagiann besar distro unix/linux membatasi perintah monlist hanya dapat dieksekusi dari localhost.

V.            Kesimpulan

Serangan terhadap protokol NTP dapat menyebabkan sistem operasi menggunakan referensi waktu yang tidak tepat, sehingga mengganggu proses-proses yang membutuhkan referensi waktu seperti logging.

Terdapat beberapa skenario serangan yang mungkin terjadi terhadap operasi NTP:

  • middleman attack, melakukan wiretap atau menyadap jaringan;
  • masquarade attack, berpura-pura menjadi NTP server yang sah;
  • delay attack, memperlambat transmisi paket;
  • denial of service, membanjiri target dengan paket NTP atau memaksa target melakukan komputasi kriptografi yang tidak diperlukan.

Masing-masing skenario melakukan berbagai kombinasi tipe serangan seperti bogus attack, wiretap, dan replay attack. Untuk menanggulangi serangan-serangan ini, protokol NTP sudah menerapkan NTP security model yang terdiri dari On-Wire Protocol, Message Digest, Autokey Sequence dan Autokey Protocol.

Dalam NTP client/server mode dan peer mode, on-wire protocol dapat melindungi dari wiretap attack, termasuk dari paket palsu, replay, maupun paket hilang. Dalam broadcast mode, protokol ini melindungi dari paket palsu dan duplikat. Namun dalam semua mode, on-wire protocol belum melindungi dari middleman attack atau DoS attack.

Rate management yang disertakan dalam referensi implementasi NTP dapat melindungi dari sebagian besar serangan DoS, termasuk yang menarget algoritma kriptografi. Namun hal ini belum melindungi dari serangan distributed DoS (DDoS).

Message digest layer menggunakan symmetric key cryptography untuk melindungi dari middleman attack, termasuk paket palsu, modifikasi pesan dan masquerade attack. Namun hal ini tidak praktis dilakukan apabila jumlah client yang sangat banayak.

Autokey protocol dalam mode client/server dan peer mode rentan terhadap cookie snatcher, yang merupakan akibat dari dimungkinkannya middleman melakukan wiretap terhadap client request, mendapatkan client cookie dan berpura-pura menjadi NTP server yang sah. Serangan yang sama akan sulit dilakukan jika NTP dalam broadcast mode.

Selain menjadi target serangan, NTP juga dapat digunakan sebagai alat serangan, sebagaimana dalam hal NTP DDoS amplification attack, yang rentan dilakukan apabila NTP server masih menggunakan ntpd versi 4.2.7 atau sebelumnya.

Artikel ini dibuat oleh Agung Utama Putra (23215061) sebagai tugas akhir mata kuliah EL5228 Keamanan Sistem Operasi di program studi S2 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.

Referensi

  • https://www.eecis.udel.edu/~mills/security.html
  • http://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/
  • https://www.incapsula.com/ddos/attack-glossary/ntp-amplification.html
  • http://www.omnisecu.com/ccna-security/ntp-network-time-protocol-modes-of-operation.php
  • https://www.eecis.udel.edu/~mills/onwire.html

Leave a Reply

Your email address will not be published. Required fields are marked *