id: Гость   вход   регистрация
текущее время 13:19 29/03/2024
Владелец: spinore (создано 29/10/2008 20:03), редакция от 31/10/2008 22:06 (автор: spinore) Печать
Категории: софт, анонимность, приватность, прослушивание коммуникаций, tor, ошибки и баги, уязвимости, атаки, программные закладки
https://www.pgpru.com/Новости/2008/УязвимостьВOperaЭлементарнаяДеанонимизацияПриРаботеВTor
создать
просмотр
редакции
ссылки

29.10 // Уязвимость в opera: элементарная деанонимизация при работе в Tor


Уязвимость, присутствующая в браузере opera, позволяет деанонимизировать любого пользователя, работающего по http/https, посредством специально сформированной web-страницы, если в настройках не включена опция "использовать прокси для локальных серверов". В opera 9.61 (под Windows) Функция, проверяющая адрес на предмет локальности/удалённости, считает все адреса удалёнными, кроме следующих:

  • 10.x.x.x
  • 127.x.x.x
  • 172.{1,2,3}.x.x
  • 192.168.x.x
  • произвольная строка, не содержащая точек, например http://qwerty, http://1 или http://1123637608.

Однако, согласно распространённой практике, не являющейся стандартом, адреса вида http://число также могут быть истолкованы как десятичное представление IP-адреса, например: 66.249.89.104 (IP гугла) --> 1123637608 = 66*256^3+249*256^2+89*256+104. Opera, соответственно, расценивает такой адрес как локальный. Итак, если ссылка имеет вид http://1123637608, а опция "использовать прокси для локальных серверов" не включена, то соединение с гуглом произойдёт минуя настройки прокси. Для эксплуатации уязвимости достаточно вставить в HTML-страницу (например, CSS) следующий код:

В этом случае соединение с самим сайтом произойдёт через прокси, а картинка pic.jpg и стилевой файл будет запрошена с гугла напрямую, минуя настройки прокси.


Предположительно, уязвимости подвержены все версии opera. Для нивелирования ошибки в старых версиях opera'ы (информация не проверена!), следует, предварительно выйдя из программы, прописать в файле конфигурации (Opera6.ini или OperaDef6.ini):


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


В качестве противодействия подобному виду угроз, рекомендуется настроить файерволл таким образом, чтобы принудительно отправлять весь трафик с браузера, а также opera mail, только на IP:порт прокси. Естественно, что вышесказанное верно для настроек любой прокси, в том числе и privoxy. Firefox, как утверждается, не подвержен этим уязвимостям, однако аналогичные превентивные меры в отношении как него, так и других программ, работающих с сетью через прокси/Tor, нивелируют последствия от подобных ошибок в будущем. Настройка файерволла для фильтрации по приложениям (например, xauth+authpf+PF+tor в BSD), уже обсудавшаяся на pgpru.com, оказалась как никогда кстати.


Предоставленный материал частично основан на источнике http://eqt5g4fuenphqinx.onion/talk/1783, однако, не подтверждает всех предоставленных им фактов.
Доступ к источнику через гейт с обычного интернета: https://www.awxcnx.de/cgi-bin/proxy1/nph-proxy.cgi/000000A/http/eqt5g4fuenphqinx.onion/talk/1783


 
На страницу: 1, 2, 3, 4, 5 След.
Комментарии [скрыть комментарии/форму]
— Гость (29/10/2008 20:25)   <#>
Просматриваются параллели с этой веткой. Да, всё гениальное – просто. И не надо никаких сверхмудрёных атак, когда можно попросту "нечайно" внести "нужный" функционал в закрытый код.
— Гость (29/10/2008 20:32)   <#>
"Никогда не ставь свою безопасность в зависимость от благородства разработчиков браузера" © Уилл Кардер, о чём и говорят баннеры на pgpru.
— Гость (29/10/2008 20:44)   <#>
В тему: видимо, согласно стандарту, все браузеры обязаны понимать IP, переведённые в 10теричную систему исчлисления (ff понимает).
— Гость (29/10/2008 20:46)   <#>
Внатюрлих:

Error!
Internal communication error

You tried to access the address http://1123637608/, which is currently unavailable. Please make sure that the Web address (URL) is correctly spelled and punctuated, then try reloading the page.
Make sure your Internet connection is active and check whether other applications that rely on the same connection are working.

