tl;dr: Microsoft dan pemindai keamanan email lainnya akan mengunjungi tautan di email yang Anda kirimkan, dan menjalankan JavaScript di tautan tersebut, termasuk panggilan yang menyebabkan keluarnya POST. Hal ini dulunya tidak dapat diterima, karena POST mempunyai efek samping. Namun di sinilah kita. Ini bahkan merusak pesan konfirmasi email/sistem masuk sekali pakai yang agak canggih. Baca terus untuk mengetahui cara menangani hal ini, dan beberapa pemikiran tentang bagaimana kita harus memperlakukan penjaga gerbang seperti Microsoft yang dapat merusak sesuatu secara acak & lolos begitu saja.

Di profil Mastodon saya, saya punya menyematkan kutipan ini:

“Menulis disebut sebagai proses di mana Anda mengetahui bahwa Anda tidak tahu apa yang Anda bicarakan. Sebenarnya melakukan sesuatu adalah proses di mana Anda mengetahui bahwa Anda juga tidak tahu apa yang Anda tulis.” – dari Permohonan 2024 untuk Lean Software (dengan kode berjalan)

Baru-baru ini saya sebenarnya sedang mengerjakan beberapa hal lagi yaitu, membangun situs yang memantau parlemen Belanda di mana pengguna dapat mengonfigurasi monitor yang memberi tahu mereka tentang kejadian parlemen. Ini melibatkan meminta orang mendaftar, mengirim email, membuat pengguna masuk dan keluar, dll.

Dari sini saya mengetahui kemarin bahwa pengguna tidak dapat lagi melakukan proses masuk tanpa kata sandi ke situs saya, melainkan selalu diberi tahu bahwa tautan sekali pakai telah digunakan. Kenapa?

“Norma siber” di Internet selalu berubah. Ketika saya mulai online pada tahun 1992, ‘nomor port di bawah 1024’ masih istimewa. Hanya pengguna root (administrator UNIX) yang dapat mengoperasikan port tersebut, dan beberapa perangkat lunak hanya akan merespons paket yang datang dari nomor port yang rendah tersebut, karena port tersebut lebih dipercaya. Saat ini, pembatasan administratif pada port istimewa tetap ada, namun hal ini tidak lagi dianggap sebagai penghalang keamanan yang berguna. Siapa pun dapat berjalan di port 123.

Demikian pula, dan Anda mungkin sulit mempercayai hal ini, namun ketika filter spam pertama ditemukan, terdapat diskusi yang sulit di antara operator server email apakah mereka boleh diizinkan melakukan hal tersebut, bahkan jika pengguna menginginkannya. Apakah etis jika algoritme mempelajari email & mungkin memblokir transmisi? Memblokir dan memeriksa email dianggap sangat kontroversial pada tahun 1990an.

Selain itu, perangkat lunak yang “menelepon ke rumah” dianggap tercela, bahkan untuk hal-hal seperti memeriksa ketersediaan versi baru dengan kemungkinan pembaruan keamanan. Seiring waktu, kami mengetahuinya memeriksa pembaruan keamanan adalah hal yang sangat baik. Namun, saat ini perangkat lunak yang biasa digunakan adalah “telepon rumah”. puluhan megabyte per hariyang kami sebut “telemetri” namun sebenarnya merupakan mata-mata.

Masalahnya juga adalah tidak ada seorang pun yang mengumumkan hal tersebut ketika mereka melanggar norma dan menetapkan batasan de facto baru mengenai apa yang dapat diterima. Kita hanya mengetahuinya “seiring berjalannya waktu”.

Pengembang berpengalaman tahu itu Permintaan HTTP GET harus idempoten. Atau dengan kata lain, permintaan GET tidak boleh mengubah keadaan apa pun. Browser dan pada dasarnya semua orang dalam rantai harus bebas melakukan permintaan GET ke URL, dan itu tidak menjadi masalah.

Jika Anda ingin benar-benar mengubah keadaan atau mewujudkan sesuatu yang tidak idempoten, Anda harus menggunakan permintaan POST. Oleh karena itu, terdapat norma bahwa tidak ada perangkat lunak yang boleh melakukan atau mengulangi POST tanpa memastikan bahwa ini adalah apa yang diinginkan pengguna.

Sementara itu, penjahat suka menyebarkan malware. Kami baik-baik saja dengan orang-orang yang memindai lampiran email untuk mencari kejahatan. Seiring waktu, perangkat lunak juga boleh dikunjungi tautan di email untuk mencari tahu apa yang ada di belakang mereka. Ini melibatkan permintaan GET, jadi ini bisa diterima.

Hal ini telah mengganggu beberapa alur kerja selama beberapa tahun terakhir. Tautan ajaib sekali pakai (masuk) telah “digunakan”. Setelah pengguna melihat email & mereka mengeklik tautan masuk, tautannya sudah mati. Microsoft telah secara otomatis memakan tautan sekali pakai untuk Anda, sebelum Anda dapat menggunakannya.

Omong-omong, hal ini juga sangat membingungkan beberapa pengujian phishing – membuatnya tampak seperti semua pengguna mengeklik semua tautan. Namun, baru-baru ini, Microsoft-lah yang melakukan “klik”.

Namun, kami dapat berargumen bahwa orang-orang ini yang melakukannya – permintaan GET seharusnya tidak menimbulkan efek samping, dan Microsoft berhak melakukan permintaan ini untuk tujuan keamanan. Untuk mencegah hal ini, operator tautan masuk sekali pakai yang bijak menjadikan proses masuk yang sebenarnya menjadi POST, sesuatu yang tidak seharusnya dilakukan pemindai, karena alasan yang diuraikan di atas.

