Як роботи можуть перемогти CAPTCHA?


84

У мене форма електронної пошти на веб-сайті. Я використовую спеціальний CAPTCHA для запобігання спаму від роботів. Незважаючи на це, я все одно отримую спам.

Чому? Як роботи перемагають CAPTCHA? Вони використовують якийсь розширений OCR або просто дістають рішення там, де він зберігається?

Як я можу запобігти цьому? Чи варто перейти на інший тип CAPTCHA?


Я впевнений, що електронні листи надходять із форми, оскільки він надсилається від мого електронного відправника, який обслуговує повідомлення форми. Також стиль букви той самий.

Для запису я використовую PHP + MySQL, але я не шукаю рішення цієї проблеми. Мене зацікавила загальна ситуація, як роботи перемагають ці технології. Я просто розповів цю ситуацію як приклад, щоб ви могли краще зрозуміти, про що я прошу.


86
Я хочу протистояти вашому питанню: як люди можуть перемогти CAPTCHA: частіше за все це не потребує мене багаторазово, іноді дуже багато разів, щоб пройти.
Пітер Б

14
Якщо хтось вважає, що це запитання заслуговує голоси, принаймні поясніть мені, чому.
totymedli

10
@Blrfl, я не розумію, як це поза темою.

47
Якщо ви хочете, щоб ми відповіли на ваше запитання, спочатку доведіть, що ви не робот.
Піт Кіркхем

7
@Blrfl Це, однак, має все спільне з якісною розробкою програмного забезпечення.
Ізката

Відповіді:


72

Два найпростіших способи пройти через CAPTCHA:

  • Використовуйте людські ферми, тобто просіть людей заповнювати CAPTCHA за гроші, як це робить ProTypers .

  • Використовуйте OCR.

Також може виникнути помилка в самому механізмі CAPTCHA або в оточуючому додатку, що дозволяє комусь обійти CAPTCHA.

До речі, стаття W3C Недоступність CAPTCHA: Альтернативи тестам на візуальне твердження в Інтернеті також пояснює, як CAPTCHA можуть бути порушені:

[...] Однією з перших задокументованих атак на систему був студент Карнегі Меллон, який пов’язував зображення CAPTCHA з доступом до дорослого веб-сайту, отримуючи таким чином безкоштовну людську працю, щоб зламати автентифікацію. [...]

Зовнішні проекти [...] показали методології та результати, що вказують на те, що багато систем можуть бути переможені комп'ютерами з точністю від 88% до 100%, використовуючи оптичне розпізнавання символів.

Тож як можна запобігти цим нападам?

  • Якщо у вас є спеціально реалізована CAPTCHA, ви можете спробувати перейти на популярну, наприклад, reCAPTCHA .

    Це допоможе, якщо ваш власний CAPTCHA був надто легким для OCR, або якщо помилка була успішно використана.

  • Якщо ви використовуєте популярний механізм CAPTCHA, перехід на замовлений або інший популярний може запобігти OCR.

Технічно нічого не завадить людським господарствам: ви можете створювати анімовані GIF-файли, де кілька кадрів відображають різний текст дуже швидко, і користувач бачить лише один кадр, ви можете спотворити або зігнути текст у всіх напрямках або знайти нові, альтернативні способи запобігання OCR з розпізнавання тексту, люди, які заплатили за вирішення CAPTCHA, успішно вирішать їх.

Можливо, ви хочете перейти від візуального CAPTCHA до звуку (якщо ви вже не використовуєте і те, і вам слід), але це означає, що користувачі з порушеннями слуху не зможуть використовувати вашу програму.


