Выпуск музыкального проигрывателя Elisa 0.4, развиваемого сообществом KDE

Опубликован выпуск музыкального проигрывателя Elisa 0.4, построенного на основе технологий KDE и распространяемого под лицензией LGPLv3. Разработчики приложения пытаются воплотить в жизнь рекомендации по визуальному дизайну мультимедийных проигрывателей, разработанных рабочей группой KDE VDG. При развитии проекта основное внимание уделяется обеспечению стабильности, а уже потом наращиванию функциональности. Бинарные сборки в ближайшее время будут подготовлены для Linux (rpm для Fedora и универсальные пакеты flatpak), macOS и Windows.

Интерфейс построен на базе Qt Quick Controls и типовых библиотеках из набора KDE Frameworks (например, KFileMetaData). Для воспроизведения используются компоненты QtMultimedia и библиотека libVLC. Обеспечивается хорошая интеграция с рабочим столом KDE Plasma, но программа не привязана к нему, и может использоваться в других окружениях и ОС (в том числе Windows и Android). Elisa позволяет создавать списки воспроизведения и просматривать музыкальные коллекции с навигацией по альбомам, музыкантам и трекам, но развитие приложения сосредоточено на функциях проигрывания музыки, без углубления в средства управления музыкальной коллекцией.

Предоставляется возможность начать работу сразу после запуска без каких-либо настроек и без определения каталогов с музыкальными файлами. Формирование коллекции осуществляется автоматически путём индексации всех находящихся в системе музыкальных файлов. Индексация может производиться как при помощи встроенного индексатора, так и штатного для KDE движка семантического поиска Baloo. Встроенный индексатор самодостаточен и интересен тем, что позволяет ограничить каталоги для поиска музыки. Индексатор Baloo работает значительно быстрее, так как вся необходимая информация уже проиндексирована для KDE.

Особенности новой версии:

  • Реализована поддержка встроенных изображений обложек музыкальных альбомов, включённых в метаданные мультимедийных файлов;
  • Добавлена возможность использования libVLC для воспроизведения музыки. LibVLC может применяться для воспроизведения дополнительных музыкальных форматов, не поддерживаемых в QtMultimedia;
  • Реализован индикатор прогресса воспроизведения трека, отображаемый на панели рабочего стола Plasma;
  • Улучшен режим «вечеринки», в котором на экране отображается только заголовок с информацией о текущей композиции и кнопки управления воспроизведением, а блок навигации по альбомам скрывается. В новом выпуске вариант данного режима предложен для списка воспроизведения. В режиме «вечеринки» управление списком воспроизведения оптимизировано для сенсорных экранов и позволяет переключаться между треками простым кликом или касанием;
  • Добавлена поддержка отката операции очистки списка воспроизведения. При случайном удалении списка его теперь можно легко восстановить;
  • Добавлен новый навигационный режим, предоставляющий доступ к спискам недавно проигранных композиций и наиболее часто звучащим трекам (показывается 50 последних и 50 самых популярных треков);
  • Добавлен режим просмотра контекста (Context View), в котором показывается детальная информация о композиции, включающая дополнительные сведения, указанные в метаданных, такие как композитор, автор текста, число воспроизведений, текст песни и т.п. В настоящее время поддерживается только вывод теста, присутствующего в метаданных, но в будущем ожидается поддержка загрузка текстов песен через online-сервисы;
  • Добавлена поддержка индексации музыкальных файлов, размещённых на устройствах на базе платформы Android. В дальнейшем планируется подготовить версию Elisa для платформы Android, в том числе реализовать вариант интерфейса для мобильных устройств;
  • В заголовке текущей композиции добавлена возможность перехода к альбому и автору через клик на соответствующие поля;
  • Модель обработки музыкальных файлов унифицирована для упрощения расширения и кастомизации. Среди долгосрочных планов отмечается возможность изменения оформления режимов навигации по музыкальной коллекции в зависимости от предпочтений пользователя и типа музыки;
  • Внесены оптимизации производительности и проведена работа по сокращению потребления памяти. Содержимое областей просмотра (View) теперь загружается на лету после клика на соответствующую область, соответственно скрытые области теперь не формируются заранее и не расходуют лишние ресурсы. При выполнении ресурсоёмких операций, таких как загрузка музыкальной коллекции, обеспечено отображение индикатора выполнения операции, позволяющего понять что происходит в данный момент.

Источник: [ссылка]

Представлен предварительный выпуск пользовательского окружения Xfce 4.14

Спустя более четырёх лет с момента публикации ветки Xfce 4.12 представлен первый предварительный выпуск пользовательского окружения Xfce 4.14, который ознаменовал переход проекта на стадию мягкой заморозки. На 30 июня запланирован второй тестовый выпуск и выполнение полной заморозки кодовой базы. В зависимости от результатов тестирования 28 июля может быть сформирован третий тестовый выпуск. Релиз ожидается 11 августа. Для тестирования Xfce 4.14pre1 подготовлены образ контейнера в формате Docker и PPA-репозиторий для Ubuntu.

Наиболее значительным новшеством Xfce 4.14 является переход c GTK 2 на библиотеку GTK 3. В настоящее время код всех базовых модулей и большинства приложений и плагинов портирован на GTK 3 и доведён до запланированной функциональности. Недоделки отмечаются только в просмотрщике изображений ristretto, программе для записи компакт-дисков xfburn, звуковом микшере xfce4-mixer и музыкальном проигрывателе xfmpc, а также в панельных плагинах xfce4-notes-plugin, xfce4-time-out-plugin, xfce4-mailwatch-plugin, xfce4-cpugraph-plugin и xfce4-stopwatch-plugin.

