MENGAPA SMS DAN PUSH CODES TIDAK AMAN

Blog

Pavel Melnichenko

By Pavel Melnichenko, CTO

Dalam unggahan blog sebelumnya, kita sering mengatakan bahwa menggunakan OTP melalui SMS dan push notification untuk mengonfirmasi transaksi keuangan bukanlah ide yang baik. Di blog ini, saya ingin meluangkan waktu untuk membagikan topik khusus ini dan menjawab pertanyaan– “mengapa metode konfirmasi transaksi “klasik” ini tidak aman?”.

Penggunaan notifikasi SMS sebagai faktor otentikasi kedua sudah umum bagi kebanyakan orang. Selain itu, banyak layanan digital menggunakan metode otentikasi ini untuk transaksi seperti mengembalikan akses masuk, menyetujui beberapa tindakan, mengonfirmasi tautan perangkat, dan sebagainya.

Jika Anda menautkan nomor ponsel Anda ke semua layanan digital penting sehari-hari seperti email, akun Google, akun ID Apple, Facebook, Twitter, dan sebagainya, kartu SIM Anda menjadi “kunci kehidupan Anda”. Sebenarnya, boleh saja jika kartu SIM Anda hanya digunakan untuk mengakses foto dan tweet. Tidak akan menarik bagi para penjahat untuk mencuri akun Facebook Anda (kecuali jika Anda seorang selebritas).

Untuk membuatnya lebih jelas, peretas modern bukanlah orang yang sendirian jika dilihat dalam kacamata besar. Peretasan adalah bisnis kriminal berteknologi tinggi yang terstruktur dengan adanya manajer hacker, brain-center, pemain, informan, dan sebagainya. Tujuan utama bisnis ini (seperti semua bisnis lainnya) adalah untuk mendapatkan uang dan berkembang.

Manajer hacker memahami bahwa ‘uang sungguhan’ disimpan di bank. Memang, pelanggan bank memiliki akses jarak jauh untuk mengelola dan mentransfer uang dari satu akun ke yang lain. Jadi, peretas hanya memerlukan instrumen untuk mendapatkan akses atas nama pelanggan yang sah. Di sinilah mereka berhadapan dengan kontrol keamanan.

Mari kita bayangkan bahwa sekelompok peretas telah memperoleh (dari suatu tempat) detail yang diperlukan untuk mengakses akun pelanggan. Itu bisa berupa detail kartu pembayaran, login, kata sandi untuk perbankan jarak jauh, atau akun dari layanan FinTech – tidak masalah. Untuk mentransfer uang, mereka harus melewati faktor otentikasi kedua. Jika bank atau layanan FinTech menyediakan layanan menggunakan SMS atau push codes, maka mereka perlu mendapatkannya.

Tiga skenario utama bagaimana kode sms dapat diintersepsi

Mari kita lihat bagaimana kode keamanan yang dikirim oleh melalui SMS dapat dicegat dan dikirimkan kepada peretas.

  1. Mekanisme teknis

Ini adalah peretasan klasik: kelompok peretas membuat virus dan malware untuk menjebak pesan. Malware semacam itu akan dikirimkan ke perangkat pelanggan melalui spam, situs yang terinfeksi, aplikasi palsu, keygens, aktivator, perangkat lunak berbayar bajakan dan sebagainya. Setelah diinstal pada smartphone pelanggan, malware ini dapat memiliki akses ke konten SMS korban.

Anda mungkin terkejut; itu bukan pengetahuan canggih untuk mengakses konten SMS pada smartphone Android. Android memiliki mekanisme standar bagi setiap aplikasi untuk membaca pesan SMS yang masuk. Pertanyaannya adalah, apa hubungannya aplikasi dengan konten ini? Hal itu dapat digunakan untuk menyederhanakan kehidupan pengguna (misalnya, untuk menganalisis aktivitas pengguna) atau untuk mencuri kode konfirmasi yang dikirim oleh bank.

  1. Mekanisme teknologi

Ketika kita berbicara tentang SMS, kita berbicara tentang teknologi yang ditemukan pada tahun 1970-an. Dunia berbeda, risiko keamanan berbeda. Lucu ketika Anda menyadari bahwa ancaman keamanan SMS yang menguntungkan berasal dari tahun 2017, segera setelah mereka menjadi standar yang pada praktiknya merupakan faktor otentikasi kedua. Hari ini, Anda dapat menggunakan peralatan yang harganya sekitar USD 1.500 untuk menyadap SMS apa pun di dunia. Hal itu menjadi mungkin setelah peneliti independen menemukan kerentanan dalam protokol SS7. Protokol ini digunakan untuk mentransfer pesan SMS. Ngomong-ngomong, salah satu bank besar di Jerman pernah jadi korban dari serangan jenis ini. Anda bisa mencari informasi terkait kejadian tersebut juga.

  1. Mekanisme sosial

Di blog ini, ada dua teknik utama: pertukaran SIM dan rekayasa sosial.

  • Pertukaran SIM merupakan cara yang sangat sederhana. Penjahat, biasanya dengan bantuan dari operator jaringan seluler, mengganti kartu sim dengan yang lainnya dengan nomor telepon yang sama. Cukup begitu saja. Setelah manipulasi ini, “kunci kehidupan Anda” ada di tangan mereka

