Google готова обменять производительность Chrome на защиту от уязвимостей

Google готова обменять производительность Chrome на защиту от уязвимостей

Google готова обменять производительность Chrome на защиту от уязвимостей

Команда безопасников Google призналась, что готова променять производительность браузера Chrome на защиту от ряда уязвимостей. Другими словами, в будущем интернет-обозреватель может стать медленнее, но при этом безопаснее.

В своих рассуждениях специалисты Google ссылаются на исследования, показавшие, что 70% всех проблем в безопасности связаны с памятью. В блоге эксперты перечисляют три метода, которые помогут избавить пользователей от таких багов:

  1. Проверка времени компиляции.
  2. Проверка времени выполнения.
  3. Использование более безопасных языков программирования.

Из-за C++ первый способ сразу отбросили, однако для проверки времени выполнения можно использовать что-то вроде MiraclePtr.

«MiraclePtr нивелирует эксплуатацию багов класса "use-after-free", поскольку позволяет отправлять в карантин память, к которой всё ещё можно получить доступ. На многих мобильных устройствах память является весьма ценным ресурсом, поэтому с карантином могут возникнуть проблемы», — пишет команда безопасности Google.

«Тем не менее у MiraclePtr всё равно есть шанс избавить нас от 50% подобных уязвимостей в Chrome, что будет просто огромным шагом на пути к безопасному браузеру».

Параллельно разработчики рассматривают возможность задействовать язык программирования Rust, чтобы в итоге всё-таки реализовать проверку компиляции. В этом случае производительность Chrome не должна пострадать.

«Мы пока ещё выясняем, можно ли грамотно использовать вместе C++ и Rust. Даже если бы мы завтра начали писать ключевые компоненты браузера на Rust, избавляться от уязвимостей пришлось бы несколько лет».

Баг macOS ломает TCP через 49 дней без перезагрузки

В macOS нашли редкий, но очень неприятный баг: если компьютер работает без перезагрузки примерно 49,7 дня, у него может постепенно умирать TCP. По версии исследователей, проблема связана с переполнением 32-битного счётчика времени в ядре XNU, который используется TCP-подсистемой.

После этого внутренние TCP-таймеры якобы перестают нормально обновляться, соединения в состоянии TIME_WAIT не очищаются, временные порты постепенно заканчиваются, и система в какой-то момент просто перестаёт устанавливать новые TCP-соединения.

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

По их описанию, часть узлов после примерно 49 дней 17 часов 2 минут 47 секунд аптайма перестала открывать новые TCP-сессии. После перезагрузки всё возвращалось в норму, но таймер, по сути, запускался заново.

Авторы утверждают, что смогли воспроизвести поведение на двух машинах и связали его с переменной tcp_now в XNU. В открытом репозитории Apple действительно есть TCP-код ядра Darwin/XNU, где используются 32-битные значения времени и логика сравнения временных меток TCP, на которую ссылаются исследователи.

Поведения бага выглядит так: сначала ничего не ломается в лоб, но закрытые TCP-соединения перестают вовремя исчезать из TIME_WAIT. Затем их становится всё больше, временные порты забиваются, новые подключения начинают зависать в SYN_SENT, а сервисы, которым нужны новые TCP-сокеты, начинают сыпаться.

Если эта находка подтвердится, то для обычного пользователя баг вряд ли станет массовой проблемой: большинство устройств на macOS перезагружаются чаще (хотя бы из-за обновлений). А вот для долго работающих Mac mini, билд-серверов, CI/CD-ферм, удалённых рабочих станций и серверных компьютеров, которые могут жить без ребута неделями, история выглядит уже куда серьёзнее.

Если у вас есть компьютер на macOS, который работает неделями без перезагрузки и критичен для сервисов, мы бы посоветовали следить за его аптаймом.

RSS: Новости на портале Anti-Malware.ru