
Что на самом деле произошло в Фейсбуке?


По словам Педро Канауати, вице-президента Facebook по «инжинирингу, безопасности и приватности», речь идет о трех разных уязвимостях. Во-первых, был баг в самой фиче View As. По идее, она должна переключать контекст фейсбука на другого пользователя в режиме «только чтение», в смысле «только просмотр страницы пользователя, под которым ты залогинен». На самом деле в режиме View As генерировалось и поле для публикации сообщения. Во-вторых, это поле не работало (корректно) во всех случаях, кроме одного: когда вы хотите поздравить человека с днем рождения и постите видео. В-третьих, при постинге видеоролика код для загрузки этого самого видео генерировал токен, который также мог быть использован как токен доступа из мобильного приложения.
То есть сценарий со стороны атакующего получается примерно следующий. Вы создаете профиль или меняете настройки уже существующего так, чтобы у вас сегодня был день рождения (уииии!). Пользуясь функцией View As, открываете свой профиль от имени другого пользователя. При демонстрации профиля от имени другого пользователя ему (этому другому пользователю) предлагается поздравить вас с днем рождения и загрузить милый видеоролик. При загрузке видеоролика генерируется токен. Вы берете этот токен из кода страницы и в мобильном приложении заходите от имени и с правами другого пользователя.
Дальше начинаются немножко домыслы. Например, надо ли быть друзьями с человеком, от имени которого вы хотите «посмотреть» свою страницу? Судя по описаниям (ныне неработающей) фичи на сторонних сайтах — надо. Теперь вспомните, как давно к вам в друзья просились не известные вам, но крайне настойчивые люди? Получив доступ к токену одного пользователя, можно украсть ключи доступа к аккаунту кого-то из его/ее друзей. И так далее, теоретически вплоть до масштабов, ограниченных теорией шести рукопожатий. То есть практически неограниченных масштабов.
Круто, да? Интересно, что сообщение Facebook, опубликованное в пятницу вечером (по Москве), было предвосхищено
Или предположительно пострадавшим? Надо отдать должное специалистам Facebook — они рассказали об обнаруженных уязвимостях максимально подробно и оперативно. 16 сентября, по их словам, они заметили подозрительную активность, 25-го стало понятно, что к чему, 28 сентября информация была обнародована — сразу после ««разлогинивания» пострадавших (что сделало любые украденные токены бесполезными). А вот как именно пострадали эти самые пострадавшие — тут Facebook высказался не очень конкретно. Возможно, они пока и сами точно не знают.
Известно, что уязвимость появилась в коде сервиса в июле 2017 года. На прошлой неделе Facebook принудительно разлогинил 90 миллионов пользователей. Из них 40 миллионов — это те, в отношении которых применялась фича View As, то есть кто-то от их имени смотрел на свою страницу, не обязательно с криминальными намерениями. Еще 50 миллионов — это те, кого уязвимость «затронула» (affected). Так как «затронула»-то? В
В целом Facebook очень неплохо отреагировал на проблему. Поделился (как мог) подробной информацией, принял меры в отношении пострадавших (реальных или потенциальных). 50 (или 90) миллионов человек — в масштабе Facebook это немного. Впрочем, учитывая беспокойство по поводу приватности отдаваемых соцсетям личных данных, понятно и повышенное внимание к этому инциденту. Позитивных моментов два. Во-первых, не были украдены пароли, а если какие-то инструменты неправомерного доступа к чужим аккаунтам и имелись, то они были уничтожены «ковровым разлогиниванием». Во-вторых, даже если вы оказались в числе предположительно пострадавших и даже если к вашим данным реально кто-то получал доступ, в их руках оказалось далеко не все, что о вас знает Фейсбук. Потому что реальными знаниями о пользователях Фейсбук даже с самими пользователями
А Твиттеру на прошлой неделе повезло.
А что в Твиттере произошло?
В некотором смысле баг, обнаруженный в Twitter, похож на то, что нашли в Фейсбуке. Дыра была найдена в API, позволяющем компаниям общаться с клиентами, — в общем, это интерфейс для массовой рассылки или приема личных сообщений. Если вы общались с кем-то, используя данный API, то при определенном стечении обстоятельств ваша переписка могла оказаться в руках третьей стороны.
Окей, даже в таком виде это не звучит устрашающе. Практика еще скучнее. Во-первых, API могут использовать только зарегистрированные партнеры Twitter. Во-вторых, чтобы баг сработал и личные сообщения пошли не туда, оба партнера должны (а) сидеть на одном IP, (б) работать с API используя URL, полностью совпадающий после слэша (

Поражает масштабность ущерба. Взять любую компанию помельче, и уязвимость на 5% аудитории никто бы и не заметил. А тут речь сразу идет о десятках миллионов людей. Что по этому поводу делать? В блоге «Лаборатории Касперского» разумно рекомендуют не делать
Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.