Pembantu pengekodan AI anda mungkin sedang menulis semula kunci SSH anda tanpa anda sedari.
Wiz Research mendedahkan kelemahan “GhostApproval” yang membolehkan pautan simbolik (symlink) project_settings.json yang berniat jahat merujuk kepada kunci peribadi, dan dialog kelulusan bagi setiap tindakan yang muncul hanya menunjukkan nama symlink tersebut. Luluskan dialog itu, dan anda baru sahaja memberikan akses tanpa sekatan kepada pembantu tersebut untuk mendapatkan kredensial anda.
Bagaimana eksploitasi ini berfungsi
- Penyerang menambah fail bernama project_settings.json ke dalam repositori.
- Fail tersebut bukan fail JSON biasa; ia adalah pautan simbolik (symlink) yang menghalakan ke kunci peribadi ~/.ssh/id_rsa (atau setaraf dengannya) milik pengguna.
- Apabila pembangun meminta pembantu AI untuk “set up the workspace,” pembantu tersebut akan mengikut symlink tersebut dan bersedia untuk menulis ke fail kunci SSH yang sebenar.
- Dialog kelulusan yang muncul hanya menyenaraikan project_settings.json. Ia tidak menyelesaikan (resolve) symlink tersebut untuk menunjukkan laluan sebenar pada cakera.
- Klik “Approve” memberikan kebenaran kepada pembantu untuk mengubah suai kunci peribadi, yang secara berkesan menjejaskan identiti pengguna pada setiap perkhidmatan yang mempercayai kunci tersebut.
Pepijat ini muncul dalam enam alatan yang digunakan secara meluas: Amazon Q Developer, Claude Code, Augment, Cursor, Google Antigravity dan Windsurf. Kesemuanya memaparkan dialog yang mengelirukan yang sama kerana UI memaparkan nama yang diterimanya, bukannya sasaran yang telah diselesaikan.
Mengapa dialog bagi setiap tindakan tidak mencukupi
Kelulusan bagi setiap tindakan mengandaikan manusia boleh menyemak setiap operasi yang dilakukan oleh AI. Dalam praktiknya, ia memaksa anda untuk membuat penilaian yang sempurna setiap beberapa saat—sesuatu yang tidak dapat dilakukan oleh sesiapa pun lebih pantas daripada tindakan ejen tersebut.
Apa yang dilakukan oleh vendor – dan mengapa ia penting
- Amazon, Google dan Cursor telah pun memperbaikinya.
- Anthropic (pembuat Claude Code) menyatakan bahawa pengguna mesti meluluskan hanya apa yang mereka fahami. Ini mengabaikan beban kognitif untuk mengesan symlink dan mengandaikan pengguna boleh menyemak setiap laluan fail secara serta-merta—satu jangkaan yang tidak realistik.
- Cursor juga mendedahkan isu berasingan, yang digelar DuneSlide, yang membolehkan penyerang melaksanakan kod pada mesin tanpa sebarang gesaan kelulusan. Syarikat tersebut telah menampal (patch) pepijat itu, menunjukkan betapa cepatnya pembantu ini boleh menjadi vektor serangan apabila semakan kebenaran adalah lemah.
Perbezaan dalam tindak balas ini menimbulkan persoalan yang lebih mendalam: adakah keselamatan sepatutnya menjadi dialog selepas kejadian, atau sempadan yang telah ditetapkan yang tidak boleh dilalui oleh pembantu tersebut?
Kebenaran berskop: alternatif praktikal
Daripada meminta kelulusan bagi setiap operasi fail, pembangun boleh menetapkan skop untuk pembantu tersebut sebelum ia dijalankan:
- Takrifkan pokok direktori (contohnya,
/src) yang boleh dibaca atau ditulis oleh AI. - Sebarang percubaan untuk menyentuh fail di luar pokok tersebut—seperti
~/.ssh/id_rsa—akan disekat oleh sistem operasi atau lapisan sandbox. - Skop ditetapkan sekali sahaja, mengurangkan bilangan keputusan yang perlu dibuat oleh manusia sambil tetap mengehadkan impak pembantu tersebut.
Penetapan skop mengubah model keselamatan daripada "tanya setiap kali" kepada "benarkan hanya apa yang diperlukan." Ia mencerminkan cara runtime kontena dan OS mudah alih melakukan sandboxing terhadap aplikasi, mengehadkan kerosakan apabila sesuatu berlaku.
Apa yang perlu diperhatikan seterusnya
- Pelancaran vendor: Perhatikan nota kemas kini daripada enam alatan yang terjejas.
Kesimpulan
Eksploitasi GhostApproval membuktikan bahawa mempercayai dialog pop-up memberikan rasa selamat yang palsu. Sehingga setiap pembantu pengekodan AI menyelesaikan symlink dan menunjukkan laluan penuh, pembangun harus menguatkuasakan kebenaran menulis berskop—memberitahu pembantu tersebut dengan tepat di mana ia boleh bekerja sebelum ia bermula. Perubahan ringkas itu menyekat kelas serangan yang paling berbahaya tanpa menambah keletihan klik (click-fatigue).
Sumber: dev.to/girish_r/your-coding-agents-approval-dialog-is-lying-to-you-ih1