Некоторые изменения, представленные в Xfce 4.14pre1:

  • В композитном менеджере xfwm4 добавлен vsync через OpenGL, появилась поддержка libepoxy и DRI3/Present, вместо Xrender задействован GLX. Улучшена обработка синхронизации с кадровым гасящим импульсом (vblank) для предоставления защиты от появления разрывов при выводе (tearing). Задействованы новые возможности масштабирования из GTK3, что позволило улучшить работу на экранах с высокой плотностью пикселей (HiDPI). Представлена новая тема оформления;
  • В конфигуратор xfce4-settings добавлен новый бэкенд colord для настройки корректной цветопередачи с использованием цветовых профилей.

    Улучшены инструменты для настройки экрана. Добавлены отступы для более удобного восприятия информации во всех диалогах.

    Добавлена возможность определения профилей мониторов, позволяющая сохранить несколько наборов преднастроек и автоматически менять профили при подключении или отключении дополнительных экранов. Устранено мерцание при смене настроек экрана.

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

  • Переработан индикатор уведомлений. Добавлена кнопка для очистки журнала поступления уведомлений, перемещён вверх переключатель режима «не беспокоить»;
  • В панели налажено использование прозрачных и полупрозрачных фоновых изображений. Добавлена поддержка интроспекции GObject, позволяющей создавать плагины к панели на различных языках программирования (например, на Python). Обеспечена возможность встраивания диалога настройки в xfce4-settings-manager. Добавлена поддержка настройки размера пиктограмм, общего для панели и всех размещённых плагинов. В конфигуратор также добавлена опция для автоматического расчёта размера пиктограмм в зависимости от ширины панели.

    Улучшены средства группировки окон — в кнопках сгруппированных окон теперь обрабатываются такие состояния, как активность окна, минимизация окна и наличие важной информации. Представлены новые классы CSS-стилей для использования при создании тем оформления, например, добавлен отдельный класс кнопок для операций с группами окон и специфичные настройки для вертикального и горизонтального размещения панели. В плагинах к панели и в приложениях задействованы символьные пиктограммы. Заменены устаревшие виджеты;

  • В менеджере сеансов xfce4-session обеспечена поддержка запуска приложений с учётом групп приоритетов, позволяющих определить цепочку зависимостей при запуске. Ранее приложения запускались все разом, что создавало проблемы из-за состояния гонки (пропадание темы в xfce4-panel, запуск нескольких экземпляров апплета nm-applet и т.п.). Теперь приложения запускаются с разделением на группы. Прекращён вывод заставки при запуске. Внесены улучшения в интерфейс управления входом и завершением работы. Добавлена поддержка подключения пользовательских обработчиков при выходе, переходе в спящий режим или перезапуске;
  • Усовершенствован интерфейс управления питанием (xfce4-power-manager). Улучшена поддержка стационарных систем, для которых больше не показывается предупреждение об отсутствии аккумулятора. Добавлена фильтрация связанных с системой питания событий, передаваемых в xfce4-notifyd для отражения в логе (например, не передаются события изменения яркости);
  • Обновлено приложение Gigolo с графическим интерфейсом для настройки совместного доступа к хранилищам по сети, используя GIO/GVfs. Программа позволяет быстро примонтировать удалённую файловую систему и управлять закладками на внешние хранилища в файловом менеджере;
  • Стабилизирован мультимедийный проигрыватель Parole, использующий фреймворк GStreamer и библиотеку GTK+. В состав входят плагины для сворачивания в системный лоток, манипуляции метаданными потока, установки своего заголовка окна и блокирования перехода в спящий режим во время просмотра видео. Значительно упрощена работа на системах, не поддерживающих аппаратное ускорение декодирования видео. Добавлен и включён по умолчанию режим автоматического выбора наиболее оптимального механизма вывода видео. Реализован компактный вариант интерфейса. Улучшена поддержка потокового вещания и воспроизведения файлов с внешних систем;
  • Обновлён файловый менеджер Thunar, в котором полностью переработана панель отображения файлового пути. На панель добавлены кнопки для перехода к ранее открытым и следующим путям, перехода в домашний каталог и родительский каталог. В правой части панели появилась пиктограмма, клик на которой открывает диалог для редактирования строки с файловым путём. На скриншоте ниже для сравнения показаны старый и новые варианты панели:

    Обновлён Thunar Plugin API (thunarx), в котором представлена поддержка интроспекции GObject и использования биндингов на различных языках программирования. Обеспечено отображение размера файлов в байтах. Появилась возможность назначения обработчиков для выполнения определённых пользователем действий.Реализована возможность использования Thunar UCA (User Configurable Actions) для внешних сетевых ресурсов. Проведена оптимизация стилистики и интерфейса;

  • Вместо dbus-glib для обмена сообщениями по шине D-Bus задействована библиотека GDbus и транспортный слой на основе GIO. Использование GDbus позволило решить проблемы с использованием в многопоточных приложениях.

Источник: [ссылка]

Google ограничит доступ Huawei к своим сервисам для Android

В соответствии с ограничительными мерами, введёнными Министерством торговли США против Huawei, компания Google приостановила бизнес-отношения с компанией Huawei, касающиеся передачи оборудования, программного обеспечения и технических сервисов, за исключением проектов публично доступных под открытыми лицензиями. Для будущих моделей Android-устройств Huawei будет прекращён выпуск предлагаемых компанией Google обновлений приложений (Google Apps) и ограничена работа сервисов Google.

Представители Google подтвердили изданию Reuters, что вынуждены следовать предписанию Министерства торговли США, но заверили пользователей, что ограничения не затронут уже находящиеся в обиходе устройства, которые как и раньше смогут использовать сервисы Google, включая Google Play, и загружать обновления приложений, распространяемые Google.

Компания Huawei будет лишена возможности поставки набора Google Apps на будущих моделях устройств. Доступ к каталогу приложений Google Play для будущих устройств находится под вопросом. С одной стороны, в заявлении упоминается не блокирование возможности работы с Google Play, а ограничение доступа к отдельным приложениям в Google Play. В частности, речь про распространяемые через Google Play проприетарные приложения Google, такие как Google Play Protect, Drive, Docs, Gmail, YouTube и Chrome, которые могут быть исключены из выдачи для новых устройств Huawei. С другой стороны Google Play подпадает под коммерческое соглашение с Google, относится к числу контролируемых Google сервисов и завязан на проприетарный набор компонентов для Android. Решение о том какие конкретно сервисы и приложения будут заблокированы пока не принято.

Ограничения коснутся только сервисов и приложений Google, требующих заключения коммерческого соглашения. Приложения, поставляемые под открытыми лицензиями, ограничения не затрагивают. В том числе Huawei сможет и дальше использовать платформу Android на своих устройствах, но будет ограничен лишь публично доступной кодовой базой AOSP (Android Open Source Project). Huawei будет лишён доступа к развиваемым за закрытыми дверями предварительным экспериментальным сборкам Android, но сможет использовать развиваемые в рамках цикла разработки Android 10 обновления Mainline, позволяющие оперативно обновлять системные компоненты платформы без обновления платформы целиком. Модули с подобными обновлениями будут распространяться с открытым кодом и сразу размещаться в репозиториях AOSP.

