2 poin oleh GN⁺ 2024-04-01 | 1 komentar | Bagikan ke WhatsApp
  • 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_DATE dan GIT_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_DATE dan GIT_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, e446ab7a memiliki Lasse Collin sebagai committer, dan tampaknya merupakan patch yang dikirim Jia lewat email lalu diterapkan dengan git 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

 
GN⁺ 2024-04-01
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

    • Di balik operasi ini kemungkinan besar ada satu tim penuh, dan pekerjaan tim itu bisa saja mencakup hal seperti “merekayasa secara sosial proyek XZ agar menerima maintainer yang kami pilih”
      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"
    • Dengan asumsi bahwa ini bukan “satu serigala penyendiri”, jauh lebih banyak hal menjadi mungkin
      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

    • Terlihat ada jeda 4 minggu pada Agustus, yang cocok dengan jadwal liburan Eropa
      Namun di Finlandia biasanya orang lebih memilih Juli, jadi ini kurang umum
    • Tukaani adalah organisasi Finlandia yang terutama dikontribusi oleh orang Finlandia, dan jika melihat para kontributornya, hampir semuanya bernama ala Finlandia
      Sepintas ini tampak masuk akal
    • Jika dilihat berdasarkan daylight saving time dan hari libur, saya penasaran bagaimana kecocokannya dengan Israel
    • Saya tidak tahu kenapa ini mendapat downvote. Kalau memikirkan aktor negara, karena kasus seperti Stuxnet, Israel cukup berada di jajaran atas bersama AS/Rusia/Tiongkok/Korea Utara
      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
    • “Jangan percaya siapa pun! Sejak Tuhan memuntahkan manusia gua ketiga, sudah ada konspirasi untuk mengincar salah satu dari mereka!” - Gen. Hunter Gathers, OSI (The Venture Bros.)
      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

    • Dari beberapa commit Jia Tan yang saya lihat, bahasa Inggrisnya terbaca alami seperti penutur asli Amerika atau Inggris, dan saya tidak melihat jejak bahasa Inggris Singapura
      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)
    • Tan bukan hanya marga Hokkien tersendiri (陳 yang jauh lebih umum), tetapi juga marga Mandarin
  • 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 gc di terminal ke TZ=UTC0 git commit
    Tidak 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

    • Aku membuat dan memakai alat kecil untuk menyembunyikan informasi waktu pada commit git: https://github.com/SmartHypercube/git-date-truncate
      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
    • Bagaimana kalau begini?
      alias git='TZ=UTC0 git'
    • Aku sering bepergian, tetapi belakangan ini tidak mengubah zona waktu workstation dari PST/PDT
      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

    • Tidak ada yang tahu berapa banyak persona lain yang dimiliki orang di balik identitas online itu, dan seberapa jauh persona-persona itu sudah mencemari proyek lain
    • Tidak perlu khawatir. Mereka, maksudnya tim itu, pasti juga berkontribusi ke library gambar, WebKit, Kubernetes, dan sebagainya
    • Mengapa dianggap sia-sia? Apakah kita tahu mereka gagal mencapai tujuannya?
    • Sulit untuk yakin bahwa JiaT hanya bekerja di proyek xz
  • “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

    • Stereotip “hacker” memang sudah usang, tetapi menggantinya dengan “orang muda” sambil mengisyaratkan bahwa itu bukan “orang tua” juga sama anehnya
      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
    • Sintaks c/hacker/younger person itu apa? Aku tahu substitusi sed berupa s/a/b/, tetapi belum pernah melihat yang diawali c
    • Meski stereotipnya disingkirkan, hacker yang serius mengode biasanya mengatur jadwal “kerja nyata” mereka mengelilingi kewajiban eksternal
      Pagi 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?

    • Benar. Ada bagian yang lebih buruk lagi
      “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

    • Bisa juga orang Tiongkok yang berpura-pura menjadi orang Eropa Timur atau orang Israel yang berpura-pura menjadi orang Tiongkok
      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