Работаю через http-прокси: прямой коннект не удался, как и предполагалось (пров не выпускает иначе чем через прокси).
— SATtva (29/10/2008 20:53)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Работаю через http-прокси

HTTP-прокси и SOCKS-прокси — это разные люди. Они по-разному DNS резолвят (собственно, HTTP-прокси этим не занимается).
— Гость (29/10/2008 21:16)   <#>
7.4. Rare IP Address Formats

...

Although the URI syntax for IPv4address only allows the common
dotted-decimal form of IPv4 address literal, many implementations
that process URIs make use of platform-dependent system routines,
such as gethostbyname() and inet_aton(), to translate the string
literal to an actual IP address. Unfortunately, such system routines
often allow and process a much larger set of formats than those
described in Section 3.2.2.

For example, many implementations allow dotted forms of three
numbers, wherein the last part is interpreted as a 16-bit quantity
and placed in the right-most two bytes of the network address (e.g.,
a Class B network). Likewise, a dotted form of two numbers means
that the last part is interpreted as a 24-bit quantity and placed in
the right-most three bytes of the network address (Class A), and a
single number (without dots) is interpreted as a 32-bit quantity and
stored directly in the network address. Adding further to the
confusion, some implementations allow each dotted part to be
interpreted as decimal, octal, or hexadecimal, as specified in the C
language (i.e., a leading 0x or 0X implies hexadecimal; a leading 0
implies octal; otherwise, the number is interpreted as decimal).

These additional IP address formats are not allowed in the URI syntax
due to differences between platform implementations. However, they
can become a security concern if an application attempts to filter
access to resources based on the IP address in string literal format.
If this filtering is performed, literals should be converted to
numeric form and filtered based on the numeric value, and not on a
prefix or suffix of the string form.

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

However, they
can become a security concern if an application attempts to filter
access to resources based on the IP address in string literal format.
If this filtering is performed, literals should be converted to
numeric form and filtered based on the numeric value, and not on a
prefix or suffix of the string form.


А вот что говорит на этот счёт RFC:
though the URI syntax for IPv4address only allows the common
dotted-decimal form of IPv4 address literal, **many implementations
that process URIs make use of platform-dependent system routines,
such as gethostbyname() and inet_aton(), to translate the string
literal to an actual IP address.**


Действительно, резолвер резолвит как в винде, так и в UNIX:

А вот логи ltrace:

Стоит отметить, что Linux'овый man по inet_aton вообще молчит по поводу "скрытого функционала", в то время как OpenBSD'шный man честно сообщает:

When only one part is given, the value is stored directly in the network address without any byte rearrangement.

Итого, это всё похоже на bug-to-bug compatibility.
— Гость (29/10/2008 21:37)   <#>
собственно, HTTP-прокси этим не занимается

Почему бы и нет? За подробностями можно обратиться к RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1 ):

5.1.2 Request-URI

The Request-URI is a Uniform Resource Identifier (section 3.2) and
identifies the resource upon which to apply the request.

Request-URI = "*" | absoluteURI | abs_path | authority

The four options for Request-URI are dependent on the nature of the
request. The asterisk "*" means that the request does not apply to a
particular resource, but to the server itself, and is only allowed
when the method used does not necessarily apply to a resource. One
example would be

OPTIONS * HTTP/1.1

The absoluteURI form is REQUIRED when the request is being made to a
proxy.


Там же сказано:
The use of IP addresses
in URLs SHOULD be avoided whenever possible (see RFC 1900 [24]). If
the abs_path is not present in the URL, it MUST be given as "/" when
used as a Request-URI for a resource (section 5.1.2). If a proxy
receives a host name which is not a fully qualified domain name, it
MAY add its domain to the host name it received. If a proxy receives
a fully qualified domain name, the proxy MUST NOT change the host
name.

В RFC1945 (http/1.0) написано то же самое.

Итого, мораль в том, что HTTP-прокси принимает URI, которые могут быть как доменные адреса, так и IP, но IP не рекомендуются.
— Гость (30/10/2008 10:33)   <#>

Для версий 6.00-7.54 нужно


Не нужно, можете перепроверить. Она не знает что такое локальные имена.

