Demi uang: cari dan eksploitasi kerentanan di terminal pembayaran seluler



Pembayaran kartu menjadi semakin populer. Terminal pembayaran seluler (terminal-mPOS) berkontribusi pada perkembangan tren ini, mengurangi hambatan untuk masuk ke pasar pembayaran kartu untuk perusahaan kecil dan pengusaha swasta. Selain itu, dalam kondisi tertentu, operasi masih dapat dilakukan di banyak negara (termasuk Rusia) menggunakan strip magnetik. Setiap putaran baru kemajuan teknologi mengancam ekosistem pembayaran. Masalah keamanan apa yang dapat memfasilitasi akses ke pasar pembayaran kartu? Dan apa yang kita riskan dengan terus mengandalkan teknologi kartu lama, khususnya pada strip magnetik?

Dalam beberapa tahun terakhir, jumlah operasi yang dilakukan menggunakan terminal-mPOS telah meningkat secara signifikan. Persaingan yang ketat di antara penyedia mPOS telah membuatnya sangat mudah untuk mendapatkan terminal pembayaran seperti itu. Menandatangani kontrak membutuhkan waktu kurang dari lima menit, dan terminal mPOS sendiri sering diberikan secara gratis. Sekarang mereka bisa dilihat di mana-mana. Seperti terminal POS biasa, terminal adalah tautan terakhir dalam infrastruktur pembayaran. Ini membuatnya menarik dan mudah diakses oleh penyerang.

Bidang studi


Kami mengevaluasi produk pemasok terkemuka terminal-mPOS: PayPal, Square, iZettle dan SumUp. Beberapa dari mereka menyediakan layanan di beberapa wilayah di dunia. Kami mencoba mendapatkan akses ke layanan di berbagai wilayah di mana dimungkinkan, karena proses pembayaran, aplikasi dan perangkat, serta pengaturan keamanan, berbeda tergantung pada lokasi.

PemasokPabrikanTerminalWilayah
KotakKotakTerminal tanpa kontak
kartu dan kartu dengan chip Square (S8)
Amerika Serikat
KotakKotakTerminal untuk kartu magnetik
Kotak (S4)
Amerika Serikat
KotakKotakTerminal untuk kartu dan kartu tanpa kontak dengan chip Square (S8)Eropa
KotakKotakTerminal Kartu Magnetik Persegi (S4)Eropa
KotakSistem MiuraMiura M010Amerika Serikat
Sumup(bukan publik)AIR1 E001Eropa
iZettleDatacsYRWCRONEEropa
PaypalSistem MiuraMiura M010Eropa

Produsen dan pemasok terminal mPOS




terminal mPOS

Kami melakukan analisis keamanan perangkat dalam lima kategori:

  • komunikasi antara telepon dan server sistem pembayaran;
  • komunikasi antara telepon dan terminal mPOS;
  • mekanisme perlindungan fisik terminal mPOS;
  • aplikasi seluler;
  • faktor tambahan yang memengaruhi keamanan, khususnya verifikasi selama pendaftaran.




Bidang utama penelitian

Proses pembayaran


Kami mempelajari secara menyeluruh vektor serangan dan masalah keamanan pembayaran kartu. Kerentanan yang ditemukan oleh kami membahayakan fungsionalitas utama terminal mPOS.

Perbedaan utama antara mPOS dan terminal POS konvensional adalah penjual tidak terhubung langsung dengan bank yang mengakuisisi. Sebaliknya, penyedia mPOS bertindak sebagai agregator pembayaran, yang membebankan biaya transaksi. Layanan pembayaran seperti itu tidak selalu dapat menjamin tingkat keamanan yang diberikan oleh bank yang mengakuisisi. Penyedia MPOS meminimalkan risiko keamanan dengan caranya sendiri, seringkali mengalihkan tanggung jawab atas penipuan ke bank yang mengakuisisi. Penting untuk dipahami bahwa agregator pembayaran seperti itu sebenarnya adalah penjual sendiri yang berinteraksi dengan bank yang mengakuisisi.



Proses pembayaran melalui terminal mPOS

Risiko Bayar Kartu


Ada berbagai metode pembayaran kartu. Mereka tergantung pada sistem pembayaran, penerbit dan negara masalah. Selama transaksi, kartu mengirimkan daftar metode verifikasi pemegang kartu yang didukung, yang menggambarkan metode yang didukung dan prioritasnya. CVM juga mengatur apa yang harus terjadi jika metode yang dipilih tidak berfungsi. Terminal menyimpan file konfigurasi, yang juga menjelaskan metode verifikasi yang didukung. Terminal membandingkan kedua file ini dan mencoba melakukan transaksi menggunakan metode prioritas pertama. Metode prioritas harus memberikan jaminan tingkat tinggi bahwa pemegang kartu hadir selama operasi.

