Как обнаружить входящие HTTP-запросы, анонимно отправленные через Tor? - PullRequest
6 голосов
/ 10 сентября 2010

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

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

Я знаю, что можно обнаружить трафик Tor, как когда я установил Vidalia с расширением Firefox, google.com представил мне капчу.

Итак, как я могу обнаружить такие запросы?

(мой веб-сайт находится в ASP.NET MVC 2, но я думаю, что любой используемый здесь подход не зависел бы от языка)

Ответы [ 6 ]

13 голосов
/ 10 сентября 2010

Я занимаюсь разработкой сайта и чувствительны к людям скрининг мой экран данные

Забудь об этом. Если он находится в Интернете и кто-то хочет его, будет невозможно помешать им получить его. Чем больше ограничений вы введете, тем больше рискуете испортить пользовательский опыт для законных пользователей, которые, как мы надеемся, будут составлять большинство вашей аудитории. Это также затрудняет поддержку кода.

Я опубликую меры противодействия любым идеям, которые предложат будущие ответы.

4 голосов
/ 11 сентября 2010

Вы можете проверить их IP-адрес по списку Tor Exit Nodes .Я точно знаю, что это даже не замедлит кого-то, кто заинтересован в очистке вашего сайта.Tor слишком медленный, большинство скребков даже не считают это.Существуют десятки тысяч открытых прокси-серверов, которые можно легко отсканировать или приобрести список.Прокси-серверы хороши тем, что вы можете их обрабатывать или чередовать, если ваш запрос ограничен.

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

Позвольте мне быть совершенно ясным: НИЧЕГО ВЫ НЕ МОЖЕТЕ СДЕЛАТЬ, ЧТОБЫ ПРЕДОТВРАТИТЬ КТО-ЛИБО ИЗ СКАБИЛКИ ВАШЕГО САЙТА.

2 голосов
/ 10 сентября 2010

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

Поведение, которое вы видели с Google, вероятно, было вызвано другой мерой безопасности. Google обнаруживает, изменяет ли зарегистрированный пользователь свой ip, и представляет капчу на всякий случай, чтобы предотвратить вредный перехват, а также разрешить продолжение сеанса, если аутентифицированный пользователь действительно изменил свой IP-адрес (путем повторного входа в ISP и т. Д.).

0 голосов
/ 02 апреля 2018

Вы можете обнаружить пользователей Tor, используя TorDNSEL - https://www.torproject.org/projects/tordnsel.html.en.

Вы можете просто использовать эту командную строку / библиотеку - https://github.com/assafmo/IsTorExit.

0 голосов
/ 26 февраля 2014

Я думаю, что акцент на том, как «невозможно» помешать целеустремленному и технически подкованному пользователю отсканировать веб-сайт, слишком велик. @Drew Noakes заявляет, что веб-сайт содержит информацию, которая в совокупности имеет некоторую «ценность». Если на веб-сайте есть сводные данные, которые легко доступны неограниченным анонимным пользователям, то да, предотвращение очистки может быть почти «невозможным».

Я бы предположил, что проблема должна быть решена не в том, как запретить пользователям собирать сводные данные, а в том, какие подходы можно использовать для удаления совокупных данных из публичного доступа; тем самым устраняя цель скребков без необходимости делать «невозможное», предотвращая утилизацию.

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

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

2] Оперативные группы часто следят за показателями, чтобы гарантировать работоспособность больших распределенных и сложных систем. К сожалению, становится очень трудно определить причины спорадических и периодических проблем, и часто даже трудно определить, что существует проблема в отличие от нормальных эксплуатационных колебаний. Оперативные группы часто имеют дело со статистически проанализированными историческими данными, взятыми из многих многочисленных метрик, и сравнивают их с текущими значениями, чтобы помочь идентифицировать значительные отклонения в работоспособности системы, будь то время работы системы, нагрузка, загрузка ЦП и т. Д.

Аналогичным образом, запросы пользователей на данные в количествах, которые значительно превышают норму, могли бы помочь идентифицировать лиц, которые, вероятно, будут отбирать данные; такой подход может быть даже автоматизирован и даже расширен, чтобы просматривать в нескольких учетных записях шаблоны, указывающие на списание. Пользователь 1 очищает 10%, пользователь 2 очищает следующие 10%, пользователь 3 очищает следующие 10% и т. Д. Подобные шаблоны (и другие) могут обеспечить надежные индикаторы злонамеренного использования системы одним человеком или группой, использующей несколько аккаунтов

