1 poin oleh GN⁺ 2024-03-01 | 1 komentar | Bagikan ke WhatsApp

Lebih dari 100.000 repositori terinfeksi ditemukan di GitHub

  • Tim riset keamanan dan sains data mendeteksi bahwa kampanye kebingungan repositori berbahaya yang dimulai pada pertengahan tahun lalu kembali muncul dalam skala besar.
  • Serangan ini memengaruhi lebih dari 100.000 repositori GitHub (dan diperkirakan jutaan) ketika para pengembang menggunakan repositori yang tampak mirip dengan repositori tepercaya yang sudah dikenal, tetapi sebenarnya berisi kode berbahaya.

Bagaimana serangan kebingungan repositori terjadi?

  • Serangan kebingungan repositori mirip dengan serangan dependency confusion, di mana pelaku jahat membuat target mengunduh versi berbahaya alih-alih versi yang asli.
  • Jika serangan dependency confusion memanfaatkan cara kerja package manager, serangan kebingungan repositori bergantung pada orang yang secara keliru memilih versi berbahaya alih-alih versi asli, dan kadang juga menggunakan teknik rekayasa sosial.

Apa yang terjadi saat repositori berbahaya digunakan

  • Ketika pengembang tanpa curiga menggunakan repositori berbahaya, payload tersembunyi akan membuka 7 tahap obfuscation, lalu mengambil kode Python berbahaya dan selanjutnya file executable biner.
  • Kode berbahaya tersebut mengumpulkan kredensial login untuk berbagai aplikasi, kata sandi dan cookie browser, serta data rahasia lainnya, lalu mengirimkannya ke server C&C milik pelaku jahat dan menjalankan aktivitas berbahaya tambahan.

Dampak otomatisasi di GitHub

  • Sebagian besar repositori hasil fork cepat dihapus oleh GitHub, tetapi deteksi otomatis melewatkan banyak repositori dan repositori yang diunggah secara manual tetap bertahan.
  • Karena seluruh rantai serangan sebagian besar diotomatisasi dalam skala besar, 1% yang bertahan tetap berarti ribuan repositori berbahaya.

Kapan kampanye ini dimulai

  • Mei 2023: Menurut laporan awal dari Phylum, beberapa paket berbahaya yang mencakup bagian awal dari payload saat ini diunggah ke PyPI.
  • Juli - Agustus 2023: Setelah PyPI menghapus paket berbahaya dan komunitas keamanan memberi lebih banyak perhatian ke sana, beberapa repositori berbahaya di GitHub diunggah kali ini untuk mengirimkan payload secara langsung alih-alih mengambil paket PyPI.
  • November 2023 - sekarang: Lebih dari 100.000 repositori yang berisi payload berbahaya serupa telah terdeteksi, dan jumlahnya terus bertambah.

Peralihan malware dari package manager ke source code management (SCM)

  • Dari banyak insiden yang diamati pada package manager dan platform SCM, peralihan kampanye ini dari paket berbahaya di PyPI ke repositori berbahaya di GitHub tampaknya mencerminkan tren yang lebih umum.

Cara melindungi diri dari kebingungan repositori

  • GitHub telah diberi tahu dan sebagian besar repositori berbahaya telah dihapus, tetapi kampanye ini masih berlangsung, dan serangan yang mencoba menyuntikkan kode berbahaya ke dalam rantai pasok semakin umum terjadi.
  • Di Apiiro, telah dibangun sistem deteksi malware yang memantau codebase yang terhubung.
  • Untuk mendeteksi serangan, digunakan berbagai teknik canggih, termasuk analisis kode berbasis LLM, mengurai kode menjadi execution flow graph lengkap, mesin heuristik canggih, decoding dinamis, dekripsi, dan deobfuscation.

