FA
Faris Aksa

Dipublikasikan 21 Mei 2026

Cara Melindungi Repo dari Serangan VSCode Extension Berbahaya

Baru-baru ini GitHub mengonfirmasi breach yang mengenai lebih dari 3,800 repository akibat ekstensi VSCode berbahaya. Supply chain attack ini menunjukkan bahwa code editor yang kita pakai sehari-hari bisa jadi pintu masuk utama bagi attacker. Jika kamu developer yang aktif menggunakan VSCode dengan berbagai ekstensi, sekarang saatnya audit security posture mu.

Tutorial ini akan membahas cara mendeteksi ekstensi mencurigakan, mengaudit permission, dan membangun defense layer untuk melindungi codebase mu dari serangan serupa.

Step 1: Audit Ekstensi VSCode yang Terinstall

Langkah pertama adalah mengetahui apa saja yang sudah terinstall di VSCode mu. Buka Extensions view (Ctrl+Shift+X atau Cmd+Shift+X) dan periksa setiap ekstensi yang aktif. Perhatikan hal berikut:

  • Ekstensi dari publisher yang tidak dikenal atau tidak diverifikasi
  • Ekstensi dengan nama mirip popular extension (typosquatting)
  • Ekstensi yang meminta permission lebih luas dari fungsinya
  • Ekstensi yang tidak update dalam waktu lama tiba-tiba release baru

GitHub breach terbaru terjadi karena attacker berhasil menyusupkan malicious code ke dalam ekstensi yang sudah ada di VSCode Marketplace. Perilaku ini mirip dengan serangan software supply chain yang menargetkan package manager seperti npm.

Source: Bleeping Computer - GitHub Confirms Breach

Step 2: Review Permission dan Access Token

Ekstensi VSCode berjalan dengan privilege yang sama dengan user yang membukanya. Artinya, ekstensi bisa membaca file, mengeksekusi command, bahkan mengakses environment variables termasuk API keys dan access tokens.

Lakukan review pada file settings.json VSCode mu. Periksa apakah ada konfigurasi yang mengizinkan ekstensi tertentu mengakses terminal, file system, atau remote repositories tanpa batasan.

// Periksa setting berikut di settings.json
"extensions.autoUpdate": false,  // Disable auto update untuk kontrol manual
"extensions.ignoreRecommendations": true

Selain itu, review semua Personal Access Token (PAT) yang terdaftar di akun GitHub mu. Hapus token yang tidak digunakan atau yang scope nya terlalu luas. Gunakan fine-grained token dengan permission minimal yang diperlukan.

Source: GitHub Security Log Documentation

Step 3: Gunakan VSCode Workspace Trust

VSCode memiliki fitur Workspace Trust yang sering diabaikan developer. Fitur ini membatasi ekstensi apa saja yang bisa berjalan ketika kamu membuka project dari sumber tidak dikenal.

Ketika membuka repository baru, VSCode akan menanyakan apakah kamu mempercayai folder tersebut. Pilih Restricted Mode untuk folder yang belum kamu audit. Dalam mode ini, banyak ekstensi akan dinonaktifkan secara otomatis, mengurangi attack surface.

// Aktifkan Workspace Trust di settings.json
"security.workspace.trust.enabled": true,
"security.workspace.trust.startupPrompt": "always"

Jangan asal klik "Yes, I trust the authors" hanya karena ingin cepat coding. Keputusan itu bisa membuka akses penuh ekstensi ke seluruh workspace mu.

Step 4: Implementasi Dependabot dan Secret Scanning

Di level repository, aktifkan GitHub security features untuk deteksi dini. Dependabot alerts akan memberitahu jika dependency mu mengandung vulnerability yang diketahui. Secret scanning akan mendeteksi jika ada credential yang tidak sengaja di-commit ke repository.

Aktifkan juga code scanning dengan CodeQL untuk menganalisis code pattern yang mencurigakan. Meskipun code scanning tidak langsung mendetekkan malicious extension, ia bisa membantu menemukan backdoor yang mungkin disisipkan melalui compromised development environment.

# Contoh konfigurasi Dependabot di .github/dependabot.yml
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"

Source: GitHub - Securing Your Repository

Step 5: Isolate Development Environment dengan Devcontainer

Salah satu defense terkuat adalah isolation. Gunakan VSCode Devcontainers atau Docker untuk mengembangkan dalam environment yang terpisah dari host system mu. Jika ekstensi berbahaya berhasil dieksekusi, damage nya terbatas dalam container.

// Contoh devcontainer.json sederhana
{
  "name": "Secure Dev Environment",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {},
  "postCreateCommand": "npm install",
  "remoteUser": "vscode"
}

Dengan Devcontainer, kamu juga bisa mengontrol ekstensi mana saja yang diizinkan berjalan dalam container tersebut melalui konfigurasi devcontainer.json.

Step 6: Monitoring dan Incident Response

Terakhir, setup monitoring untuk aktivitas mencurigakan di akun GitHub dan repository. Periksa security log secara berkala. Jika kamu menemukan commit atau pull request yang tidak kamu buat, segera revoke access token dan rotasi credential.

Perhatikan juga network activity dari VSCode. Gunakan firewall aplikasi seperti Little Snitch (macOS) atau GlassWire (Windows) untuk memonitor koneksi keluar dari VSCode dan ekstensi nya. Aktivitas ke IP atau domain mencurigakan adalah red flag yang harus diinvestigasi.

Kesimpulan

Serangan melalui ekstensi VSCode bukan lagi teori. Dengan 3,800+ repository yang terdampak, supply chain security di development environment harus jadi prioritas utama. Mulai dari audit ekstensi, implementasi Workspace Trust, hingga development environment isolation, setiap layer defense penting untuk melindungi codebase dan credential mu.

Tetap vigilant, selalu review permission, dan jangan install ekstensi dari sumber tidak terpercaya meskipun review nya bagus. Source utama tutorial ini merujuk pada laporan Bleeping Computer dan best practices dari GitHub Code Security.