Bagaimana robot dapat mengalahkan CAPTCHA?

84

Saya memiliki formulir email situs web. Saya menggunakan CAPTCHA khusus untuk mencegah spam dari robot. Meskipun demikian, saya masih mendapatkan spam.

Mengapa? Bagaimana robot mengalahkan CAPTCHA? Apakah mereka menggunakan semacam OCR canggih atau hanya mendapatkan solusi dari tempat itu disimpan?

Bagaimana saya bisa mencegah ini? Haruskah saya mengubah jenis CAPTCHA yang lain?


Saya yakin email-email itu berasal dari formulir, karena dikirim dari pengirim email saya yang melayani pesan formulir. Gaya hurufnya juga sama.

Sebagai catatan, saya menggunakan PHP + MySQL, tapi saya tidak mencari solusi untuk masalah ini. Saya tertarik pada situasi umum bagaimana robot mengalahkan teknologi ini. Saya hanya mengatakan situasi ini sebagai contoh, sehingga Anda dapat lebih memahami apa yang saya tanyakan.

totymedli
sumber
86
Saya ingin menjawab pertanyaan Anda: bagaimana manusia bisa mengalahkan CAPTCHA: lebih sering daripada itu saya perlu beberapa kali kadang-kadang sangat banyak untuk bisa melewati.
Pieter B
14
Jika seseorang berpikir pertanyaan ini layak untuk dikalahkan, setidaknya jelaskan alasannya.
totymedli
10
@ Blrfl, saya tidak mengerti bagaimana ini di luar topik.
47
Jika Anda ingin kami menjawab pertanyaan Anda, pertama-tama buktikan bahwa Anda bukan robot.
Pete Kirkham
7
@ Blrfl Namun, semuanya terkait dengan pengembangan perangkat lunak yang berkualitas.
Izkata

Jawaban:

72

Dua cara termudah untuk melewati CAPTCHA:

  • Gunakan peternakan manusia, yaitu meminta orang untuk mengisi CAPTCHA untuk uang, seperti halnya ProTypers .

  • Gunakan OCR.

Mungkin juga ada bug baik dalam mekanisme CAPTCHA itu sendiri atau aplikasi sekitarnya, memungkinkan seseorang untuk mem-bypass CAPTCHA.

Omong-omong, artikel W3C Tidak dapat diaksesnya CAPTCHA: Alternatif untuk Tes Turing Visual di Web menjelaskan juga bagaimana CAPTCHA dapat dikompromikan:

[...] Salah satu serangan yang pertama kali didokumentasikan pada sistem adalah oleh siswa Carnegie Mellon, yang menghubungkan gambar CAPTCHA dengan akses ke situs web dewasa, sehingga mendapatkan tenaga manusia gratis untuk memecahkan otentikasi. [...]

Proyek eksternal [...] telah menunjukkan metodologi dan hasil yang menunjukkan bahwa banyak sistem dapat dikalahkan oleh komputer dengan akurasi antara 88% dan 100%, menggunakan pengenalan karakter optik.

Jadi bagaimana Anda bisa mencegah serangan itu?

  • Jika Anda telah menerapkan CAPTCHA kustom Anda, Anda dapat mencoba untuk pindah ke yang populer, seperti reCAPTCHA .

    Ini akan membantu jika CAPTCHA Anda sendiri terlalu mudah untuk OCR, atau jika ada bug yang berhasil dieksploitasi.

  • Jika Anda menggunakan mekanisme CAPTCHA yang populer, pindah ke mekanisme yang dibuat khusus atau yang populer lainnya mungkin mencegah OCR.

Secara teknis, tidak ada yang akan mencegah peternakan manusia: Anda dapat membuat animasi GIF di mana beberapa bingkai menampilkan teks yang berbeda dengan sangat cepat, dan hanya satu bingkai yang benar-benar terlihat oleh pengguna, Anda dapat mengubah atau menekuk teks ke segala arah atau menemukan cara alternatif baru untuk mencegah OCR dari mengenali teks, masih manusia dibayar untuk memecahkan CAPTCHA akan berhasil menyelesaikannya.