Namun belakangan ini, operator layanan (seperti saya) menemukan bahwa tautan yang mereka kirim ke pengguna untuk masuk, atau mengonfirmasi akun mereka, sebenarnya mengarah ke permintaan POST yang datang dari Microsoft. Pemindaian keamanan Microsoft sekarang tidak hanya akan mengunjungi tautan yang Anda kirimkan, mereka juga akan menjalankan JavaScript di halaman Anda, dan juga akan mengirimkan POST apa pun yang dihasilkan oleh JavaScript tersebut:

Baris pertama adalah pengguna sebenarnya. Pada baris kedua, 40.94.87.80 adalah alamat IP Microsoft. POST mereka menerima respons 55 byte. Baris ketiga adalah pengguna lagi, hanya mendapatkan respons 28 byte (dalam kasus ini gagal). Perhatikan agen pengguna palsu juga di baris 2.

Sekarang, ini merupakan pelanggaran berat terhadap norma yang kita alami: Anda bisa MENDAPATKAN semua yang Anda inginkan, tapi POST memiliki efek samping, dan berbahaya jika dilakukan “untuk melihat apa yang terjadi”. Microsoft tidak hanya melanggar norma penting di sini, tetapi sejauh yang saya tahu, mereka juga tidak memberi tahu siapa pun tentang hal ini atau memperingatkan kami dengan cara apa pun.

Bacaan amal tentang hal ini adalah bahwa ini tidak masalah karena Microsoft melakukan permintaan GET untuk mendapatkan tautan kami, dan tautan kami kemudian menyebabkan POST dilakukan. Jadi Anda bisa berargumen bahwa kitalah yang salah, kita menyebabkan efek samping berdasarkan GET. Mungkin ada benarnya juga dalam hal ini.

Namun, ‘norma dunia maya’ yang baru kini tampak seperti ini: kami akan mengunjungi laman Anda, menjalankan JavaScript Anda, dan melakukan POST apa pun yang diminta oleh laman tersebut. Tampaknya itu untuk saat iniperangkat lunak keamanan tidak akan mengklik tombol “daftar” yang sebenarnya untuk melihat apa yang terjadi kemudian. Tapi ini mungkin hanya masalah waktu saja.

Kita mungkin juga bertanya-tanya betapa menyenangkannya seorang peretas yang gigih ketika Microsoft menjalankan bit JavaScript secara acak di server mereka dan memungkinkan mereka untuk berkomunikasi dengan dunia (atau bahkan dengan Microsoft sendiri).

Jika Anda mengirim segala jenis tautan masuk atau konfirmasi email, Anda harus berasumsi bahwa pemindai keamanan akan mengirimkannya pada akhirnya melakukan apa pun yang mereka bisa untuk menjalankan proses masuk atau konfirmasi tersebut.

Dengan kata lain, perangkat lunak Anda tidak lagi dapat memiliki tautan yang hanya berfungsi satu kali. Anda harus berurusan dengan Microsoft (dan pemindai keamanan lainnya) yang menyelesaikan proses masuk akun atas nama pengguna Anda.

Jadi yang harus dilakukan situs Anda adalah menangani pengguna yang menyelesaikan pendaftaran atau konfirmasi email mereka untuk kedua (atau ketiga..) kalinya. Konfirmasi sebelumnya adalah palsu. Sekarang, beberapa operator sudah melakukannya mencoba memasang captcha pada tautan untuk mencegah konfirmasi palsu tersebut tapi hal itu kemungkinan besar akan 1) mengganggu pengguna Anda dan 2) memasukkan Anda ke dalam daftar nakal Microsoft, yang tidak dapat dihindari.

Beberapa orang mungkin berargumen bahwa tautan konfirmasi / tautan masuk sekali pakai ini tidak bagus, namun untuk saat ini, tautan itulah yang harus kita gunakan untuk membuat orang mendaftar ke layanan.

Akan lebih baik jika operator-operator besar yang dominan dipaksa untuk lebih transparan mengenai norma-norma yang mereka langgar. Saya memahami dilema keamanan, percayalah, saya benar-benar memahaminya. Anda tidak dapat memberi tahu orang-orang jahat di dunia tentang praktik keamanan Anda yang sebenarnya.

Tapi Anda juga tidak bisa diam-diam menghancurkan segala macam hal.

Itu Undang-undang Pasar Digital UE mengakui bahwa beberapa pemain adalah “penjaga gerbang yang ditunjuk”dengan kekuatan pasar sedemikian rupa sehingga mereka harus mematuhi aturan tambahan. Saat ini termasuk Alphabet, Amazon, Apple, ByteDance, Meta dan Microsoft.

Para penjaga gerbang ini harus lebih bertanggung jawab mengenai apa yang mereka lakukan secara online, dan saya berharap kita dapat mewujudkannya.

Karena siapa yang tahu apa yang mungkin mereka pecahkan selanjutnya, tanpa memberi kita waktu untuk bersiap.

Sumber

Krystian Wiśniewski
Krystian Wiśniewski is a dedicated Sports Reporter and Editor with a degree in Sports Journalism from He graduated with a degree in Journalism from the University of Warsaw. Bringing over 14 years of international reporting experience, Krystian has covered major sports events across Europe, Asia, and the United States of America. Known for his dynamic storytelling and in-depth analysis, he is passionate about capturing the excitement of sports for global audiences and currently leads sports coverage and editorial projects at Agen BRILink dan BRI.