Security Week 21: сотни уязвимостей Adobe Flash

tipqlun4rhox534zhiisqj9qaso.png7 июня компания Adobe закрыла критическую уязвимость в Flash Player (новость, сообщение компании). Уязвимость CVE-2018–5002 обнаружена сразу несколькими исследовательскими командами из Китая — речь идет об удаленном выполнении произвольного кода в результате ошибки переполнения буфера. Это уязвимость нулевого дня: на момент обнаружения она уже использовалась в целевых атаках на Ближнем Востоке. Эта достаточно серьезная проблема воспринимается как рутинная новость просто из-за названия пострадавшего продукта: ну кого уже может удивить RCE во флеше?

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

Ранняя история предка Adobe Flash, программы для рисования SmartSketch — это полезный кейс про то, как делать ставку на развитие перспективных технологий в условиях недостатка информации. Вот представьте себя году в 1992–1993-м. Веба еще как такового нет, Интернет — игрушка для ученых и закрытый клуб любителей общения в почте и ньюсах. При этом перспективные технологии все описаны: есть стандарты для мультимедийных ПК, для носимых устройств, есть первые концепты планшетов. Непонятно лишь, что из этого будет развиваться и приносить деньги, и главное — в какой последовательности все эти технологии будут выстреливать. Разработчики SmartSketch сначала сделали неправильную ставку на одну из первых ОС для носимых компьютеров с сенсорным экраном (PenPoint).

Система так и не дожила до коммерческого релиза, а SmartSketch пришлось быстро портировать на Mac OS и Windows, где программ для рисования и так было немало. И вот второе стратегическое решение — перепрофилировать проект под создание анимации, да еще и обеспечить возможность публикации в вебе — оказалось верным. В 1996-м продукт, переименованный в FutureSplash Animator, был выпущен. Примерно тогда же Microsoft осознала, что за Интернетом будущее, начала накачивать соответствующие проекты бюджетами на маркетинг и разработку и создавать то, что реально юзабельным станет только лет через 10–15 — всякое веб-телевидение и прочий интерактив. Интерактив — это в том числе анимация, и тут-то создателям софта карта и поперла.

hbxkitv-u4gilnd8zqco08v4zsm.gif


В том же 1996 году проект был приобретен компанией Macromedia (и переименован в Flash). К началу нового тысячелетия бесплатно распространяемый клиентский плагин стал самым распространенным расширением для браузеров. В 2005-м компания Macromedia была продана Adobe, и уже тогда это был не только софт для создания сложных веб-объектов, но скорее платформа для разработки ПО, у которой Flash Player стал просто способом доставки. Где-то вдали уже тогда можно было разглядеть отблески светлого будущего, в котором производители компьютеров, разработчики операционных систем и даже браузеров играют роль операторов кабельного телевидения, отвечающих за прокладку проводов. Настоящие бабки при этом зарабатываются на контенте, который создается и доставляется через платформу Flash, а ее всецело контролирует Adobe. Здорово, правда?

Возможно, все так и было бы, если бы не развитие мобильных устройств, в которых был иной сценарий взаимодействия (перо и пальцы вместо мыши) и гораздо более слабое, чем у обычных ПК, железо. Flash присутствовал, скажем, в ОС Windows Mobile, но экспириенс был так себе. В 2007 году Apple выпустила первый iPhone, смартфон, в котором просмотр полноценного веба стал более-менее удобным. Отсутствие Flash часто преподносилось как один из серьезных недостатков устройства: без него в конце нулевых было невозможно стримить видео и аудио с множества ресурсов, использовать некоторые бизнес-приложения, и, конечно, нельзя было играть в какую-нибудь веселую ферму. В 2010-м, сразу после выпуска iPad, на котором тоже не было Flash, Стив Джобс пишет открытое письмо, где объясняет, почему Flash не появится на мобильных устройствах Apple никогда.

lx8wgdb6_j1yytnzw_w1sld7vjc.png


Перечислю основные доводы Джобса против Flash коротко. Закрытый стандарт (Джобс оговаривается, что у Apple тоже много проприетарного, но стандарты веба должны быть открыты). В качестве контрпримера приводится движок WebKit, разработанный Apple и использующийся повсеместно (в письме упоминаются смартфоны Nokia, и тогда это было еще актуально!).

