Как роботы могут победить капчи?


84

У меня есть форма электронной почты на сайте. Я использую собственную CAPTCHA для предотвращения спама от роботов. Несмотря на это, я все еще получаю спам.

Почему? Как роботы побеждают CAPTCHA? Используют ли они какой-нибудь продвинутый OCR или просто получают решение, где оно хранится?

Как я могу предотвратить это? Должен ли я перейти на другой тип капчи?


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

Кстати, я использую PHP + MySQL, но я не ищу решения этой проблемы. Меня интересовала общая ситуация, как роботы побеждают эти технологии. Я просто привел эту ситуацию в качестве примера, чтобы вы могли лучше понять, о чем я спрашиваю.


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

14
Если кто-то считает, что этот вопрос заслуживает отрицательного ответа, хотя бы объясните мне, почему.
Тотимедли

10
@Blrfl, я не понимаю, как это не по теме.

47
Если вы хотите, чтобы мы ответили на ваш вопрос, сначала докажите, что вы не робот.
Пит Киркхам

7
@Blrfl Это, однако, имеет отношение к качественной разработке программного обеспечения.
Изката

Ответы:


72

Два самых простых способа пройти через CAPTCHA:

  • Используйте человеческие фермы, то есть попросите людей заполнить CAPTCHA за деньги, как это делает ProTypers .

  • Используйте OCR.

Также может быть ошибка либо в самом механизме CAPTCHA, либо в окружающем приложении, что позволяет кому-либо обходить CAPTCHA.

Кстати, статья W3C «Недоступность CAPTCHA: альтернативы визуальным тестам Тьюринга в Интернете» также объясняет, как CAPTCHA могут быть скомпрометированы:

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

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

Итак, как вы можете предотвратить эти атаки?

  • Если у вас есть пользовательская реализация CAPTCHA, вы можете попробовать перейти на популярную, например reCAPTCHA .

    Это поможет, если либо ваша собственная CAPTCHA была слишком проста для распознавания, либо если была ошибка, которая была успешно использована.

  • Если вы используете популярный механизм CAPTCHA, переход на пользовательский или другой популярный может предотвратить распознавание текста.

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

Возможно, вы захотите перейти от визуальной CAPTCHA к звуковой (если вы не используете и то, и другое уже, а вам следует), но это означает, что пользователи с нарушением слуха не смогут использовать ваше приложение.


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

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

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

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

  2. Большинство из этих проблем, связанных с конкретной областью, можно решить программным путем Оба приведенных примера легко решаются с помощью внешних ресурсов (словарь Google Images и словарь синонимов). Пример с транзисторами, приведенный в качестве примера FrustratedWithFormsDesigner, лучше, но все же, возможно, его можно решить с помощью специального бота.

  3. Никто не сопротивляется человеческим фермам.

  4. Либо они генерируют данные, так же, как обычные текстовые CAPTCHA рисуют искаженные символы, и в этом случае алгоритм генерации может сам использоваться для настройки ботов, или они находят данные где-то, как reCAPTCHA берет текст из отсканированных книг , и в этом случае бот может используйте эти данные против них (например, если вы берете слова из словаря, прося пользователя предоставить синонимы, бот может использовать тот же словарь, чтобы иметь 100% успеха).


4
+1 за то, что вы не заметили, что CAPTCHA не гарантированно работает
Neil

8
Я видел несколько новых капч, которые очень специфичны для предметной области. Один из них отображал изображения резисторов, и пользователь должен был ввести сопротивление (там была ссылка на страницу помощи для людей, которые не знали, как читать цветные полосы резисторов). У другого было изображение небольшого фрагмента музыкальной записи, и пользователю приходилось вводить определенные заметки (например, «только ноты во втором аккорде»). Они все еще играбельны, но цена для спамеров может не стоить того.
FrustratedWithFormsDesigner

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

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

24
Человеческие фермы. Почему я представляю Матрицу?
LarsTech

37

Добавление к ответу MainMa ...

Спамеры заставляют других делать для них капчу

В основном, спамеры создать сайт варез или сайт порно, который появляется, чтобы капчу на него, но это не реальная CAPTCHA. Бот тянет CAPTCHA, с сайта они хотят спама (или иным образом использовать), а затем отображает его на сайте варез или порно сайт, где кто-то завершает его для них. Затем значение CAPTCHA передается обратно в их бот ...

Еще немного о спамерах

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

Мой форум также полностью написан на заказ и получает очень мало трафика. Я не верю, что кто-то закодировал конкретную атаку на мой сайт. Тем не менее, мой спам-фильтр перехватывает 2 тысячи спам-сообщений в день! Ни один из них никогда не отображается на сайте. Спамеры не получают никакой выгоды от спама, но они все еще получают.

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

