Опубликован код для определения reCaptcha с точностью 85%
Исследователи из Мэрилендского университета и компании Vicarious опубликовали реализации двух различных методов обхода средств отсеивания интернет-ботов на основе капчи, в том числе позволяющих обойти защиту популярного сервиса reCaptcha. Методы интересны различиями в подходах — первый проект легко реализуем при помощи существующих сервисов, а второй потребовал существенных исследований в области распознавания образов и машинного обучения.
Первый проект получил название unCaptcha и позволяет восстановить цифровой код reCaptcha, предлагаемый для ввода в режиме звуковой капчи. Метод позволяет определить капчу с точностью 85.15%, на распознавание уходит приблизительно 5 секунд, что сопоставимо с длительностью предлагаемой звуковой последовательности. Реализация опубликована на GitHub под лицензией MIT.
Суть метода сводится к записи продиктованных цифр, разделения отдельных слов и передачи каждого слова одновременно в шесть online-сервисов распознавания речи (IBM, Google Cloud, Google Speech Recognition, Sphinx, Wit-AI, Bing Speech Recognition). Далее из распознанных фраз выделяются цифры или слова по произношению близкие к цифрам (например, true/to/too воспринимается как 2, tree/free как 3, sex как 6 и т.п.) и на основе оценки частоты совпадений выбирается наиболее вероятное значение.
Второй проект использует методы машинного обучения и распознавания образов для выбора правильной картинки при работе с различными капчами. Для распознавания используется специально разработан алгоритм RCN (Recursive Cortical Network), эталонная реализация которого опубликована под лицензией MIT.
В условиях распознавания обычного текста RCN обеспечивает точность на уровне 90% и в отличие от традиционно применяемых для подобных задач свёрточных нейронных сетей (CNN, Сonvolutional Neural Network) требует существенно меньшего объёма данных для обучения, обеспечивая при этом отличную адаптацию к искажениям символов, наклону, наложению и размытию, не требующую дополнительного обучения.
Например, cеть RCN позволила добиться точности в 66.6% распознавания фраз на каптче reCAPTCHA, при этом использовав для обучения всего 500 изображений. Для каптч BotDetect точность распознавания составил 64.4%, Yahoo — 57.4% и PayPal — 57.1% (капча считается ненадёжной при возможности автоматического подбора с точностью в 1%). При оптимизации модели под конкретный стиль удалось добиться точности распознавания на уровне 90%. Построенная компанией Google свёрточная нейронная сеть обеспечила уровень распознавания reCAPTCHA в 89.9%, но потребовала обучения на базе из 2.3 млн изображений капч и продемонстрировала снижение точности до 38.4% при простом изменении на 15% пространства между символами, в то время как RCN легко адаптируется к изменениям в стиле, так как осуществляет разбор на уровне отдельных символов.
В RCN задействованы методы, сходные с работой человеческого зрения. Работа RCN напоминает поведение нейронов в коре головного мозга, одна часть которых осуществляет выделение контуров объектов, а другая занимается изучением поверхности и текстур, сообща решая задачу распознавания образа. В RCN одна часть сети осуществляет выделение контуров объектов, другая часть анализирует наложения разных объектов, а третья выполняет операции классификации выделенной иерархии объектов с учётом стиля и угла зрения, на последнем этапе осуществляется сопоставление с формами стандартных букв или цифр. Для каждой из букв алфавита формируется набор шаблонов, учитывающих разные начертания, наклон, растяжение и другие виды искажений. Сопоставление осуществляется с использованием генеративной вероятностной модели.
© OpenNet