Anda mungkin ingin beralih dari CAPTCHA visual ke suara (jika Anda belum menggunakan keduanya, dan Anda harus), tetapi ini berarti bahwa pengguna dengan gangguan pendengaran tidak akan dapat menggunakan aplikasi Anda.


FrustratedWithFormsDesigner dan GalacticCowboy disebutkan dalam komentar khusus domain CAPTCHA. Saya mencoba menemukan beberapa materi tentang seberapa efektif itu, tetapi tidak berhasil, jadi inilah pendapat pribadi saya:

  1. CAPTCHA khusus-domain bisa sangat menjengkelkan ketika pengguna sebenarnya tidak tahu tentang jawabannya.

    Contoh: Saya mengunjungi halaman di situs web yang berorientasi film. Saya melihat ada kesalahan dalam sebuah artikel dan ingin mengomentarinya untuk memberi tahu penulis tentang kesalahan tersebut. Formulir komentar bertanya kepada saya, sebagai mekanisme CAPTCHA, untuk memberikan nama aktris yang ditampilkan pada foto. Saya tidak tahu siapa aktris ini, jadi satu-satunya hal yang dapat saya lakukan adalah meninggalkan situs web (atau menghabiskan dua menit berikutnya menggunakan Gambar Google).

    Contoh lain: sebuah situs web meminta sinonim "misterius". Mudah kedengarannya untuk orang yang tidak memiliki gangguan yang berbicara bahasa Inggris dengan lancar, tidak mungkin untuk menyelesaikan tanpa bantuan eksternal untuk orang-orang yang tidak berbicara bahasa Inggris dengan baik atau orang-orang dengan cacat perkembangan, tidak termasuk fakta bahwa menemukan sinonim atau antonim adalah selalu rumit.

  2. Sebagian besar masalah khusus domain tersebut dapat dipecahkan secara terprogram. Kedua contoh yang saya berikan mudah diselesaikan dengan menggunakan sumber daya eksternal (Google Images and Sinonim dictionary). Yang tentang transistor yang diberikan sebagai contoh oleh FrustratedWithFormsDesigner lebih baik, tetapi mungkin masih dapat diselesaikan dengan bot yang dibuat khusus.

  3. Tidak ada yang menentang pertanian manusia.

  4. Entah mereka menghasilkan data, sama seperti teks biasa CAPTCHA menggambar karakter yang terdistorsi, dalam hal ini algoritma pembuatan dapat dieksploitasi sendiri untuk menyetel bot, atau mereka menemukan data di suatu tempat, seperti reCAPTCHA mengambil teks dari buku yang dipindai , dalam hal ini bot dapat gunakan data ini untuk melawannya (misalnya, jika Anda mengambil kata-kata dari kamus, meminta pengguna untuk memberikan sinonim, bot dapat menggunakan kamus yang sama untuk memiliki kesuksesan 100%).

Arseni Mourzenko
sumber
4
+1 untuk mencatat bahwa tidak ada CAPTCHA dijamin bekerja
Neil
8
Saya telah melihat beberapa captcha baru yang sangat spesifik untuk domain. Salah satunya menampilkan gambar resistor dan pengguna harus memasukkan hambatan (ada tautan ke halaman bantuan untuk orang-orang yang tidak tahu cara membaca pita warna resistor). Lain memiliki gambar potongan kecil notasi musik dan pengguna harus memasukkan catatan tertentu (seperti "catatan dalam akord kedua saja"). Mereka masih bisa dimainkan, tetapi biaya untuk spammer mungkin tidak sepadan.
FrustratedWithFormsDesigner
2
@MainMa ada posting pada laporan teknologi di suatu tempat tentang seseorang yang telah merancang bot yang mengalahkan captcha sangat cepat, karena mengabaikan visual dan alih-alih menafsirkan isyarat audio dengan itu, sehingga Anda akhirnya harus menambahkan statis ke audio satu, yang membuatnya lebih sulit bagi pengguna
RhysW
@RhysW: artikel W3C yang saya sebutkan juga menyebutkan bahwa pindah dari gambar ke audio tidak menyelesaikan masalah bot dan bahkan mungkin membuat segalanya lebih mudah bagi bot.
Arseni Mourzenko
24
Peternakan Manusia. Mengapa saya membayangkan Matriks?
LarsTech
37