3] Не делайте необработанные агрегированные данные напрямую доступными для конечных пользователей.Здесь важны особенности, а проще говоря, данные должны находиться на внутренних серверах и извлекаться с использованием некоторого специфичного для домена API.Опять же, я предполагаю, что вы не просто обслуживаете необработанные данные, а скорее отвечаете на запросы пользователей для некоторых подмножеств данных.Например, если ваши данные представляют собой подробную демографическую демографию для определенного региона, законный конечный пользователь будет заинтересован только в подмножестве этих данных.Например, конечный пользователь может захотеть узнать адреса домохозяйств с подростками, которые проживают с обоими родителями в многоквартирных домах, или данные о конкретном городе или округе.Такой запрос потребовал бы обработки совокупных данных для получения результирующего набора данных, который представляет интерес для конечного пользователя.Было бы чрезмерно сложно очистить каждый результирующий набор данных, извлеченный из многочисленных возможных перестановок входного запроса, и полностью восстановить совокупные данные.Скребок также будет ограничен безопасностью веб-сайтов с учетом количества запросов / времени, общего размера данных результирующего набора данных и других потенциальных маркеров.Хорошо разработанный API, включающий в себя специфичные для предметной области знания, будет иметь решающее значение для обеспечения того, чтобы API был достаточно всеобъемлющим, чтобы служить своей цели, но не слишком общим для возврата больших дампов необработанных данных.

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

0 голосов
/ 10 февраля 2014

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

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

Если ваша главная проблема - это эффект DDoS, не беспокойтесь об этом.Настоящие DDoS-атаки требуют от вас силы или некоторой уязвимости, которая создает нагрузку на ваш сервер.Неважно, какой у вас сайт, вы будете наводнены хитами от пауков, а также плохими людьми, сканирующими эксплойты.Просто факт жизни.Фактически, такая логика на сервере почти никогда не масштабируется хорошо и может быть единственной точкой отказа, которая оставляет вас открытой для реальной атаки DDoS.

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

Если вы действительно не хотите, чтобы кто-нибудь захватывал ваши данныеЕсть несколько вещей, которые вы можете сделать.Если это содержание блога или что-то в этом роде, я обычно говорю: не беспокойтесь об этом или используйте только сводные RSS-каналы, если вам вообще нужны каналы.Опасность использования очищенного содержимого блога состоит в том, что на самом деле довольно просто взять точную копию статьи, спам-ссылки на нее и оценить ее, выбивая оригинал из результатов поиска.В то же время, потому что это так просто, что люди не собираются прилагать усилия для нацеливания на конкретные сайты, когда могут массово обрабатывать RSS-каналы.

Если ваш сайт - это скорее сервис с динамическим контентом, который в целомдругая история.Я на самом деле расчищаю множество подобных сайтов, чтобы «украсть» огромные объемы структурированных проприетарных данных, но есть варианты сделать их сложнее.Вы можете ограничить запрос по IP, но это легко обойти с прокси.Для некоторой реальной защиты достаточно простое запутывание проходит долгий путь.Если вы попытаетесь что-то сделать, например, почистить результаты Google или загрузить видео с YouTube, вы обнаружите, что есть много чего для обратного инжиниринга.Я делаю оба из них, но 99% людей, которые пытаются, терпят неудачу, потому что им не хватает знаний, чтобы сделать это.Они могут очищать прокси, чтобы обойти ограничения IP-адресов, но не нарушают шифрование.

В качестве примера, насколько я помню, страница результатов Google содержит запутанный javscript, который вставляется в DOM при загрузке страницы., тогда устанавливаются какие-то токены, поэтому вам нужно разобрать их.Затем есть запрос ajax с этими токенами, который возвращает запутанный JS или JSON, который декодируется для построения результатов и так далее, и так далее.Это не сложно сделать с вашей стороны как разработчика, но подавляющее большинство потенциальных воров не может справиться с этим.Большинство из тех, кто может не приложить усилия.Я делаю это для того, чтобы обернуть действительно ценные сервисы Google, но для большинства других сервисов я просто перехожу к более низко висящим фруктам у разных провайдеров.

Надеюсь, это пригодится всем, кто сталкивался с этим.

...