Версии Оперы, до восьмой, не имеют такого интересного функционала, он появился только в момент когда опера стала отделять локальные адреса от остальных и когда появилась опция "Use proxy for local servers". Неизвестный для публики источник "бэкдора", и простой копипастер с коры как он утверждал там, не удосужились это перепроверить. Однако это не умоляет "гениальности" существующей функции просева локальных адресов в современных и теоретически менее бажных версиях оперы.
— Мухтар (30/10/2008 11:06)   профиль/связь   <#>
комментариев: 155   документов: 20   редакций: 5
Нужно просто работать с TOR через прозрачный прокси на NAT. Или закрыть на файрволе выход браузера в сеть напрямую, в обход прокси. Пользоваться TOR'ом через NAT челесообразно хотя бы для того, чтобы вслучае уязвимости, раскрывающей локальный IP, раскрывался адрес вроде 192.168.0.2 или что-то около того.

Кстати, я пару раз пытался выйти в интернет через ТОР, у меня ничего не выходит, даже скачал AnonymOS для этого, просто нет доступа ни к одному из сайтов.
— SATtva (30/10/2008 11:11)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Мухтар, а в логе Tor'а по этому поводу?
— Мухтар (30/10/2008 11:16)   профиль/связь   <#>
комментариев: 155   документов: 20   редакций: 5
Я пока особо не разбирался насчет того, где у ТОР'а логи. Надо будет посмотреть.

Проблема в целом ясна. Сколько ни чего не подозревающих пользователей раскрыли свои данные.

Нужно сделать FAQ с комплексом мероприятий по нивелированию уязвимостей в ПО, исходные коды которого не перепроверены авторами TOR
— Гость (30/10/2008 22:59)   <#>
Не нужно, можете перепроверить. Она не знает что такое локальные имена.

Если уверены в своей правоте – исправьте в тексте. Это wiki – редакции открыты.

Неизвестный для публики источник "бэкдора", и простой копипастер с коры как он утверждал там, не удосужились это перепроверить.

А ссылку на подлинный оригинальный пост топикстартер там так и не положил, на core.onion? Они ссылались на какие-то security-рассылки или security-форумы.
зы: есть сервис-гейт на скрытые ресурсы тор? А то тором пока не могу пользоваться..

Проблема в целом ясна. Сколько ни чего не подозревающих пользователей раскрыли свои данные.

Там не совсем всё так печально. Раскрыть анонимность можно было только тех пользователей, которых заманили на подставной сайт. Анонимность произвольного пользователя, который не понятно чем занимается под тором и какие сайты посещает, дискредитировать этим способом сложно (если только централизованно, через сайты типа гугла, которыми пользуются все). Я замечал что сайт гугл, открываемый через тор, часто имеет какие-то картинки и навороты в названии, типа наподобие их новогодних акций... то ли так случайно получалось... Скорей всего случайно, ибо случаи изменения содержимого сайтов, открываемых под тором, оперативно регистрируются и впоследствии активно обсуждаются в сообществе, емнип, и тем более если это гугл.
— Гость (30/10/2008 23:09)   <#>
Проблема в целом ясна. Сколько ни чего не подозревающих пользователей раскрыли свои данные.

Ещё следует отметить, что на рынке браузеров opera занимает ничтожный процент, и лишь в РФ её доля значительней, но всё равно очень далека от большинства.
— Гость (30/10/2008 23:52)   <#>

Если уверены в своей правоте – исправьте в тексте.


Да, в своей-то уверен: тестировал последний билд седьмой оперы, такие запросы шли через прокси. Ежели кто подтвердит, замечательно, хотя может и лишнее. Ибо вот нашлась такая ссылка: http://www.derkeiler.com/Maili.....ev/2001-12/0074.html
Получается опера и ослик ие, как следует из ответов на то письмо, еще семь лет назад переболели этим "бэкдором". Не знаю как ослик, но у оперы по всей вероятности после выздоровления, случился рецидив.

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

В общем если не размениваться на поиск отдельных не бажных билдов, то верное получается замечание:

уязвимости подвержены все версии opera


Ну а тело новости то переводное.
— Гость (31/10/2008 00:21)   <#>

А ссылку на подлинный оригинальный пост топикстартер там так и не положил, на core.onion? Они ссылались на какие-то security-рассылки или security-форумы.


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

сервис-гейт на скрытые ресурсы


Находится за 5 минут, гугло-братом :)

Yes, see:


or



Первый работает.
Второй на кору не идет, может там хиден-сервисы побиты как рассадник.
На страницу: 1, 2, 3, 4, 5 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3