Backdoor XZ: Waktu, Waktu yang Terkutuk, dan Penipuan
(rheaeve.substack.com)- Di sekitar backdoor pada tarball xz/liblzma, zona waktu commit Git dan pola kerja Jia Tan digunakan sebagai petunjuk untuk memperkirakan wilayah aktivitas sebenarnya
- Waktu commit dapat dimanipulasi dengan
GIT_AUTHOR_DATEdanGIT_COMMITTER_DATE, tetapi alih-alih menyesuaikan seluruh kronologi agar tampak meyakinkan, kemungkinan lebih mudah untuk hanya mengubah zona waktunya - Sebagian besar dari 440 commit Jia Tan tercatat sebagai UTC+08, tetapi beberapa catatan UTC+02·UTC+03 cocok dengan pergantian waktu musim dingin dan musim panas ala Eropa Timur
- Perubahan zona waktu pada 6 Oktober 2022 dan 27 Juni 2023 terjadi dalam jarak waktu yang terlalu pendek untuk dijelaskan sebagai perpindahan nyata, sehingga kemungkinan sekadar perjalanan menjadi lemah
- Sebagian commit +0200 tampaknya adalah patch yang diterapkan Lasse Collin dengan
git am, sehingga dalam alur patch email, keandalan informasi zona waktu menjadi lebih rendah
Backdoor xz dan objek analisis
- Backdoor yang ditemukan di tarball xz/liblzma dipandang sebagai insiden yang sangat mengguncang kepercayaan terhadap ekosistem perangkat lunak bebas
- Backdoor itu diduga dimasukkan oleh Jia Tan, yang merupakan maintainer utama jangka panjang xz
- Di komunitas, hampir tidak ada informasi yang diketahui tentang Jia Tan selain namanya, dan nama itu pun mungkin bukan nama asli
- Objek analisisnya adalah aktivitas GitHub milik JiaT75 dan stempel waktu commit di repositori xz
- Titik awalnya adalah tulisan publik di posting milis oss-security
Mengapa stempel waktu Git sulit dipalsukan
- Waktu commit Git bisa diubah dengan variabel lingkungan
GIT_AUTHOR_DATEdanGIT_COMMITTER_DATE - Commit yang belum di-push juga bisa diubah tanggalnya belakangan lewat amend
- Namun, pemalsuan data waktu yang tampak meyakinkan memiliki banyak batasan
- Jika commit di-push dengan tampilan seolah dibuat di masa depan, itu bisa memicu kecurigaan
- Commit yang tampak lebih lama daripada diskusi online terkait juga terasa tidak alami
- Untuk menghindari batasan ini, commit harus ditahan dulu, yang bisa menunda pengembangan proyek
- Daripada menyesuaikan waktu aktual, mengubah zona waktu saja bisa menjadi cara yang lebih mudah untuk menipu tanpa perlu perhitungan rumit atau menunda commit
Catatan UTC+08 dan kemungkinan UTC+02/03
- Sebagian besar commit Jia Tan, yakni 440 commit, tercatat dengan stempel waktu UTC+08
- UTC+08 kemungkinan besar adalah CST Tiongkok, tetapi Indonesia, Filipina, dan Australia Barat juga berada di zona waktu yang sama
- Nama Jia Tan bisa saja merupakan sinyal untuk membuatnya tampak sebagai orang Asia, khususnya Tionghoa
- Diajukan kemungkinan bahwa wilayah aktivitas sebenarnya adalah kawasan UTC+02 saat musim dingin / UTC+03 saat musim panas
- Wilayah ini mencakup EET Eropa Timur, IST Israel, dan lainnya
- Jika catatan UTC+08 dikoreksi ke dasar UTC+02/03, polanya berubah menjadi bekerja normal sekitar pukul 9 pagi sampai 6 sore
- Tanpa koreksi itu, polanya menjadi seperti bekerja pada Selasa tengah malam dan pukul 1 dini hari, yang terasa kurang alami
Petunjuk yang muncul dari pergantian zona waktu
- Beberapa commit mungkin terjadi karena Jia Tan lupa mengganti zona waktu
- Ditemukan 3 commit UTC+02 dan 6 commit UTC+03
- UTC+02 cocok dengan waktu musim dingin pada Februari dan November
- UTC+03 cocok dengan waktu musim panas pada Juni, Juli, dan awal Oktober
- Ini sesuai dengan pergantian daylight saving time di Eropa Timur, yaitu pola +0200 setelah akhir pekan terakhir Oktober dan +0300 setelah Minggu terakhir Maret
- Zona waktu ini juga tampak sama dengan zona waktu Lasse Collin dan Hans Jansen
- Dalam pembaruan 2 April, dengan memasukkan catatan dari Joey Hess, ditambahkan bahwa banyak kasus seperti ini adalah commit dengan Lasse Collin sebagai committer
- Namun, fenomena yang sama tidak muncul pada semua commit Jia yang di-commit oleh Lasse, dan dalam banyak kasus tetap tercatat sebagai +0800
- Karena itu, belum jelas apakah commit +02/03 ini adalah kesalahan atau sekadar perubahan workflow
Jarak waktu yang sulit dianggap sebagai perpindahan nyata
- Penjelasan bahwa penghuni UTC+08 sesekali terbang ke wilayah UTC+02/03 tidak cocok dengan detail stempel waktunya
- Pada 6 Oktober 2022, ada commit 21:53:09 +0300 diikuti commit 17:00:38 +0800
- Selisih di antara dua commit itu sekitar 11 jam
- Dari Tiongkok ke Eropa Timur atau Timur Tengah, waktu terbang murni saja minimal 10–12 jam, dan karena penerbangan langsung jarang tersedia, kemungkinan sebenarnya lebih lama
- Pada 27 Juni 2023, ada commit 23:38:32 +0800 disusul 17:27:09 +0300
- Selisih kedua commit itu hanya beberapa menit
- Pergantian seperti ini mendukung kemungkinan bahwa Jia Tan sebenarnya tidak berada di wilayah CST UTC+08
Pola hari libur dan kerja di hari kerja
- Pola hari libur juga tampak lebih cocok dengan Eropa Timur daripada Tiongkok
- Untuk daftar hari libur nasional Tiongkok, digunakan referensi pengumuman hari libur 2023 dari Bank of China Indonesia
- Ada catatan aktivitas kerja pada hari-hari yang disebut sebagai hari libur nasional Tiongkok
- 29 September 2023: Festival Pertengahan Musim Gugur
- 5 April 2023: Festival Qingming
- 22–27 Januari 2023 dan seterusnya: periode Tahun Baru Imlek
- Untuk hari libur Eropa Timur, disebutkan bahwa tidak ada catatan kerja pada Natal 25 Desember maupun Tahun Baru 31 Desember dan 1 Januari
- Hari kerja Jia yang paling sering adalah Selasa 86 kali, Rabu 85 kali, Kamis 89 kali, dan Jumat 79 kali
Nama dan caveat penerapan patch
- Ada catatan bahwa jika “Jia Cheong Tan” adalah nama asli, itu tidak bisa menjadi romanisasi yang valid untuk nama berhuruf Han yang digunakan di Tiongkok, dan lebih dekat ke gaya penulisan Asia Tenggara seperti Malaysia
- Ejaan “Cheong” tidak digunakan di Tiongkok modern, dan juga diberikan contoh bahwa penulisan bahasa Inggris ala Tiongkok cenderung menempelkan karakter nama
- Contohnya adalah “Yangqing Jia”, bukan “Yang Qing Jia”
- Namun, dua commit +0200
de5c5e4,e446ab7amemiliki Lasse Collin sebagai committer, dan tampaknya merupakan patch yang dikirim Jia lewat email lalu diterapkan dengangit am - Commit tersebut dan beberapa commit di sekitarnya memiliki stempel waktu yang sama, yang sesuai dengan kasus ketika satu bundel file patch diterapkan dengan
git am - Jika patch berpindah lewat email, akan sulit mengandalkan informasi zona waktu, sehingga sebagian analisis ini menjadi lebih lemah
1 komentar
Opini Hacker News
Jika ini adalah serangan yang didukung negara, sangat mungkin ada orang/departemen yang menulis kode dan pesan mailing list, serta tim terpisah yang mencocokkan waktu dan timestamp saat hasilnya keluar ke internet dengan “cerita yang sesuai dengan pengaturan proyek”
Kadang mereka mungkin sengaja memasukkan “kesalahan” untuk mengisyaratkan kepada penyelidik tempat lain yang dipilih, bukan lokasi sebenarnya
Tulisan lain[1] juga mengemukakan kemungkinan bahwa akun-akun yang tiba-tiba muncul menciptakan rasa urgensi untuk mempercepat pengalihan hak pengelolaan
[1] https://connortumbleson.com/2024/03/31/watching-xz-unfold-fr...
via: https://news.ycombinator.com/item?id=39888854
Bagian terkait bisa dicari dengan "Progress will not happen until there is new maintainer"
Termasuk membuatnya tampak seolah beroperasi dari lokasi tertentu, sekaligus tidak tampak seperti lebih dari satu orang
Saya tidak mengira pelakunya berasal dari Eropa Timur, tetapi jika melihat UTC+0200/+0300, di Eropa zona itu mencakup Finlandia, negara-negara Baltik, Ukraina, Rumania, Moldova, dan Yunani
Jika sedikit turun ke selatan, itu juga mencakup wilayah Timur Tengah yang cukup besar termasuk Israel
Namun di Finlandia biasanya orang lebih memilih Juli, jadi ini kurang umum
Sepintas ini tampak masuk akal
Terutama Unit 8200 IDF punya reputasi yang cukup terkenal
Bukan berarti negara lain tidak punya kemampuan, dan serangan ini juga tidak tampak seperti sesuatu yang mutlak membutuhkan sumber daya setingkat NSA atau GCHQ. Pada kenyataannya bisa saja ini cuma satu serigala penyendiri, tetapi tetap layak diperhatikan
Pihak-pihak dengan sumber daya dan motivasi yang praktis tak terbatas dapat menjalankan operasi false flag untuk mengarahkan tanggung jawab ke arah tertentu. Mereka sangat piawai menghapus jejak, dan bahkan peneliti keamanan paling terampil pun bisa butuh berbulan-bulan atau bertahun-tahun untuk sampai pada dugaan terdidik tentang siapa yang bertanggung jawab
Jadi mencoba mencari tahu “siapa pelakunya” nyaris hanya membuang waktu
Pelajarannya adalah: jangan masukkan perangkat lunak mutakhir yang belum terverifikasi ke lingkungan operasional dengan alasan apa pun; penetration tester organisasi harus secara rutin mencoba membobol stack dan melaporkan hasilnya ke organisasi serta pengelola paket; maintainer free/open source harus mengaudit kode baru yang sensitif keamanan pada setiap rilis; dan kita harus berdonasi kepada para maintainer
Untungnya ini tidak masuk ke stable, dan situasinya hanya nyaris memicu Chernobyl keamanan di dalam sistem sebelum akhirnya berhasil dihindari
Ada orang-orang yang berusaha meyakinkan semua pihak bahwa aktor tertentu bertanggung jawab, dan di situ ada tujuan geopolitik. Misalnya, di AS sedang ada pembahasan untuk melarang kepemilikan asing atas aplikasi web populer; betapa menguntungkannya bagi pemerintah atau perusahaan yang diuntungkan oleh undang-undang seperti itu jika seorang pengguna GitHub bernama ala Tiongkok melakukan commit vektor serangan dengan timestamp yang membuatnya tampak berasal dari RRT
Bahkan jika memang benar seseorang dari Tiongkok daratan, kalau ia didukung negara, kecil kemungkinan ia akan diserahkan kepada marshal AS meski ada dakwaan dan permintaan ekstradisi. Justru ia mungkin “dibungkam” agar informasi organisasi yang lebih besar tidak jatuh ke tangan musuh
Di luar konspirasi ala film Bond, pengetahuan itu tidak banyak bisa diterapkan dalam praktik. Biasanya kita sudah tahu dari mana pengguna berasal, dan kita juga bisa melakukan pemblokiran wilayah. Jika tidak, kita harus bersiap menghadapi ancaman lain yang datang dari wilayah itu
GMT+8, susunan nama (nama bergaya Mandarin/campuran dialek + marga Hokkien), dan indikasi[1] bahwa akses dilakukan dari tempat yang tampak seperti exit VPN atau server hosting di Singapura, semuanya cocok dengan identitas Singapura, entah nyata maupun penyamaran
Jadi pandangan sumber [1] bahwa “namanya terdengar palsu” juga perlu disaring. Orang Tiongkok daratan tidak selalu benar-benar memahami komunitas diaspora Tionghoa
Cukup banyak hari libur yang disebutkan juga bukan hari libur nasional Singapura[2]. 24 Januari memang hari libur, tetapi untuk menerapkan pola “bekerja pada hari kerja”, 22 Januari adalah hari Minggu namun ditandai sebagai hari bekerja
Akan menarik jika melihat lebih banyak tulisan Jia Tan, terutama tulisan yang lebih lama. Mungkin ada kebiasaan bahasa yang cukup jelas untuk membedakan orang Singapura, orang Tiongkok daratan, penutur berbagai bahasa Slavia, dan penutur asli bahasa Inggris
[1] https://boehs.org/node/everything-i-know-about-the-xz-backdo...
[2] https://www.mom.gov.sg/employment-practices/public-holidays
Tentu saja sampelnya sangat kecil, jadi tidak bisa terlalu banyak disimpulkan
Hampir 10% orang Singapura memiliki marga Tan
[1] [https://en.wikipedia.org/wiki/File:Singaporean_surnames_by_f...](https://en.wikipedia.org/wiki/File:Singaporean_surnames_by_frequency.png)
Terlepas sejenak dari seberapa serius kasus ini, aku benar-benar terseret ke sisi yang seperti novel detektif dari peristiwa ini
Menarik melihat proses internet menebak “siapa, bagaimana, dan mengapa”
Sejak beberapa tahun lalu, tepat karena alasan seperti ini, aku memetakan
gcdi terminal keTZ=UTC0 git commitTidak perlu mengubah waktu sistem atau konfigurasi git. Mungkin ada cara yang lebih baik di konfigurasi global
Alasannya juga bukan niat jahat. Aku sering bepergian, dan tidak ingin jadwal perjalanan bocor ke repositori publik
Bukan hanya menyetel zona waktu ke UTC, tetapi juga menyetel jam ke 00:00 sehingga commit hanya menyisakan informasi tanggal. Menurutku, informasi yang tersimpan permanen di commit git cukup sebatas tanggal, dan tidak perlu membocorkan waktu commit yang tepat
alias git='TZ=UTC0 git'Perlu langkah manual, dan aku juga tidak memakai layanan lokasi
Kasihan Jia. Semua kerja 2 tahunnya jadi sia-sia
Jia, kalau kamu membaca ini, ingatlah bahwa tembakan yang tidak dicoba pasti 100% meleset. Tegakkan kepala, saudara
“Siapa yang rutin bekerja pagi-pagi sekali?”
Aku
“Kalau hacker, jauh lebih masuk akal bekerja pada sore dan larut malam”
Rasanya lebih tepat kalau di sini hacker diganti dengan orang muda
Aku berusia 41 tahun, dan dalam 10 tahun terakhir mungkin hanya sekitar 20 hari aku bangun sebelum pukul 7 pagi. Setengah alasan aku masih tahan bekerja dengan komputer adalah karena ini salah satu dari sedikit pekerjaan yang tetap bisa kulakukan dengan baik meski pada kebanyakan hari aku bekerja dengan jadwal 11.00–19.00
Ada orang pagi dan ada orang malam. Setiap orang punya ritmenya sendiri dan itu bukan sesuatu untuk dihakimi, tetapi juga bukan sesuatu yang secara alami berubah, atau harus berubah, seiring bertambahnya usia
c/hacker/younger personitu apa? Aku tahu substitusisedberupas/a/b/, tetapi belum pernah melihat yang diawalicPagi hari banyak gangguan seperti harus berurusan dengan “orang pagi”, sedangkan dari setelah makan siang sampai malam jauh lebih sedikit hal yang menyela
Dalam 4 jam tanpa gangguan, kamu bisa menyelesaikan jauh lebih banyak pekerjaan daripada dalam 8 jam kerja yang dipenuhi telepon dan email acak. Aku juga bukan orang muda lagi, tetapi ada pekerjaan yang tetap kulakukan pada malam hari karena, jika tidak ada gangguan dan aku sudah memikirkannya sedikit demi sedikit selama beberapa jam, aku bisa menyelesaikannya dalam separuh waktu
Kalau kamu punya pagi yang damai, aku iri
“Pada Selasa, 27 Juni 2023 terlihat dua commit pada 23:38:32 +0800 dan 17:27:09 +0300. Jika dihitung, ada selisih sekitar 9 jam di antara dua commit itu”
Tapi 17:27:09 +0300 itu 22:27:09 +0800, jadi bukankah kedua commit itu selisih sekitar 1 jam?
“Yang lebih menentukan, pada 6 Oktober 2022 terlihat commit 17:00:38 +0800 setelah commit 21:53:09 +0300. Ini hanya selisih beberapa menit!”
Tidak. Ini hampir selisih 10 jam
Sepertinya penulis tidak sengaja menukar dua analisis itu, atau kurang tepat menghitung zona waktu
Bagaimana kalau itu orang Amerika, atau orang dari wilayah yang sama sekali lain, yang berpura-pura menjadi orang Eropa Timur yang berpura-pura menjadi orang Tiongkok?
Kalau ingin menyamarkan sesuatu, setidaknya pasti akan menambahkan satu lapis pengalihan lagi
Dengan susunan seperti itu, kebocoran semacam ini tidak akan terlalu bermasalah
Aku salah satu penulis artikel aslinya. Kami mendapat banyak ide yang layak dipakai untuk analisis berikutnya, dan untuk menjawab empat sanggahan yang sering muncul:
Aku setuju bahwa belum jelas apakah ini satu orang atau beberapa orang. Namun, sekalipun ini sebuah tim, pendekatan zona waktu bisa memberi tahu di mana tim itu berada. Jam aktivitasnya terlalu mirip jam kerja reguler, bukan tim yang tersebar di seluruh dunia
Tentu saja ada kemungkinan waktu commit diubah, atau commit/upload dilakukan dengan skrip penjadwalan waktu. Meski begitu, untuk benar-benar menyembunyikan perbedaan zona waktu yang besar, perlu penundaan yang sangat besar, sehingga menurutku secara realistis sulit. Sebab xz tidak dikembangkan dalam ruang hampa; pengembangannya merespons kejadian online seperti pembuatan issue atau posting di mailing list
Dua contoh itu memang tertukar. Dua waktu yang disebut berselisih sekitar 10 jam sebenarnya hanya berselisih beberapa menit, dan waktu yang disebut berselisih beberapa menit sebenarnya berselisih sekitar 10 jam. Akan kami perbarui
Terakhir, benar juga bahwa UTC+2/3 tidak hanya mencakup Eropa Timur, tetapi juga sebagian Timur Tengah. Bagian ini juga sudah kami perjelas dalam pembaruan artikel