Beberapa jenis pembayaran jelas lebih aman daripada yang lain. Pembayaran dengan kartu dengan chip dan dengan memasukkan kode PIN dianggap metode yang paling aman, karena memberikan jaminan tingkat tinggi bahwa operasi telah disetujui oleh pemegang kartu. Strip magnetik dianggap sebagai teknologi yang kurang aman, karena penyerang dapat dengan mudah mengkloning strip magnetik dan data Track2 yang tersimpan di dalamnya dan menempa tanda tangan pemegang kartu. Operasi yang dilakukan dengan menggunakan strip magnetik tidak memberikan keyakinan bahwa pemegang kartu benar-benar hadir selama transaksi. Tidak seperti transaksi kartu yang mendukung standar EMV, transaksi menggunakan strip magnetik dilakukan tanpa kriptogram. Ini berarti bahwa operasi tersebut tidak menjamin integritas dan keaslian transaksi selama pelaksanaannya.

Mengadopsi standar EMV


Semakin banyak pembayaran di dunia dilakukan sesuai dengan standar EMV (Europay, Mastercard, Visa), yaitu menggunakan kartu chip. Namun, adopsi standar lebih lambat di beberapa daerah daripada di yang lain. Di Amerika Serikat, transaksi EMV menyumbang kurang dari setengah dari semua transaksi . Sebagian besar operasi masih dilakukan menggunakan strip magnetik. Di Eropa, sekitar 90% dari semua operasi dilakukan sesuai dengan standar EMV .

Hasil penelitian


Memanipulasi perangkat: mengirim perintah sewenang-wenang


Seorang penyerang dapat terhubung ke perangkat melalui Bluetooth dan melakukan operasi sewenang-wenang. Untuk melakukan ini, ia memerlukan informasi tentang layanan Bluetooth yang berjalan pada perangkat, serta karakteristik dan fungsi yang sesuai. Informasi ini dapat diperoleh dengan menggunakan teknik terbalik sebelum serangan. Penyerang hanya perlu akses ke terminal mPOS, telepon yang mendukung pencatatan kejadian host controller interface (HCI), dan aplikasi seluler. Menggunakan pendaftaran peristiwa HCI, penyerang akan mencoba untuk mendapatkan informasi tentang fungsi utama terminal mPOS. Untuk melakukan ini, ia akan melakukan operasi percobaan menggunakan metode pembayaran yang berbeda dan membandingkan hasilnya. Ketika informasi yang diperlukan diterima, penyerang menggunakan Wireshark akan menganalisis komunikasi antara telepon dan terminal mPOS. Informasi ini, serta data aplikasi seluler, akan memungkinkan Anda untuk membandingkan fungsi dengan perintah dan pengidentifikasi mereka. Gambar 5 menunjukkan pesan "Sisipkan (geser) kartu" pada tampilan terminal mPOS.



Pesan "Sisipkan (gesek) kartu" dikirim ke layar

Jika kartu tidak dimasukkan dengan benar, pesan kesalahan "Silakan ambil kartu" muncul di layar. Dalam log HCI, kita melihat UUID mana yang bertanggung jawab untuk menampilkan teks dan contoh data yang dikirim.



Pesan "Silakan ambil kartu" pada tampilan terminal mPOS



Paket Bluetooth pertama bertanggung jawab untuk mengirim pesan "Silakan ambil kartu"



Paket Bluetooth kedua bertanggung jawab untuk mengirim pesan "Silakan ambil kartu" (pesan dibagi menjadi dua paket karena ukuran maksimum kecil dari satu paket Bluetooth Low Energy).

Gambar di bawah ini menunjukkan bahwa nilai yang dikirim ke terminal mPOS terdiri dari lima bagian. Ini mencakup awalan yang berisi pengidentifikasi perintah, nilai penghitung perintah yang dikirim dan ukuran payload, teks utama dalam bentuk karakter ASCII, serta postfix, nilai checksum dan byte terakhir.



Elemen dari dua paket yang bertanggung jawab untuk mengirim pesan "Silakan ambil kartu"

Dalam contoh berikut, terminal menggunakan Bluetooth Classic untuk berkomunikasi dengan telepon. Kita melihat pesan "Sisipkan (geser) kartu" yang dikirim ke tampilan terminal.



Pesan "Sisipkan (geser) kartu" pada tampilan terminal mPOS



Paket Bluetooth (di jendela Wireshark), yang bertanggung jawab untuk mengirim pesan "Sisipkan (geser) kartu" ke tampilan terminal mPOS