Menambahkan ke jawaban MainMa ...

Spammer menipu orang lain untuk melakukan CAPTCHA untuk mereka

Pada dasarnya, spammer mengatur situs warez atau situs porno yang tampaknya memiliki CAPTCHA di atasnya, tetapi itu bukan CAPTCHA nyata. Bot menarik CAPTCHA dari situs yang mereka inginkan untuk spam (atau mengeksploitasi), dan kemudian menampilkannya di situs warez atau situs porno di mana seseorang menyelesaikannya untuk mereka. Kemudian nilai CAPTCHA diteruskan kembali ke bot mereka ...

Sedikit lebih banyak tentang Spammer

Saya menggunakan reCAPTCHA , dan saya menemukan bahwa itu pada dasarnya tidak berharga. Saya juga menggunakan filter spam khusus yang menangkap spam yang berhasil melewati reCAPTCHA, dan saya perlu memeriksanya setiap beberapa hari untuk hasil positif palsu.

Forum saya juga semua ditulis khusus dan mendapat lalu lintas yang sangat sedikit. Saya tidak percaya ada yang mengkodekan serangan spesifik ke situs saya. Namun, filter spam saya menangkap pesan spam 2k sehari! Tidak ada yang ditampilkan di situs. Spammer tidak mendapat manfaat dari spamming saya, namun mereka tetap melakukannya.

Saya dapat melihat pola dalam upaya spamming karena saya mencatat semuanya. Saya dapat memberitahu Anda ini: mengesampingkan bagaimana mereka bisa melewati CAPTCHA, spammer jelas menggunakan teknik brute force memvariasikan bidang yang diisi dan jenis data dan campuran kata yang mengisi bidang tersebut. Tampaknya mereka melakukan ini dengan sangat murah (termasuk melewati CAPTCHA) sehingga bahkan tidak membayar untuk melakukan analisis dari masing-masing situs untuk melihat apakah apa yang mereka lakukan atau tidak berfungsi.

Tahun demi tahun, mereka terus menargetkan situs saya dengan ribuan pesan spam sehari hanya untuk mendapatkan satu setiap bulan, dan yang satu akan dihapus secara manual sehari kemudian. Itu murah untuk spam!

Ini akan menjadi pertempuran untuk tahun-tahun mendatang. Khusus untuk situs moderator satu orang kecil seperti milik saya.


EDIT 6/22/2017 : Saya ingin menambahkan bahwa sejak posting ini google telah benar-benar mengubah reCAPTCHA dan pada tulisan ini telah berfungsi dengan sempurna. Meskipun saya curiga ada sedikit positif palsu atau ini menyusahkan bagi pengguna karena pos telah turun sedikit sejak saya menerapkannya. 2 perubahan besar adalah

1) Mereka menggunakan Gambar, bukan teks (Jadi tidak ada lagi OCR)

2) Mereka menggabungkannya dengan aktivitas pengguna di semua situs yang menggunakan reCAPTCHA. Jadi, jika Anda melewati reCAPTCHA di situs A, lalu pergi ke Situs B bahkan mungkin tidak meminta Anda untuk membuktikan bahwa Anda adalah manusia! Juga (saya pikir) jika Anda memukul terlalu banyak reCAPTCHA di terlalu banyak situs, itu juga akan menandai Anda. Saya yakin itu menggunakan jenis AI lain berdasarkan aktivitas pengguna juga.

Saya yakin ini hanya masalah waktu sampai spammer mengalahkan ini juga ...

Orang bodoh
sumber
Ini mungkin argumen terkuat untuk reCAPTCHA untuk situs web kecil: Google memiliki sumber daya yang jauh lebih banyak untuk mengikuti teknik spam saat ini.
Stephen C. Steel
15

Pernahkah Anda mencoba menggunakan captcha kucing-anjing? Saya memiliki forum yang memiliki captcha standar dan mengubahnya dan saya tidak punya spam tamu sejak itu.masukkan deskripsi gambar di sini

kucing-anjing-manusia
sumber
12

Mungkin saja situs Anda menjadi sasaran tenaga kerja murah yang dieksploitasi dan bahwa manusia secara manual memasukkan frasa CAPTCHA Anda.

