3 poin oleh GN⁺ 2025-03-16 | 2 komentar | Bagikan ke WhatsApp
  • GitHub Action populer yang digunakan untuk melacak perubahan di tiap branch ini mengalami upaya kebocoran secret CI/CD melalui commit yang telah diretas
  • 23.000 repo terdampak, dan GitHub telah menghapus action ini sehingga tidak lagi bisa digunakan
  • Perlu diganti ke action alternatif dan karena ada kemungkinan secret terekspos di log workflow publik, perlu diperiksa lalu wajib melakukan rotasi key
  • Harden-Runner dari StepSecurity yang menemukannya, dan mereka membagikan action alternatif yang diperkuat keamanannya, step-security/changed-files, secara gratis

Ringkasan insiden

  • tj-actions/changed-files digunakan di lebih dari 23.000 repositori dan telah diretas
    • Penyerang memodifikasi kode action dan mengarahkan ulang tag versi ke commit berbahaya
    • Akibatnya, secret CI/CD tercetak di log build GitHub Actions
  • Ada kemungkinan secret terekspos di log workflow publik
  • Masalah ini ditemukan setelah Harden-Runner mendeteksi endpoint yang tidak terduga
  • Skrip Python berbahaya membuat secret di-dump dari proses Runner Worker
  • Semua tag diarahkan ke hash commit berbahaya yang sama (0e58ed8671d6b60d0890c21b07f8835ace038e67)

Tindakan respons GitHub

  • GitHub telah menghapus action tj-actions/changed-files dan menghentikan penggunaannya
  • CVE resminya adalah CVE-2025-30066

Cara pemulihan

  • 1. Gunakan action pengganti yang aman dari StepSecurity

    • Ganti action tj-actions/changed-files dengan step-security/changed-files@v45
  • 2. Hapus semua referensi tj-actions/changed-files

    • Cari lalu hapus referensi tj-actions/changed-files di codebase:
      git grep -l "tj-actions/changed-files"  
      
  • 3. Audit log eksekusi workflow GitHub Actions

    • Perlu memeriksa apakah ada secret yang bocor di log eksekusi terbaru
    • Jika ditemukan secret yang bocor, segera lakukan rotasi (reset)
  • 4. Atur allowlist GitHub Actions

  • Konfigurasikan allowlist agar hanya GitHub Actions tepercaya yang bisa dijalankan:
    • Dapat diatur di pengaturan GitHub:
      • Settings → Actions → Allow select actions
  • 5. Atur StepSecurity Harden-Runner

    • Harden-Runner dapat dikonfigurasi untuk memantau traffic jaringan dan eksekusi workflow

Langkah berikutnya

  • Pelaporan masalah ke GitHub telah selesai → GitHub issue: #2463
  • Repositori tj-actions/changed-files telah dihapus
  • Sudah terdaftar secara resmi sebagai CVE-2025-30066
  • Masalah keamanan serupa dapat dideteksi dan dicegah melalui StepSecurity Harden-Runner
  • Disarankan mengonfigurasi Harden-Runner untuk memperkuat status keamanan dan melakukan pemantauan real-time

2 komentar

 
dl57934 2025-03-16

Tadi malam sempat tidak berfungsi, tapi sekarang sepertinya sudah normal lagi.

 
GN⁺ 2025-03-16
Komentar Hacker News
  • Penulis dan maintainer Renovate menjelaskan skenario serangannya

    • Penyerang memiliki izin tulis ke repositori tj-actions/changed-files
    • Penyerang memalsukan commit Renovate untuk menyamarkan commit terbaru
    • Pemalsuan ini bukan untuk menipu PR, melainkan hanya untuk menimbulkan kebingungan
    • Commit tersebut ditandai sebagai Unverified, dan kebanyakan orang tidak mewajibkan hanya commit yang ditandatangani
    • Renovate Bot yang asli mengajukan PR untuk memperbarui dependensi
    • Sebagian orang mengaktifkan auto-merge, tetapi ini bukan pengaturan default
    • Insiden ini mengingatkan bahwa banyak orang keliru mengira git tag bersifat tidak dapat diubah
  • Dalam beberapa tahun terakhir, kepercayaan terhadap dependensi dan ekstensi pihak ketiga terus menurun

    • Jika sebuah paket npm punya terlalu banyak dependensi, saya tidak akan memasangnya
    • Saya tidak memasang ekstensi vscode atau chrome
    • Sering kali malware ditambahkan atau lisensinya diubah
    • Melihat pohon dependensi eslint membuat orang bertanya-tanya apakah semuanya benar-benar bisa dipercaya
  • Repositori sudah kembali online dan pengembang memberikan penjelasan

    • Serangan berasal dari token PAT akun @tj-actions-bot
    • Keamanan akun telah diperkuat, dan GitHub membatalkan PAT yang terkompromi
  • Di Clickhouse, github_events diselidiki untuk mengidentifikasi akun yang digunakan dalam serangan

    • Akun "2ft2dKo28UazTZ", "mmvojwip" dicurigai
  • Mengejutkan bahwa cara menjalankan CI/CD adalah dengan mencantumkan repositori GitHub acak

    • Masalah ini menjadi lebih parah karena meningkatnya penggunaan LLMs
    • Pekerjaan penting seharusnya dijalankan secara manual
  • Co-founder StepSecurity menjelaskan bagaimana insiden keamanan itu terdeteksi

    • Harden-Runner mendeteksi anomali dengan memantau panggilan jaringan dari workflow GitHub Actions
  • Masalahnya adalah cara penggunaan default GitHub Actions memakai git tag yang tidak bersifat immutable

    • Algoritma hashing SHA-1 bisa menimbulkan collision, sehingga dukungan SHA-256 diperlukan
  • GitHub Actions yang immutable akan segera diperkenalkan

    • Fork Actions atau gunakan hash commit
  • Proyek maven-lockfile menjelaskan PR yang di-auto-merge

    • Renovate Bot yang asli melakukan auto-merge pada commit dari Renovate Bot palsu
  • GitHub Actions seharusnya menggunakan lockfile untuk dependensi

    • Notasi Semver adalah solusi yang baik untuk menyelesaikan masalah ini