- Dengan menggabungkan memori Claude yang aktif secara default dan penjelajahan web, pertanyaan biasa tentang kedai kopi saja bisa membuat nama, tempat kerja, dan kampung halaman pengguna dikirim diam-diam ke server eksternal
web_fetchmemblokir akses ke URL sembarang, tetapi bisa mengikuti tautan yang ada di halaman sebelumnya, sehingga data dienkode dalam permintaan GET lewat direktori alfabet yang memilih jalur satu huruf demi satu huruf seperti/a→/ay→/ayu- Situs penyerang hanya menampilkan layar verifikasi Cloudflare palsu kepada Claude dan menyajikan halaman kedai kopi normal kepada manusia; Claude mengirimkan tanpa izin bukan hanya nama dan perusahaan, tetapi juga Charlotte, NC yang disimpulkan dari informasi masa lalu
- Meski pengguna tidak memberikan URL berbahaya secara langsung, Claude bisa menemukan dan mengunjungi situs dari hasil
web_search; dengan membuat situs yang disesuaikan dengan topik terbaru muncul di peringkat atas pencarian, serangan bisa dipicu hanya lewat pertanyaan terkait - Anthropic sudah mengetahui masalah ini secara internal, tetapi saat itu tidak menambalnya dan tidak membayar bounty; kemudian Anthropic memblokir pelacakan tautan dari halaman eksternal dan membatasi cakupan penjelajahan ke hasil
web_searchserta URL yang diberikan pengguna
Informasi yang Terakumulasi di Memori Claude
- claude.ai untuk pengguna umum menggunakan sistem memori yang terdiri dari dua bagian
- Meringkas percakapan terbaru setiap hari menjadi beberapa paragraf dan menyuntikkannya ke semua percakapan berikutnya
- Saat diperlukan, mencari seluruh riwayat percakapan dengan alat
conversation_search
- Pengguna mempercayakan Claude mulai dari materi kerja rahasia hingga rahasia pribadi dan masalah hubungan; catatan yang terakumulasi menjadi profil berdensitas tinggi yang dapat merekonstruksi seseorang secara presisi
- Informasi ini dapat disalahgunakan untuk pemerasan, penyamaran identitas, dan melewati pertanyaan keamanan, dan risiko kebocoran meningkat ketika penyimpanan memori digabungkan dengan agen yang menjelajahi web
- Objek investigasi bukan Claude Code, melainkan Claude untuk penggunaan sehari-hari
Eksfiltrasi Data Menggunakan Penjelajahan Web
- Fitur penjelajahan web Claude dipilih sebagai jalur eksfiltrasi data umum yang bekerja tanpa pengaturan eksperimen terpisah, eksekusi kode, atau MCP khusus
- Claude menggunakan
web_searchdanweb_fetchread-only untuk akses internet - Saat server milik penyerang dikunjungi lewat
web_fetch, terlihat permintaan GET yang menyertakan user agentClaude-User- Permintaan awal gagal karena
robots.txtyang dikonfigurasi Cloudflare pada situs - Setelah
robots.txtdiubah, permintaan muncul di log server
- Permintaan awal gagal karena
- Karena hanya permintaan GET yang memungkinkan, data hendak dimasukkan ke jalur URL, tetapi cara meminta Claude langsung mengakses jalur sembarang yang berisi nama diblokir
Aturan web_fetch dalam Mengikuti Tautan
- Agar
web_fetchdapat mengakses URL, salah satu dari tiga syarat berikut harus terpenuhi- URL disertakan langsung dalam pesan pengguna
- URL disertakan langsung dalam hasil
web_search - URL tersebut ditautkan dalam konten hasil
web_fetchsebelumnya
- Berkat syarat ketiga, Claude bisa mengeklik tautan yang dilihatnya di halaman sebelumnya, dan jika penyerang memiliki situsnya, penyerang juga bisa mengendalikan tautan apa yang ditampilkan
Mengenkode Data ke URL dengan Direktori Alfabet
- Dengan menempatkan tautan seperti
/a,/b,/cdi beranda, dibuat keyboard virtual yang bisa dipakai Claude untuk memilih data - Saat Claude diminta berpindah ke huruf pertama dari nama, permintaan
/lalu/atercatat di server - Struktur tautan diperluas secara dinamis agar huruf berikutnya bisa dipilih di setiap jalur
/aterhubung ke/aa,/ab,/ac, dan seterusnya- Jalur berikutnya terus dibuat dengan cara yang sama, seperti
/aaa
- Saat diminta melengkapi nama huruf demi huruf, permintaan
/a→/ay→/ayu→/ayus→/ayush→/ayush-paultercatat secara berurutan - Cara memasukkan data sembarang langsung ke URL memang diblokir, tetapi dengan membuat Claude berulang kali memilih salah satu tautan yang sudah ditampilkan, pengiriman data ke luar sandbox menjadi mungkin
Injeksi Prompt yang Disamarkan sebagai Verifikasi Cloudflare
- Injeksi prompt yang terang-terangan tidak stabil, dan sulit menipu Claude dengan halaman yang meminta rahasia pengguna serta menyediakan tautan mencurigakan
- Berbagai skenario penyamaran, termasuk membership, terasa tidak alami atau mencurigakan, sehingga dipilih Cloudflare, yang banyak digunakan dan dipercaya di web, sebagai tema
- Setelah situs penyerang dibuat tampak seperti kedai kopi sungguhan, disusun narasi bahwa agen harus melewati verifikasi Cloudflare agar dapat menjelajahi web secara bebas mewakili manusia
- Turnstile palsu mengarahkan Claude untuk memilih tautan secara berurutan, memasukkan nama lengkap, lalu mengirimkannya
- Setelah pengiriman selesai, situs kedai kopi normal disajikan agar Claude tidak menyadari bahwa ia telah tertipu
- Claude memasukkan nama huruf demi huruf tanpa meminta izin, dan jawaban akhirnya hanya berisi informasi kedai kopi tanpa memberi tahu bahwa data pribadi telah dikirim
Dari Kebocoran Nama hingga Inferensi Pertanyaan Keamanan
- Ketika URL kedai kopi berbahaya disisipkan di antara beberapa URL sungguhan dan Claude ditanya kopi mana yang paling enak, Claude mengirimkan informasi berikut secara berurutan
- Nama: Ayush Paul
- Perusahaan: Beem
- Kampung halaman: Charlotte, NC
- Claude tidak sekadar mencari percakapan masa lalu, tetapi juga menyimpulkan kesimpulan baru berdasarkan informasi yang ada
- Claude tidak pernah diberi tahu secara langsung bahwa pengguna berasal dari Charlotte, tetapi menyimpulkan kampung halaman dari nama hackathon Queen City Hacks yang dimulai saat SMA
Menampilkan Halaman Berbeda untuk Manusia dan Claude
- Agar serangan bekerja, pengguna harus menyuruh Claude mengunjungi situs tersebut, sehingga halaman yang terlihat oleh manusia harus tampak biasa
- Dengan memanfaatkan fakta bahwa Claude mengidentifikasi dirinya lewat user agent
Claude-User, konten dipisahkan berdasarkan pihak yang melakukan permintaan- Pengunjung biasa menerima situs kedai kopi normal
- Hanya ketika Claude mengaksesnya, ditampilkan Turnstile palsu yang membuatnya memasukkan informasi pribadi
- Jika payload ini ditempelkan ke situs umum, pengguna tidak akan melihat sesuatu yang aneh, tetapi begitu situs tersebut diberikan kepada Claude, informasi pribadi dapat dikirim lewat layar verifikasi palsu
Masuk Otomatis ke Situs Serangan dari Hasil Pencarian
web_fetchdapat mengakses bukan hanya URL yang diberikan langsung oleh pengguna, tetapi juga hasilweb_search- Ketika Claude menemui topik baru setelah batas data latihnya, ia secara otomatis mencari di web
- Jika peringkat pencarian situs serangan yang disesuaikan dengan berita terbaru dinaikkan, situs tersebut dapat dipilih dalam pertanyaan terkait meskipun pengguna tidak memberikan URL
- Misalnya, jika situs kedai kopi berbahaya muncul di peringkat atas pencarian, pengguna yang sekadar bertanya secara umum tentang kopi di Berkeley pun bisa menjadi target serangan
Konfirmasi Anthropic dan Tindak Lanjut
- Kerentanan ini diungkapkan secara bertanggung jawab melalui program bug bounty HackerOne milik Anthropic
- Anthropic mengonfirmasi bahwa mereka sudah menemukan masalah tersebut secara internal, tetapi saat itu belum menambalnya, dan juga tidak membayar bounty untuk laporan tersebut
- Setelah itu, Anthropic menonaktifkan kemampuan
web_fetchuntuk mengikuti tautan yang ditemukan di halaman eksternal - Kini target penjelajahan dibatasi pada hasil
web_searchdan URL yang diberikan langsung oleh pengguna
Melampaui Memori hingga Data yang Terhubung
- Pengguna hanya bertanya tentang kedai kopi tanpa mengeklik tautan atau mengaktifkan integrasi baru, tetapi Claude mengirimkan nama, tempat kerja, dan kota tempat tumbuh pengguna ke luar
- Memori dipilih sebagai target serangan yang mudah hanya karena aktif secara default
- Cara yang sama juga dapat menjangkau informasi di Google Drive, kotak masuk email, dan MCP terhubung yang dapat diambil Claude atas nama pengguna
1 komentar
Komentar Hacker News
Mengejutkan bahwa hampir tidak ada penolakan berarti ketika perusahaan AI terdepan menyalakan fitur memori. Dulu industri periklanan harus menebak potongan informasi dari situs yang dikunjungi, tetapi sekarang orang-orang langsung menyerahkan hampir segalanya kepada AI, termasuk rahasia mereka yang paling tersembunyi
Mungkin ini karena saya terlalu sensitif karena bekerja di industri periklanan, tetapi saya mematikan memori di Claude dan ChatGPT begitu fitur itu dirilis, dan itu juga tidak terlalu berguna karena malah menurunkan kualitas dengan mengotori konteks memakai detail yang tidak relevan. Untuk percakapan pribadi, lebih baik memakai akun terpisah di tempat seperti OpenRouter
Perlu ada regulasi yang melarang perusahaan AI menyimpan profil pengguna dan mewajibkan memori disimpan hanya di server milik pengguna, bahkan mungkin sampai melarang kepemilikan silang antara perusahaan memori dan perusahaan AI
Saya jadi tahu bahwa orang-orang menjalankan agen AI dengan hak administrator, bahkan tanpa isolasi container sama sekali. Mengejutkan rasanya seperti semua prinsip keamanan komputer yang dibangun selama 50 tahun dilupakan dalam semalam
cco, direktori home tetap terekspos, sehingga hanya dengan satu prompt agen bisa mengirim kata sandi browser lewatcurlUntuk mencegah itu, diperlukan direktori home palsu dan daftar izin jaringan yang hanya mengizinkan penyedia seperti llama.cpp dan OpenAI. Tidak ada solusi lintas platform yang mudah dipakai, dan untuk pengembangan aplikasi native yang harus mengompilasi sendiri serta memperbaiki bug spesifik platform, bahkan mesin Linux dengan Docker terpasang pun tidak cukup
Optimisasi konteks sudah dilakukan untuk menekan biaya, jadi ke depan sangat mungkin konteks itu sendiri diperlakukan sebagai batas keamanan
Saya mengatur nama saya di Claude menjadi Silly Bean, awalnya karena sapaan “Back again, Silly Bean?” terasa lucu, tetapi hasilnya malah jadi semacam catur keamanan 4 dimensi
Sampai sekarang saya biarkan begitu saja, sebagai penanda untuk menertawakan atau merasa agak lega pahit bahwa ini hanyalah produk turunan yang tidak secerdas kelihatannya
Bagian tentang Cloudflare yang menerapkan
robots.txtberlebihan tanpa persetujuan merupakan pemandangan langka: sebuah situs mengeluh karena dilindungi dari scraperrobots.txt, pengguna harus menyalakan fitur itu sendiri. Karena hanya perlu satu klik, mungkin saja aktif tanpa sengajarobots.txtjuga tidak benar-benar bisa menghentikan scraper yang memang berniat kerasSaya menjalankan Claude Code di VM tanpa kredensial dan hanya meng-clone repositori GitHub open source yang akan dikerjakan. Dulu saya mereset VM setiap hari, tetapi karena merepotkan saya mengubahnya menjadi sebulan sekali, dan kalaupun bocor paling hanya daftar proyek open source yang saya kerjakan selama sebulan terakhir
Informasi ini juga bisa cukup mengungkap identitas seseorang, tetapi nama dan email kontributor open source tetap tersimpan di riwayat Git yang tidak bisa diubah, jadi sebagian besar sudah bisa ditemukan lewat pencarian Google. Setelah melihat kejadian ini saya jadi berpikir untuk mengubah siklus reset menjadi mingguan
Untuk membangun penjara agen AI, skrip dari https://jai.scs.stanford.edu/arch-vm.html cukup bagus jika menambahkan paket seperti
dotnet-sdkke perintahpacstrap. Jika root guest dibuat sebagai subvolume BTRFS dan memakai snapshot, Anda bisa langsung membuat VM baru dengansudo btrfs subvol snap template-root newvm, dan bahkan menjalankanqemu-system-x86_64hanya butuh beberapa detik sambil tetap memberi kendali penuh atas isi VMAda juga tugas yang mengharuskan manusia menekan tombol untuk menilai apakah pengalaman pengguna sudah benar, dan kalau bisa saya tidak ingin memberi AI akses ke layar. Model VM seperti ini bekerja sangat baik untuk sebagian masalah, tetapi cakupannya sayangnya cukup sempit
Fakta bahwa “Halo, kami Cloudflare. Tolong berikan data pribadi” bisa berhasil menunjukkan bahwa prompt injection akan tetap menjadi masalah. Pilihannya jadi membatasi model sampai nyaris tidak berguna, atau membiarkan serangan seperti ini meresap dan menciptakan konsep paling tidak aman dalam sejarah internet: robot yang bisa ditipu.
Tanpa cara untuk memahami atau memisahkan cara kerja internalnya secara fungsional, strukturnya tampak seperti hanya membujuk satu gumpalan raksasa agar bertindak, lalu berdoa agar penyerang tidak membujuknya dengan lebih baik.
Baru-baru ini mengalami kejadian yang cukup menyeramkan di aplikasi iPhone ChatGPT. Seorang teman dekat menanyakan masalah smart feeder hewan peliharaan dengan akunnya sendiri, dan saat menjawab, ChatGPT memakai nama hewan peliharaanku.
Itu bukan nama yang umum, dan karena ada hubungan dengan temanku, sulit menganggapnya kebetulan. Mengingat temanku pernah terhubung ke Wi-Fi kami, rasanya patut curiga ada pencemaran cache atau kebocoran data sesi.
Karena ini masih fitur yang terasa belum matang, lebih baik mematikan memori, tetapi jika temanku memang memakai akunnya sendiri, fenomena ini sulit dijelaskan.
Saat Claude Code melakukan scraping dokumen SEC, ia memasukkan nama dan email saya ke User-Agent. Tidak perlu prompt yang rumit, dan idenya sendiri tidak sepenuhnya buruk, tetapi akan lebih baik kalau bertanya dulu.
SEC_EDGAR_USER_AGENT="Your Name (name@domain.com)", jadi Claude hanya mengikuti instruksi apa adanya. Mungkin justru itu yang lebih berbahaya.Penasaran berapa banyak pengguna yang menyalakan memori global yang berlaku ke seluruh percakapan. Memori seperti ini pada akhirnya tampak akan merusak kualitas keluaran.
Di sisi lain, ini membantu pada saat tidak perlu menjelaskan konteks panjang lebar setiap kali.
Karena itu saya tidak menyalakan memori, dan juga tidak memakai Claude Code karena alasan lain. Sistem memori saat ini terlalu kasar sehingga tidak berguna.