JavaScript vs. TOR


Правда ли, что есть такие JavaScript, которые могут узнать мой IP и др. информацию (какую?) и передать незаметно авторам сайта? Например, вместе с формой, которую я заполняю на сайте? Если "Да", то как это обнаружить? И можно пример скрипта?

Комментарии
— SATtva (10/12/2006 20:08)   
К IP и другим аппаратным и протокольно-стековым данным javascript иметь доступ не должен (иначе как через большую дыру в браузере).
— spinore (10/12/2006 20:37)   


Может быть, он может косвенно выполнить на стороне пользователя код, который в конечном счёте проявит нужный айпи злоумышленникам?
Гость (10/12/2006 21:48)   
soft@mvrum.com
А как правильно сделать настройфки
Гость (11/12/2006 10:23)   
Так что, JavaScript совершенно безопасны? Чего тогда их советуют отключать? Я еще вспомнил, что есть VBScript.
— spinore (11/12/2006 15:44)   
Насколько я понимаю, кукисы, как и JS, при определённом стечении обстоятельств могут использоваться для отслеживания пользователя, но не для проявления его местоположения. Если я использую спецпрофиль, с которого лажу только анонимно, и использую обычный профиль, с которого лажу не анонимно (это даже не профиль, а запущенные от разных пользователей процессы никак друг с другом не связанные), то я допускаю, что какой-то из посещаемых анонимно мною сайтов будет за мной следить. Но, с другой стороны, аутентификация на любом из анонимных сайтов тоже даёт много информации обо мне: когда я заходил, что я делал, что писал, и сайт по своему усмотрению может поделиться моими кукисами с соседним. В таком случае указанные 2 сайта будут для меня работать как один, но распределённый. Но я опять же не вижу в этом проблемы. Это всё равно слабо поможет им в раскрытии истиного айпи (хотя потенциально может помочь, но это уже совсем тонкости). Поправьте если я не прав.
— spinore (11/12/2006 15:50)   
Кстати, совсем другой разговор, если вы не меняете профиль при переходе на анонимное соединения, а только запускаете тор. Поясню на простом примере: у вас, допустим, есть 2 ящика на mail.ru. Один – ваш официальный, а другой – анонимный. Если вы зашли из-под браузера в свой официальный ящик – вы оставили у себя кукисы, сайт их тоже помнит. Потом вы идёте в том же браузере на mail.ru, но на свой анонимный ящик... под тором... А mail.ru смотрит, и видит: "ага, кукисы у вас предыдущие "такие-то", значит это вася. Ага, а теперь это вася под анонимом лезет на новый свой ящик, под тором... Но мы то знаем.." Вот и всё на том. Я сам не так давно все эти тонкости понял. Да, а те кто совсем головой не думают – слушают тех кто что вякнет по этому поводу: кукисы уджалять, JS отключать, к компу не подходить... То есть всё это можно, только надо понимать когда и в каикх случаях можно, и без понимания того как это работает здесь никуды :(
— SATtva (11/12/2006 17:19)   
Я еще вспомнил, что есть VBScript.

А ещё — PHP, Perl, Cold-Fusion... Только всё это (в том числе VBScript) языки программирования серверных приложений. Javascript, а также Java, ActiveX и Flash отличает то, что они исполняются непосредственно на стороне пользователя: что-то в самом браузере, что-то в специальных интерпретаторах. Серверные программы имеют дело с теми данными, которые им сочтёт нужным передать клиент. Клиентские программы могут получить всю доступную информацию сами.

Это всё равно слабо поможет им в раскрытии истиного айпи (хотя потенциально может помочь, но это уже совсем тонкости). Поправьте если я не прав.

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

Это как Ваш пример с мэйл.ру. Предположим, вы посещаете какой-то форум анонимно и публикуете там сообщения от имени двух альтер-эго. Используя javascript администраторы могут выявить некоторые уникальные параметры Вашей системы и определить, что за этими двумя псевдонимами стоит один человек.
— spinore (12/12/2006 10:46)   
Понял. Спасибо, SATtva.
— Lemtoks (12/12/2006 19:50)   
SATtva:
А ещё — PHP, Perl, Cold-Fusion... Только всё это (в том числе VBScript) языки программирования серверных приложений.
Не совсем правильно. VBScript также может выполняться на стороне клиента, но только в IE, остальные броузеры его не поддерживают. По возможностям VBS и JS полностью идентичны, они различаются только синтаксисом.
Гость (12/12/2006 22:40)   
Правильно я понял, что если разрешен JavaScript, то это не дает возможности другой стороне получить обо мне информацию? Значит он безопасен.
Гость (13/12/2006 01:31)   
Правильно я понял, что если разрешен JavaScript, то это не дает возможности другой стороне получить обо мне информацию? Значит он безопасен.

Неправильно, выше все написано.


А ещё — PHP, Perl, Cold-Fusion... Только всё это (в том числе VBScript) языки программирования серверных приложений. Javascript, а также Java, ActiveX и Flash отличает то, что они исполняются непосредственно на стороне пользователя

Ну с PHP тоже не все так просто, например, насколько я помню, старые версии FastBB с помошью PHP идентифицировали пользователя (так называемый супербан) по огромному количеству параметров, сейчас идентефицируют по уникальному номеру IE, кстати на самом IE можно с помощью JS узнать очень много интересного, например серийник сидирома, содержимое буфера обмена, и пр., но мы то с вами не дураки, и юзаем Firefox и Opera ;)
Про супербан PHP из FastBB можно подробно прочитать в статье о прогремме AntiBan, если не ошибаюсь, на antichat.ru.
— Lemtoks (13/12/2006 05:16)   
Ну с PHP тоже не все так просто, например, насколько я помню, старые версии FastBB с помошью PHP идентифицировали пользователя (так называемый супербан) по огромному количеству параметров
Php-скрипт не может выполняться на стороне клиента хотя бы потому, что интерпретатор не встроен в систему по умолчанию.
Гость (13/12/2006 07:55)   
Вы все конечно очень умные, но я вашего ответа не понял.
— SATtva (13/12/2006 10:59)   
Ну с PHP тоже не все так просто, например, насколько я помню, старые версии FastBB с помошью PHP идентифицировали пользователя (так называемый супербан) по огромному количеству параметров

