SDK Facebook представляет собой не только угрозу конфиденциальности, но и может вызвать катастрофы.

В одно прекрасное утро я открыл свое любимое приложение для потоковой передачи музыки Spotify на устройстве iOS, и оно разбилось.

Это могло быть из-за того, что я использовал бета-версию iOS 14. Не особо задумываясь, я пошел дальше и открыл свое любимое приложение для ведения блогов Medium. И он тоже разбился.

Два моих любимых приложения не работают одновременно - странное совпадение. Я переустановил приложения, перезагрузил свое устройство, но все равно не повезло. Проблема не исчезла.

Как ни странно, WhatsApp и Instagram работали нормально.

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

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

SDK Facebook для iOS широко используется в приложениях в App Store и имеет явную ошибку на стороне сервера. Он обрушил все популярные приложения, от Pinterest, Tinder и TikTok до Medium, Spotify и PUBG.

Это был странный 20-минутный период, который вызвал более 500 тысяч сбоев в экосистеме Apple - одного из крупнейших за последнее время.

SDK Facebook - это кнопка выключения, которая присутствует почти в каждом приложении

У Facebook может и не быть собственной мобильной операционной системы, но она хорошо интегрирована почти в каждое приложение на вашем телефоне.

В частности, их SDK с открытым исходным кодом используется для простой интеграции кнопки входа в Facebook, анализа расширенных показателей и других утилит, таких как отслеживание рекламы.

Это означает, что если ваше приложение принимает разрешение на определение местоположения или Bluetooth, SDK Facebook может получить доступ к этим данным.

Зная историю Facebook с отслеживанием данных и нарушениями конфиденциальности, их SDK не только является шпионской камерой, но и крайне ненадежен. На самом деле SDK Facebook - это удаленная кнопка, которая может вывести приложения из строя за секунду.

Смогли ли разработчики iOS предотвратить сбой? Короткий ответ: нет

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

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

Хотя может показаться, что такие сбои приложений можно предотвратить с помощью надежной обработки ошибок, с помощью iOS SDK от Facebook, на самом деле это не так.

Ошибка, которая вызвала сбои приложения, была, по сути, вызвана кодом инициализации Facebook SDK, который запускается при запуске, поскольку он связан в двоичном файле.

По сути, код SDK совершал удаленные вызовы API на сервер Facebook, который в конечном итоге возвращал ответ JSON с нулевым значением, который не анализировался и не обрабатывался и, следовательно, вызвал fatalError.

Разработчик приложения мог даже не импортировать Facebook SDK или не вызвать ни одной строчки своего кода, но просто включив фреймворк в пакет, он приводил к сбою приложений.

Никакой разработчик не мог этого предотвратить.

Забрать

SDK Facebook для iOS в этом году нарушал работу популярных приложений не один, а два раза. Это только открывает дискуссию о надежности сторонних SDK.

Удобство больше, чем безопасность? В настоящее время именно первое является причиной таких упущений.

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

Удивительно, но все семейство приложений Facebook использовало последнюю версию SDK, а сбои были вызваны старым SDK. Это многое говорит об ответственности технологического гиганта Кремниевой долины. Возможно, они не слишком заинтересованы в обеспечении обратной совместимости.

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

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