Представители Huawei упомянули о том, что были готовы к введению подобных мер и последние несколько лет развивали собственные технологии для замены сервисов Google. Некоторые из этих технологий уже успешно применяются на устройствах, выпускаемых для китайского рынка. В Китае большая часть мобильных приложений Google находится под запретом и пользователям изначально предлагаются альтернативные сервисы. Изменения также не скажутся на доставку системных обновлений для Android, так как OTA-обновления формируются и доставляются силами Huawei.

Источник: [ссылка]

Тестирование рабочего стола KDE Plasma 5.16

Доступна для тестирования бета-версия пользовательской оболочки Plasma 5.16, построенной с использованием платформы KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES для ускорения отрисовки. Протестировать новый выпуск можно через Live-сборку от проекта openSUSE и сборки от проекта KDE Neon. Пакеты для различных дистрибутивов можно найти на данной странице. Релиз ожидается 11 июня.

Ключевые улучшения:

  • Управление рабочим столом, оформление и виджеты
    • Полностью переписана система вывода уведомлений. Добавлен режим «Не беспокоить» для временного отключения уведомлений, улучшена группировка записей в истории поступления уведомлений, обеспечена возможность отображения критических уведомлений при работе приложений в полноэкранном режиме, улучшено информирование о завершении работ копирования и перемещения файлов, расширена секция настройки уведомлений в конфигураторе;
    • В интерфейсе выбора тем оформления реализована возможность корректного применения тем к панелям. Добавлены новые возможности тем оформления, в том числе поддержка определения через темы смещения стрелок аналоговых часов и размытия фона;
    • В режиме редактирования панели появилась кнопка «Show Alternatives…», позволяющая быстро сменить виджет на имеющиеся альтернативы;
    • Изменено оформление экранов входа и выхода из системы, в том числе заменены кнопки, пиктограммы и метки;
    • Улучшен интерфейс настройки параметров виджетов;
    • В виджет определения цвета произвольных пикселей на экране добавлена поддержка перемещения цветов в текстовые редакторы и палитры графических редакторов;
    • В системный лоток добавлен индикатор активности процесса записи звука в приложениях, через который можно быстро изменить громкость колесом мыши или приглушить звук средней кнопкой мыши;
    • В панель по умолчанию добавлена пиктограмма для показа содержимого рабочего стола;
    • В окне с настройками обоев рабочего стола в режиме слайдшоу обеспечен показ изображений из выбранных каталогов с возможностью управления их пометкой;
    • В менеджере задач переработан состав контекстного меню и добавлена поддержка быстрого перемещения окна с любого виртуального рабочего стола на текущий кликом средней кнопки мыши;
    • В теме Breeze для теней окон и меню возвращено использование чёрного цвета, что улучшило заметность многих элементов при использовании тёмных цветовых схем;
    • Добавлена возможность блокировки и разблокировки апплета Plasma Vaults непосредственно из файлового менеджера Dolphin;
  • Интерфейс для настройки системы
    • Проведена общая ревизия всех страниц и заменены многие пиктограммы. Обновлена секция с настройками внешнего вида. Перемещена на первый уровень страница «Look and Feel»;
    • Изменено оформление страниц настройки цветовых схем и декорирования окон, которые переведены на компоновку элементов по сетке. На странице настройки цветовых схем появилась возможность разделения тёмных и светлых тем, добавлена поддержка установки тем через перетаскивание мышью и их применения двойным кликом;
    • Переработан режим предпросмотра темы оформления на странице настройки экрана входа в систему;
    • На страницу настройки сеанса (Desktop Session) добавлена опция перезагрузки с переходом в режим конфигурации UEFI;
    • Добавлена полноценная поддержка настройки тачпадов при использовании драйвера Libinput в X11;
  • Оконный менеджер
    • Реализована начальная поддержка работы сеанса на базе Wayland при использовании проприетарных драйверов NVIDIA. На системах с проприетарным драйвером NVIDIA при наличии Qt 5.13 также решены проблемы с искажением графики после возвращения из спящего режима;
    • В сеансе на базе Wayland появилась возможность перетаскивания в режиме drag&drop окон приложений, использующих XWayland и Wayland;
    • В конфигураторе тачпада при использовании Libinput и Wayland появилась возможность настройки метода обработки клика, переключения между областями и симуляции клика касанием (clickfinger);
    • Добавлены две новые клавиатурные комбинации: Alt+L для блокировки экрана и Alt+D для показа содержимого рабочего стола;
    • Для окон приложений на основе GTK реализована корректная активация и деактивация цветовых схем;
    • Эффект размытия в KWin теперь выглядит более естественно и привычно для глаз, без лишнего затемнения области между размываемыми цветами;
  • Сетевой конфигуратор
    • В виджете настройки параметров сети ускорен процесс обновления списка доступных беспроводных сетей. Добавлена кнопка для поиска конкретных сетей по заданным параметрам. В контекстное меню добавлен элемент для перехода к настройкам сети;
    • В VPN-плагине Openconnect добавлена поддержка одноразовых паролей (OTP, One Time Password);
    • Обеспечена совместимость конфигуратора WireGuard с NetworkManager 1.16;
  • Центр установки приложений и дополнений (Discover)
    • На странице с обновлениями для приложений и пакетов теперь выводятся отдельные метки «загружается» и «устанавливается»;
    • Улучшен индикатор завершения выполнения операций, добавлена полноценная строка для оценки прогресса выполнения действия. При проверке обновлений обеспечен показ индикатора «Занято»;
    • Улучшена поддержка и надёжность работы пакетов в формате AppImages и других приложений из каталога store.kde.org;
    • Добавлена опция для выхода из программы после завершения выполнения операций установки или обновления;
    • В меню «Sources» добавлено отображение номеров версий приложений, доступных для установки из разных источников.

Источник: [ссылка]

Выпуск John the Ripper 1.9.0-jumbo-1 с поддержкой FPGA

Выпущена новая версия старейшей поддерживаемой программы для подбора паролей John the Ripper 1.9.0-jumbo-1 (проект развивается с 1996 года). C выхода прошлой версии 1.8.0-jumbo-1 прошло 4.5 года, за которые было внесено более 6000 изменений (git commits) от более 80 разработчиков. Благодаря непрерывной интеграции, включающей предварительную проверку каждого изменения (pull request) на многих платформах, в течение этого срока разработчики рекомендовали использовать текущую редакцию с GitHub, состояние которой поддерживалось стабильным несмотря на вносимые изменения. Основной код проекта распространяется под лицензией GPLv2+, а код некоторых компонентов под лицензией BSD.