Ну конечно, если IE такой идиот, что в HTTP-REQUEST передаёт все аппаратно-программные параметры системы, то с этим можно бороться только сменой IE на те же Firefox или Opera. Как я уже сказал, серверные приложения имеют дело только с теми данными, которые им сообщит клиент. Если он им ничего не сообщит или передаст только самые важные данные, необходимые для выполнения запроса, то каким-то чудесным образом что-то угадать они уже не смогут.

Вы все конечно очень умные, но я вашего ответа не понял.

А какой был вопрос? :-)
Гость (13/12/2006 11:25)   
Ну вопрос, с которого все началось. Можно без науки. Просто: да, JS может передать это..., или: нет, нет ничего не может.
— SATtva (13/12/2006 11:40)   
А мой первый постинг Вы видели? Если браузер не такой дырявый и идиотский, как Internet Explorer, то не может. Javascript исполняется в браузере, поэтому может сделать всё, что прямо или косвенно браузер ему позволит.
— spinore (13/12/2006 11:50)   


1. Вы должны при переходе на прокси или тор использовать отдельную конфигурацию браузера: не ту, под которой ходите не анонимно.

2. Если пункт 1 вы выполнили, то
a) Если вас не страшит то, что каждый из всей совокупности посещаемых вами анонимно сайтов (из под специального профиля) будут о вас знать всё то, что знают о вас и остальные (анонимно посещаемые) сайты, то JS для Вас безопасен (то есть, не может привести к вскрытию вашего IP).
b) Если вы не хотите, чтобы имелась возможность у каждого из анонимно вами посещаемых сайтов, знать о вас то же, что знают о вас и другие, посещаемые вами анонимно сайты, то для Вас JS опасен.

