- vet adalah alat CLI yang mengubah eksekusi skrip instalasi jarak jauh dengan metode
curl | bash menjadi proses yang lebih aman: "unduh → tinjau → setujui eksekusi"
- Menyediakan lapisan pertahanan bertahap seperti pemeriksaan riwayat perubahan (diff), lint berbasis shellcheck (analisis statis), dan persetujuan manual (jalankan setelah diperiksa)
- Dengan satu perintah saja (
vet https://example.com/install.sh), sebelum menjalankan skrip jarak jauh Anda dapat secara otomatis memeriksa potensi risiko, manipulasi, typo, dan kerentanan
- Untuk instalasi, alat ini juga mendukung baik metode "unduh lalu tinjau" maupun metode
curl | sh, dan kode instalasi vet sendiri juga bisa diperiksa langsung
- Ini adalah solusi andal yang memungkinkan pencegahan risiko keamanan di lingkungan pengembangan/operasional sekaligus mempertahankan otomasi dan kemudahan
Masalah: Menjalankan skrip instalasi jarak jauh secara sembarangan
- Banyak proyek open source dan alat menyarankan metode instalasi skrip jarak jauh seperti
curl -sSL https://example.com/install.sh | bash
- Metode ini memiliki risiko keamanan kritis seperti eksekusi kode berbahaya atau eksekusi file parsial akibat manipulasi skrip, peretasan server, kesalahan jaringan, dan sebagainya
Solusi vet: Eksekusi interaktif yang aman
Cara instalasi
Metode aman yang direkomendasikan (unduh → tinjau → jalankan)
- 1. Unduh skrip instalasi:
- 2. Tinjau langsung kode skrip yang sudah diunduh (periksa dengan less, vim, dll.):
less install_vet.sh
- 3. Jalankan sendiri setelah ditinjau:
sh install_vet.sh
Instalasi cepat (one-liner berbasis kepercayaan)
Fitur dan keunggulan vet
- Deteksi perubahan (diff): Bisa memeriksa bagian yang baru berubah dengan membandingkan terhadap skrip yang sebelumnya dijalankan
- Lint otomatis (integrasi shellcheck): Mendiagnosis kerentanan skrip shell, typo, dan kode mencurigakan secara otomatis
- Persetujuan eksekusi eksplisit (Confirm): Mengontrol langsung eksekusi nyata dengan satu klik/input
- Penyimpanan skrip otomatis dan manajemen riwayat: Skrip instalasi yang sering digunakan pun bisa dilacak dengan aman
- Juga menjamin instalasi/pembaruan internal yang aman
Kesimpulan
- vet adalah alternatif aman untuk
curl | bash yang dibutuhkan baik oleh pengembang maupun operator, mewujudkan otomasi instalasi sekaligus keamanan
- "Jangan langsung dijalankan, verifikasi dulu dengan vet lalu eksekusi!"
1 komentar
Komentar Hacker News
# shellcheck disable=ke dalam skrip berbahaya# shellcheck disable=yang mencurigakan. Perubahan itu sendiri adalah sinyal bahayainstall.shbisa dilihat langsung.netrc, variabel lingkunganVET_TOKEN, dan nantinya integrasi dengan secret manager seperti HashiCorp Vault juga sudah masuk roadmap. Jika tertarik, saya ingin mendengar pendapat Anda di GitHub issue. Terima kasih atas masukannyaless, atau pager dengan highlighting yang lebih bagus jikabatterpasang), dan tidak dibuka di editor agar tidak terjadi perubahan tak sengaja. Jika ShellCheck mendeteksi masalah, hasilnya langsung ditampilkan dengan warna di terminal. Setelah itu pengguna akan ditanya secara langsung apakah ingin tetap melanjutkan review dalam bentuk [y/N]. Contohnya: Terima kasih, sarannya baguscurl | bash. Di Windows ada fitur yang otomatis memindai file saat pengguna hendak memasangnyacurl | bashitu mengkhawatirkan, dan merasa perlu ada alat yang menampilkan diff saat skrip berubah, menjalankan shellcheck, dan meminta izin eksplisit dari pengguna. Karena itu saya membuat vet. Untuk instalasinya pun saya menerapkan prinsip yang sama. Saya sangat menganjurkan agar skrip instalasinya dibaca dulu. Masukan sangat diterima. Reponya ada di https://github.com/vet-run/vetwget -qO- https://getvet.sh, server mengembalikantext/html). Saya justru ingin menyarankan agar orang mengambil langsung install.sh. Menanggapi permintaan masukan, saya bagikan tip bash seperti ini: Cara ini meminta izin setiap kali bash hendak menjalankan sesuatu. Untuk skrip panjang ini bisa merepotkan, jadi bisa disesuaikan, misalnya dengan whitelist perintah yang dianggap aman atau opsi "remember". Terkait sudo, malware bisa memakai trik menjalankan sudo lebih dulu pada perintah yang tampak tidak berbahaya untuk menyimpan kredensial di cache, lalu menjalankan lagi perintah sudo lain tanpa peringatan apa pun. Lebih aman menjalankansudo -kuntuk menghapus cache sesi sebelum mengeksekusi program yang tidak dikenal