Gambar di bawah ini menunjukkan bahwa data ini terdiri dari tiga bagian: awalan, pesan, dan checksum. Awalan juga berisi penghitung, ID perintah, dan ukuran muatan. Pesan berisi nilai "Sisipkan (gesek) kartu" dalam pengkodean ASCII. Checksum adalah XOR dari semua byte pesan.



Elemen paket yang bertanggung jawab untuk mengirim pesan “Sisipkan (gesek) kartu”

Menggunakan informasi ini, Anda dapat membuat perintah sewenang-wenang dan mengirimkannya ke tampilan terminal mPOS. Tiga perangkat yang kami uji ternyata rentan terhadap vektor serangan ini.

PemasokPabrikanPembacaWilayah
Sumup(bukan publik)AIR1 E001Eropa
iZettleDatacsYRWCRONEEropa
KotakKotakKotak (S8)Amerika Serikat

Daftar terminal yang rentan terhadap pengiriman perintah sewenang-wenang. Meskipun pembaca Square (S8) tidak memiliki layar, penyerang dapat mengirim perintah arbitrer lainnya.

Vektor serangan ini dapat digunakan bersama dengan eksploitasi kerentanan lain untuk menawarkan klien jenis operasi yang kurang aman, seperti strip magnetik. Skenario ini dijelaskan dalam Gambar 14-16. Selain itu, penyerang dapat mengirim pesan "Pembayaran ditolak" untuk memaksa pemegang kartu melakukan beberapa transaksi.



Pemegang kartu mencoba memasukkan kartu



Pesan "Tolong gambar kartu" yang dikirim ke layar terminal memaksa pemegang kartu untuk menggunakan strip magnetik



Operasi berhasil - untuk operasi yang menggunakan strip magnetik, Anda harus meninggalkan tanda tangan.

Jumlah palsu


Ada beberapa cara untuk memotong lalu lintas antara terminal mPOS dan server sistem pembayaran. Kami telah menggambarkan salah satunya - merekam kejadian HCI di ponsel dan menganalisis hasilnya. Untuk melakukan ini, Anda harus mengaktifkan pengembang (Mode Pengembang Android). Penyerang dapat mengambil jalur lain, misalnya, mencegat lalu lintas HTTPS antara aplikasi seluler dan server sistem pembayaran. Ini dimungkinkan karena dalam kebanyakan kasus server sistem pembayaran menghasilkan perintah dan mengirimkannya ke terminal mPOS. Untuk melindungi aplikasi seluler dari intersepsi HTTPS, semua pemasok terminal yang kami uji menggunakan pinning SSL.

Gambar di bawah ini menunjukkan contoh pembayaran yang diinisialisasi yang dicegat oleh dua metode berbeda. Kami dapat mencegat lalu lintas HTTPS menggunakan serangan man-in-the-middle, dan kami mengaktifkan mode debugging. Jumlah transaksi diberikan dalam bentuk tidak terenkripsi. Nilai 0100 sesuai dengan £ 1,00.



Pembayaran diinisialisasi dilakukan menggunakan terminal mPOS

Setelah mencegat lalu lintas HTTPS, kami dapat mengubah jumlah transaksi. Maka Anda perlu menghitung ulang checksum. Setelah itu, kami dapat mengirim nilai yang diubah dari jumlah ke server sistem pembayaran untuk mengonfirmasi transaksi. Kami menemukan lima terminal yang rentan terhadap jumlah modifikasi dalam operasi strip magnetik.

PemasokPabrikanPembacaWilayah
SumupAIR1 E001Eropa
iZettleDatacsYRWCRONEEropa
KotakMiuraMiura M010Amerika Serikat
MiuraMiura M010Amerika Serikat
Paypal
KotakKotakKotakAS / Eropa
Magstripe Reader (S4)

terminal mPOS rentan terhadap pemalsuan jumlah

Penjual yang tidak jujur ​​dapat menipu pemegang kartu untuk mengkonfirmasi transaksi dengan jumlah yang jauh lebih besar. Selama operasi, penjual menampilkan satu jumlah pada tampilan pembaca, tetapi pada saat yang sama, jumlah yang lebih besar dikirim ke penyedia terminal mPOS untuk konfirmasi. Serangan ini ditunjukkan pada gambar di bawah ini.



Kiri: jumlah yang dikirim ke server sistem pembayaran (£ 1,23). Kanan: jumlah yang dilihat pemegang kartu (1 £)

Kerentanan ini memengaruhi terminal yang mendukung operasi strip magnetik. Selama operasi, terminal hanya mengirim data Track2 terenkripsi; operasi itu sendiri tidak disertifikasi. Vektor serangan ini tidak akan berfungsi jika operasi dilakukan sesuai dengan standar EMV, karena dalam operasi tersebut informasi tentang jumlah disimpan di dalam cryptogram. PayPass tanpa kontak dan pembayaran payWave yang mendukung mode Legacy (PayPass MAGSTRIPE dan PayWave MSD) tidak menyediakan tingkat perlindungan ini, karena informasi jumlah juga tidak dilindungi oleh kriptogram.

