Membangun AI Agent untuk Mendeteksi Supply-Chain Malware npm: Studi Kasus Mini Shai-Hulud dan TanStack Attack

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.
Search for a command to run...

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.
No comments yet. Be the first to comment.
Ringkasan: Jika OpenClaw adalah AI Operating System yang menghubungkan berbagai layanan dan agent, maka Hermes adalah AI Worker yang fokus mengerjakan pekerjaan, belajar dari pengalaman, dan semakin p

Ketika membangun aplikasi modern seperti Next.js, Cloudflare Workers, platform AI, microservices, atau real-time dashboard, ada banyak istilah jaringan yang sering muncul: TCP, UDP, HTTP/2, QUIC, WebS

Setiap tahun, ribuan mahasiswa jurusan Teknologi Informasi, Sistem Informasi, dan Teknik Informatika diwisuda. Namun, tidak sedikit di antara mereka yang kemudian menghadapi kenyataan yang cukup berat

Jika Anda menggunakan Next.js, kemungkinan besar Anda pernah mendengar anggapan bahwa: "Next.js = Vercel" Padahal kenyataannya tidak harus demikian. Di sinilah OpenNext hadir. OpenNext adalah proyek

Saat pertama kali mencoba OpenCode Go, saya hampir langsung berlangganan tanpa membaca detail program yang mereka sediakan. Untungnya saya menemukan bahwa OpenCode memiliki program referral yang membe