FrustratedWithFormsDesigner та GalacticCowboy згадані в коментарях CAPTCHA, що стосуються домену. Я намагався знайти якийсь матеріал про те, наскільки вони ефективні, але без успіху, ось ось моя особиста думка:

  1. CAPTCHA, пов’язані з доменом, можуть бути дуже роздратованими, коли фактичні користувачі не мають уявлення про відповідь.

    Приклад: я відвідую сторінку на веб-сайті, орієнтованому на фільми. Я помічаю помилку в статті і хочу прокоментувати її, щоб повідомити автора про помилку. Форма коментарів просить мене, як механізм CAPTCHA, вказати ім'я актриси, відображеної на фотографії. Я поняття не маю, хто ця актриса, тому єдине, що я можу зробити - це залишити веб-сайт (або провести наступні дві хвилини за допомогою Google Images).

    Ще один приклад: веб-сайт просить дати синонім «загадкового». Легко, як це звучить для людини з обмеженими можливостями, яка вільно розмовляє англійською, неможливо було б вирішити без зовнішньої допомоги людям, які добре не розмовляють англійською, або людям з певними вадами розвитку, не рахуючи факту, що пошук синонімів чи антонімів є завжди хитрий.

  2. Більшість цих проблем, пов'язаних з доменом, можна вирішити програмно. Обидва приклади, які я подав, легко вирішуються за допомогою зовнішніх ресурсів (словник Google Images and Synonyms). Той, що про транзистори, наведений як приклад FrustratedWithFormsDesigner, є кращим, але все ж, можливо, може бути вирішений за допомогою бота на замовлення.

  3. Жоден опір людським господарствам.

  4. Або вони генерують дані, як і звичайні текстові CAPTCHA малюють спотворені символи, і в цьому випадку алгоритм генерації може бути використаний для налаштування ботів, або вони десь знаходять дані, подібно до того, як reCAPTCHA приймає текст із сканованих книг , і в цьому випадку бот може використовуйте ці дані проти нього (наприклад, якщо ви берете слова зі словника, просите користувача ввести синоніми, бот може використовувати той самий словник, щоб мати 100% успіх).


4
+1 за те, що зазначає, що CAPTCHA не гарантовано працює
Ніл

8
Я бачив кілька нових романсів, які є дуже доменними. На одному з них відображалися зображення резисторів, і користувачеві довелося вводити опір (там було посилання на сторінку довідки для людей, які не вміли читати смуги кольорів резисторів). Інший мав зображення невеликого фрагмента музичної нотації, і користувач повинен був вводити певні ноти (наприклад, "ноти лише в другому акорді"). Вони все ще граються, але вартість спамерів, можливо, не варта.
FrustratedWithFormsDesigner

2
@MainMa десь був повідомлення у технічному звіті про когось, хто сконструював бота, який надзвичайно швидко бив капчу, бо він ігнорував візуальне та замість нього інтерпретував аудіосигнал, тож у кінцевому підсумку вам доведеться додати статику до аудіо, що робить користувачам ще складніше
RhysW

@RhysW: Стаття W3C, яку я згадував, також згадує, що перехід від зображень до аудіо не вирішує проблему з ботом і навіть може полегшити роботу ботам.
Арсеній Муренко

24
Ферми людини. Чому я малюю Матрицю?
LarsTech

37

Додавання до відповіді MainMa ...

Спамери обманюють інших робити CAPTCHA для них

В основному, спамери створюють веб-сайт warez або порно-сайт, який, схоже, містить на ньому CAPTCHA, але це не справжня CAPTCHA. Бот витягує CAPTCHA з сайту, який вони хочуть спамувати (або іншим чином використовувати), а потім відображає його на сайті warez або на порносайті, де хтось заповнює його. Потім значення CAPTCHA передається їх боту ...

Трохи більше про спамерів

Я використовую reCAPTCHA , і я виявив, що це в основному нічого не варто. Я також використовую нестандартний фільтр спаму, який фіксує спам, який минув reCAPTCHA, і мені потрібно перевіряти його кожні кілька днів на предмет помилкових позитивних результатів.

На моєму форумі також все написано на замовлення, і він отримує дуже мало трафіку. Я не вірю, що хтось зашифрував конкретну атаку на мій сайт. І все-таки мій спам-фільтр ловить 2k спам-повідомлення щодня! Жоден ніколи не відображається на сайті. Спамери не отримують ніякої користі від спаму, але вони все ще є.

Я бачу шаблони в спробах спаму, тому що я реєструю все це. Я можу вам сказати це: відкидаючи, як вони проходять повз CAPTCHA, спамери чітко використовують техніку грубої сили, змінюючи заповнені поля та тип даних та словосполучень, які заповнюють ці поля. Мабуть, вони роблять це настільки дешево (у тому числі, минаючи CAPTCHA), що навіть не платять робити аналіз окремих сайтів, щоб побачити, чи те, що вони роблять, працює чи не працює.

Рік за роком вони продовжують орієнтуватися на мій сайт із тисячами спам-повідомлень на день, щоб отримати його лише щомісяця, а через день його видаляють вручну. Це так дешево, щоб спам!

Це буде битва на довгі роки. Особливо для маленьких сайтів-модераторів, таких як моя.


РЕДАКЦІЯ 22.06.2017 : Я хочу додати, що з моменту останньої публікації google повністю оновив reCAPTCHA і з цього моменту він працює бездоганно. Хоча я підозрюю, що є трохи помилкових позитивних результатів або це біль для користувачів, оскільки повідомлення трохи впало з моменту його реалізації. 2 великі зміни є