2. Если пункт 1 не выполнен:
a) Если JS и cookies отключены, при использовании прокси о вас не будут знать ничего (но вопрос об удобстве работы, и вопрос о большом количестве сайтов, с которыми вы тогда не сможете работать).
b) Если хотя бы одно из двух (JS или cookies) не отключены, разные анонимно посещаемые вами сайты потенциально могут обмениваться друг с другом информацией, которую они знают о вас (например, ваш логин, ваши посты, и, в том числе, ДАЖЕ ваш IP).

Теперь ясно?
— SATtva (13/12/2006 15:00)   
Ещё к своему ответу добавлю, что речь идёт только о том, что JS не может в обычной ситуации определить IP. Но как уже не раз было сказано в этой теме, JS может успешно определять уйму других индивидуальных параметров системы. Насколько это для Вас критично, постарайтесь определить сами, исходя из материалов обсуждения.
Гость (13/12/2006 22:32)   
Спасибо за ответы. Понял.
— unknown (14/12/2006 17:34)   
Была масса эксплойтов, которые легко позволяли с помощью JS выполнить произвольный код на системе с правами пользователя или получить доступ на чтение каких-либо посторонних данных.

Одно время над этим усиленно работал Georgi Guninski[link1]

Вообще распространение интерактивных языков в web, особенно там где в них нет никакой необходимости, это неибежное зло. Какими бы ограниченными правами они не обладали, вероятность появления дыры в них очень велика.
— SATtva (14/12/2006 19:32)   
Была масса эксплойтов, которые легко позволяли с помощью JS выполнить произвольный код на системе

Зависит от надёжности браузера, опять же...
— Дима (25/03/2007 18:10)   
Где-то видел сервис, который показывает не только стандартную инфу для подобныхсервисов(мой ip, браузер, ос), но и можно было увидет другую инфу, а именно что можно узнать обо мне с помощью js, flash и т.д.
Дайте пож. ссылку на такой сервис
— SATtva (26/03/2007 14:45, исправлен 31/08/2007 22:17)   

Дима, не совсем то, что нужно[link2], но для проверки сойдёт. Смотрите в комментариях внизу страницы, там есть ссылка на POC.

— денис (08/04/2008 09:15)   
Подскажите пожалуйста! На работе закрыли доступ к некоторым сайтам! Как можно обойти эту защиту?
Гость (08/04/2008 19:07)   
Подскажите пожалуйста! На работе закрыли доступ к некоторым сайтам! Как можно обойти эту защиту?

Если не шифровать трафик, то достаточно воспользоваться этим[link3] сайтом, а если нужно шифрование, то воспользоваться этим[link4].
Ввести в предлагаемой строке линк сайта который хотите посетить. Правда, второй сайт будет тормозить в среднем больше :) Есть и другие сервисы. В общем, если вы сильно нужны админам то через какое-то время закроют доступ и к этим web-проксям – прийдётся искать другие. А если сильно будете упорствовать могут вынести предупреждение :-D
— Alex_LG (09/04/2008 04:40)   
к сожалению, не всё так безопасно
JS может заставить браузер (по крайней мере IE) законнектиться на сервер НАПРЯМУЮ, минуя настройки прокси
— SATtva (09/04/2008 08:49)   
Не путаете с Java? Или это какое-то особое расширение языка в IE? Можете привести пример или ссылку на описание соответствующих методов/функций?
— unknown (09/04/2008 09:15, исправлен 09/04/2008 09:19)   

JS-реализации во всех браузерах, как можно заметить по различным security-рассылкам имеют множество дыр, 0-day эксплойтов на исполнение произвольного кода, которые даже в FOSS остаются незамечеными годами.


Этого мало?


Есть специфическая проблема ещё такого популярного браузера как Файрфокс: он малополезен без плагинов-расширений, а их обновления никак не подписаны.


По умолчанию предлагается такая схема: все плагины лежат централизованно на https -сайте Mozill'ы, при старте файрфокса происходит проверка их обновлений (можно отключить автомат и делать это вручную), если есть обновление оно скачивается ... по http (!), а хэш-сумма для проверке с https, которой можно больше верить по сертификату соединения, затем у скачанного плагина перед установкой эта хэш-сумма сравнивается с вычисленным значением (т.е. ради какой-то дурацкой экономии сами плагины качаются по небезопасному каналу, а их контрольные суммы – по безопасному).


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