Особенностью новой версии является появление поддержки FPGA (в дополнение к CPU, GPU и Xeon Phi). Для плат ZTEX 1.15y, включающих по 4 чипа FPGA и исходно использовавшихся в основном для майнинга Bitcoin, теперь реализованы 7 типов хешей паролей: bcrypt, классический descrypt (включая bigcrypt), sha512crypt, sha256crypt, md5crypt (включая Apache apr1 и AIX smd5), Drupal7 и phpass (используется, в частности, в WordPress). Некоторые из них реализованы на FPGA впервые.

Для bcrypt, достигнутая производительность в ~119k c/s при 2^5 итераций («$2b$05») с потребляемой мощностью около ~27 ватт существенно превосходит результаты для новейших GPU в расчете на плату, на цену оборудования и на ватт. Также поддерживаются кластеры из плат этого типа, что проверено вплоть до 16 плат (64 чипа FPGA), контролируемых с одного Raspberry Pi 2. Поддерживается обычная функциональность John the Ripper, включая все режимы подбора паролей и одновременную загрузку большого количества хешей.

Для ускорения работы реализовано применение маски (режим «—mask», в том числе в комбинации с другими режимами) и сравнение вычисленных хешей с загруженными на стороне FPGA. С точки зрения реализации, во многих из дизайнов (например, для sha512crypt и Drupal7) применены блоки состоящие из многопоточных процессорных ядер (soft CPU cores), взаимодействующих с криптографическими ядрами. Разработку этой функциональности вел Денис Бурыкин в координации с другими разработчиками jumbo.

Другие важные изменения:

  • Поддержка большого количества дополнительных типов хешей, шифров и т.п., включая как классические хеши паролей (например, от новых версий QNX), так и кошельки криптовалют, шифрованные архивы и шифрованные файловые системы (например, Bitlocker и FreeBSD geli), а также поддержку новых разновидностей форматов, поддерживаемых ранее (например, добавлена поддержка bcrypt-pbkdf для OpenBSD softraid) и многое другое. В общей сложности, добавлено 80 форматов на CPU и 47 на OpenCL. Общее количество форматов теперь 407 на CPU (или 262 не включая «dynamic» форматы, настраиваемые из файлов конфигурации) и 88 на OpenCL.
  • Отказ от поддержки языка CUDA в пользу OpenCL, что ничуть не мешает полноценному использованию GPU от NVIDIA (и даже помогает, благодаря фокусированию разработки и оптимизаций на одну реализацию каждого формата под GPU вместо двух реализаций ранее).
  • Поддержка новых наборов инструкций SIMD — AVX2, AVX-512 (в том числе для второго поколения Xeon Phi) и MIC (для первого поколения) — а также более универсальное и полное использование SIMD в реализациях многих форматов, включая применение ранее поддерживаемых наборов инструкций вплоть до AVX и XOP на x86(-64) и NEON, ASIMD и AltiVec на ARM, Aarch64 и POWER, соответственно.
  • Многочисленные оптимизации для CPU и OpenCL, как для более эффективной работы с большим количеством хешей одновременно (например, проверялась загрузка 320 миллионов хешей SHA-1 на GPU), так и для повышения скорости вычисления хешей. Часть из этих оптимизаций универсальные, часть охватывает различные подмножества форматов, а многие специфичны для отдельных форматов.
  • (Авто-)настройка оптимальной буферизации проверяемых паролей на CPU («—tune=auto —verbosity=5») и оптимальных размерностей задания на OpenCL (включена по умолчанию), в том числе с учетом медленного выхода на полную рабочую частоту GPU серии NVIDIA GTX 10xx и новее. Использование реально загруженных хешей и реальной длины проверяемых паролей (когда она известна заранее) для такой авто-настройки.
  • Добавление компилятора «динамических выражений», указываемых прямо на командной строке и реализующих новые гибридные типы хешей, например «—format=dynamic=’sha1(md5($p).$s)'», вычисляемые на CPU с использованием SIMD. В качестве компонентов таких выражений поддерживаются десятки быстрых хешей (от распространенных вроде MD5 до умеренно экзотических вроде Whirlpool), объединение подстрок, кодирование и декодирование, преобразование регистра символов, ссылки на пароль, соль, имя пользователя и строковые константы.
  • Устранение нежелательных отличий от hashcat, в том числе поддержка ранее специфичных для hashcat правил (wordlist rule commands), переход на нумерацию OpenCL устройств с 1-го, применение по умолчанию тех же длин паролей (обычно длина 7) при тестах производительности.
  • Новые режимы генерирования проверяемых паролей (cracking modes), включая PRINCE из hashcat (формирует «фразы», объединяя несколько слов в порядке возрастания суммарной длины), subsets (подбирает пароли с недостаточным количеством различных символов, даже если эти символы пришли из большого набора возможных) и hybrid external (позволяет внешним режимам, описываемым в файлах конфигурации на Си-подобном языке, формировать много проверяемых паролей на основе каждого базового «слова», поступившего от другого режима). Также добавлено несколько новых предопределенных внешних режимов.
  • Дополнительные возможности по использованию нескольких режимов одновременно (один поверх другого — stacking), а также по такому использованию наборов правил (wordlist rules stacking).
  • Усовершенствования режимов mask (постепенное растягивание маски в указанном диапазоне длин, применение маски на стороне OpenCL-устройства или платы FPGA) и single crack (разумное поведение на устройствах, вычисляющих большое количество хешей параллельно, на что ранее в этом режиме не хватало проверяемых паролей, а также ограничения на расход памяти).
  • Много улучшений, связанных с поддержкой Unicode и других кодировок в разных подсистемах.
  • Много улучшений программ *2john (преобразующих файлы разных форматов для использования с john), в особенности wpapcap2john (обрабатывает WiFi трафик).
  • Много новых опций командной строки, настроек в john.conf, опций configure-скрипта и соответствующие им новые возможности, далеко не все из которых удалось упомянуть здесь.
  • Повышение качества кода благодаря встроенной поддержке отладочных сборок с AddressSanitizer (была ранее) и UndefinedBehaviorSanitizer (добавлена), добавлению встроенного фаззера форматов (в рамках GSoC 2015), применению непрерывной интеграции (сборки под десятки сочетаний операционной системы и компилятора и тестирование в них корректной поддержки всех форматов).

Источник: [ссылка]

Cloudflare, Mozilla и Facebook развивают BinaryAST для ускорения загрузки JavaScript