Ресурсы и батарейка: приводится в пример неэффективная реализация кодека H.264 в Flash, не позволяющая полноценно задействовать аппаратные средства декодирования видео. Отсюда повышенная нагрузка на процессор и полчаса автономной работы. Заточенность на управление мышью и неспособность нормальной работы при управлении пальцами. Отсутствие мотивации у Adobe оптимизировать Flash-приложения для iPhone и iPad. Наконец, была упомянута и безопасность, и надежность («причина падения компьютеров Macintosh номер один»).

Ой, че тут началось. Директор Adobe, конечно, отреагировал: «маки», мол, падают, потому что ось кривая. Про потребление батарейки — это все вранье. И, конечно, «мы за мультиплатформенность». Кажется, мечту о том, что программа пишется один раз и потом работает на чем угодно — хоть на ПК, хоть на кофеварке, реализовать так и не удалось. Проблемы эффективного кодинга как-то решаются, просто уже без Adobe и платформы Flash.

Она относительно долго была довольно простым и удобным инструментом, с работающим механизмом доставки до огромной аудитории. А потом перестала таким инструментом быть: 25 июля 2017 года Adobe объявляет о сворачивании разработки и поддержки Flash. В качестве причины приводится универсальное применение тех самых открытых стандартов веба. С тех пор началась история Flash как зомби-платформы АКА мины замедленного действия на компьютерах миллионов пользователей.

e4qozi_4zutyzvex70qzpxnmdxo.png

Насколько все плохо?

Вопрос следует разделить на две части: насколько все плохо лично у вас и насколько все плохо у Adobe Flash в принципе с точки зрения безопасности? На первый вопрос легко ответить самостоятельно: зайдите на страницу сайта Adobe с виджетом проверки версии Flash Player. В моем случае браузер Chrome сначала попросил разрешения на запуск Flash, а потом показал, что версия у меня самая последняя, с запатченным зиродеем от 7 июня. Вроде все нормально: производитель браузера (Chrome) автоматически поддерживает актуальность плагина Flash. С другой стороны, вполне можно выключить данную функциональность совсем: у обычного пользователя предложение запустить Flash при загрузке страницы не вызовет особых вопросов. А ситуаций, когда даже самая последняя версия плагина критически уязвима — множество.

scg_or9yhywd1v5jmukuyyx8qcy.png


Насколько все плохо у Flash Player в целом? Общее представление дает база уязвимостей CVE. Там для Flash Player на момент публикации была информация о 1047 уязвимостях, начиная с 2005 года. Наибольшее количество уязвимостей было добавлено в базу в 2015 и 2016 годах, как раз когда Adobe объявила о радикальном повышении безопасности платформы. У программы Adobe Reader, которая также довольно часто используется для кибератак, в той же базе CVE записано 368 уязвимостей — почти в три раза меньше. 86% уязвимостей Flash Player в базе CVE отнесены к 9–10 уровню безопасности, то есть это критические уязвимости. 79% напрямую отмечены как приводящие к выполнению произвольного кода.

Цена небезопасного софта

Не могу сказать, что я согласен с письмом Стива Джобса о Flash. Не стоит забывать, что оно было написано в 2010 году, когда посмотреть видео на Ютюбе в HTML5 без танцев с бубном было затруднительно (Flash там вообще был выключен только в 2015-м). Проигрыш Flash — это бизнес-история про технологию, которая начала терять позиции задолго до того, как стала чуть ли не самым часто атакуемым софтом.

И вот представьте себя на месте Adobe: за 13 лет технология принесла компании немало денег. По ряду причин технологии пора на покой, но еще года три она будет приносить доход — из-за желания индустрии обеспечить совместимость. Разработка прекращена, инвестиций ноль, доход есть, красота! Но нет, какие-то (давно принятые) технические решения либо просто недосмотр по части безопасности вынуждают тратить немалые средства и ресурсы на поддержание в минимально пристойном виде продукта, который этого уже не заслуживает. Но приходится: иначе ущерб репутации, а то и юридические издержки.

Было бы интересно почитать чьи-нибудь воспоминания с анализом: как так вышло-то? Желательно еще с советами, как такого избежать в будущем. Пока лишь можно сделать вывод, что инвестировать в безопасность надо чуть ли не до начала разработки продукта. Можно, конечно, подумать о том, что разгребать заложенные изначально косяки будут уже какие-то другие люди, после того как будут получены прибыль и бонусы. Но это несерьезный подход. Насколько ответственно подходят к разработке системообразующего софта в наше время? Узнаем лет через 10–15?

Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.

© Habrahabr.ru