Поэтому в файрфокс разработчики tor рекомендуют использовать плагин torbutton, который частично и незначительно фильтрует javascript, но не рекомендуется отключать JS полностью.


Для других браузеров аналога torbutton к сожалению нет, который фильтрует утечки информации лучше privoxy, кроме того делает это на стороне самого браузера, что решает проблему утечек через https, который privoxy (и другие proxy) фильтровать не могут.


Так что достаточно вставить на страницу https ссылку на невидимую картинку и privoxy в плане фильтрации становится бесполезен, он годися только для перенаправления трафика в tor.

Гость (09/04/2008 11:07)   
к сожалению, не всё так безопасно
JS может заставить браузер (по крайней мере IE) законнектиться на сервер НАПРЯМУЮ, минуя настройки прокси

Пример для opera – в студию!
Либо ссылку на оригинал исследования.
Гость (09/04/2008 11:16)   
проблему утечек через https, который privoxy (и другие proxy) фильтровать не могут.


достаточно вставить на страницу https ссылку на невидимую картинку и privoxy в плане фильтрации становится бесполезен

Фильтрация не так уж важна, или вы хотите сказать что произойдёт утечка которая может дискредитировать анонимность? Что такого браузер может послать по https?
— unknown (09/04/2008 11:56)   

Что такого браузер может послать по https?


Хотя бы то что у Вас на самом деле не тот тип браузера за который Вы пытаетесь его выдать, а именно браузер-v.xxx-xxx.-2008.02.13-linux-v.xxx-distr-xxx-v-xxx-compatible-xxx
с поддержкой специфических расширений, кодировкой по умолчанию xxx-x, с редкой локалью языка племени Майя и антарктическим часовым поясом.
Гость (12/04/2008 05:25)   
Хотя бы то что у Вас на самом деле не тот тип браузера за который Вы пытаетесь его выдать, а именно браузер-v.xxx-xxx.-2008.02.13-linux-v.xxx-distr-xxx-v-xxx-compatible-xxx

Из браузеров которые позволяют из-под интерфейса сменить показываемую идентификацию я знаю только один: konqueror, однако он тянет за собой kde и сам вопрос о его собственных дырах открыт. Поидее, единственное правильное решение – запретить показывать отличную от нужной идентификацию в самих сорсах браузера. Или вы можете предложить какие-либо более простые on-the-fly-решения? Или директивно запрещать https для браузеров под тором? – Это тоже не все браузеры, думаю, позволяют... Ещё один трик – настраивать браузер на работу из под специального юзера с очень ограниченными правами с принудительным зарутиванием всего исходящего от такого юзера трафика в сеть тор... Блин, всё вспоминается старый вопль[link5] по поводу всей этой темы в целом... как говорится, идут года а воз и ныне там – ни одного сколь-нибудь адекватного браузера (в т.ч. и в плане security).
— unknown (14/04/2008 09:05)   
разработчики идут по пути наименьшего сопротивления, чтобы привлечь большинство пользователей, выбирают может не самый безопасный, но самый гибкий и легкомодифицируемый Firefox, для которого делают расширение torbutton, которое все эти проблемы решает (причём актуально это делает находясь только в стадии вечной альфы).

Про то что Firefox в значительной мере дыряв, неаккуратен и избыточен разработчики естественно в курсе.
Гость (10/05/2008 06:29)   
Есть специфическая проблема ещё такого популярного браузера как Файрфокс: он малополезен без плагинов-расширений, а их обновления никак не подписаны

...

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

Если речь идёт о пользовании FF без заботы об анонимности, то полагаю что отключение JS только увеличит безопасность если плагинов нет (кстати, это не такой-то и редкий случай :)).

Ссылки
[link1] http://www.guninski.com/

[link2] http://www.pgpru.com/novosti/2007/0314predlozhenvzlomtoradljapoimkipristupnikov

[link3] http://www.proxy.org

[link4] https://www.snoopblocker.com

[link5] https://www.pgpru.com/forum/sodejjstvie/izvechnajaproblemakakpodruzhitjbrauzerysneadekvatnymiinterfejjsamisneadekvatnymisajjtami