Инженеры из компаний Cloudflare, Mozilla, Facebook и Bloomberg предложили новый формат BinaryAST для ускорения доставки и обработки JavaScript-кода при открытии сайтов в браузере. BinaryAST выносит фазу синтаксического разбора на сторону сервера и поставляет уже сформированное абстрактное синтаксическое дерево (AST). При получении BinaryAST браузер сразу может перейти на стадию компиляции, минуя парсинг исходного кода JavaScript.

Для тестирования подготовлена эталонная реализация, поставляемая под лицензий MIT. Для парсинга используются компоненты Node.js, а код для оптимизации и формирования AST написан на языке Rust. На стороне браузера поддержка BinaryAST уже доступна в ночных сборках Firefox. Кодировщик в BinaryAST может применяться как на уровне инструментария конечного сайта, так и для упаковки скриптов внешних сайтов на стороне прокси или сети доставки контента. В настоящее время уже начался процесс стандартизации BinaryAST рабочей группой ECMA TC39, после завершения которого формат сможет сосуществовать с существующими методами сжатия отдаваемого контента, такими как gzip и brotli.

Значительное время при обработке JavaScript занимает фаза загрузки и синтаксического разбора кода. С учётом того, что объём загружаемого JavaScript на многих популярных сайтах приближается к 10 Мб (например для LinkedIn — 7.2 Мб, Facebook — 7.1 Мб), первичная обработка JavaScript вносит существенную задержку. Стадия парсинга на стороне браузера также замедляется из-за невозможности полноценного построения AST на лету по мере загрузки кода (браузеру приходится ожидать завершения загрузки блоков, например конца функций, для получения недостающей для разбора текущих элементов информации).

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

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

BinaryAST позволяет вписаться в текущую модель разработки и доставки кода без создания нового формата байткода и без изменения языка JavaScript. Размер данных в формате BinaryAST сопоставим со сжатым минифицированным JavaScript-кодом, а скорость обработки за счёт исключения фазы парсинга исходных текстов заметно увеличивается. Также формат BinaryAST позволяет выполнять компиляцию в байткод по мере загрузки, не ожидая завершения получения всех данных. Более того, парсинг на стороне сервера позволяет исключить из отдаваемого представления BinaryAST неиспользуемые функции и лишний код, на который при парсинге на стороне браузера тратится время, как на разбор, так и на передачу лишнего трафика.

Особенностью BinaryAST также является возможность восстановления читаемого JavaScript — не один в один совпадающего с исходным вариантом, но семантически эквивалентного и включающего те же имена переменных и функций (BinaryAST сохраняет имена, но не сохраняет информацию о позициях в коде, форматировании и комментариях). Обратной стороной медали является появление новых векторов для атак, но по мнению разработчиков они значительно меньше и более контролируемы, чем при применении альтернатив, таких как распространение байткода.

Тесты кода facebook.com показали, что на разбор JavaScript тратится 10-15% ресурсов CPU и на парсинг уходит больше времени, чем на генерацию байткода и начальное формирование кода для JIT. В движке SpiderMonkey время полного построения AST занимает 500-800 мс и применение BinaryAST позволило сократить этот показатель на 70-90%. В целом, для большинства web-феймвроков при применении BinaryAST время парсинга JavaScript сокращается на 3-10% в режиме без оптимизации и на 90-97% при включении режима игнорирования неиспользуемых функций. При выполнении тестового JavaScript-набора, размером 1.2 Мб, применение BinaryAST позволило ускорить время начала запуска с 338 до 314 мс на настольной системе (Intel i7) и с 2019 до 1455 мс на мобильном устройстве (HTC One M8).

Источник: [ссылка]

Microsoft открыл код библиотеки векторного поиска, используемой в Bing

Компания Microsoft опубликовала исходные тексты библиотеки машинного обучения SPTAG (Space Partition Tree And Graph) с реализацией алгоритма приблизительного поиска ближайшего соседа. Библиотека разработана в исследовательском подразделении Microsoft Research и центре разработки поисковых технологий (Microsoft Search Technology Center). На практике SPTAG применяется в поисковой системе Bing для определения наиболее релевантных результатов с учётом контекста и задания поисковых запросов на естественном языке. Код написан на языке С++ и распространяется под лицензией MIT. Поддерживается сборка для Linux и Windows. Имеется обвязка для языка Python.

Ключевое отличие векторного поиска от поиска по ключевым словам заключается в том, что векторы учитывают смысл и сходство данных, а не только символьные совпадения. Векторы формируются на основе модели машинного обучения, которая учитывает также сопутствующую статистику, уточняющую связи и позволяющую более точно оценить суть запроса (например, учитываются связь запроса с последующими переходами в поисковой выдаче). Несмотря на то, что идеи применения векторных хранилищ в поисковых системах витают уже достаточно давно, на практике их внедрению мешает большая ресурсоёмкость операций с векторами и ограничения в масштабируемости.

Совмещение методов глубинного машинного обучения с алгоритмами приблизительного поиска ближайшего соседа позволило довести производительность и масштабируемость векторных систем до уровня, приемлемого для крупных поисковых систем. Например, в Bing для векторного индекса размером более 150 миллиардов векторов время выборки наиболее релевантных результатов укладывается в 8 мс.

В состав библиотеки включены средства для построения индекса и организации поиска векторов, а также набор инструментов для сопровождения распределённой системы online-поиска, охватывающей очень большие коллекции векторов. Предлагаются следующие модули: index builder для индексации, searcher для поиска с использованием индекса, распределённого в кластере из нескольких узлов, сервер для запуска обработчиков на узлах, Aggregator для объединения нескольких серверов в одно целое и клиент для отправки запросов. Поддерживается включение новых векторов в индекс и удаление векторов на лету.

