Как Капчи Рассказали Об Уязвимости Яндекса

Привет, Хабр! Устройтесь поудобнее и заварите себе чаю, потому что пишу немного растянуто и через правое ухо.

Итак, вы готовы? Отлично, тогда приступим.

ВНИМАНИЕ! Информация, описанная ниже, написана исключительно в исследовательских целях и не предназначена для использования в личных целях! Я начну с некоторой предыстории.

А именно, с разработкой сетевого накопителя, сектора которого расположены в облаке.

Суть этой технологии позволяла превратить несколько аккаунтов (ну около 100 или 1к аккаунтов) одного и того же Яндекс.

Диска по 10 Гб каждый (может меняться в момент чтения) в один большой диск, скажем 10 Тб.

Здесь.

Итак, пару лет назад я начал разработку этой программы (программу я написал, но об этом в другой статье) и встал вопрос — как ввести YaCaptcha. Вот некоторые примеры:

Как капчи рассказали об уязвимости Яндекса



Как капчи рассказали об уязвимости Яндекса



Как капчи рассказали об уязвимости Яндекса



Как капчи рассказали об уязвимости Яндекса

Оказывается я посмотрел на эту капчу, немного погуглил и думаю — надо использовать TensorFlow, а потом перенести в FANN. Я, конечно, немного расстроилась, но делать было нечего.

Давай, думаю, скачаю пока несколько картинок (~100к), чтобы потом нейронки потренировать, но пока скачиваю, запомню U-net сегментацию.

Ну я набросал пару строчек кода в Delphi + Synapase, запустил и пошёл в гугл по поводу нейрона.

За время поиска, надо сказать, скачалось до.

многого, в общем.

И вот здесь начинается веселье.

Зашёл в папку с картинками и увидел - одни повторы! Да-да, было много повторяющихся картинок.

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

Я завел его и упал на плиту спать.

Сегодня утром посмотрел статистику и задумался: из 100к изображений удалено 76к дублей, и они не просто похожи - они идентичны на 100%! Что это значит, спросите вы? Я сейчас объясню.

Если взять нейрон, то где-то можно получить ~18% распознавания, как пишет наш друг (ну мне кажется при желании можно и до 45-50% выжать).

Но даже если и так, не будем забывать, сколько возни с такими методами (базы данных нужно создавать, нужно вводить вручную.

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

Можно ли как-то пойти другим путем? - ты спрашиваешь.

И тут я предлагаю посчитать - у нас 100к изображений, из них 76к повторы, т.е.

если мы заполним базу данных этих изображений (например, возьмем хэш суммы), то получим процент распознавания аж 76 %, что выше, чем у нейрона, а вес базы данных примерно такой же (если не меньше), как у таблицы весов для TensorFlow. При этом этот метод будет работать везде и не требует кучи библиотек.

Мы понимаем, что Яндекс сильно облажался, создав так мало вариантов капчи.

И благодаря этому можно написать ту программу, о которой я писал выше.

Разве это не явная уязвимость системы? Или вы думаете, что более 100 ТБ места на жестком диске — это дешево? Спасибо за просмотр! Использованная информация:

  1. Статья о YaCaptcha
  2. Статья в U-net (рус.

    )

  3. Статья на U-net (англ)
  4. Распознавание некоторых современных CAPTCHA Особая благодарность авторам этих статей за их труд!
Теги: #YaCaptcha #уязвимость #yandex #нейронные сети #распознавание текста #информационная безопасность #API Яндекса #Хранение данных #Веб-аналитика #облачные сервисы
Вместе с данным постом часто просматривают: