22 декабря 2017 — ВКонтакте выпустил интересное обновление собственного iOS-приложения.
Здесь цитировать информационное агентство о конкретных изменениях:
Новая версия ВКонтакте для iOS и Android теперь поддерживает Accelerated Mobile Pages (AMP) — мобильный стандарт, позволяющий быстро загружать внешние статьи.( официальные новости ) Технология AMP, разработку которой инициировала компания Google, предназначена для ускорения работы веб-сайтов на всех устройствах и платформах.Теперь страницы всех сайтов, на которых настроен AMP, открываются прямо внутри приложения.
Это современный подход к оптимизации HTML и CSS, который позволяет ускорить загрузку на устройствах с помощью API предварительного подключения и асинхронного выполнения Javascript. AMP пытается предварительно загрузить содержимое поддерживаемой страницы, используя платформу, на которой вы видите ссылку, — социальную сеть или мессенджер.
Когда вы просто пролистываете обновления, страницы AMP загружаются в фоновом режиме, а при нажатии на ссылку страница практически мгновенно открывается на мобильном устройстве.
AMP имеет страница с подробным описанием, кучей мануалов и инструкций, однако разработчикам iOS-приложения ВКонтакте удалось собрать гаубицу, по сути, из детского конструктора (базовая реализация AMP) и загрузить ее боевыми снарядами (баг iOS-приложения) .
Мы не знаем точно, что произошло во ВКонтакте при внедрении AMP в iOS-приложение.
В версии приложения для Android этой проблемы нет. Поскольку компания занимается преимущественно атаками типа «отказ в обслуживании», мы внимательно следим за трафиком наших клиентов.
Некоторые из них (конкретные имена в данной публикации называть не будем, все лица, причастные к этому инциденту, проинформированы) сообщили нам об аномалиях трафика, что побудило Qrator Labs глубже изучить логи.
То, что мы нашли, нас впечатлило.
Одна из крупнейших социальных сетей, доступная на 80 языках, с более чем 400 миллионами аккаунтов, фактически провела DDoS-атаку на некоторые ресурсы, в основном информационные агентства и те компании, которые агрессивно экспортируют новости в ленту ВКонтакте.
Из-за банальной ошибки в отдельной реализации AMP для iOS. К счастью, для предварительной загрузки страниц ВКонтакте использует либо новый, либо редко используемый пользовательский агент:
Некоторые из наших анонимных статистических данных выглядят следующим образом.VK/74 CFNetwork/<cfn version> Darwin/<ios version>
Крупное информационное агентство с несколькими серверами :
- на эти запросы от 2% (всех уникальных) IP с этим приложением тратилось до 20% общего времени ответа
- до 16% от всех запросов из приложения
- 50-66% всех запросов от 8-15% всех IP, 65-77% общего времени ответа
- до 25% от всех запросов
- до 18% от всех запросов
- 91-98% всех запросов с 15-31% (всех уникальных) IP с этим пользовательским агентом, до 33% времени на обработку этих запросов
- 13-46% всех запросов с 1-5% ИП
- до 12% от всех запросов
Поскольку в мире много пользователей, а такие технологии, как AMP и прочие «мгновенные просмотры», быстро распространяются и внедряются множеством различных ресурсов (eBay), количество таких ссылок будет только расти.
Опасность данного бага мы оцениваем как среднюю, поскольку речь идет в основном о легковесных и кешированных страницах, для отображения которых не требуются значительные ресурсы сервера.
Но для страниц, генерируемых для каждого запроса, такая ситуация может быть болезненной.
Что еще более важно, нет другого хорошего способа сделать это, кроме как прекратить публиковать AMP-совместимые ссылки в своей социальной сети.
ВКонтакте (с представителем которого мы связались перед публикацией) исправит этот баг, но никто не запрещает злоумышленнику или просто проходящему мимо человеку найти более интересное применение этой возможности.
Прежде чем выпускать обновление iOS-приложения ВКонтакте, убедитесь, что страницы, которые вы обслуживаете с поддержкой AMP, кэшируются.
ВКонтакте отлично справляется с обеспечением своих пользователей новейшими технологиями.
Особая благодарность Сергею Паранко, директору медиаэкосистемы ВКонтакте, который откликнулся на наш запрос и сообщил, что данная проблема будет устранена.
Теги: #iOS #разработка iOS #Сетевые технологии #ddos #Google #vk #vkontakte #JavaScript #amp
-
Гельмгольц, Герман Людвиг Фердинанд
19 Oct, 24 -
Нидерланды, Или Туда И Обратно
19 Oct, 24