Оффтоп Konstantin Panphilov
5 709

Cеть доставки контента CloudFlare рассказала о крупной утечке данных с сайтов-клиентов

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

В закладки

Как отмечает Techcrunch, системой от Cloudflare пользуются более пяти миллионов сайтов. Злоумышленник, заметивший брешь, мог собирать личные данные посетителей сайтов, которые обычно должны храниться в зашифрованном виде. Кроме того, часть информации успела попасть в кэш поисковых систем, поэтому представители Cloudflare обратились к Google, Bing, Yahoo и другим компаниям, чтобы вручную устранить последствия вероятной утечки.

Баг содержался в старом коде компании, но проблема утечки памяти проявилась 22 сентября 2016 года, когда CloudFlare внедрила новый HTML-парсер, после чего системы компании стали интегрировать случайные фрагменты оперативной памяти своего сервера в содержимое веб-страниц, которые отправляются клиентам. 

Спустя пять месяцев специалист по безопасности Google Project Zero обнаружил баг и сообщил представителям Cloudflare. Наиболее серьёзная утечка могла произойти между 13 февраля и 18 февраля, когда примерно один из каждых 3,3 млн HTTP-запросов к сайтам-клиентам Cloudflare подвергал данные вскрытию.

Злоумышленники могли иметь доступ к данным в реальном времени или через кэш поисковых систем. В своём заявлении представители Cloudflare отметили, что даже на пике информация утекала только из 0,00003% всех запросов. В комментариях на Hacker News технический директор компании Джон Грэхем-Камминг отметил, что команда обнаружила утечку данных как минимум с 3438 уникальных доменов клиентов компании. Один из пользователей Github опубликовал список доменов, которые могли попасть под уязвимость, утверждая, что их общее число превышает 4 миллиона — включая 2ip.ru, 4pda.ru, avito.ru, rghost.ru, forbes.ru и rosbalt.ru.

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

Баг появился в HTML-парсере, который Cloudflare использовал, чтобы ускорить быстродействие сайта — он подготавливает сайт для работы с платформой AMP от Google и превращает HTTP-ссылки в HTTPS. 

Системы самой Cloudflare также подверглись ошибке — «один из утёкших фрагментов информации был приватным ключом, который используется для связи между машинами Cloudflare», — написал Грэхем-Камминг. Ключ позволял компьютерам компании безопасно общаться друг с другом и был внедрён в 2013 году на фоне опасений о государственной слежке.

Грэхем-Камминг подчёркивает, что Cloudflare не обнаружила подтверждений тому, что хакеры успели обнаружить или использовать баг, отметив, что сотрудники заметили бы подозрительную активность в своей сети.

Команды Cloudflare в Сан-Франциско и Лондоне смогли избавиться от самой серьёзной проблемы за семь часов. Полное восстановление и избавление от бага заняло шесть дней, включая работу с поисковыми системами, которая позволила извлечь часть утекшей информации. 

Сотрудник Google Тавис Орманди, первым заметивший баг, рассказал, что наткнулся на неожиданную информацию в ходе работы над своим проектом и сперва подумал, что обнаружил баг в собственном коде. После ряда тестов он понял, что утечка происходит из систем Cloudflare — Орманди наблюдал чужие ключи шифрования, куки, пароли и HTTPS-запросы, личные сообщения с крупных сайтов знакомств, кадры из веб-чатов, данные бронирования гостиниц и кредитных карт.

Позже специалист удалил полученные образцы, но опубликовал отредактированные скриншоты с частью информации, которая просочилась с сайтов 1Password, Uber, Fitbit и OkCupid. Он также отметил, что, несмотря на заявления Cloudflare, сотрудники компании недооценивают опасность для клиентов, поскольку утёкшая информация могла осесть не только в кэше поисковых систем, но и в других местах.

#новость

{ "author_name": "Konstantin Panphilov", "author_type": "editor", "tags": ["\u043d\u043e\u0432\u043e\u0441\u0442\u044c","\u043d\u043e\u0432\u043e\u0441\u0442\u0438"], "comments": 27, "likes": 17, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 22165, "is_wide": false }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15395' + '50799') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 22165, "author_id": 3, "diff_limit": 1000, "urls": {"diff":"\/comments\/22165\/get","add":"\/comments\/22165\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/22165"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

27 комментариев 27 комм.

Популярные

По порядку

Написать комментарий...
4

Тут то мы и переманиваем Avito, Forbes и Uber :)

Ответить
2

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

Ответить
0

А на машине можно в аварию попасть. Чтож теперь, не ездить?

Ответить
4

Давайте-давайте, утрируйте, приводите абсурдные аргументы и используйте другие демагогические приемы. А я по прежнему буду считать верхом идиотизма доверять свои пароли какому-то сервису и "облакам".
Людям в большей степени пофиг на свою безопасность на самом деле, они обменяют её на удобство и комфорт :smirk:

Ответить
0

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

Ответить
2

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

Ответить
–1

Ну так чего вы там, железо своё на бэкдоры проверили или нет?

Ответить
0

Жопу с пальцем. Без крайностей никак? Непременно либо анус смазываем, либо уходим в подполье?

Ответить
0

Не знаю, себе вопрос задайте.

Ответить
1

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

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

А как вы без них обеспечиваете синхронизацию паролей между дивайсами?

Ответить
1

"Облачные" менеджеры паролей создают иллюзию безопасности. Ваши пароли к сервисам уже не только ваши. Теперь их знает сервис. И часто не только он. Чему подтверждение всякие интересные истории со взломами и утечками.
Смысл паролей чтобы его знал только один человек, иначе получается уже какой-то публичный доступ к защищаемым данным.

Я не обеспечиваю синхронизацию паролей. Я их помню. Мнемоническая техника.

Ответить
0

Всё зависит от архитектуры. Если сервис шифрует пароли пользователя мастер-паролем, то никаких ваших паролей он не знает.

Ответить
0

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

Ответить
0

Вообще, мы (люди земли) предполагаем, что условные среднестатистические неквалифицированные параноики не будут выдавать свое мнение за экспертное.
https://support.1password.com/1password-security/

Ответить
0

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

Ответить

Комментарий удален

1

А то! "We only hire the best" же.

Ответить
–8

Ставьте лайк, если используете везде один и тот же пароль. Посчитаем сколько нас.

Ответить
2

Менеджеры паролей решают

Ответить
2

В контексте статьи особенно 1Password решает

Ответить
0

Наличие в доступе куска шифрованного криптоконтейнера - не особенный фейл в безопасности. Вот если кусок данных был не шифрован!..

Ответить
0

А точно речь про утерянные пароли? С утра CF прислали письмо где указали что пароли не пострадали, лишь данные потенциальных посетителей сайтов

Ответить
0

Криптовалютные биржи прислали уведомление, что надо сменить пароль и включить 2FA

Ответить
0

Кто в курсе, щас перестал РКН банить IP CloudFlare?

Ответить
2

не перестал

Ответить
0

тот самый момент, когда радуешся, что для antiDDoS защиты выбрал другого провайдера

Ответить
1

А какого кстати? Клаудфлэр хорош тем, что бесплатно предоставляет базовую защиту (вроде бы, пользоваться ещё не довелось).

Ответить
0

использую скайпарк, но там бесплатного ничего нет

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Приложение-плацебо скачали
больше миллиона раз
Подписаться на push-уведомления