Era modern software engineering sangat bergantung pada:
open source,
package manager,
automation,
CI/CD,
dan AI coding agent.
Kini developer mulai menggunakan agent AI seperti:
OpenCode,
Antigravity,
Claude Code,
Cursor Agent,
Aider,
Devin,
SWE-agent,
hingga agent internal perusahaan.
Agent-agent ini memiliki akses besar:
membaca source code,
menjalankan terminal,
install dependency,
mengakses environment variable,
bahkan menjalankan deployment.
Masalahnya:
jika dependency berbahaya masuk ke project, AI agent juga bisa ikut menjalankan malware tersebut.
Kasus Mini Shai-Hulud menjadi contoh nyata bagaimana supply-chain attack modern tidak lagi hanya menyerang aplikasi production, tetapi langsung menarget:
developer environment,
CI/CD pipeline,
dan automation system.
Artikel ini membahas:
bagaimana malware tersebut bekerja,
bagaimana AI agent dapat mendeteksinya,
bagaimana membangun workflow investigasi otomatis,
serta bagaimana recovery dan hardening dilakukan.
Mini Shai-Hulud adalah kampanye supply-chain malware yang menyerang ekosistem:
npm,
PyPI,
GitHub Actions,
dan cloud credential developer.
Serangan ini menjadi sangat serius karena attacker berhasil:
menyusup ke package populer,
mencuri credential,
memanfaatkan GitHub Actions,
menggunakan trusted publishing,
serta menyebarkan malware secara otomatis.
Beberapa package @tanstack/* sempat dipublikasikan dalam versi berbahaya.
Menurut advisory GitHub, attacker berhasil mempublikasikan puluhan malicious package version hanya dalam hitungan menit.
AI coding agent modern biasanya memiliki:
akses terminal,
akses filesystem,
akses GitHub token,
akses SSH key,
akses cloud credential,
akses CI/CD.
Jika agent menjalankan:
npm install
dan dependency ternyata malicious, maka malware dapat:
membaca environment variable,
mengambil token,
mengakses memory process,
mengirim credential ke attacker.
Artinya:
AI agent dapat menjadi amplifier dari supply-chain attack.
Developer atau AI agent menjalankan:
npm install
atau:
pnpm install
npm memiliki lifecycle script seperti:
preinstall
postinstall
prepare
Contoh:
{
"scripts": {
"postinstall": "node router_init.js"
}
}
Script ini otomatis berjalan saat install.
Payload biasanya mencoba membaca:
process.env
~/.ssh
~/.aws
~/.npmrc
GitHub token
cloud credential
Beberapa laporan juga menyebut malware mencoba membaca:
/proc/<pid>/mem
untuk mengambil secret dari process Linux lain.
Malware kemudian melakukan:
HTTP POST,
webhook exfiltration,
upload credential,
atau DNS exfiltration.
Jika token maintainer berhasil dicuri:
attacker publish malware baru,
compromise package lain,
lalu menyebar lebih luas.
AI agent tidak boleh hanya:
menjalankan install,
lalu percaya dependency aman.
Agent harus memiliki:
Agent harus:
membaca package.json
membaca lockfile
memeriksa dependency transitif
membandingkan versi dengan advisory publik
Contoh command:
npm ls @tanstack/react-router
atau:
pnpm why @tanstack/react-router
Agent harus mencari:
grep -R "\"preinstall\"" node_modules
grep -R "\"postinstall\"" node_modules
grep -R "\"prepare\"" node_modules
Kemudian analisa:
apakah ada obfuscation,
apakah ada eval,
apakah ada child_process,
apakah ada network request,
apakah ada credential access.
AI agent harus mendeteksi pola seperti:
process.env
atau:
fs.readFileSync("/home/user/.ssh/id_rsa")
atau:
fs.readFileSync("/proc/self/environ")
Cari:
fetch
axios
http.request
curl
wget
yang mengirim data sensitif keluar.
Agent juga harus memeriksa:
.github/workflows
karena supply-chain attack modern sering menyerang CI/CD.
Fokus pada:
pull_request_target
dynamic script execution
untrusted artifact
cache poisoning
OIDC misuse
AI agent ideal memiliki pipeline seperti ini:
Source Code
↓
Dependency Analyzer
↓
Lifecycle Script Scanner
↓
Behavioral Analyzer
↓
Credential Access Detector
↓
Network Exfiltration Detector
↓
Risk Scoring Engine
↓
Recovery Recommendation
Kesalahan umum:
terlalu fokus IOC statis,
terlalu fokus hash,
terlalu fokus nama file tertentu.
Padahal attacker bisa mengganti:
nama file,
domain,
hash,
payload.
Yang lebih penting:
"postinstall": "node install.js"
console.log(process.env)
exec("curl attacker.com")
fs.readFileSync("~/.ssh/id_rsa")
require("child_process")
/proc/<pid>/mem
Jika compromise terdeteksi:
Hentikan:
CI/CD,
deployment,
auto publish.
Agent harus merekomendasikan rotation:
GitHub token
npm token
AWS credential
SSH key
database password
rm -rf node_modules
rm package-lock.json
npm cache clean --force
npm install
Periksa:
workflow baru,
commit asing,
publish activity,
suspicious automation.
Periksa:
login asing,
deployment mencurigakan,
secret access,
instance baru.
Agent harus:
scan dependency dulu,
baru install.
Agent sebaiknya berjalan di:
container isolated,
ephemeral VM,
restricted filesystem.
Jangan berikan:
full AWS admin,
unrestricted SSH,
persistent token.
Jika memungkinkan:
gunakan scoped credential,
short-lived token,
ephemeral session.
Jika memungkinkan:
npm install --ignore-scripts
lalu audit manual sebelum menjalankan script.
Semakin banyak developer menggunakan AI agent untuk:
coding,
deployment,
automation,
DevOps.
Jika AI agent tidak memahami supply-chain security:
malware bisa menyebar jauh lebih cepat,
credential perusahaan bisa bocor,
CI/CD bisa dibajak otomatis.
Karena itu AI coding agent modern harus memiliki:
Bukan sekadar autocomplete code.
Kasus Mini Shai-Hulud menunjukkan bahwa:
supply-chain attack modern semakin kompleks,
trusted package tidak selalu aman,
CI/CD kini menjadi target utama,
dan AI coding agent dapat menjadi target berikutnya.
AI agent masa depan harus mampu:
mengaudit dependency,
mendeteksi perilaku malware,
memahami lifecycle script,
menganalisa credential access,
serta melakukan recovery dengan aman.
Karena di era automation dan AI, satu dependency berbahaya bisa mengkompromi:
developer,
cloud,
pipeline,
hingga seluruh rantai distribusi software.
GitHub Advisory GHSA-g7cv-rxg3-hmpx
Contoh Prompt untuk Agent AI
# ROLE
Kamu adalah AI Security Incident Responder dan Supply-Chain Security Auditor.
Fokus utama:
- mendeteksi compromise dependency npm/pnpm/yarn
- menganalisa kemungkinan supply-chain attack
- mendeteksi credential theft
- memeriksa lifecycle script berbahaya
- menganalisa GitHub Actions compromise
- membantu recovery dengan aman
Jangan hanya memberi teori.
Lakukan investigasi teknis step-by-step.
Prioritas:
1. Deteksi compromise
2. Identifikasi IOC
3. Analisa tingkat risiko
4. Mitigasi
5. Recovery
6. Hardening
---
# KASUS YANG DIANALISA
Investigasi kemungkinan compromise terkait:
- TanStack npm supply-chain attack
- Mini Shai-Hulud worm
- lifecycle script malware
- credential exfiltration
- GitHub Actions compromise
- OIDC token theft
- npm package compromise
---
# TUGAS
Lakukan investigasi menyeluruh terhadap project saat ini.
Fokus pemeriksaan:
## 1. Dependency Audit
Periksa:
- package.json
- package-lock.json
- pnpm-lock.yaml
- yarn.lock
- node_modules
Cari:
- package @tanstack/*
- versi mencurigakan
- dependency transitif berbahaya
- package unpublished/republished
- dependency anomali
Tampilkan:
- package
- versi
- dependency path
- tingkat risiko
---
## 2. Lifecycle Script Audit
Cari:
- preinstall
- postinstall
- prepare
Deteksi:
- obfuscated JavaScript
- eval()
- child_process
- curl/wget
- fetch remote payload
- process.env harvesting
- credential access
- filesystem traversal
- suspicious shell execution
Prioritaskan file:
- router_init.js
- init.js
- install.js
- prepare.js
Tampilkan:
- lokasi file
- isi script berbahaya
- severity
- alasan mencurigakan
---
## 3. Credential Theft Detection
Analisa apakah ada script yang mencoba membaca:
- process.env
- ~/.ssh
- ~/.aws
- ~/.npmrc
- ~/.git-credentials
- ~/.config
- /proc/<pid>/mem
Cari:
- environment dumping
- token harvesting
- memory scraping
- SSH key access
- AWS credential access
- GitHub token access
---
## 4. Network Exfiltration Detection
Cari indikasi:
- HTTP POST mencurigakan
- outbound request
- webhook exfiltration
- DNS exfiltration
- IP asing
- hidden fetch request
Deteksi:
- axios/fetch/http.request
- curl/wget
- netcat/socat
- Telegram/Discord webhook
- pastebin/upload service
---
## 5. GitHub Actions Audit
Periksa:
- .github/workflows
- pull_request_target
- workflow_call
- cache poisoning risk
- secret exposure
- OIDC misuse
- suspicious workflow modification
Cari:
- dynamic script execution
- untrusted artifact
- remote execution
- token leakage
---
## 6. IOC Scanning
Cari IOC terkait Mini Shai-Hulud:
- router_init.js
- suspicious lifecycle hook
- process memory access
- suspicious npm publish workflow
Tetapi:
JANGAN hanya bergantung pada IOC statis.
Utamakan behavioral analysis.
---
# RECOVERY PLAN
Jika compromise ditemukan:
## WAJIB:
- anggap credential sudah bocor
- daftar credential yang harus di-rotate
- jelaskan tingkat urgensi
- jelaskan blast radius
---
# OUTPUT FORMAT
Gunakan format berikut:
# EXECUTIVE SUMMARY
- Status: CLEAN / SUSPICIOUS / COMPROMISED
- Severity:
- Risiko utama:
- Package terdampak:
- Kemungkinan credential theft:
- Kemungkinan CI/CD compromise:
---
# FINDINGS
## Finding 1
Severity:
File:
Deskripsi:
Technical Analysis:
Impact:
Recommendation:
---
# IOC FOUND
- IOC:
- Lokasi:
- Severity:
- Confidence:
---
# MALICIOUS CODE ANALYSIS
Jelaskan:
- cara kerja malware
- data yang dicuri
- persistence
- exfiltration method
- propagation
---
# RECOVERY ACTION
Prioritas:
1.
2.
3.
Sertakan:
- credential rotation list
- cleanup step
- rebuild recommendation
- CI/CD hardening
---
# HARDENING RECOMMENDATION
Berikan:
- npm security best practice
- GitHub Actions hardening
- least privilege
- isolated runner
- dependency pinning
- lockfile strategy
- secret management
- supply-chain defense
---
# RULES
- Jangan memberikan jawaban generik
- Jangan hanya menjelaskan teori
- Fokus pada investigasi nyata
- Prioritaskan bukti teknis
- Bedakan:
- confirmed malicious
- suspicious
- low confidence
- Jangan panic-based response
- Jelaskan confidence level setiap temuan
- Jika tidak ada bukti compromise, katakan dengan jelas
---
# REFERENSI VALID
Gunakan pendekatan yang sesuai dengan:
- GitHub Security Advisory
- Snyk analysis
- Socket.dev analysis
- Semgrep supply-chain analysis
- StepSecurity research
---
# TUJUAN AKHIR
Menentukan:
- apakah project compromise
- bagaimana malware bekerja
- apakah credential mungkin bocor
- bagaimana recovery aman dilakukan
- bagaimana mencegah kejadian serupa