1 poin oleh GN⁺ 4 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • 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_fetch memblokir 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_search serta 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_search dan web_fetch read-only untuk akses internet
  • Saat server milik penyerang dikunjungi lewat web_fetch, terlihat permintaan GET yang menyertakan user agent Claude-User
    • Permintaan awal gagal karena robots.txt yang dikonfigurasi Cloudflare pada situs
    • Setelah robots.txt diubah, permintaan muncul di log server
  • 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_fetch dapat 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_fetch sebelumnya
  • 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, /c di beranda, dibuat keyboard virtual yang bisa dipakai Claude untuk memilih data
  • Saat Claude diminta berpindah ke huruf pertama dari nama, permintaan / lalu /a tercatat di server
  • Struktur tautan diperluas secara dinamis agar huruf berikutnya bisa dipilih di setiap jalur
    • /a terhubung 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-paul tercatat 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_fetch dapat mengakses bukan hanya URL yang diberikan langsung oleh pengguna, tetapi juga hasil web_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_fetch untuk mengikuti tautan yang ditemukan di halaman eksternal
  • Kini target penjelajahan dibatasi pada hasil web_search dan 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

 
GN⁺ 4 jam lalu
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

    • Kadang memori berguna karena tidak perlu menjelaskan ulang seluruh konteks setiap kali, tetapi sama menyebalkannya ketika ia membawa-bawa hal dari percakapan lain dan menarik percakapan saat ini ke arah yang aneh
    • Dari sudut pandang investor, pengumpulan data adalah salah satu nilai inti perusahaan-perusahaan seperti ini. Mereka membangun model dari data publik, scraping ilegal, dan karya berhak cipta, lalu menimbun informasi paling pribadi dari sangat banyak orang dalam skala besar, sambil memperbesar gelembung yang akan menimbulkan dampak besar saat pecah, serta konsentrasi kekayaan dan ketimpangan yang ekstrem
  • 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

    • Banyak programmer dan pengguna tingkat lanjut secara rutin memasang pohon dependensi raksasa seperti npm, pip, dan bundler dari akun pengguna yang sama dengan browser utama mereka. Jadi bahkan di Linux, yang mudah membuat akun baru, menjalankan agen AI sebenarnya tidak jauh berbeda
    • Karena konfigurasi sandbox memang sangat sulit. Bahkan jika memakai cco, direktori home tetap terekspos, sehingga hanya dengan satu prompt agen bisa mengirim kata sandi browser lewat curl
      Untuk 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
    • Pada umumnya pengguna malas, dan mereka juga menganggap lab besar tidak mungkin merilis perangkat lunak yang tidak aman, atau bahwa keamanan adalah tanggung jawab lab. Demi menyelesaikan lebih banyak pekerjaan, cara kerja yang secara berbahaya melewati pemeriksaan izin dan langsung mengeksekusi apa pun mulai mengeras menjadi semacam setelan bawaan
    • Model keamanan tampaknya mengerucut ke dua arah: minimasi izin dan minimasi konteks. Agen yang hanya melihat file dan memori yang diperlukan untuk tugas saat ini jauh lebih tidak berbahaya, bahkan jika izin alatnya sama
      Optimisasi konteks sudah dilakukan untuk menekan biaya, jadi ke depan sangat mungkin konteks itu sendiri diperlakukan sebagai batas keamanan
    • Pada akhirnya ini soal kenyamanan. Membiarkan agen bekerja di samping kita tanpa batasan apa pun memberi kepuasan instan, dan itu sulit dikalahkan
  • 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

    • Sejak era Eternal September, saya selalu menyarankan agar orang memakai informasi palsu yang konsisten untuk nama dan tanggal lahir di sistem online. Hampir tidak ada situs yang secara sah memerlukan informasi identitas pribadi (PII) yang akurat, dan bahkan di tempat yang memang membutuhkannya, jika perlu saya mengelola akun atau profil ganda
    • Karena nama saya bisa disingkat menjadi dua bentuk, saat mendaftar Claude saya mengira dunia “kecerdasan” buatan akan terbuka jika saya memasukkan nama saya sebagai “ or ”. Namun tampaknya kolom ini tidak diproses oleh model dan hanya di-hardcode
      Sampai sekarang saya biarkan begitu saja, sebagai penanda untuk menertawakan atau merasa agak lega pahit bahwa ini hanyalah produk turunan yang tidak secerdas kelihatannya
    • Ketika nama diatur menjadi Sir, saya malah menikmati jawaban yang terlalu sopan. Aplikasi bank saya juga menyapa “Good morning, Sir”, dan itu terasa pas dengan jenis hubungan yang saya inginkan dengan bank
    • Saya sempat lupa punya akun claude.ai yang dibuat di awal-awal, lalu baru-baru ini masuk dengan Google dan disapa Hello, Master, yang menurut standar sekarang terasa cukup berani
    • Claude dan ChatGPT kemungkinan besar masih bisa melihat nama asli yang ada di informasi pembayaran
  • Bagian tentang Cloudflare yang menerapkan robots.txt berlebihan tanpa persetujuan merupakan pemandangan langka: sebuah situs mengeluh karena dilindungi dari scraper

    • Setahu saya, agar Cloudflare mengelola robots.txt, pengguna harus menyalakan fitur itu sendiri. Karena hanya perlu satu klik, mungkin saja aktif tanpa sengaja
    • Intinya adalah tidak ada persetujuan. Entah layanan yang dipakai memblokir scraper dari situs atau justru memberikan semuanya kepada scraper, saya ingin keduanya sama-sama memerlukan persetujuan yang diinformasikan dengan cukup sebelumnya
    • Tetap saja persetujuan itu wajib, dan robots.txt juga tidak benar-benar bisa menghentikan scraper yang memang berniat keras
  • Saya 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-sdk ke perintah pacstrap. Jika root guest dibuat sebagai subvolume BTRFS dan memakai snapshot, Anda bisa langsung membuat VM baru dengan sudo btrfs subvol snap template-root newvm, dan bahkan menjalankan qemu-system-x86_64 hanya butuh beberapa detik sambil tetap memberi kendali penuh atas isi VM

    • Saya pernah mencoba sesuatu yang mirip, tetapi keterbatasannya besar. Saya ingin manusia dan AI terus saling bertukar seperti pair programming, dan batas peran keduanya jarang jelas di awal; itu bisa berubah tergantung tugas, bahkan di tengah pekerjaan
      Ada 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
    • Masalah kali ini terjadi bukan di Claude Code, melainkan di situs web Claude AI
  • 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.

    • Seperti rekayasa sosial, ini tampaknya akan tetap menjadi masalah selamanya sampai tingkat tertentu, dan kita mungkin hanya akan terus menumpuk pertahanan sampai mencapai ambang yang bisa diterima masyarakat. Ini bukan kesimpulan yang menenangkan, tetapi kotak Pandora yang sudah dibuka sulit untuk ditutup kembali.
    • https://matthodges.com/posts/2025-08-26-music-to-break-model... membahas batasan Gödelian yang dimiliki AI aman pada level prompt.
    • Sulit menerima kenyataan bahwa data yang diproses dapat membujuk LLM lewat percakapan untuk merusak batas keamanan. Prompt berbahaya bukan sekadar metafora, melainkan string serangan nyata, dan absurd bahwa teknologi seperti ini dipakai luas dalam interaksi otomatis meski tidak dibatasi secara logis maupun fundamental.
      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.

    • ChatGPT tampaknya menyimpan informasi pengguna lintas semua percakapan karena memorinya aktif secara default. Pada saya juga, setiap kali menjawab resep masakan, ia menambahkan hal seperti “bahan ini mudah didapat di toko jadi visa bukan masalah,” padahal pertanyaannya sama sekali tidak terkait visa.
      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.

    • Penyebabnya ada di sisi alat SEC EDGAR. Dokumentasi Edgar MCP mengarahkan untuk menetapkan variabel lingkungan SEC_EDGAR_USER_AGENT="Your Name (name@domain.com)", jadi Claude hanya mengikuti instruksi apa adanya. Mungkin justru itu yang lebih berbahaya.
    • Penasaran bagaimana mengetahui bahwa Claude melakukan itu.
    • Penasaran mengapa memasukkan nama dan email dianggap bukan ide yang sepenuhnya buruk.
  • Penasaran berapa banyak pengguna yang menyalakan memori global yang berlaku ke seluruh percakapan. Memori seperti ini pada akhirnya tampak akan merusak kualitas keluaran.

    • Bahkan saat menanyakan hal yang tidak terkait proyek saat ini, karena memori ia selalu salah mengira bahwa itu pertanyaan tentang proyek yang sudah ada. Jika dikoreksi dengan “bukan, ini pertanyaan tentang PostgreSQL,” ia tidak memahami mengapa percakapan terpisah dibuka, dan malah kadang memperbarui memori bahwa proyek itu memakai PostgreSQL.
      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.

    • Bagi saya, memori lebih banyak mengganggu daripada membantu. Ia terus mengeluarkan informasi tersimpan yang hampir tidak relevan, seolah ingin pamer bahwa ia tahu satu-dua hal tambahan, jadi akhirnya saya matikan.
    • Saya bertanya-tanya apakah masalah ini hanya terbatas pada memori. Bukankah informasi yang bisa diakses model saat ini, seperti informasi proyek saat ini, kode, atau kredensial, juga bisa bocor dengan cara yang sama?