Библиотека подразумевает, что обрабатываемые и представленные в коллекции данные оформлены в виде связанных векторов, которые можно сравнивать на основе евклидовых (L2) или косинусных расстояний. При поисковом запросе возвращаются векторы, расстояние между которыми и исходным вектором минимально. В SPTAG предоставляется два метода организации векторного пространства: SPTAG-KDT (K-мерное дерево (kd-tree) и граф относительных окрестностей) и SPTAG-BKT (дерево k-средних (k-means tree и граф относительных окрестностей). Первый метод требует меньше ресурсов при работе с индексом, а второй демонстрирует более высокую точность результатов поиска при очень больших коллекциях векторов.

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

Источник: [ссылка]

Intel опубликовал редакцию дистрибутива Clear Linux для разработчиков приложений

Компания Intel сообщила о расширении области применения дистрибутива Clear Linux, ранее позиционируемого как специализированное решение для контейнерной изоляции. Новая редакция Clear Linux Developer Edition позволяет использовать дистрибутив на системах разработчиков в качестве пользовательского окружения. По умолчанию предлагается рабочий стол GNOME, но опционально доступны KDE Plasma, Xfce, LXQt, Awesome и i3.

Дистрибутив Clear Linux обеспечивает строгую изоляцию приложений при помощи контейнеров, разделённых с использованием полноценной виртуализации. Базовая часть дистрибутива содержит только минимальный набор инструментов для запуска контейнеров и обновляется атомарно. Все приложения оформлены в виде пакетов Flatpak или наборов (Bundle), запускаемых в отдельных контейнерах.

Редакция для разработчиков кроме подготовки наборов с графическими и пользовательскими приложениями примечательно расширением поддержки оборудования, интеграцией отладочной системы на базе FUSE, добавлением нового инсталлятора и введением в строй каталога приложений, в котором предложены наборы для развёртывания окружений для разработки с использованием различных языков и технологий.

Предоставляется отдельный базовый набор c-basic, включающий сборочные инструментарии на базе свежих версий LLVM и GCC с оптимизациями для чипов Intel (специфичные для контейнерных инфраструктур компоненты выделены в набор containers-basic). Также добавлены преднастроенные наборы для развётывания систем машинного обучения (Deep Learning Reference Stack на базе Intel DL Boost с оптимизациями для Intel Xeon Scalable) и анализа больших объёмов данных (Data Analytics Reference Stack на базе Apache Hadoop и Apache Spark).

Особенности Clear Linux:

  • Бинарная модель поставки дистрибутива. Обновление системы могут производится в двух режимах: наложение исправлений на работающую систему и полное обновление системы через установку нового образа в отдельный снапшот Btrfs и замену активного снапшота на новый;
  • Агрегирование пакетов в наборы (bundle), образующие готовую функциональность, независимо от того, сколько программных компонентов их образуют. Bundle и образ системного окружения формируются на основе репозитория RPM-пакетов, но поставляются без разделения на пакеты. Внутри контейнеров выполняется специально оптимизированная копия Clear Linux, содержащая необходимые для запуска целевого приложения наборы (bundle);
  • Эффективная система установки обновлений, встроенная в базовую часть дистрибутива и обеспечивающая ускоренную доставку обновлений с исправлением критических проблем и уязвимостей. Обновление в Clear Linux включает только непосредственно изменившиеся данные, поэтому типовые исправления уязвимостей и ошибок занимают всего несколько килобайт и устанавливаются почти мгновенно;
  • Единая система версионирования — версия дистрибутива представляет состояние и версии всех входящих в него компонентов, что удобно для создания воспроизводимых конфигураций и отслеживания изменений компонентов дистрибутива на файловом уровне. Изменение/обновлений любой части системы всегда приводит к изменению общей версии всего дистрибутива (если в обычных дистрибутивах лишь увеличивается номер версии определённого пакета, то в Clear Linux увеличивается версия самого дистрибутива);
  • Stateless-подход к определению конфигурации, подразумевающий, что различные классы настроек разделены (настройки OS, пользователя и системы хранятся раздельно), система не сохраняет своё состояние (stateless) и после установки не содержит каких-либо настроек в директории /etc, а генерирует настройки на лету на основе указанных при запуске шаблонов. Для сброса системных настроек в значения по умолчанию можно просто удалить /etc и /var;
  • Использование полноценной виртуализации (KVM) для запуска контейнеров, что позволяет обеспечить высокий уровня безопасности. Время запуска контейнеров незначительно отстаёт от традиционных систем контейнерной изоляции (namespaces, cgroups) и приемлемо для запуска контейнеров приложений по требованию (время запуска виртуального окружения составляет около 200мс, а дополнительное потребление памяти 18-20 Мб на контейнер). Для уменьшения потребления памяти применяется механизм DAX (прямой доступ к ФС в обход страничного кэша без применения уровня блочных устройств), а для дедупликации одинаковых областей памяти применяется технология KSM (Kernel Shared Memory), что позволяет организовать совместное использование ресурсов хост-системы и подключить к разным гостевым системам общий шаблон системного окружения.
  • Источник: [ссылка]

В Firefox будут убраны настройки для отключения многопроцессного режима

Разработчики Mozilla объявили об удалении из кодовой базы Firefox доступных пользователю настроек для отключения многопроцессного режима работы (e10s). В качестве причины прекращения поддержки возврата в однопроцессный режим отмечается его низкая безопасность и потенциальные проблемы со стабильностью из-за отсутствия полного охвата при тестировании. Однопроцессный режим отмечен как непригодный для повседневного использования.

Начиная c Firefox 68 из about:config будут удалены настройки «browser.tabs.remote.force-enable» и «browser.tabs.remote.force-disable», управляющие включением e10s. Кроме того, установка значения «false» в опции «browser.tabs.remote.autostart» не будет автоматически приводить к отключению многопроцессного режима на настольных версиях Firefox, в официальных сборках и при запуске без включения режима выполнения автоматизированных тестов.

В сборках для мобильных устройств, при проведении тестов (при активной переменной окружения MOZ_DISABLE_NONLOCAL_CONNECTIONS или опции «—disable-e10s») и в неофициальных сборках (без MOZ_OFFICIAL) опция «browser.tabs.remote.autostart» по-прежнему сможет применяться для отключения e10s. Для разработчиков также добавлен обходной путь для отключения e10s, реализуемый через установку переменной окружения «MOZ_FORCE_DISABLE_E10S» перед запуском браузера.

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

Дополнительно можно отметить публикацию плана прекращения поддержки TLS 1.0 и 1.1 в Firеfox. В марте 2020 года возможность установки защищённого соединения с использованием TLS 1.0 и 1.1 будет удалена и попытка открытия сайтов не поддерживающих TLS 1.2 или TLS 1.3 будет приводить к выводу ошибки. В ночных сборках поддержка устаревших версий TLS будет отключена в октябре 2019 года.

Прекращение поддержки скоординировано с разработчиками других браузеров и возможность использования TLS 1.0 и 1.1 в это же время будет прекращена в Safari, Firefox, Edge и Chrome. Администраторам сайтов рекомендуется обеспечить поддержку как минимум версии TLS 1.2, а желательно TLS 1.3. В основном сайты уже перешли на TLS 1.2, например, из миллиона проверенных хостов лишь 8000 не поддерживают TLS 1.2.

Источник: [ссылка]

Intel развивает открытую прошивку ModernFW и гипервизор на языке Rust

Компания Intel представила на проходящей в эти дни конференции OSTS (Open Source Technology Summit) несколько новых экспериментальных открытых проектов. В рамках инициативы ModernFW ведётся работа по созданию масштабируемой и безопасной замены прошивок UEFI и BIOS. Проект находится на начальной стадии развития, но на данном этапе разработки в предложенном прототипе уже имеется достаточно возможностей для организации загрузки ядра операционной системы. Проект базируется на наработках TianoCore (открытая реализация UEFI) и возвращает изменения в upstream.

ModernFW нацелен на предоставление минималистичных прошивок, пригодных для использования на вертикально интегрируемых платформах, таких как серверы для облачных систем. На подобных системах нет необходимости в поддержании в прошивке кода для обеспечения обратной совместимости и компонентов для универсального применения, свойственных традиционным прошивкам UEFI. Избавление от лишнего кода снижает число возможных векторов для атак и ошибок, что положительно сказывается на безопасности и эффективности. В том числе ведётся работа по выносу из прошивки поддержки устаревших типов устройств и функциональности, которая может выполняться в контексте операционной системы.

Оставлены только необходимые драйверы устройств и предоставлена минимальная поддержка эмулируемых и виртуальных устройств. По возможности, задачи, которые могут выполняться на уровне ОС, переносятся на уровнень операционной системы. Часть кода совместно используется в прошивке и ядре ОС. Предоставляется модульная и настраиваемая конфигурация. Поддержка архитектур пока ограничена системами x86-64, а из загружаемых ОС пока поддерживается только Linux (при необходимости может быть реализована поддержка и других ОС).

Одновременно компания Intel представила проект Cloud Hypervisor, в рамках которого предпринята попытка создания гипервизора на основе компонентов совместного проекта Rust-VMM, в котором кроме Intel также участвуют компании Alibaba, Amazon, Google и Red Hat. Rust-VMM написан на языке Rust и позволяет создавать специфичные для определённых задач гипервизоры. Cloud Hypervisor является одним из таких гипервизоров, который предоставляет высокоуровневый монитор виртуальных машин (VMM), работающий поверх KVM и оптимизированный для решения задач, свойственных для облачных систем. В контексте интересов Intel основной задачей Cloud Hypervisor является запуск современных дистрибутивов Linux с использованием паравиртуализированных устройств на базе virtio.

Поддержка эмуляции сведена к минимуму (ставка делается на паравиртуализацию). В настоящее время поддерживаются только системы x86_64, но в планах имеется и поддержка AArch64. Для избавления от лишнего кода и упрощения настройка CPU, памяти, PCI и NVDIMM производится на этапе сборки. Предусмотрена возможность миграции виртуальных машин между серверами. Из ключевых задач упоминается: высокая отзывчивость, низкое потребление памяти, высокая производительность и сокращение возможных векторов для атак.

Источник: [ссылка]

Представлен новый класс уязвимостей в процессорах Intel

Компания Intel опубликовала сведения о новом классе уязвимостей в своих процессорах — MDS (Microarchitectural Data Sampling). Как и прошлые атаки класса Spectre новые проблемы могут привести к утечке закрытых данных операционной системы, виртуальных машин и чужих процессов. Утверждается, что проблемы сперва были выявлены сотрудниками и партнёрами Intel в ходе внутреннего аудита, поле чего информацию об аналогичных проблемах в Intel передали независимые исследователи. Процессоры AMD и ARM проблеме не подвержены.

На основе выявленных проблем исследователями из Грацского технического университета (Австрия) разработано несколько практических атак по сторонним каналам:

  • ZombieLoad (PDF) — позволяет извлечь конфиденциальную информацию из других процессов, операционной системы, виртуальных машин и защищённых анклавов (TEE, Trusted Execution Environment). Например, продемонстрирована возможность определения истории открытия страниц в Tor browser, запущенном в другой виртуальной машине, а также определение используемых в приложениях ключей доступа и паролей;
  • RIDL (PDF) — позволяет организовать утечку информации между различными изолированными областями в процессорах Intel, такими как буферы заполнения, буферы хранения и порты загрузки. Примеры проведения атаки показаны для организации утечек из других процессов, операционной системы, виртуальных машин и защищённых анклавов. Например, показано как узнать содержимое хэша пароля root из /etc/shadow при периодических попытках аутентификации (атака заняла 24 часа);

    Кроме того показан пример проведения атаки с использованием JavaScript и WebAssembly при открытии вредоносной страницы в движке SpiderMonkey (в современных полноценных браузерах подобная атака маловероятна из-за ограничения точности таймера и мер для защиты от Spectre);

  • Fallout (PDF) — даёт возможность читать данные, недавно записанные операционной системой и определять раскладку памяти ОС для упрощения проведения других атак;
  • Store-To-Leak Forwarding — эксплуатирует оптимизации CPU по работке с буфером хранения и может применяться для обхода механизма рандомизации адресного пространства ядра (KASLR), для мониторинга состояния операционной системы или для организации утечек в комбинации с гаджетами на базе методов Spectre.

Выявленные уязвимости:

  • CVE-2018-12126 — MSBDS (Microarchitectural Store Buffer Data Sampling), восстановление содержимого буферов хранения. Используется в атаке Fallout. Степень опасности определена в 6.5 баллов (CVSS);
  • CVE-2018-12127 — MLPDS (Microarchitectural Load Port Data Sampling), восстановление содержимого портов загрузки. Используется в атаке RIDL. CVSS 6.5;
  • CVE-2018-12130 — MFBDS (Microarchitectural Fill Buffer Data Sampling), восстановление содержимого буферов заполнения. Используется в атаках ZombieLoad и RIDL. CVSS 6.5;
  • CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), восстановление содержимого некэшируемой памяти. Используется в атаке RIDL. CVSS 3.8.

