Исправить уязвимость в безопасности единого профиля Битрикс24.Нетворк

Рейтинг: 19.1827  
Внедрено
Предложил ThinkUP 15.06.2016 13:26:39

Исправить уязвимость в безопасности единого профиля Битрикс24.Нетворк

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

Но есть проблема - помимо меня список моих сайтов может увидеть локальный администратор данного сайта, авторизовавшись подо мной. Таким образом - любой пользоваль, который имеет права для авторизации под другими пользователями сайта - может видеть список всех проектов, на которых пользователь авторизован с помощью нетворка... Это НЕОБХОДИМО исправить.

Обсуждение на форуме - http://dev.1c-bitrix.ru/community/forums/forum7/topic84949/
Рейтинг: -0.1737  
Ответил Maks Sidorenko 16.06.2016 12:11:23
Доступ к списку сайтов - это отдельный scope OAuth-сервера, и когда пользователь авторизуется в админке, у него отдельно запрашивается доступ к этому scope, и он дает на это вполне осознанное согласие. Так это работало с самого начала, и так это работает сейчас.

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


Рейтинг: 0  
Долганин Антон 16.06.2016 04:28:03
Вы реально этот кейс проверили и он сработал? Я знал, что будет что-то неладное в этой фичи, слишком уж она подозрительная, поэтому не юзал.
Рейтинг: 0  
ThinkUP 16.06.2016 11:14:45
Да, Антон, в противном случае я не пытался бы поднять шум, чтобы вразумить разработчиков. На самом деле исправить то не трудно и будет все в порядке, надеюсь..
Рейтинг: 0  
ThinkUP 16.06.2016 12:19:33
Maks Sidorenko это понятно, никто и не говорит, что об этом запросе разрешений не в курсе, более того - я на форуме все расписал на счет этого, но у вас позиция - "мы фичу выпустили, вы соглашаетесь на такой шаг, а дальше как хотите". Так зачем такая недофича? Вам черным по белому говорят - я хочу пользоваться единым профилем для авторизации, но я не хочу, чтобы посторонние юзеры на сайтах могли видеть список моих сайтов из нетворка, вам прямым текстом об этом говорю, а вы ни в какую - "согласился сам и все тут", бред какой-то.
Выпадающее меню со списком этих сайтов сделали разработчики продукта? Да! Это не часть протокола OAuth, ну так доведите до ума - не храните список на сайтах, а запрашивайте согласно текущей авторизации данного браузера в Нетворке... Не понятно мысль доношу?
Рейтинг: -0.2577  
Maks Sidorenko 16.06.2016 12:35:12
Собственно, оно так и происходит.

1. Вы можете авторизоваться на сайте, даже если он запрашивает этот доступ, не давая этого доступа (кнопка "Не сейчас" на вышеприведенном скриншоте).
2. Если вы уже нажали кнопку, случайно или специпально, вам никто не мешает зайти в Нетворк и отозвать у сайта доступ (в выпадающем списке "Мои Битрикс24").

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

Теоретически, зловредный админ сайта может сделать так, чтобы запрос этого scope шел и при авторизации в публичке, и, если пользователь дал согласие, список выгребался и сохранялся куда-то еще. С другой стороны, зловредный админ сайта может сделать приложение для фейсбука, которое начнет от вашего имени постить в вашу ленту спам, если вы даете согласие при авторизации фейсбуком.
Рейтинг: 0.6464  
ThinkUP 16.06.2016 12:51:47
По итогу если я вас правильно понял есть два пути:

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

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

Раз уж так обстоят дела и разработчики будут непреклонны (я постараюсь донести свое видение данной проблемы до Сергея на партнерской конференции) настаиваю хотя бы на том, чтобы в диалоге, который запрашивает разрешение на передачу прав (тот скрин, что вы прикрепили) было четко указано: "Если вы согласитесь, то локальные администраторы смогут видеть список ваших сайтов, привязанных к нетворку", чтобы люди осознавали на что они соглашаются. Уверен на 150%, что все, кто сейчас этим пользуется, воспринимают этот диалог как нечто обыденное и слепо соглашаются не зная последствий, но если бы они четко понимали кейс, описанный в этой идее - едва ли они согласились предоставить такие права.

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

У меня все, надеюсь коллеги поддержат идею и оценят вашу позицию так как она того заслуживает.