Системы глубокого анализа трафика имеют дополнительную защитную функцию. Речь идет о защите от DDoS. Для этого используется один из самых популярных и эффективных способов — CAPTCHA, или полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.
Сам по себе тест достаточно известен, однако в его истории и эволюции есть несколько любопытных фактов, о которых мы хотим сегодня рассказать.
/ Flickr / F^IL / CC
Оригинальная система была разработана в начале XXI века инженерами из Университета Карнеги — Меллона, США. Команда под руководством Луиса фон Ана (Luis von Ahn) искала способ фильтрации регистраций на сайтах, выполняемых автоматическими программами и спам-ботами.
Команда разработала систему, показывающую пользователю сильно искаженный текст, который невозможно распознать программными алгоритмами. Работу с ресурсом можно было продолжать только после того, как отображаемое слово было корректно введено в намеченное поле. Решение получилось настолько удачным, что стало активно применяться по всему миру.
Однако это быстро привело к появлению нового вида заработка в интернете — решению задач CAPTCHA. Спамеры начали платить людям за ввод «контрольной фразы». Такой доход стал популярен в бедных странах, где возможность получить пусть и минимальные деньги за тысячи решений CAPTCHA достаточно привлекательна.
Несмотря на это, сервис не утратил популярности, наоборот, разработчиков начала беспокоить мысль, что они заставляют миллионы людей бессмысленно переводить изображения в текст, понапрасну растрачивая время и усилия, не принося никакой практической пользы. Поэтому Луис задался вопросом: «Можно ли сделать с этим временем что-то полезное?».
И нашел на него ответ, представив приложение reCAPTCHA спустя некоторое время. Оно по-прежнему было «завязано» на вводе изображений с картинки, но вместо случайного набора символов пользователь должен был «расшифровать» реальный текст из архивных документов. Программное обеспечение того времени уже было способно распознавать печатные тексты с достаточно высокой точностью, однако все равно в книгах со временем чернила расплываются, что мешало компьютерам определить некоторые слова. Человек же с этим справляется без особых проблем.
Первыми в очереди на распознавание оказались архивные номера газеты The New York Times. После этого, когда в 2009 году сервис купила компания Google, расшифровке подверглись старые книги. Получается, что каждый раз, вводя текст с reCAPTCHA, вы разбираете фрагменты из реальных архивных текстов. Луис фон Ан был очень доволен новой версией программы, уверяя, что сервис проживет очень долго, поскольку печатного материала в архивах предостаточно.
Подобные эксперименты были проведены и по распознаванию изображений из Google Maps и Google Street View. Однако в скором времени аналитикам компании Google пришлось искать ответ на успешные попытки автоматизации «взлома» даже самых сложных изображений с вероятностью, превышающей 90%.
Для решения возникшей проблемы Google начали совершенствовать технологию, и в 2015 году инженеры компании представили новое решение, которое не обязывало пользователя распознавать символы. Новая система анализировала поведение пользователя на сайте до момента нажатия проверочной кнопки «Я не робот», а затем делала вывод: человек это или бот.
Если анализ не давал однозначного результата, то пользователю предлагалось пройти дополнительную проверку, например, выбрать из нескольких картинок все, на которых изображены деревья.
Помимо самых распространенных систем от компании Google, сегодня имеются и другие решения, направленные на различение человека и машины. Так, разработчики сервиса TextCAPTCHA предлагают пользователям отвечать на простые логические вопросы. Например, о том, какая буква в слове «автомобиль» стоит на третьем месте.
Считается, что таких запутанных формулировок будет достаточно, чтобы обмануть «автомат», а конкретные вопросы гораздо проще в плане восприятия человеком. Также некоторые разработчики тестов Тьюринга придерживаются мнения, что лучше просить пользователей решать несложные математические уравнения.
Еще одно интересное решение было предложено Facebook в январе 2011 года. Компания экспериментировала с так называемой социальной аутентификацией. По словам представителей компании, идея заключалась в том, чтобы показать пользователю несколько фотографий его друга и попросить назвать его имя.
Специалисты Facebook были уверены в том, недоброжелатели могут быть едва ли знакомы с вашими друзьями и не станут собирать всю информацию о вам круге общения, что в целом достаточно спорное утверждение.
Также различными онлайн-сервисами используются и другие методы «фильтрации» пользователей, которые дают еще один уровень защиты. Они заменяют или дополняют CAPTCHA.
/ Flickr / Tarek / CC
Honeypot. В 2007 году Фил Хаак (Phil Haack) предложил любопытный метод определения ботов. Он получил название Honeypot. Его особенность заключается в добавлении дополнительного поля при заполнении онлайн-формы, которое было бы невидимо для пользователя-человека. Бот не способен понять, видимо это поле или нет, потому заполняет его «по инерции», что позволяет администратору заблокировать регистрацию как спам.
Временные ограничения. В среднем, сколько времени вам требуется на заполнение онлайн-формы с 10 полями? Большинство людей тратит на это несколько минут, в то время как боты делают это практически мгновенно. Идея решения состоит в том, чтобы отметить как подозрительные все регистрации, поля формы во время которой были заполнены быстрее определенного промежутка времени. Этот способ хорошо работает до тех пор, пока спамеры не поймут, что такой временной порог существует, после этого они учат свои системы заполнять поля ввода помедленнее.
Интересные и простые игры. Использование игр в борьбе против спама становится быстрорастущей тенденцией. Вместо того чтобы вводить «капчу», компании просят пользователей сыграть в небольшую игру, дабы доказать свою «человечность». Игры могут быть самыми разными: небольшие платформеры (по типу Марио) или же аркады, например, с ракетой в космосе, которую нужно провести через метеоритный пояс. Помимо стандартных функций защиты от ботов, такое решение добавляет в достаточно рутинную операцию немного веселья.
Аудиокапчи. Это альтернатива визуальной CAPTCHA. Сервис сам «говорит», какие слова нужно ввести. И хотя это решение в теории выглядит эффективным, на практике все упирается в качество колонок компьютера пользователя. А если в доступности у пользователя нет акустической системы или наушников, то он не сможет пользоваться сервисом.
«Гонка вооружений» между специалистами по безопасности и спамерами никогда не закончится. Поэтому постоянно будут разрабатываться все новые механизмы защиты и их обхода. Но несмотря на это технология reCAPTCHA остается одним из самых надёжных способов борьбы с ботнет-сетями и успешно применяется в системе DPI СКАТ для защиты от DDoS-атак. Постоянная разработка платформы и выпуск новых версий позволяет использовать актуальные механизмы защиты.
Сам по себе тест достаточно известен, однако в его истории и эволюции есть несколько любопытных фактов, о которых мы хотим сегодня рассказать.
/ Flickr / F^IL / CC
Оригинальная система была разработана в начале XXI века инженерами из Университета Карнеги — Меллона, США. Команда под руководством Луиса фон Ана (Luis von Ahn) искала способ фильтрации регистраций на сайтах, выполняемых автоматическими программами и спам-ботами.
Команда разработала систему, показывающую пользователю сильно искаженный текст, который невозможно распознать программными алгоритмами. Работу с ресурсом можно было продолжать только после того, как отображаемое слово было корректно введено в намеченное поле. Решение получилось настолько удачным, что стало активно применяться по всему миру.
Однако это быстро привело к появлению нового вида заработка в интернете — решению задач CAPTCHA. Спамеры начали платить людям за ввод «контрольной фразы». Такой доход стал популярен в бедных странах, где возможность получить пусть и минимальные деньги за тысячи решений CAPTCHA достаточно привлекательна.
Несмотря на это, сервис не утратил популярности, наоборот, разработчиков начала беспокоить мысль, что они заставляют миллионы людей бессмысленно переводить изображения в текст, понапрасну растрачивая время и усилия, не принося никакой практической пользы. Поэтому Луис задался вопросом: «Можно ли сделать с этим временем что-то полезное?».
И нашел на него ответ, представив приложение reCAPTCHA спустя некоторое время. Оно по-прежнему было «завязано» на вводе изображений с картинки, но вместо случайного набора символов пользователь должен был «расшифровать» реальный текст из архивных документов. Программное обеспечение того времени уже было способно распознавать печатные тексты с достаточно высокой точностью, однако все равно в книгах со временем чернила расплываются, что мешало компьютерам определить некоторые слова. Человек же с этим справляется без особых проблем.
Первыми в очереди на распознавание оказались архивные номера газеты The New York Times. После этого, когда в 2009 году сервис купила компания Google, расшифровке подверглись старые книги. Получается, что каждый раз, вводя текст с reCAPTCHA, вы разбираете фрагменты из реальных архивных текстов. Луис фон Ан был очень доволен новой версией программы, уверяя, что сервис проживет очень долго, поскольку печатного материала в архивах предостаточно.
Подобные эксперименты были проведены и по распознаванию изображений из Google Maps и Google Street View. Однако в скором времени аналитикам компании Google пришлось искать ответ на успешные попытки автоматизации «взлома» даже самых сложных изображений с вероятностью, превышающей 90%.
Для решения возникшей проблемы Google начали совершенствовать технологию, и в 2015 году инженеры компании представили новое решение, которое не обязывало пользователя распознавать символы. Новая система анализировала поведение пользователя на сайте до момента нажатия проверочной кнопки «Я не робот», а затем делала вывод: человек это или бот.
Если анализ не давал однозначного результата, то пользователю предлагалось пройти дополнительную проверку, например, выбрать из нескольких картинок все, на которых изображены деревья.
Другие CAPTCHA и иные решения
Помимо самых распространенных систем от компании Google, сегодня имеются и другие решения, направленные на различение человека и машины. Так, разработчики сервиса TextCAPTCHA предлагают пользователям отвечать на простые логические вопросы. Например, о том, какая буква в слове «автомобиль» стоит на третьем месте.
Считается, что таких запутанных формулировок будет достаточно, чтобы обмануть «автомат», а конкретные вопросы гораздо проще в плане восприятия человеком. Также некоторые разработчики тестов Тьюринга придерживаются мнения, что лучше просить пользователей решать несложные математические уравнения.
Еще одно интересное решение было предложено Facebook в январе 2011 года. Компания экспериментировала с так называемой социальной аутентификацией. По словам представителей компании, идея заключалась в том, чтобы показать пользователю несколько фотографий его друга и попросить назвать его имя.
Специалисты Facebook были уверены в том, недоброжелатели могут быть едва ли знакомы с вашими друзьями и не станут собирать всю информацию о вам круге общения, что в целом достаточно спорное утверждение.
Также различными онлайн-сервисами используются и другие методы «фильтрации» пользователей, которые дают еще один уровень защиты. Они заменяют или дополняют CAPTCHA.
/ Flickr / Tarek / CC
Honeypot. В 2007 году Фил Хаак (Phil Haack) предложил любопытный метод определения ботов. Он получил название Honeypot. Его особенность заключается в добавлении дополнительного поля при заполнении онлайн-формы, которое было бы невидимо для пользователя-человека. Бот не способен понять, видимо это поле или нет, потому заполняет его «по инерции», что позволяет администратору заблокировать регистрацию как спам.
Временные ограничения. В среднем, сколько времени вам требуется на заполнение онлайн-формы с 10 полями? Большинство людей тратит на это несколько минут, в то время как боты делают это практически мгновенно. Идея решения состоит в том, чтобы отметить как подозрительные все регистрации, поля формы во время которой были заполнены быстрее определенного промежутка времени. Этот способ хорошо работает до тех пор, пока спамеры не поймут, что такой временной порог существует, после этого они учат свои системы заполнять поля ввода помедленнее.
Интересные и простые игры. Использование игр в борьбе против спама становится быстрорастущей тенденцией. Вместо того чтобы вводить «капчу», компании просят пользователей сыграть в небольшую игру, дабы доказать свою «человечность». Игры могут быть самыми разными: небольшие платформеры (по типу Марио) или же аркады, например, с ракетой в космосе, которую нужно провести через метеоритный пояс. Помимо стандартных функций защиты от ботов, такое решение добавляет в достаточно рутинную операцию немного веселья.
Аудиокапчи. Это альтернатива визуальной CAPTCHA. Сервис сам «говорит», какие слова нужно ввести. И хотя это решение в теории выглядит эффективным, на практике все упирается в качество колонок компьютера пользователя. А если в доступности у пользователя нет акустической системы или наушников, то он не сможет пользоваться сервисом.
«Гонка вооружений» между специалистами по безопасности и спамерами никогда не закончится. Поэтому постоянно будут разрабатываться все новые механизмы защиты и их обхода. Но несмотря на это технология reCAPTCHA остается одним из самых надёжных способов борьбы с ботнет-сетями и успешно применяется в системе DPI СКАТ для защиты от DDoS-атак. Постоянная разработка платформы и выпуск новых версий позволяет использовать актуальные механизмы защиты.
Поделиться с друзьями
KlimovDm
Коллеги, вы не шутите?
dmitrykabanov
Если говорить о массовости и доступности, то почему бы и нет
KlimovDm
Нет, все таки не шутите… Тут все серьезно, включая минусы в карму. Война, бизнес, елы палы…
Я было подумал, что компания VASExperts просто наняла неквалифицированного автора, тот намешал в одну кучу мягкое и теплое из модных слов, не понимая особо — о чем он пишет. Потому что любой специалист по информационный безопасности начального уровня вам скажет, что считать CAPTCHA способом защиты от DDoS — это бред сивой кобылы. О какой массовости, какой доступности вы пишете? Вы сначала ликбез пройдите, хотя бы что такое DDoS разберитесь.
andreymal
Тот же CloudFlare организует защиту от DDoS в том числе с помощью этой самой reCAPTCHA.
KlimovDm
Андрей, давно так не смеялся :) Потрясающий скриншот.
Ну, давайте о CloudFlare. Сама тема
CloudFlare и DDoS — здесь
Может для вас это будет неплохой стартовой точкой.
Во всяком случае, уже при чтении второго абзаца вы должны начать что-то подозревать.
andreymal
Кто-то в этом топике писал, что капча это единственный способ защиты от DDoS, что ли? Всё ещё предлагаю вам разобраться в теме нормально, а не хватая рандомные абзацы из нетехнических текстов.
KlimovDm
Я повторю вам еще раз, пожалуй. Читайте внимательнее в следующий раз, пожалуйста.
Капча вообще не является способом защиты от DDoS
Ни первым, ни единственным, ни пятым, ни двадцать пятым, ни одним из многих — вообще никаким. Защита от автоматических регистраций, заполнения, отправок форм? Да. Какое это имеет отношение к DDoS? Никакого. Т.е. вообще никакого, абсолютно.
andreymal
Ладно, пока я в хорошем настроении, специально для вас проведу мини-лекцию, хоть комментарии для этого и не очень подходят.
Один из частных случаев DDoS-атаки — отправка множественных HTTP-запросов веб-серверу, которые сервер не успевает обрабатывать по причине занятости всех ресурсов другими запросами и отвечает каким-нибудь таймаутом (если вообще отвечает, хех). (Капитан Очевидность замечает, что большое количество запросов отправляют именно боты. А в посте как раз упоминается, что капча это защита от ботов ;)
Как защититься от этого? В общем случае — никак: достаточно мощная атака способна валить что угодно сколь угодно долго. Но для средних и слабых DDoS-атак вполне эффективным оказывается отфильтровывание подозрительных запросов какими-нибудь высокопроизводительными фильтрами (может, даже с помощью fail2ban, хоть это и не совсем по назначению) или на стороннем мощном прокси-сервере.
Именно так и работает CloudFlare: на домен сайта вешается IP-адрес сервера CF, а уже этот сервер перенаправляет запрос к сайту на настоящий сервер, IP-адрес которого не знает никто, кроме админов сервера и самого CF (иначе можно было бы просто атаковать этот IP-адрес напрямую в обход CF). Если CF не понравился какой-то HTTP-запрос, он просто отвечает ошибкой, и до настоящего сервера этот запрос не доходит вообще.
А теперь самая мякотка: как CF должен отличать хорошие запросы от плохих, какие запросы к серверу пускать, а какие не пускать? Один из способов — ВНЕЗАПНО — разгадывание капчи! Капча разгадана — значит запрос отправил человек, всё хорошо, перенаправляем на настоящий сервер. Не разгадана — значит бот. И пусть этот бот отправляет хоть сто тыщ мильёнов запросов — если он не разгадает капчу, до сервера не дойдёт ни один, и защита от DDoS таким образом обеспечена. (Правда, на мильёне мильёнов запросов может упасть уже сам CloudFlare, но сейчас не об этом.)
На скриншоте, который я выложил выше, CloudFlare включил режим параноика и счёл подозрительным HTTP POST-запрос с очень большим телом, в связи с чем и выдал мне капчу.
Очевидно, что есть и другие способы защиты, и капча лишь один из них. Не менее очевидно, что не-HTTP запросы капчей защитить невозможно.
KlimovDm
Так я потому и смеялся. Вы занимаетесь подменой понятий. В вашем примере защита от DDoS — это перевод трафика на проксирующий пул. Далее анализ и фильтрация — как правило процесс настроенный и автоматизированный — трафик сам по себе несет много информации. Например, у нас фильтр построен на radware. Но впендюривать для детекта гуманоида гугловую рекапчу на фильтующем пуле… это (сейчас закончу смеяться...), понятно, совсем от бедности, и, главное, это — профанация. А по русски — развод. Думаю, вы сами понимаете — почему.
andreymal
Этот ваш «перевод трафика на проксирующий пул» и есть один из способов защиты от DDoS, лол. А уж то, защищает он с использованием рекапчи или не рекапчи, от бедности или не от бедности, уже не важно, важен сам факт: защита от DDoS вот она и вполне работает) Боты капчу не проходят — запросы до сервера не доходят — защита работает, никаких разводов)
KlimovDm
Ну, вы хоть согласились с тем, что защитой является собственно переключение трафика, а не капча — это уже прогресс. Т.е. мы все-таки пришли к тому, что капча не является защитой от DDoS.
Ок, тогда объясню, почему капча — профанация в вашем примере и годится только для пионерско-демо-песочного DDoS.
Итак, DDoS, переключаемся на фильтрующий сервер. Его задача — отфильтровать паразитный трафик от полезного в условиях высокой нагрузки. В общем-то существует десятки решений и алгоритмов для этого, но ничего оригинальнее предложенной капчи я еще не встречал. Т.е. а давайте-ка мы в условиях DDoS увеличим трафик!, сами, добровольно. Причем не просто увеличим, а сделаем его сессионным с удержанием логической связи между запросом и ответом! Если идет целенаправленная атака на трафик — можно сказать, что этим все и закончится.
andreymal
Глупости опять пишете. Почему увеличим-то? Десяток запросов с одного айпишника и CF, и рекапча вполне выдержат, а если бот не решит капчу и на одиннадцатом запросе, то можно отправить его в бан на сутки-другие, начать резать вообще весь трафик и таким образом ничего не увеличивать.
Если же решить капчу вручную и уже потом запустить бота, то при частых запросах CF запросит капчу опять, а дальше уже как вариант по приведённой выше схеме. А если решать капчу вручную каждые несколько (десятков) секунд, то никакого DDoS из этого уже не выйдет)
Я не знаю, как это реализовано у CF на самом деле (благо в бан не попадал и капчи послушно проходил), но не надо понимать всё слишком прямолинейно и городить глупости)
KlimovDm
andreymal
progman_rus
имхо все же капча это один из вариантов защиты от одного из вариантов дидоса.
Вам коллега правильно указал — вариантов дидоса множество и автоматическое заполнение регистрационных форм ни самый распространенный из них.
взрослые мальчики и девочки дидосят по взрослому что ли.
А капча защитит разве что от дидоса из детского сада или от школоты 14 летней.
Fedcomp
Прочитав про «поиграть в небольшую игру» вспомнил про: https://www.youtube.com/watch?v=WqnXp6Saa8Y
lostpassword
dmitrykabanov
Немного рутинного веселья не повредит :D
aso
На практике произнесение даже, вроде-бы, одинаковых букв носителями разных языков — различается.
Так, что русскоязычные пользователи опознают «шизгаду» — но вряд-ли её сумеют правильно вбить в поле.
А если речь пойдёт не о столь известной фразе…
Dementor
В первой половине нулевых я пытался зарегится на ЖЖ. Поскольку тогда единственным доступом был диалап, то я как и все работал с отключенными картинками. С капчей просто какая-то засада была — показывал картинку, вводил с нее текст и облом. Наверное из-за фрагментарной загрузки где-то ломалась логика. А еще там был альтернативный вариант с аудиокапчей. Не смотря на то, что английский я тогда вообще не знал, я с первой же попытки вбил правильный ответ и прошел регистрацию. Я к тому, что создатели аудиокапч делают свои аудио-задания короткими и на слова из первых сотен частотного словаря.
Но думаю, что сейчас такая «защита» не актуально. Аудио-трек капчи направляем на распознавание и текстовый ответ назад в поле ввода — боты взламывать смогут проще, чем люди вбивать на слух.
aso
Ну, если я правильно помню — в ЖЖ капча предлагает произнести приведённое слово «вслух».
Т.е. с отдельным подбором слов для аудио там не очень.
Хотя какая капча была в ЖЖ в первой половине 2000-х — я уже точно не помню.
TOBBOT
reCaptcha распознается также распознается при помощи вышеупомянутых сервисов ручного ввода: rucaptcha, anti-captcha и другие. Правда, немного дороже обычной капчи.
Ботов, работающих на базе http клиента, т.е. без browser less технологий, также можно отсеять множеством методов.
RSV
Объясните мне, как можно было использовать капчу для распознавания старых газет?
Капча подразумевает на стороне сервера проверку правильности введенных данных? Если газета не распознана правильно изначально, как сервер убедится, что пользователь ввел правильно?
WebMonet
Показать нераспознанное место нескольким пользователям и выбрать наиболее популярный ответ?