Если вы недавно не жили под скалой, вы знаете о Meltdown и Spectre – двух наиболее распространенных уязвимостях безопасности в истории компьютеров. Вы также можете знать, что это не ограничивается только приложениями уровня ОС, и в Интернете это так же плохо, как и получается: Веб-сайт может считывать данные, хранящиеся в браузере, для другого веб-сайта или самой памяти браузера.

Microsoft Vulnerability Research Firefox 57.0.4 (выпущен 4 января) исправил это. Microsoft выпустила и обновила для IE и Edge 5 января. Safari выпустила 11.0.2 8 января, что якобы защищает пользователей от этих проблем.

Пользователям Chrome приходится ждать до версии v64 (выпущена 23 января); но вот список того, что вы можете сделать сейчас, чтобы ограничить степень ущерба для ваших пользователей.

Почему нас убеждают обновлять свои браузеры

Краткие заметки

  1. Не все эти обновления устраняют все уязвимости безопасности, но они являются первым пунктом действия.
  2. Обновление браузера – это только первый шаг. Вам необходимо обновить свою мобильную / настольную операционную систему, чтобы защитить себя от другой, но более широкой поверхности атаки: автоматическое обновление приложений.
  3. Поскольку мы понимаем масштаб этих уязвимостей лучше, придет больше патчей. Эта история еще далека от завершения.

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

Это может быть самым важным побочным эффектом этих уязвимостей: у нас может быть вполне обоснованная причина взлома сети для людей со старыми браузерами. История front-end развития может запомнить этот момент, когда мы перешли от «эпохи развития хиппи» (я поддерживаю все версии браузера) до «эпохи развития хипстера» (я поддерживаю только последние версии браузера). Это огромный сдвиг в мышлении, особенно для наших веб-разработчиков, поскольку мы традиционно делаем все возможное, чтобы привлечь всех: отзывчивый дизайн, прогрессивное улучшение и грациозную деградацию.

Почему нас убеждают обновлять свои браузеры

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

Это беспроигрышная ситуация:

  • Разработчики избавляются от старой поддержки браузера для хорошего.
  • Пользователи вынуждены делать важное решение безопасности (надеюсь, навсегда).

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

Это VW-скандал процессоров

В 2015 году Volkswagen был пойман, обманывая выбросы своих дизельных двигателей. Они обманули, чтобы сделать свои автомобили более привлекательными для покупателей. В этом случае производители процессоров «упустили» некоторые проблемы безопасности в своих процессорах, чтобы они имели более высокие показатели производительности.

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

Например:

  1. Нет В httpOnly куки больше не недоступны из JavaScript.
  2. Сессионный файл cookie очень просто для других сайтов, чтобы украсть (сеансовое спуфинг).
  3. Расширения Chrome, которые хранят пароли, теперь потенциально протекают.
  4. Сам HTML, содержащий [removed]тег, уязвим, поэтому XSS – легкий ветерок.

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

Почему нас убеждают обновлять свои браузеры

Серебряная подкладка

В каждом кризисе есть возможность. Я утверждаю, что это самая крутая вещь, которая произошла с сообществом веб-разработчиков с ES2015. Мы все знаем боль и стоимость поддержки старых браузеров (особенно браузеров, которые не являются вечнозелеными):

  • Нам нужно раздуть код для прокладки, которые современные браузеры уже имеют
  • Отладка более старого браузера, использующего инструменты отладки старой школы, не за горами опыта вождения автомобиля из свалки после вождения современного автомобиля
  • Мы не можем полагаться на целостность браузера ( IE, я смотрю на вас ), поэтому мы не можем обслуживать какую-либо конфиденциальную информацию вообще для определенных браузеров.
  • Мы должны иметь дело с различными проблемами CSS / SVG-рендеринга
  • Мы должны проверять кросс-коды для разных браузеров только потому, что мы их поддерживаем! Существуют целые предприятия, разработанные вокруг идеи автоматизации этой утомительной задачи с различными коэффициентами успеха / усилий.
  • Модульная система теперь поддерживается всеми основными браузерами. Снижение поддержки уязвимых браузеров имеет преимущество в упрощении и модернизации наших каналов развертывания. Вам, возможно, не придется переводить свой код вообще!

Как?

Скорее о ПОЧЕМУ, чем КАК, но вот несколько быстрых мыслей:

  1. B snacking (обычно не очень надежный) для определения того, работает ли у пользователей уязвимый браузер. Затем вы можете отказаться от предоставления им важных данных.
  2. Показывать панель уведомлений для тонкого предупреждения пользователей; но кто будет читать или реагировать на это?
  3. Напишите тестовый код, который действительно пытается атаковать. Если он преуспеет, он показывает предупреждение (я уверен, что модуль NPM скоро появится, если он еще не.

Вывод

Помните, как мы все реагировали, когда React.js «смешанный шаблон и код» в JSX? Иногда нам приходится отучивать «лучшие практики», потому что альтернатива имеет больше смысла. Я не говорю о разрыве сети! Я прошу защитить наших пользователей, прежде чем все ад сломается. Пожалуйста, подумайте.

Похожее