1) Вони використовують зображення замість тексту (тому більше немає OCR)

2) Вони поєднують це з активністю користувачів на всіх сайтах, які використовують reCAPTCHA. Отже, якщо ви проходите повз reCAPTCHA на сайті A, тоді перейдіть на сайт B, можливо, навіть не підкаже вам довести, що ви людина! Також (я думаю), якщо ви потрапляєте на занадто багато reCAPTCHA на занадто багато сайтів, це позначить і вас. Я впевнений, що він використовує інші види AI на основі активності користувачів.

Я впевнений, що це лише питання часу, поки спамери також не обіграють це ...


Це, мабуть, найсильніший аргумент для reCAPTCHA для невеликого веб-сайту: Google має набагато більше ресурсів, щоб не відставати від сучасних методів спаму.
Стівен С. Сталь

15

Ви коли-небудь пробували використовувати captcha cat-dog? У мене є форум, який мав стандартну капчу і змінив її, і з тих пір я не маю гостьових спамів.введіть тут опис зображення


12

Цілком можливо, що ваш сайт націлений на експлуатовану наддешеву робочу силу і людина вручну вводить ваші фрази CAPTCHA.

Якщо рішення, яке ви використовуєте, не надто складне, можливо, ваш нападник розпізнає зображення.

Це також можливість, що у вас є помилка десь у вашому коді, що дозволяє обійти CAPTCHA.

Не припускайте, що робот б’є вашу CAPTCHA. Подумайте над своєю системою цілісно і перевірте, чи була вона порушена.


Я поєднав би зображення та схеми CSS, які люди не зможуть легко розібрати.
Ерік Реппен

2
Два слова ... Механічний турк. Амазонка зробила крапку неймовірно дешевого починання.
Майкл Браун

10

Інші обговорили, як спамери обходять CAPTCHA. Ось кілька порад про те, як я можу запобігти цьому :

Зауважте, немає срібної кулі, і спамери, схоже, на 1 крок попереду гри. Тож вам доведеться використовувати комбінацію декількох прийомів

  1. Використовуйте форму для медового горщика
  2. Використовуйте питання CAPTCHA або Logic. Основні питання на кшталт "яблуко, риба, рука, шість - що з них є частиною тіла"
  3. Майте затримку. Якщо форма буде розміщена протягом 5 секунд після завантаження сторінки, ігноруйте запит, більшість роботів опублікують повідомлення менш ніж за секунду
  4. Проведіть деякий моніторинг IP-адрес - якщо ви помітили, що павук переповнює ваш веб-сайт, який не входить у список білих (google, bing), тоді чорний список та заборонить його IP-адресу. Переважно це було б динамічним / автоматизованим кодом / програмним забезпеченням

6

Щоб відповісти на інші відповіді, ви, швидше за все, стикаєтесь з ботами, які використовують людські ферми для введення в них капчу.

Нещодавно я обговорював техніку (і випустив супровідний модуль Drupal), який блокує спам-боти, вимагаючи JavaScript на стороні клієнта. Наскільки мені відомо, це працювало зі 100% ефективністю на всіх сайтах, які використовували цей код. Ідея полягає у використанні AJAX для створення унікального хешу та подання його разом з іншими даними форми, а потім обчислить той самий хеш на бекенді після подання форми та порівняння двох значень.

Повна інформація в моєму дописі в блозі (випадково, оскільки ви згадали про використання PHP + MySQL, це ті самі технології, які описані там) - Реліз модуля: Badbot; усунення спаму ...


1
Це буде працювати до тих пір, поки він не набуде широкого розповсюдження, і спамер не використовуватиме безголовий браузер.
Xavier Combelle

1
Як використання безголового браузера щось змінює?
Тетяна Рачева

-2

Якщо ваш сайт щебетає, а хтось спеціально націлив його (а не бот, який його знаходить), ви можете перестати читати ...

В іншому випадку, можливо, не варто робити форму НЕ схожою на форму. 1. Не майте полів з "електронною поштою" типу, імені або заповнювача, використовуйте короткі або оманливі імена для всіх полів. 2. Не використовуйте фактичний елемент форми html та кнопку подання. Швидше скористайтеся AJAX, щоб опублікувати його при натисканні звичайного діва (стилізованого так, щоб виглядати як кнопку). 3. Не ставте події onclick в html, додайте слухача в JavaScript. 4. Використовуйте JavaScript для заповнення будь-яких порад "введіть свою адресу електронної пошти сюди", оскільки можливо, боти насправді не запускають JS під час перегляду сторінок (не впевнені в цій, але я все одно це роблю).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.