Коллектив Авторов - Цифровой журнал «Компьютерра» № 189
К оглавлению
Даёшь холивар! Как «убить» Mac и iPhone строчкой текста — и почему это хороший повод забыть Apple
Евгений Золотов
Опубликовано 03 сентября 2013
ПРЕДУПРЕЖДЕНИЕ: Если вы используете OS X или iOS, настоятельно рекомендую переключиться в браузер Firefox.
В последних числа августа и, что особенно приятно, при непосредственном участии нашего соотечественника (пусть сегодня и соседа по СНГ), в компьютерной тусовке случился премилый хакерский скандальчик. Один любознательный юзер поделился с другими строчкой юникода, отображающейся на экране бессмысленной арабской вязью, но оказывающей мистическое действие на некоторые программы: попытка воспроизведения её на компьютерах и мобильных устройствах фирмы Apple приводит к зависанию и (или) зацикливанию многих приложений.
Понятное дело, «строка-убийца» пошла по рукам, сея веселье и хаос, но применимость её ограничена узким версионным окном: вреда особого она не причиняет. Так что я уже было решил пропустить эту историю, если б не одно обстоятельство. Читая публикации, посвящённые «смертельной строчке», в какой-то момент понимаешь, что не был сделан напрашивающийся сам собой вывод.
Та самая строчка. Пока в виде картинки — безвредна.
Если вдруг вы ещё не слышали самой истории, дело вкратце обстоит так. Строка из двух дюжин особым образом подобранных арабских символов, скормленная некоторым программам для стационарной и мобильной платформ Apple, приводит к критической ошибке. Подвержены ей приложения для iOS версий 6.х (но не более старые и не более свежая бета «Семёрки») и OS X 10.8 (но опять-таки не более свежий девелоперский пререлиз): в первую очередь браузеры (Safari, Chrome, Opera), коммуникаторы (iMessage, Skype), клиенты соцсетей (официальный Twitter и др.) и прочие. Такое разнообразие объясняется просто: ошибка возникает не в конкретной программе, а в используемом многими приложениями компоненте операционной системы. Собственно автор открытия считает, что виноват HTML-движок WebKit, тогда как другие кивают на программный интерфейс для отображения текстов Core Text, присутствующий также в OS X и iOS и используемый в том числе WebKit.
Кто прав — судить не возьмусь, но, собственно говоря, это и не важно. Важнее то, что если для понимающего пользователя устранить последствия убийственной строки трудности не составит, то у далёких от ИТ-специфики людей (а таковых среди владельцев «яблочной» продукции, полагаю, большинство) эта глупая строчка способна отнять минимум несколько часов времени. Скажем, получив мгновенное сообщение (SMS, iMessage и т. п.) с таким текстом, можно в коммуникационное приложение больше и не попасть, потому что немедленно после запуска оно будет «падать». И сто раз права Facebook, оперативно начавшая отфильтровывать содержащие «строку-убийцу» сообщения.
А вот Apple даже не почесалась — хоть могла и должна была это сделать ещё полгода назад! Дело в том, что человек, продемонстрировавший «строку-убийцу» общественности (и он же, очевидно, автор находки — украинец Павел Жовнер, известный читателям ресурса Habrahabr.ru своими чернохакерскими опытами), впервые сообщил о проблеме ещё в феврале. И тогда же якобы поставил в известность Apple, которая, увы, на обращение не отреагировала.
Пожалуй, Жовнер — призывающий сейчас каждого, на чей компьютер и устройство подействовала его арабская вязь, отправить репорт «яблочникам» — покривил душой: Appl, может быть, и не ответила ему письменно, но сообщение к сведению приняла, ведь iOS 7 бета и пререлизы OS X 10.9 ошибке уже не подвержены. Однако и вправду непонятно, почему за шесть месяцев компания не устранила баг в мейнстримовых iOS 6 и OS X 10.8. Безвредно? Так, повторю, обыватель может заплатить за это минимум несколькими часами времени, а в худшем случае отыщется и способ заносить через «смертельную строку» исполняемый код.
На самом деле ответ на вопрос «Почему?» давно дан, но прежде позвольте вспомнить о подзабытом ныне феномене под названием «холивар». Знаете, те самые форумные раздувы о «Винде против Линукса», «Маках против PC» и прочее подобное. Холивары давно не в моде. Нет, они, конечно, ведутся и сейчас, но по сравнению с творившимся на форумах (в том числе и компьютерровских, в том числе и при участии вашего покорного слуги) ещё десять лет назад нынешние споры — просто детская забава. В начале «нулевых» в холиварах участвовали абсолютно все, тогда как сегодня дерущихся обычно не много — и пассивное большинство, которому эти пустопорожние тёрки давно надоели, выделяет холиварщикам уголок, где они и мутузят друг друга в своё удовольствие.
И лично я вижу в этом парадокс: ведь именно сегодня наконец накопились данные для более или менее аргументированного сопоставления платформ и игроков. Особенно в том, что касается информационной безопасности. Так что заранее прошу прощения за ужасный вопрос, но я должен спросить: чьи же продукты, чья платформа более защищена от информационных угроз? Microsoft, Apple, сообщества open source (оно же Linux)?
Microsoft может гордиться сделанным. Встретив третье тысячелетие беспрецедентными вирусными эпидемиями, её Windows и сегодня подвержена заразам, и, пожалуй, так же дырява, как и тогда, но компания сумела выстроить жёсткую, адекватную, оперативную систему реагирования. Собственный антивирус Security Essentials, подробнейшая отчётность по уязвимостям не только в ОС, но и в каждом продукте, эффективная (пусть и принудительная!) дистрибуция патчей — вместе это дорогого стоит!
Linux и без того имела всё необходимое, посему менять что-либо просто не было нужды. Кстати, если вы всё ещё откладываете знакомство со свободной ОС, рекомендую начать с Debian — дистрибутива, недавно отпраздновавшего двадцатилетие. Debian же представляет собой и хороший пример того, как должна быть организована security-инфраструктура операционной системы: свежие «дыры» оперативно латаются open source-сообществом, а подогнанные к конкретным версиям приложений патчи распространяются через централизованный репозитарий.
А вот с Apple дело обстоит хуже. Apple — не техническая, а точнее, не инженерная компания. Да, она сумела выстроить собственную производственную вертикаль, проектируя и производя сама всё, от винтиков до логотипов. Но горькая правда в том, что на самом деле это компания-коммивояжёр — и всё, чем она занята, и то, как она этим занимается, поставлено на службу единой цели: продажи! А это, в частности, означает, что, как и у любого «чистого продавца» (вы наверняка периодически сталкиваетесь с такими на улицах: то они впаривают сковородки, то новомодные утюги…), у неё нет ни достаточных ресурсов, ни потребности заботиться о чём-либо, что не влияет напрямую на успешность продаж. Скажем, о безопасности пользователей.
Не верите? Попробуйте отыскать на её заглавном сайте страничку, где сведена информация о последних security-апдейтах. (Когда устанете, отправляйтесь по этой ссылке — и не спрашивайте меня, как я её отыскал: я не помню!)
Культура эта была привита ей не вчера, не в девяностые: компания родилась такой, и если стряхнуть полувековую пыль, то можно отыскать замечательные примеры. Так, ещё в 1976 году Возняк поспорил с Джобсом из-за конструкции Apple II. Инженер (Возняк) настаивал на том, что должно быть восемь слотов расширения, потому что технически это возможно и не потребует усложнений. Продавец (Джобс) требовал ограничиться двумя, потому что считал это достаточным для повседневных задач (история подробно изложена Возняком в книге «iWoz»). Узнаёте почерк?
С тех пор этот принцип отлился в сотнях продуктов и аукнулся в сотнях же инцидентов. Вспомните «Антеннагейт», когда Apple не желала признать конструктивных просчётов в iPhone, или двухлетней давности проблему с батарейкой. Вспомните скандал с картами, которые мало того, что неправильно отображают ландшафт, так ещё и норовят завести не туда, куда нужно. Вспомните о царапинах на корпусах, бликах во внутренних линзах «Пятёрки» и прочем, что Apple назвала «нормальным». Вспомните о вирусах, существование которых компания отрицала даже после того, как начались эпидемии. И так далее, и так далее, снова и снова, по одному и тому же алгоритму: столкнувшись с проблемой, Apple пытается её замолчать, потом делает вид, что ничего не случилось, и только если шум не стихает, выделяет ресурсы для решения.
Со «строкой-убийцей» всё в точности так. Случись это в экосистеме Linux или MS Windows, патч увидел бы свет в течение дней или недель. Однако февральское сообщение Жовнера не вызвало резонанса в Сети — и Apple, очевидно, решила, что публика потерпит до выхода следующих версий операционок. Что ж, почти дотерпели (со дня на день презентация новых моделей?), и даже — спасибо случаю! — арабская вязь не стала причиной серьёзных проблем.