Ya, korban akan mengetahui bahwa kartu sim mereka telah diubah. Namun, 10 menit sudah cukup untuk mengatur ulang akses ke semua layanan digital Anda dan untuk mentransfer semua uang dari rekening bank Anda. Tentu saja, operator jaringan seluler dapat memberi tahu bank ketika kartu sim diganti. Layanan ini disebut “cek IMSI”. Hal ini membutuhkan uang. Tidak banyak bank yang mau membayar risiko pelanggan

  • Rekayasa sosial adalah tentang berbicara dengan pelanggan. Ketika penjahat memanggil pelanggan dan mengatakan sesuatu seperti “Halo, ini adalah layanan keamanan bank Anda. Apakah Anda membuat transaksi mencurigakan ini untuk mentransfer semua uang Anda? Tidak? Ok, untuk menolak ini, tolong beri tahu saya kata sandi dalam pesan SMS yang baru Anda terima”. Anda bisa membayangkan apa yang akan terjadi segera setelah pelanggan memberikan kode. Ada banyak teknik rekayasa sosial. Kami menemukan kasus saat pelanggan mentransfer semua uang mereka melalui ATM dengan tangan, tanpa kode apa pun. Tetapi intinya adalah, ketika seorang pelanggan memiliki sesuatu untuk didiktekan – itu akan ditentukan oleh penjahat.

Ok, kami secara singkat menggambarkan bagaimana kode konfirmasi dapat dicegat oleh “peretas”. Kita juga perlu memahami bahwa sebagian dari dolar yang dicuri (atau rupiah, baht, yen, won, ringgit) akan dihabiskan untuk mengembangkan mekanisme ini, menciptakan malware yang lebih canggih, mengirim lebih banyak spam, menerapkan intersepsi SS7 dalam berbagai pintu masuk, dan mempekerjakan psikolog untuk skrip rekayasa sosial dan sebagainya. Pesan SMS tidak aman secara ‘by design’.

Sisi Yuridis Dari Pesan SMS OTP:

Beberapa hal lagi yang ingin saya sebutkan adalah tentang sudut pandang yuridis.

  1. Dalam sebagian besar kasus yang telah kita lihat, OTP tak ditautkan dengan detail transaksi. Ini berarti Anda dapat menggunakan kata sandi suatu transaksi untuk mengonfirmasi transaksi lainnya. Anda, sebagai pelanggan, tidak dapat membuktikan bahwa Anda mengonfirmasi aktivitas transfer “10 dolar ke Alice”, tetapi bukan “1000 dolar ke Eva”. Hal tersebut bisa menjadi masalah besar.
  2. Pada saat yang sama, Anda, sebagai pelanggan, dapat pergi ke bank untuk meminta mereka “mengembalikan uang Anda atas penipuan transaksi khusus ini”. Jika mereka bertanya mengapa, Anda dapat memberi tahu mereka “Saya belum mengkonfirmasi operasi ini, Anda yang melakukan ini, karena Anda tahu kode konfirmasi sebelum saya, Anda yang membuatnya. Dan operator jaringan seluler tahu. Dan agregator pesan SMS tahu. Saya menerima kode ini, tetapi tidak memasukkannya di mana pun. Buktikan bahwa aku salah”.

Ini berarti bahwa kode pesan SMS juga tidak aman dari sudut pandang yuridis.

Bagaimana Dengan Push Codes?

Push codes dikirim melalui internet, bukan jaringan seluler. Orang dapat berpikir bahwa, secara teoritis, mereka lebih aman di ponsel. Sebenarnya tidak juga.

  1. Teknis. Mencuri push notification dari smartphone sama mudahnya dengan pesan SMS.
  2. Teknologi. Push notification dikirim melalui platform ponsel – biasanya Google atau Apple. Jika Anda membaca perjanjian pengembang dari Google dan Apple dengan cermat, Anda dapat menemukan bahwa mereka sangat membatasi pengiriman informasi rahasia “termasuk kata sandi bank” melalui push notification. Ini berarti bahwa konten push, layaknya pesan SMS, akan diketahui oleh pihak ketiga.
  3. Sosial. Push codes dapat didiktekan semudah pesan SMS. Tidak ada perbedaan antarkeduanya. Namun, push memiliki satu keuntungan – pertukaran SIM tidak dapat dilakukan.

Dari sudut pandang yuridis, tidak ada perbedaan antara pesan SMS dan push codes. Dengan demikian, tingkat keamanan kedua teknologi ini sama.

Sebagai penutup, saya ingin berbagi hasil percobaan teknis kami kepada Anda.

Kami menempatkan diri di posisi sebagai peretas dan mencoba membuat malware untuk andorid guna mencuri pesan SMS dan push notification. Butuh sekitar 1 jam dan 30 menit untuk membuat solusi lengkap: malware untuk Android, server untuk menerima pemberitahuan curian, dan UI untuk membacanya di server.

Tidak ada aplikasi antivirus atau analisis perilaku yang mendeteksi malware ini. Kami berhasil mencuri beberapa dolar dari akun VISA pribadi saya dengan menggunakan proses transaksi 3D-Secure. Pertama kali, kode konfirmasi dikirim melalui push, kedua kalinya dengan pesan SMS. Kami mendemonstrasikan video percobaan ini di salah satu webinar kami, dan siap menjelaskan solusinya kepada Anda.

Saya ingin memperingatkan semua pembaca agar tidak menggunakan SMS atau push notification untuk mengkonfirmasi transaksi keuangan apa pun. Dari sudut pandang keamanan, cara itu bukan ide yang baik. Pada tahun 2020, kami memiliki solusi, yang memiliki kemampuan untuk mengakomodasi kebutuhan dengan cara yang lebih tepat.