Год за годом они продолжают нацеливать на мой сайт тысячи спам-сообщений в день только для того, чтобы получать по одному в месяц, а это удаляется вручную через день. Это так дешево, чтобы спамить!

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


РЕДАКТИРОВАТЬ 22.06.2017 : Я хочу добавить, что с тех пор, как этот пост Google полностью обновил reCAPTCHA, и на момент написания статьи он работал безупречно. Хотя я подозреваю, что есть несколько ложных срабатываний или боль для пользователей, так как пост немного упал с тех пор, как я его реализовал. 2 большие изменения

1) Они используют изображения вместо текста (так что больше нет распознавания текста)

2) Они объединяют это с активностью пользователей на всех сайтах, которые используют reCAPTCHA. Так что, если вы пройдете reCAPTCHA на сайте A, перейдите на сайт B, и он может даже не попросить вас доказать, что вы человек! Также (я думаю), если вы нажмете слишком много reCAPTCHA на слишком многих сайтах, это также пометит вас. Я уверен, что он использует другие виды ИИ, в зависимости от активности пользователей.

Я уверен, что это просто вопрос времени, пока спамеры не победят это ...


Вероятно, это самый сильный аргумент в пользу reCAPTCHA для небольшого веб-сайта: у Google гораздо больше ресурсов, чтобы идти в ногу с современными методами спама.
Стивен С. Сталь

15

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


12

Вполне возможно, что на ваш сайт нацелена эксплуатируемая сверхдешевая рабочая сила, и что человек вручную вводит ваши фразы CAPTCHA.

Если решение, которое вы используете, не слишком сложное, возможно, ваш злоумышленник выполняет распознавание изображений.

Также возможно, что где-то в вашем коде есть ошибка, которая позволяет обойти CAPTCHA.

Не думайте, что робот избивает вашу капчу. Подумайте о своей системе целостно и посмотрите, не скомпрометирована ли она.


Я бы объединил схемы изображений и CSS, которые люди не смогут легко разобрать.
Эрик Реппен

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

10

Другие обсуждали, как спаммеры обходят CAPTCHA. Вот несколько советов о том, как я могу предотвратить это :

Обратите внимание, что серебряной пули нет, и спаммеры, похоже, на 1 шаг впереди игры. Таким образом, вам придется использовать комбинацию нескольких методов

  1. Используйте форму для меда
  2. Используйте CAPTCHA или логический вопрос. Основные вопросы, такие как «яблоко, рыба, рука, шесть - какой из них является частью тела»
  3. Задержка Если форма размещена в течение 5 секунд после загрузки страницы, игнорируя запрос, большинство роботов отправят сообщение менее чем за секунду
  4. Проведите мониторинг IP-адресов - если вы заметили, что ваш веб-сайт сканирует паук, которого нет в белом списке (google, bing), занесите в черный список и заблокируйте его IP-адрес. Предпочтительно это было бы динамически / автоматизировано в коде / программном обеспечении

6

Чтобы повторить другие ответы, вы, вероятно, столкнетесь с ботами, которые используют человеческие фермы, чтобы ввести для них капчи.

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

Полная информация в моем сообщении в блоге (по совпадению, так как вы упомянули об использовании PHP + MySQL, это те же самые технологии, описанные там) - Выпуск модуля: Badbot; устранение спама ...


1
Это будет работать до тех пор, пока оно не станет широко распространенным и спамер не использует браузер без головы
Ксавье Комбель

1
Как использование безголового браузера что-то меняет?
Татьяна Рачева

-2

Если ваш сайт является твиттером, и кто-то специально на него нацелился (а не бот, который его нашел), тогда вы можете перестать читать ...

В противном случае, возможно, стоит не делать вашу форму НЕ похожей на форму. 1. Не используйте поля с «e-mail» в типе, имени или заполнителе, используйте короткие или вводящие в заблуждение имена для всех полей. 2. Не используйте фактический элемент формы HTML и кнопку отправки. Вместо этого используйте AJAX, чтобы опубликовать его по щелчку обычного элемента div (в стиле, похожем на кнопку). 3. Не помещайте событие onclick в html, добавьте слушателя в JavaScript. 4. Используйте JavaScript, чтобы заполнить любые подсказки «введите свой адрес электронной почты здесь», поскольку вполне возможно, что боты на самом деле не будут вызывать JS при тралении страниц (не уверен на этом, но я все равно это делаю).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.