Jika solusi yang Anda gunakan tidak terlalu canggih, mungkin penyerang Anda melakukan pengenalan gambar.

Ini juga kemungkinan bahwa Anda memiliki bug di suatu tempat dalam kode Anda yang memungkinkan CAPTCHA dilewati.

Jangan membuat asumsi bahwa robot mengalahkan CAPTCHA Anda. Pikirkan sistem Anda secara holistik dan lihat apakah telah dikompromikan.

Sam
sumber
Saya akan menggabungkan skema gambar dan CSS yang manusia tidak akan bisa memilah dengan mudah.
Erik Reppen
2
Dua kata ... Turk Mekanis. Amazon telah membuat captcha menabrak upaya yang sangat murah.
Michael Brown
10

Lainnya telah membahas bagaimana spammer menghindari CAPTCHA. Berikut adalah beberapa tips tentang Bagaimana saya bisa mencegah ini :

Perhatikan tidak ada peluru perak dan spammer tampaknya menjadi 1 langkah di depan permainan. Jadi, Anda harus menggunakan kombinasi beberapa teknik

  1. Gunakan bentuk pot madu
  2. Gunakan pertanyaan CAPTCHA atau Logika. Pertanyaan dasar seperti "apel, ikan, tangan, enam - yang mana di antaranya adalah bagian tubuh"
  3. Tunggu sebentar. Jika formulir diposting dalam 5 detik dari pemuatan halaman mengabaikan permintaan, sebagian besar robot akan memposting dalam waktu kurang dari satu detik
  4. Minta pemantauan alamat IP - jika Anda melihat seekor laba-laba merayapi situs web Anda yang tidak ada dalam daftar putih (google, bing), maka masukkan daftar hitam dan buang alamat IP-nya. Lebih disukai ini akan dinamis / otomatis dalam kode / perangkat lunak
Daveo
sumber
6

Untuk menggemakan jawaban lainnya, Anda kemungkinan menemukan bot yang menggunakan peternakan manusia untuk memasukkan captcha untuk mereka.

Saya baru-baru ini membahas teknik (dan merilis modul Drupal yang menyertainya) yang memblokir bot spam dengan memerlukan JavaScript sisi klien. Sejauh yang saya ketahui, ini telah bekerja dengan efisiensi 100% di semua situs yang telah menggunakan kode ini. Idenya adalah menggunakan AJAX untuk menghasilkan hash unik dan mengirimkannya bersama dengan data formulir lainnya, dan kemudian menghitung hash yang sama di backend setelah formulir dikirimkan, dan membandingkan dua nilai.

Detail lengkap di posting blog saya (kebetulan, karena Anda menyebutkan menggunakan PHP + MySQL, ini adalah teknologi yang sama dijelaskan di sana) - Modul rilis: Badbot; menghilangkan spam ...

Yuriy Babenko
sumber
1
Itu akan bekerja sampai menyebar dan spammer menggunakan browser tanpa kepala.
Xavier Combelle
1
Bagaimana cara menggunakan browser tanpa kepala mengubah sesuatu?
Tatiana Racheva
-2

Jika situs Anda adalah twitter, dan seseorang telah menargetkannya secara khusus (daripada bot yang menemukannya) maka Anda dapat berhenti membaca ...

Kalau tidak, mungkin ada baiknya tidak membuat formulir Anda TIDAK terlihat seperti formulir. 1. Jangan memiliki bidang dengan 'email' dalam jenis, nama atau tempat penampung, gunakan nama pendek atau menyesatkan untuk semua bidang. 2. Jangan gunakan elemen bentuk html aktual dan tombol kirim. Alih-alih menggunakan AJAX untuk mempostingnya di klik div normal (ditata agar terlihat seperti tombol). 3. Jangan letakkan acara onclick di html, tambahkan pendengar di JavaScript. 4. Gunakan JavaScript untuk mengisi setiap tips 'masukkan alamat email Anda di sini' karena ada kemungkinan bahwa bot tidak akan benar-benar memicu JS ketika menjaring halaman (tidak yakin tentang yang ini, tetapi saya tetap melakukannya).

David Gilbertson
sumber