Pendahuluan
Bayangkan Anda seorang pengembang yang bekerja keras membangun aplikasi keren. Anda mengandalkan pipeline Continuous Integration and Continuous Deployment (CI/CD) untuk mengotomatisasi proses pembangunan (build), pengujian, dan penerapan kode Anda. Setiap perubahan yang Anda buat melewati jalur otomatis ini tanpa perlu khawatir. Tapi, bagaimana jika salah satu alat yang Anda gunakan diam-diam dikuasai oleh peretas? Inilah yang terjadi dengan tj-actions/changed-files, sebuah GitHub Action yang dikompromikan dalam serangan rantai pasokan.
Serangan ini mencerminkan ancaman nyata yang dihadapi oleh pengembang dan perusahaan di seluruh dunia. Mari kita kupas tuntas bagaimana serangan ini terjadi, dampaknya, serta bagaimana kita bisa melindungi diri dari ancaman serupa di masa depan.
Apa Itu GitHub Actions dan Mengapa Itu Penting?
Sebelum masuk ke dalam serangan, mari pahami dulu apa itu GitHub Actions. Ini adalah fitur GitHub yang memungkinkan otomatisasi dalam pengembangan perangkat lunak. Dengan GitHub Actions, kita bisa menjalankan skrip otomatis setiap kali ada perubahan dalam kode, misalnya untuk:
- Memeriksa kesalahan dalam kode sebelum digabungkan (merge)
- Menguji fitur baru secara otomatis
- Menerapkan perubahan ke server produksi tanpa campur tangan manusia
Salah satu Action populer yang digunakan oleh lebih dari 23.000 proyek adalah tj-actions/changed-files. Action ini membantu pengembang mendeteksi file mana yang telah diubah dalam sebuah commit, sehingga mereka bisa menyesuaikan pengujian atau proses build berdasarkan perubahan tersebut.
Sayangnya, alat yang seharusnya membantu pengembang ini malah berubah menjadi ancaman.
Bagaimana Serangan tj-actions/changed-files Terjadi?
Pada 12 Maret 2025, komunitas pengembang dikejutkan dengan penemuan bahwa tj-actions/changed-files telah dikompromikan oleh peretas. Penyerang menyusup ke dalam kode Action ini dan menyisipkan skrip berbahaya yang mampu mencuri kredensial sensitif dari sistem CI/CD.
- Penyusupan Kode Berbahaya
Peretas menyuntikkan kode JavaScript yang disamarkan dalam bentuk base64-encoded untuk menghindari deteksi. Begitu Action ini dijalankan, kode tersebut akan mengunduh dan menjalankan skrip Python tambahan.
- Eksekusi Skrip Python
Skrip yang diunduh dari GitHub Gist ini bernama memdump.py dan bertugas membaca memori sistem CI/CD.
- Pencurian Kredensial
Skrip ini mencari AWS Access Keys, GitHub Personal Access Tokens, NPM tokens, hingga kunci SSH pribadi yang tersimpan dalam memori. Data yang berhasil dicuri dikodekan dalam base64 dan dicetak dalam log yang bisa diakses oleh penyerang.
Dengan cara ini, peretas bisa mendapatkan akses ke repositori, server, atau layanan cloud yang digunakan dalam pipeline CI/CD target.
Dampak dari Serangan Ini
Serangan terhadap tj-actions/changed-files bisa memiliki konsekuensi yang sangat serius:
- Eksposur Kredensial Sensitif: Jika pipeline CI/CD menyimpan kunci akses ke AWS, GitHub, atau layanan lain, maka kredensial ini bisa jatuh ke tangan peretas.
- Potensi Penyusupan Lebih Lanjut: Dengan kredensial yang dicuri, peretas bisa mengakses kode sumber, menyisipkan malware, atau bahkan menghapus proyek.
- Dampak pada Open Source: Banyak proyek open source mengandalkan GitHub Actions. Serangan ini bisa menimbulkan efek domino jika peretas menggunakan kredensial curian untuk menyusup ke proyek lain.
Bagaimana Cara Melindungi Diri dari Serangan Serupa?
Serangan ini mengajarkan kita bahwa meskipun CI/CD membantu mempercepat pengembangan, kita tidak bisa mengabaikan faktor keamanan. Berikut beberapa langkah yang bisa kita ambil:
- Audit Pipeline CI/CD Secara Berkala
Periksa log dari pipeline CI/CD Anda untuk melihat apakah ada aktivitas mencurigakan, terutama yang berkaitan dengan base64 encoding atau koneksi ke sumber eksternal yang tidak dikenal.
- Gunakan Hash Commit untuk Pinning Actions
Daripada menggunakan Action langsung dari versi tag (misalnya, tj-actions/changed-files@v35), gunakan SHA commit spesifik untuk memastikan tidak ada perubahan mendadak.
Contoh yang lebih aman:
– uses: tj-actions/changed-files@0e58ed8671d6b60d0890c21b07f8835ace038e67
- Gunakan Action yang Lebih Aman
Hentikan penggunaan tj-actions/changed-files dan gunakan alternatif yang lebih aman, seperti:
– uses: step-security/changed-files@v1
Action ini dikembangkan dengan fokus pada keamanan dan telah diaudit dengan baik.
- Rotasi Kredensial Secara Berkala
Jika Anda menduga kredensial telah bocor, segera lakukan rotasi kunci akses untuk mencegah penyalahgunaan.
- Gunakan Pemindaian Keamanan Runtime
Solusi seperti SentinelOne dapat membantu mendeteksi ancaman keamanan dalam pipeline CI/CD dengan cara:
- Menggunakan AI untuk mendeteksi anomali dalam proses build
- Memantau eksekusi skrip dalam runtime dan memblokir akses yang mencurigakan
- Memberikan visibilitas penuh terhadap proses dalam CI/CD
Kesimpulan: Keamanan CI/CD Harus Jadi Prioritas
Insiden tj-actions/changed-files adalah pengingat keras bahwa keamanan dalam pengembangan perangkat lunak tidak bisa dianggap remeh. Bahkan alat yang paling dipercaya pun bisa menjadi vektor serangan. Untuk mencegah kejadian serupa, kita harus:
- Mengamankan pipeline CI/CD dengan audit berkala dan pemindaian runtime.
- Memvalidasi dan membatasi penggunaan Action pihak ketiga di dalam workflow kita.
- Menjaga kredensial tetap aman dengan rotasi kunci secara rutin.
- Bersikap proaktif dalam keamanan dengan mengadopsi solusi berbasis AI yang dapat mendeteksi dan menghentikan ancaman sejak awal.
Dengan langkah-langkah ini, kita bisa membangun lingkungan pengembangan yang lebih aman dan tangguh terhadap serangan rantai pasokan.
🚀 Keamanan bukan hanya pilihan, tapi keharusan! Tetap waspada, lindungi kode Anda, dan pastikan CI/CD Anda tetap aman! Percayakan Keamanan Siber Anda kepada SentinelOne untuk mendapatkan pertahanan yang maksimal, Diskusikan segera kebutuhan keamanan Siber Anda dengan iLogo Indonesia sebagai Mitra terpercaya yang siap mengintegrasikannya. Hubungi Kami Sekarang atau Anda dapat mengunjungi https://sentinelone.ilogoindonesia.id untuk informasi lebih detailnya