Суть выявленных проблем в возможности применения методов анализа по сторонним каналам к данным в микроархитектурных структурах, к которым приложения напрямую не имеют доступа. Речь ведётся о таких низкоуровневых структурах, как буферы заполнения (Line Fill Buffer), буферы хранения (Store Buffer) и порты загрузки (Load Port), которые являются более мелкими составными блоками, чем кэш первого уровня (L1D), кэш загрузки данных (RDCL) или L1TF (L1 Terminal Fault), и соответственно включают меньше информации и обновляются более интенсивно.

Атаки по сторонним каналам на микроархитектурные структуры существенно сложнее в проведении по сравнению с методами восстановления содержимого кэша и требуют отслеживания и анализа значительных объёмов данных для определения их связи с определёнными адресами в памяти (по сути, атакующий не может целенаправленно перехватить определённые данные, а может длительное время накапливать утечки и применять статистические методы для реконструкции определённых видов данных). Кроме того, атака затрагивает только данные на том же физическом ядре CPU, что и код атакующего.

Предложенные методы определения содержимого микроархитектурных структур основываются на том, что данные структуры используются при спекулятивной обработке исключений (fault) или операций load и store. При спекулятивном выполнении содержимое внутренних структур перенаправляется для обработки в регистры или кэш. Спекулятивные операции не завершаются и результат отбрасывается, но перенаправленное содержимое можно определить при помощи методов анализа кэша по сторонним каналам.