Opini GN⁺

  • Artikel ini memberikan informasi penting kepada para pengembang tentang ancaman keamanan yang perlu diwaspadai saat menggunakan repositori GitHub.
  • Dengan memahami cara malware menyusup ke rantai pasok perangkat lunak, para pengembang dan profesional keamanan dapat membangun mekanisme pertahanan yang lebih kuat.
  • Serangan seperti ini menekankan bukan hanya kemampuan pengembang untuk memilih repositori yang tepercaya, tetapi juga ketergantungan pada ketepatan konfigurasi CI/CD dan keamanan kode pihak ketiga.
  • Dari sudut pandang kritis, serangan seperti ini menunjukkan bahwa sistem otomatis di platform seperti GitHub dan keberadaan repositori dalam skala besar dapat menjadi pedang bermata dua.
  • Alat keamanan dengan fungsi serupa antara lain SonarQube, Snyk, dan WhiteSource, yang dapat membantu mendeteksi kerentanan kode dan memperkuat keamanan.
  • Sebelum mengadopsi teknologi ini, perlu mempertimbangkan kompatibilitas dengan kebijakan keamanan organisasi, biaya implementasi, dan kemampuan teknis anggota tim.
  • Manfaat yang bisa diperoleh dari memilih teknologi ini adalah peningkatan keamanan dan pengurangan risiko, tetapi potensi kekurangannya mencakup learning curve terhadap sistem baru dan kompleksitas pengelolaan.

1 komentar

 
GN⁺ 2024-03-01
Komentar Hacker News
  • Perlu berhati-hati saat mengambil kode dari repositori publik, dan penting untuk memverifikasi pohon dependensi. Ini menimbulkan pertanyaan tentang bagaimana malware di repositori publik dapat memengaruhi alat otomatis seperti language model (Large Language Models, LLMs). Misalnya, ada kemungkinan alat seperti GitHub Copilot tanpa sengaja menyertakan malware dalam respons atas pertanyaan coding.
  • Menunjukkan bahwa GitHub sedang gagal dengan cara yang sama seperti Usenet gagal. Siapa pun bisa membuat repositori di GitHub, dan tidak ada cara untuk membedakan repositori resmi dengan repositori milik spammer. Ketika Amazon menargetkan diri sebagai "toko yang menjual segalanya", mereka menghadapi masalah bahwa sebagian besar produknya adalah sampah. GitHub perlu menetapkan identitasnya: apakah ini "repositori untuk semua orang", atau "apakah kode ini bisa dipercaya".
  • Mengeluhkan bahwa masalah supply chain sangat serius. Meski tidak menargetkan rilis npm, ia menggunakan socket.dev untuk memantau proyek. Proyek BrowserBox menggunakan sekitar 800 dependensi, dan 19 di antaranya adalah dependensi tingkat atas. Ia sedang mempertimbangkan cara untuk membuat snapshot semua dependensi ke namespace npm @browserbox agar bisa melacak kerentanan dan menerapkan patch.
  • Menekankan bahwa developer sebaiknya memisahkan setidaknya tiga environment untuk pekerjaan, hobi, dan penggunaan pribadi. Bahkan untuk repositori dan pemilik yang tepercaya, menjalankan kode di sandbox virtual machine adalah langkah yang bijak.
  • Jika mengembangkan SDK dengan banyak unduhan mingguan dalam tim kecil, ia sedang mengevaluasi solusi berbasis snyk, aikido.dev, dan renovate. Belum jelas apakah alat-alat ini benar-benar membantu menyelesaikan masalah, dan menangani banyak false positive seperti yang dialami di snyk adalah hal yang sulit.
  • Mengungkapkan rasa penasaran apakah metode instalasi shell script dengan curl dan sudo akan segera berakhir. Cara ini sangat berkaitan dengan perangkat lunak terinfeksi yang disebut dalam artikel.
  • Di npm, opsi --ignore-scripts dapat digunakan untuk mencegah eksekusi malware.
  • Menyebutkan bahwa kurang dari setahun yang lalu ada repositori yang berisi virus trojan horse.
  • Mengkritik bahwa posting terbaru tentang masalah keamanan berujung pada iklan untuk mendanai startup LLM. Startup-startup ini hanya bisa menyelesaikan sebagian dari celah keamanan, dan membuat kontrak dengan banyak startup dapat menimbulkan masalah biaya dan integrasi.
  • Seiring laporan keamanan yang terus muncul, ia secara bertahap meningkatkan keamanan environment pengembangannya. Ia sedang mencoba VSCode dev containers, GitHub Codespaces, membaca panduan OWASP, serta meninjau paket npm/Python menggunakan socket.dev.