Untuk memahami besarnya masalah, cukup untuk mengingat bahwa kurang dari 50% transaksi di Amerika Serikat dilakukan sesuai dengan standar EMV. Selain itu, batas untuk satu operasi dengan penggunaan strip magnetik yang diverifikasi oleh penyedia layanan kami di Eropa dan Amerika Serikat sangat tinggi dan masing-masing berjumlah 50.000 € dan 50.000 $.

Serangan ini dapat dicegah dengan menggunakan kontrol kriptografi dari integritas jumlah dan bidang mata uang dan membandingkan jumlah dan mata uang operasi pada pembaca dengan jumlah yang dikonfirmasi oleh penyedia layanan. Penting untuk dicatat bahwa standar PCI DSS (versi saat ini 3.2.1), yang mengatur penyimpanan, pemrosesan dan pengiriman data kartu, tidak memerlukan pemeriksaan seperti itu dalam kasus operasi menggunakan strip magnetik. Suatu operasi hanya membutuhkan transfer data Track2.

Eksekusi kode jarak jauh


Dua terminal yang kami uji ternyata rentan terhadap eksekusi kode jarak jauh. Eksploitasi kerentanan ini memberikan penyerang dengan akses penuh ke sistem operasi terminal. Setelah penyerang mendapatkan akses penuh ke sistem operasi, ia akan dapat mencegat data Track2 sebelum enkripsi atau mengaktifkan mode tidak terenkripsi (untuk mengirim perintah) pada keyboard terminal untuk mencegat kode PIN.

PemasokPabrikanPembacaWilayah
KotakMiuraMiura M010Amerika Serikat
PaypalMiuraMiura M010Amerika Serikat

Daftar terminal yang rentan terhadap eksekusi kode jauh



Video Nyan Cat pada tampilan terminal Miura M010. Eksekusi kode jarak jauh memberikan penyerang akses penuh ke sistem operasi terminal

Perlindungan fisik


Mekanisme keamanan fisik sebagian besar terminal mPOS cukup dapat diandalkan. Pembaca Kartu Magnetik Square (S4) tidak menjamin tingkat keamanan dan karakteristik kecanggihan teknologi pembaca kartu contactless dan chip. Namun, ini harus menjadi persyaratan perangkat standar, yang disediakan untuk penjual secara gratis. Terminal yang tersisa menyediakan tingkat perlindungan fisik yang tepat, mekanisme pendukung untuk mencegah gangguan, dan tindakan lain untuk mencegah peretasan perangkat keras.

Mekanisme anti-perusakan


Sistem anti-perusakan membantu mencegah pembukaan terminal dengan bor dan alat-alat lainnya. Ketika Anda mencoba untuk membuka pemutus sirkuit, dan perangkat berhenti bekerja. Selain itu, sebagian besar pembaca beroperasi berdasarkan standar kepemilikan. Tanpa akses ke dokumentasi pengembang, mustahil untuk mendapatkan informasi berharga dengan secara fisik membuka perangkat.



Unit dalam ruangan IZettle YRWCRONE



Sistem pendeteksi tamper IZettle YRWCRONE

Kesimpulan


Kami menemukan bahwa lebih dari setengah terminal mPOS rentan terhadap serangan, sementara secara umum, semua penyedia terminal mPOS yang kami analisis ternyata rentan. Kami telah mencatat banyak masalah keamanan serius, khususnya kerentanan untuk mengeksekusi perintah arbitrer, memalsukan jumlah, dan mengeksekusi kode jarak jauh.
Mekanisme perlindungan terminal perangkat keras dalam banyak kasus dapat diandalkan dan dikembangkan. Namun, aspek-aspek lain, seperti yang terkait dengan aplikasi seluler dan prosedur pendaftaran, jauh kurang terlindungi.

Pengembang terminal mPOS menekankan kemudahan registrasi dan penggunaan perangkat. Ini adalah elemen kunci dari model bisnis, tetapi tidak memperhitungkan bahwa pengurangan hambatan untuk masuk ke pasar pembayaran kartu harus disertai dengan peningkatan keamanan yang signifikan. Tidak ada keraguan bahwa penipuan penjual akan tetap menjadi masalah serius bagi penyedia terminal mPOS. Pendekatan serius terhadap keamanan perlu dikembangkan, termasuk verifikasi selama pendaftaran dan pemantauan pembayaran yang ketat.



Penulis : Lee-Ann Galloway, Timur Yunusov, Artem Ivachev, Mark Kearney, Alexey Stennikov | Teknologi positif

Source: https://habr.com/ru/post/id436952/


All Articles