Порты загрузки используются процессором для получения данных из памяти или подсистемы ввода/вывода и предоставления полученной информации в регистры CPU. Из-за особенности реализации данные от старых операций загрузки остаются в портах до их перезаписи новыми данными, что позволяет косвенно определить состояние данных в порте загрузки при помощи манипуляций с исключениями (fault) и инструкциями SSE/AVX/AVX-512, загружающими более 64 бит данных. В подобных условиях операции загрузки спекулятивно засвечивают устаревшие значения данных из внутренних структур в зависимые операции. Похожим образом организуется утечка через буфер хранения, применяемый для ускорения записи в кэш CPU и включающий в себя таблицу адресов, значений и флагов, а также через буфер заполнения, который содержит данные, пока отсутствующие в кэше L1 (cache-miss), на время их загрузки из кэшей других уровней.

Проблема затрагивает модели процессоров Intel, выпускаемые с 2011 года (начиная с 6 поколения). При этом аппаратно уязвимости блокируются начиная с некоторых моделей 8 и 9 поколений Intel Core и 2 поколения Intel Xeon Scalable (проверить можно через бит ARCH_CAP_MDS_NO в IA32_ARCH_CAPABILITIES MSR) . Уязвимости также уже устранены на уровне прошивок, микрокода и операционных систем. По оценке Intel потеря производительности после активации исправления для большинства пользователей не превышает 3%. При отключении технологии Hyper-Threading снижение производительности может доходить до 9% в тесте SPECint_rate_base, до 11% при активных целочисленных вычислениях и до 19% при выполнении серверных Java-приложений (при включенном HT снижение производительности почти отсутствует). Исправления практически не влияют на производительность операций, связанных с вводом/выводом.

В ядре Linux защита от MDS добавлена в сегодняшних обновлениях 5.1.2, 5.0.16, 4.19.43, 4.14.119 и 4.9.176. Метод защиты строится на очистке содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе, для чего используется инструкция VERW. Для работы зашиты требуется наличие поддержки режима MD_CLEAR, реализованного в свежем обновлении микрокода. Для полной защиты также рекомендуется отключить Hyper Threading. Для проверки подверженности системе уязвимости в ядро Linux добавлен обработчик «/sys/devices/system/cpu/vulnerabilities/mds». Для управления включением различных режимов блокирования уязвимости в ядро добавлен параметр «mds=», который может принимать значения «full», «full,nosmt» (отключение Hyper-Threads), «vmwerv» и «off».

Обновления пакетов уже выпущены для RHEL и Ubuntu, но пока остаются недоступны для Debian, Fedora и SUSE. Исправление для блокирования утечек данных из виртуальных машин также сформировано для гипервизора Xen. Для защиты систем виртуализации, выполняющих вызов команды L1D_FLUSH перед передачей управления другой виртуальной машине, и для защиты анклавов Intel SGX достаточно обновления микрокода.

Источник: [ссылка]

Критическая уязвимость в приложении WhatsApp, пригодная для внедрения вредоносного ПО

Раскрыты сведения о критической уязвимости (CVE-2019-3568) в мобильном приложении WhatsApp, позволяющей добиться выполнения своего кода через отправку специально оформленного голосового вызова. Для успешной атаки ответ на вредоносный вызов не требуется, достаточно поступления звонка. При этом часто подобный вызов не оседает в журнале звонков и атака может остаться незамеченной пользователем.

Уязвимость не связана с протоколом Signal, а вызвана переполнением буфера в специфичном для WhatsApp VoIP-стеке. Проблему можно эксплуатировать через отправку на устройство жертвы специально оформленной серии пакетов SRTCP (Secure Real-time Transport Protocol). Уязвимость проявляется в WhatsApp для Android (исправлено в 2.19.134), WhatsApp Business для Android (исправлено в 2.19.44), WhatsApp для iOS (2.19.51), WhatsApp Business для iOS (2.19.51), WhatsApp для Windows Phone (2.18.348) и WhatsApp для Tizen (2.18.15).

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

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

После выявления первых следов компрометации устройств в пятницу инженеры Facebook выпустили обновление с исправлением клиентского ПО и обходным путём обеспечили блокировку лазейки на уровне серверной инфраструктуры. Пока не ясно как много устройств было атаковано с использованием уязвимости. Сообщается лишь о не завершившейся успехом попытке компрометации в воскресенье смартфона одного из правозащитников при помощи метода, напоминающего технологию NSO Group, а также о попытке атаки на смартфон сотрудника правозащитной организации Amnesty International.

Проблема без лишней огласки была выявлена израильской компанией NSO Group (или у хакерских групп был выкуплен готовый эксплоит), которая смогла использовать уязвимость для организации установки на смартфоны шпионского ПО для обеспечения слежки правоохранительными органами. Компания NSO заявила, что очень тщательно проверяет клиентов (сотрудничает только с правоохранительными органами и спецслужбами) и расследует все жалобы на злоупотребления. В том числе сейчас инициировано разбирательство, связанное с зафиксированными атаками на WhatsApp-приложения правозащитников.

NSO отвергает причастность к конкретным атакам и заявляет лишь о разработке технологий для спецслужб, но пострадавший правозащитник намерен в суде доказать, что компания разделяет ответственность c клиентами, злоупотребляющими предоставленным им ПО, и продавала свои продукты службам, известным своими нарушениями прав человека.

Компания Facebook инициировала расследование о возможной компрометации устройств и на прошлой неделе в частном порядке поделилась первыми результатами с Министерством юстиции США, а также уведомила о проблеме некоторые правозащитные организации для координации информирования общества (в мире насчитывается около 1.5 млрд установок WhatsApp).

Источник: [ссылка]