The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

·21.05.2024 Проект Bend развивает высокоуровневый язык для параллельных вычислений на GPU (83 +8)
  Опубликованы первые выпуски проекта Bend, развивающего высокоуровневый язык программирования для параллельных вычислений, который позиционируется как альтернатива низкоуровневыми языкам, таким как CUDA и Metal, обладающая выразительным синтаксисом и возможностями для повышения удобства разработки, свойственными таким языкам, как Python и Haskell. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Из возможностей языка Bend отмечается быстрое распределение объектов, возможность использования функций высшего порядка, замыканий, продолжений, неограниченной рекурсии, сопоставления с образцом, рекурсивных сопоставлений (fold) и циклов (bend), целочисленных, строковых и списочных типов. Поддерживается два варианта синтаксиса - в стиле Python и в стиле Haskell. В программах не требуется указание управляющих распаралелливанием аннотаций, явного создания потоков и выставления блокировок. Распараллеливание производится автоматически, например, при вычислении выражения "((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.

Программы на языке Bend могут выполняться на оборудовании, обеспечивающем массовый пареллелизм, например, на GPU, демонстрируя практически линейный рост производительности в зависимости от числа вычислительных ядер. Код на языке Bend компилируется в низкоуровневое промежуточное представление HVM2 (Higher-order Virtual Machine 2), которое затем компилируется в представление на C и CUDA. В настоящее время проектом поддерживается только выполнение на GPU NVIDIA.

Что касается производительности, то тестовое приложение с реализацией битонной сортировки, при выполнении в одном потоке CPU Apple M3 Max было выполнено за 12.15 сек., при задействовании 16 потоков - за 0.96 сек., а при привлечении GPU NVIDIA RTX 4090 с 16k потоками - за 0.21 сек.


   def sort(d, s, tree):
     switch d:
       case 0:
         return tree
       case _:
         (x,y) = tree
         lft   = sort(d-1, 0, x)
         rgt   = sort(d-1, 1, y)
         return rots(d, s, lft, rgt)

   def rots(d, s, tree):
     switch d:
       case 0:
         return tree
       case _:
         (x,y) = tree
         return down(d, s, warp(d-1, s, x, y))
   ...

  1. OpenNews: Представлен Rust GPU, инструментарий для разработки шейдеров на языке Rust
  2. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
  3. OpenNews: Apple опубликовал Pkl, язык программирования для определения конфигурации
  4. OpenNews: Первый тестовый выпуск языка программирования Hare
  5. OpenNews: Выпуск языка программирования Mojo 24.3
Обсуждение (83 +8) | Тип: К сведению |
·20.05.2024 Изучение влияния на производительность 5000 дополнений к Chrome (45 +29)
  Сервис мониторинга производительности web-сайтов DebugBear опубликовал результаты анализа влияния браузерных дополнений на производительность и комфорт работы пользователей. В ходе исследования протестировано 5000 наиболее популярных дополнений к Chrome. При тестировании оценивалась нагрузка на CPU, объём загружаемых данных, скорость загрузки страниц, задержки при взаимодействии пользователя с web-страницами и расходование дискового пространства.

Некоторые выводы:

  • Использование дополнений с блокировщиками рекламы, как правило, снижает нагрузку на CPU, уменьшает объём загружаемых данных и уменьшает потребление памяти. Например, дополнение uBlock Origin, насчитывающее 37 млн пользователей, снижает нагрузку на CPU с 57 до 4 сек. процессорного времени при просмотре протестированных страниц на одном из новостных сайтов с обилием рекламы. При этом снижение нагрузки на CPU при использовании наиболее популярных блокировщиков AdBlock (66 млн пользователей) и AdBlock Plus (45 млн пользователей) оказалось минимальным и не превысило 15%.

  • При оценке экономии трафика при включении блокировщиков, наилучшие показатели продемонстрировал uBlock Origin, который позволил снизить размер загружаемых данных на протестированных сайтах в среднем с 41 до 3 МБ. Дополнение ScriptSafe оказалось в рейтинге выше, но подобное достигнуто за счёт полного отключения JavaScript.

  • При тестировании влияния дополнений на потребление памяти наилучшие результаты оказались у дополнения DuckDuckGo Privacy Essentials. При использовании AdBlock Plus расход памяти увеличился.

  • Из 336 дополнений, имеющих более 1 млн пользователей, 11 приводили к увеличению нагрузки при обработке каждой страницы более чем на 0.5 сек. времени CPU. Худшие показатели отмечены у дополнения Monica, имеющего 2 млн. установок, - при его использовании на обработку каждой страницы тратилось дополнительные 1.3 сек. Дополнение Read&Write, имеющее 17 млн установок, отнимало 0.8 секунд процессорного времени.

  • Повтор теста на сайте Ikea позволил выявить замедляющие работу дополнения, решающие специфичные для интернет-магазинов задачи. Например, дополнение Honey, имеющее 20 млн пользователей, создавало задержку в 1.5 сек. процессорного времени.

  • При расширении теста до 5000 самых популярных дополнений худшие показатели (2.3 сек. времени CPU) оказались у дополнения MaxAI, насчитывающего 800 тысяч пользователей.

  • При тестировании 5000 дополнений на сайте Ikea худшие (почти 5 сек. времени CPU) показатели оказались у дополнения "superagent - Automatic cookie consent".

  • 86% из протестированных дополнений создавали минимальную (менее 50 мс) нагрузку на CPU, 5.2% дополнений создавали нагрузку от 50 до 100 мс процессорного времени, 4.4% - от 100 до 250 мс, 2.4% - от 250 до 500 мс, 1.7% - более 500 мс.

  • Тестирование замедления загрузки страниц (метрика FCP, First Contentful Paint) показало, что нет прямой корреляции между большой нагрузкой на CPU и задержками при загрузке страниц. Например, потребляющие много процессорного времени дополнения Coupert Coupon Finder и Merlin AI не замедляли загрузку страниц. Из наиболее сильно замедляющих загрузку страниц дополнений отмечены Monica AI, Klarna и Avast Safeprice, которые запускают обработчики при начале загрузки, а не после её завершения. Замедление также возникало при использовании дополнений, предлагающих доступ через VPN.

    Выборка из дополнений, имеющих более миллиона пользователей:

    Выборка из 5000 самых популярных дополнений:

  • Тестирование задержек при работе со страницами (метрика INP, Interaction to Next Paint). Среди дополнений, имеющих более миллиона пользователей, выделился Avira Password Manager, который вносил задержку в 160 мс при каждом щелчке мышью (задержка проявляется только первые 5 секунд, пока не завершилась инициализация). Использование дополнений Microsoft Editor extension и Superb Copy вносило задержки на уровне 10 мс.

  • Тестирование потребления дискового пространства. Из 5000 протестированных дополнений, 27 приводили к расходованию более 100 МБ места на диске. Лидером стало дополнение Meme Soundboard, которое требовало 600 МБ из-за сохранения 723 MP3-файлов. 87% дополнений занимают менее 10 МБ, 11.2% - более 10 МБ и 2.2% - более 50 МБ.

  • 1.7% дополнений блокируют кэширование переходов между страницами (back/forward cache). Среди подобных дополнений: LastPass Password Manager, Avast Online Security, Avira Browser Safety, Norton Password Manager, Snap&Read и Microsoft Editor.
  • Упреждающую загрузку и отрисовку (pre-loading и pre-rendering) блокируют 8 дополнений (0.2%), среди которых uBlock Origin, Windscribe и Privacy Badger.

  1. OpenNews: Анализ влияния на производительность дополнений к Chrome
  2. OpenNews: Оценка влияния на производительность популярных дополнений к Chrome
  3. OpenNews: 111 Chrome-дополнений, загруженных 32 млн раз, уличены в загрузке конфиденциальных данных
  4. OpenNews: Mozilla, Google, Apple и Microsoft объединили усилия в стандартизации платформы для браузерных дополнений
  5. OpenNews: Оценка производительности браузерных дополнений для блокировки рекламы
Обсуждение (45 +29) | Тип: Обобщение |
·19.05.2024 Выпуск web-браузера Chrome 125 (54 +5)
  Компания Google опубликовала релиз web-браузера Chrome 125. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 126 запланирован на 11 июня.

Основные изменения в Chrome 125:

  • Компания Google отложила ожидавшееся в конце года прекращение поддержки сторонних Cookie, выставляемых при обращении к сайтам, отличным от домена текущей страницы (подобные Cookie применяются для отслеживания перемещений пользователя между сайтами в коде рекламных сетей, виджетов социальных сетей и систем web-аналитики). В новой версии для определения сайтов, осуществляющих использование сторонних Cookie, в адресную строку добавлен индикатор с изображением глаза, который при блокировке сторонних Cookie перечёркивается. Так как продолжается тестирование отключения сторонних Cookie на 1% пользователей и имеется возможности ручного отключения через настройку "chrome://flags/#test-third-party-cookie-phaseout", в контекстном меню предоставлена возможность временного возвращения поддержки сторонних Cookie для избранных сайтов. Отмена блокировки действует 90 дней после включения.
  • При включении расширенной защиты браузера (Safe Browsing > Enhanced protection) реализовано автоматическое глубокое сканирование загружаемых файлов, выполняемое через загрузку информации на серверы Google (раньше перед отправкой выводился запрос для подтверждения внешней проверки, а сейчас проверка будет выполняться автоматически).
  • Сборки для платформы Windows теперь предоставляются и для архитектуры ARM64.
  • Добавлен новый механизм для обновления компонентов, требующих загрузки большого объёма данных. Речь про обновление моделей для недавно добавленных возможностей, использующих машинное обучение - режима умной группировки вкладок, генератора тем оформления и интерактивного помощника.
  • Добавлено два новых типа потенциально проблемных дополнений, для которых пользователю будут выводиться предупреждения с рекомендацией подумать о целесообразности их дальнейшего использования: дополнения, установленные не из каталога Chrome Web Store, и дополнения, использующие обманные тактики для навязывания установки ненужного ПО.
  • Поведение при отмене события "mousemove" приведено к соответствию с другими браузерами - отмена события больше не блокирует операции выделения текста и drag&drop (для блокировки выделения и drag&drop следует отменять события selectstart и dragstart).
  • Добавлен набор CSS-свойств для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning), без использования JavaScript, например, для прикрепления к элементам всплывающих окон (popover), появляющихся по аналогии со всплывающими подсказками. Для настройки привязки элемента к другому элементу и определения области вывода предложены свойства anchor-name, position-anchor и inset-area, для получения сведения о месте привязки добавлена функция anchor().
  • В CSS добавлены математические функции round(), mod() и rem().
  • Добавлен новый синтаксис для отражения состояния собственных HTML-элементов (custom element) в CSS, позволяющий использовать псевдо-класс ":state()".

  • Добавлен API Compute Pressure, позволяющий получить высокоуровневую информацию о текущем состоянии аппаратного обеспечения, например, в общих чертах можно получить сведения о создаваемой нагрузке на CPU (указываются уровни: минимальная нагрузка с включением энергосбережения; допустимая нагрузка, позволяющая без проблем запускать дополнительные задания; высокая нагрузка, но в предельно допустимых значениях и не мешающая работе системы; критическая нагрузка, близкая к исчерпанию ресурсов).
  • API Storage Access, применяемый для запроса у пользователя полномочий на получение доступа к хранилищу Cookie, если сторонние Cookie блокируются, расширен возможностью запроса доступа из сторонних обработчиков (например, из контента внутри <iframe>) к хранилищам, не связанным с Cookie, таким как indexedDB.
  • Добавлена экспериментальная (origin trial) поддержка API Viewport Segments Enumeration, предназначенного для организации вывода на устройства со складными экранами.
  • Предоставлена возможность использования схем URL HTTP и HTTPS в конструкторе WebSocket вместо схем "ws:" и "wss:".
  • В JavaScript разрешено использовать модификаторы "?i", "?-i", "?m", "?-m", "?s", "?-s" внутри регулярных выражений для управления выставлением или отключением флагов "i", "s" и "m". Например, "?-i" в "re1 = /^[a-z](?-i:[a-z])$/i;" отключит применение "/i" (игнорирование регистра) для второго символа (re1.test("aB") вернёт false).
  • Внесены улучшения в инструменты для web-разработчиков. В web-консоль добавлена кнопка для показа пояснения о сути ошибки или предупреждения, сформированного через обращение к AI-чатботу Gemini. В панели CSS добавлена поддержка правил "@position-try". В панели для редактирования и просмотра исходного текста страницы добавлены настройки для приведения в читаемый вид упакованных страниц и автоматического закрытия скобок при редактировании. В панели отслеживания сетевой активности добавлена поддержка HTTP-заголовков, используемых в ответах с кодом 103 "Early Hints". В панели для анализа производительности добавлена статистика по селекторам CSS.

Кроме нововведений и исправления ошибок в новой версии устранено 9 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Уязвимость CVE-2024-4947, вызванная неправильной обработкой типов (Type Confusion) в движке V8 и отнесённая к категории опасных, до исправления применялась злоумышленниками для совершения атак (0-day). Компания Google пока не раскрывает детали по данной уязвимости, но независимые исследователи провели анализ и опубликовали технические детали, а также прототип эксплоита.

Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 4 премии на сумму 8 тысяч долларов США (по одной премии в $7000, $1000). Размер двух вознаграждений пока не определён.

  1. OpenNews: Выпуск web-браузера Chrome 124
  2. OpenNews: Google отложил прекращение поддержки сторонних Cookie в Chrome
  3. OpenNews: В Chromium экспериментируют с автоматическими микроплатежами для монетизации сайтов
  4. OpenNews: Оценка эффективности применения MiraclePtr для предотвращения уязвимостей в Chrome
  5. OpenNews: В Chrome планируют реализовать режим скрытия IP-адреса пользователя
Обсуждение (54 +5) | Тип: Программы |
·18.05.2024 Проект openSUSE опубликовал инсталлятор Agama 8, избавленный от привязки к Cockpit (79 +3)
  Разработчики проекта openSUSE опубликовали выпуск инсталлятора Agama 8 (бывший D-Installer), разрабатываемого для замены классического интерфейса установки SUSE и openSUSE, и примечательного отделением пользовательского интерфейса от внутренних компонентов YaST. Agama предоставляет возможность использования различных фронтэндов, например, фронтэнда для управления установкой через web-интерфейс. Для тестирования нового инсталлятора сформированы live-сборки для архитектур x86_64, ppc64le, s390x и ARM64, поддерживающие установку openSUSE Leap, непрерывно обновляемой сборки openSUSE Tumbleweed, а также нескольких редакций SUSE ALP на базе изолированных контейнеров.

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

Для установки пакетов, проверки оборудования, разбивки дисков и прочих необходимых при инсталляции функций в Agama продолжают использоваться библиотеки YaST, поверх которых реализованы сервисы-прослойки, абстрагирующие доступ к библиотекам через унифицированный коммуникационный протокол на базе HTTP. В инсталляторе используется многопроцессная архитектура, благодаря которой интерфейс взаимодействия с пользователем не блокируется во время выполнения других работ. Базовый интерфейс для управления установкой построен с использованием web-технологий. Web-интерфейс написан на JavaScript с использованием фреймворка React и компонентов PatternFly. Сервис для обмена сообщениями, а также встроенный http-сервер, написаны на языке Ruby.

В новой версии предложена новая архитектура, ознаменовавшая переход от использования готовых модулей, развиваемых проектом Cockpit, в пользу независимого фреймворка и модернизированного интерфейса пользователя. Вместо D-Bus в качестве основного коммуникационного протокола для взаимодействия между компонентами Agama задействован HTTP. Замена D-Bus на HTTP расширила возможности проекта по интеграции с более крупными системами и упростила организацию установки в автоматизированном режиме.

Уход от привязки к Cockpit позволил исключить дополнительные внешние зависимости, например, Cockpit содержит в зависимостях компоненты на языках Python и Си, в то время как в Agama применяются языки Ruby и Rust. Прекращение использования Cockpit также избавило разработчиков от ограничений, с которыми они столкнулись при попытках реализовать автоматический режим установки и переработать интерфейс настройки хранилищ для достижения оптимального баланса простоты для начинающих и функциональности для опытных пользователей.

Кроме того, задействование новой архитектуры значительно сократило время запуска инсталлятора и повысило его производительность, сохранив при этом возможность использования уже проверенных низкоуровневых компонентов. Из возможностей, который пока не перенесены в новую реализацию упоминаются встроенный эмулятор терминала и инструменты для управления устройствами DASD (Direct Access Storage Device) и zFCP (SCSI-over-Fibre Channel).

Кроме новой архитектуры в Agama 8 предложен полностью переработанный и более функциональный интерфейс для настройки хранилища и разбивки дисковых разделов, в котором сохранены все базовые возможности классической системы настройки хранилищ YaST и оставлены средства для расширенной кастомизации, но при этом выполнена адаптация для упрощения восприятия новичками. Например, новый интерфейс позволяет выбрать место размещения каждого раздела или логического тома LVM, примонтировать или переформатировать ранее доступные файловые системы, настроить шифрование и параметры загрузки, изменить размер разделов.

Среди изменений также отмечается новый интерфейс для выбора наборов приложений, улучшение настройки полнодискового шифрования на базе TPM, полностью переписанный сетевой стек, модернизация некоторых виджетов, улучшение интерфейсов для редактирования параметров ФС и создания пользователей, более наглядная визуализация возникающих при установке проблем, перевод на 10 языков.

Через месяц ожидается выпуск Agama 9, в котором планируется провести значительную реорганизацию web-интерфейса, реализовать пропущенные при переходе на новую архитектуру возможности, а также расширить средства для установки в автоматическом режиме, проводимой без участия человека. Целью разработки является обеспечение совместимость с AutoYaST и предоставление возможности возможности использования Agama в качестве альтернативы AutoYaST.

  1. OpenNews: Проект openSUSE раскрыл планы по развитию нового инсталлятора Agama
  2. OpenNews: Проект openSUSE опубликовал альтернативный инсталлятор Agama 5
  3. OpenNews: Третий прототип платформы ALP, идущей на смену SUSE Linux Enterprise
  4. OpenNews: Дистрибутив openSUSE предложил протестировать новый инсталлятор
  5. OpenNews: В Fedora Workstation 39 планируют задействовать новый инсталлятор на основе web-интерфейса
Обсуждение (79 +3) | Тип: Программы |
·18.05.2024 Порт Arch Linux для архитектуры RISC-V (78 +29)
  Опубликован порт дистрибутива Arch Linux для систем на базе архитектуры RISC-V. Порт пока не является официальным, но его создатель, Феликс Ян (Felix Yan), входит в число основных разработчиков и мэйнтейнеров Arch Linux. Краткосрочной целью проекта называется подготовка патчей к пакетам с исходными текстами, решающих проблемы с их сборкой и работой на системах RISC-V. В перспективе планируется перенос подготовленных патчей в основной состав репозиториев Arch Linux и добавление riscv64 (riscv64gc) в число поддерживаемый в Arch Linux альтернативных архитектур.

Порт развивается для систем, основанных на ядре RV64GC и поддерживающих ABI lp64d, таких как платы HiFive Unmatched, HiFive Unleashed, StarFive VisionFive v1/v2 и PolarFire SoC Icicle Kit. Отдельно поставляется экспериментальный пакет linux-sophgo, позволяющий использовать Arch Linux на плате Milk-V Pioneer (SG2042). Для экспериментов можно использовать порт в эмуляторе RISC-V на базе QEMU.

RISC-V предоставляет открытую и гибкую систему машинных инструкций, позволяющую создавать микропроцессоры для произвольных областей применения, не требуя при этом отчислений и не налагая условий на использование. RISC-V позволяет создавать полностью открытые SoC и процессоры. В настоящее время на базе спецификации RISC-V разными компаниями и сообществами под различными свободными лицензиями (BSD, MIT, Apache 2.0) развивается несколько десятков вариантов ядер микропроцессоров, более сотни SoC и уже производимых чипов. Поддержка RISC-V присутствует начиная с выпусков Glibc 2.27, binutils 2.30, gcc 7 и ядра Linux 4.15.

  1. OpenNews: В Debian реализована официальная поддержка архитектуры RISC-V
  2. OpenNews: Инициатива по улучшению поддержки архитектуры RISC-V в открытом ПО
  3. OpenNews: Google намерен включить RISC-V в число первичных архитектур для Android
  4. OpenNews: В Arch Linux обновлён пакетный менеджер Pacman 6.1 и инсталлятор Archinstall 2.7.2
  5. OpenNews: В Arch Linux улучшили совместимость c Windows-играми, запускаемыми в Wine и Steam
Обсуждение (78 +29) | Тип: К сведению |
·18.05.2024 Выпуск мобильной платформы /e/OS 2.0, развиваемой создателем Mandrake Linux (11 +24)
  Доступен выпуск мобильной платформы /e/OS 2.0, нацеленной на сохранение конфиденциальности пользовательских данных. Платформа основана Гаэлем Дювалем (Gaël Duval), создателем дистрибутива Mandrake Linux. Проект предоставляет прошивки для многих популярных моделей смартфонов, а также под брендами Murena One, Murena 2, Murena Fairphone 4/5, Murena Teracube 2e и Murena Pixel 5 предлагает редакции смартфонов OnePlus, Fairphone, Teracube и Pixel с предустановленной прошивкой /e/OS. Платформой поддерживается 250 смартфонов.

Прошивка /e/OS развивается как ответвление от платформы Android (используются наработки LineageOS), избавленное от привязки к сервисам и инфраструктуре Google, что позволяет с одной стороны сохранить совместимость с Android-приложениями и упростить поддержку оборудования, а с другой стороны блокировать передачу телеметрии на серверы Google и обеспечить высокий уровень конфиденциальности. Блокируется и неявная отправка информации, например, обращение к серверам Google при проверке доступности сети, резолвинге DNS и определении точного времени.

Для взаимодействия с сервисами Google предустановлен пакет microG, который позволяет обойтись без установки проприетарных компонентов и предлагает вместо сервисов Google независимые аналоги. Например, для определения местоположения по Wi-Fi и базовым станциям (без GPS) задействована прослойка UnifiedNlp, способная работать через OpenWlanMap, Mozilla Location Service, openBmap, OpenCellID, lacells.db и другие альтернативные сервисы. Вместо поисковой системы Google предлагается собственный метапоисковый сервис на основе форка движка Searx, обеспечивающий анонимность отправляемых запросов.

Для синхронизации точного времени вместо Google NTP используется NTP Pool Project, а вместо DNS-серверов Google (8.8.8.8) - DNS-серверы текущего провайдера. В web-браузере по умолчанию включён блокировщик рекламы и скриптов для отслеживания перемещений. Для синхронизации файлов и данных приложений разработан собственный сервис, который может работать c инфраструктурой на базе NextCloud. Серверные компоненты основаны на открытом ПО и доступны для установки на подконтрольных пользователю системах.

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

Проектом также развивается собственный менеджер аутентификации, позволяющий использовать для всех сервисов единую учётную запись (user@murena.io), регистрируемую в процессе первой установки. Учётную запись можно использовать для получения доступа к своему окружению через Web или на других устройствах. В облаке Murena Cloud бесплатно предоставляется 1ГБ для хранения своих данных, синхронизации приложений и резервных копий.

По умолчанию в состав входят такие приложения, как почтовый клиент (K9-mail), web-браузер (Bromite, ответвление от Chromium), программа для работы с камерой (OpenCamera), программа для отправки мгновенных сообщений (qksms), система для ведения заметок (nextcloud-notes), PDF-просмотрщик (MJ PDF), планировщик (opentasks), программа для работы с картами (Magic Earth), галерея фотографий (gallery3d), файловый менеджер (DocumentsUI).

Основные изменения в /e/OS 2.0:

  • Обновлён интерфейс запуска программ (Launcher), обеспечен показ числа непрочитанных уведомлений и добавлена возможность установки динамических (live) обоев. В состав включены новые наборы пиктограмм приложений и фоновых изображений.
  • Добавлена поддержка приложения Android Auto для подключения смартфона к информационно-развлекательным системам автомобилей.
  • Переделано уведомление с информацией о лицензиях устанавливаемых приложений.
  • В интерфейс для работы с камерой интегрирована функция для сканирования QR-кодов.
  • Обновлён интерфейс пакета Advanced Privacy, передающего приложениям фиктивные данные о местоположении и IP-адресе, а также блокирующего встроенные в приложения системы отслеживания активности пользователя. На заглавную страницу добавлена секция "Стена позора" (Wall of Shame), в которой отмечены приложения, приводящие к утечкам информации и осуществляющие отслеживание.
  • В приложении для ведения заметок (Notes) реализована работа без привязки к учётной записи.
  • В менеджер приложений App Lounge добавлена поддержка фильтрации приложений по наличию трекеров, доступности исходного кода или использованию режиме PWA (Progressive Web Apps). Предоставлена возможность игнорирования обновлённых сессионных сообщений.
  • До версии 1.5 обновлён пакет для синхронизации файлов eDrive.
  • Браузер обновлён до движка Chromium 123.0.6312.122.
  • В календаре-планировщике горизонт показа прошлых событий расширен с 3 месяцев до года.
  • Из строки состояния интерфейса для совершения звонков удалена пиктограмма VoLTE, вводящая некоторых пользователей в заблуждение.
  • Для PDF-просмотрщика добавлена собственная адаптивная пиктограмма.
  • Активирована по умолчанию возможность включения фонарика через длительное нажатие на кнопку включения питания.
  • Добавлены дополнительные настройки громкости, показываемые при воспроизведении музыки через Bluetooth.
  • В прошивке для Fairphone 5 реализован упрощённый интерфейс для выбора типа приоритетной сети.
  • Перенесены исправления из ветки LineageOS 20, основанной на Android 13. Пакет microG с компонентами для замены сервисов Google обновлён до версии 0.3.1.240913.

  1. OpenNews: Доступны открытая мобильная платформа /e/OS 1.0 и смартфон Murena One на её основе
  2. OpenNews: Первый бета-выпуск мобильной платформы /e/, развиваемой создателем Mandrake Linux
  3. OpenNews: Выпуск мобильной платформы Android 14
  4. OpenNews: Опубликована мобильная платформа LineageOS 21 на основе Android 14
  5. OpenNews: Доступна мобильная платформа KDE Plasma Mobile 6
Обсуждение (11 +24) | Тип: Программы |
·17.05.2024 Вторая бета-версия Android 15 (71 +14)
  Компания Google опубликовала вторую бета-версию открытой мобильной платформы Android 15. Релиз Android 15 ожидается в третьем квартале 2024 года. Для оценки новых возможностей платформы предложена программа предварительного тестирования. Сборки прошивки подготовлены для устройств Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8 Pro, Pixel Fold и Pixel Tablet, а также для некоторых смартфонов и планшетов от компаний Honor, iQOO, Lenovo, Nothing, OnePlus, OPPO, Realme, Sharp, Tecno, vivo и Xiaomi.

Изменения в Android 15 Beta 2 по сравнению со первой бета-версией:

  • Расширены возможности для одновременной работы с несколькими приложениями на устройствах с большими экранами. Реализована поддержка добавления на экран панели задач для быстрого переключения между приложениями и закрепления ярлыков наиболее часто используемых программ.
  • Добавлена возможность определения отдельной приватной секции с приложениями, появляющейся только после дополнительной аутентификации пользователя. Фактически приложения в данной секции хранятся в отдельном профиле, приостанавливаемом, когда доступ к приложениям не разблокирован (т.е. приложения из данного профиля активны только при разблокировке профиля). При просмотре списка приложений, содержимое приватной секции показывается в отдельном блоке. Связанные с приватными приложениями уведомления и настройки при блокировке скрываются, а созданные и загруженные с использованием данных приложений файлы отделены от файлов основного профиля (доступ к приватному контенту из приложений в основном профиле осуществляется через интерфейсы обмена файлами и доступа к изображениям).
  • Предоставлена поддержка отображения персонализированных миниатюр. Приложения могут предоставлять виджетам релевантные для пользователя представления миниатюр, вместо выставленных по умолчанию заглушек.
  • По умолчанию на уровне системы задействована визуализация при навигации при помощи экранных жестов, при помощи анимации предупреждающая пользователя о предстоящем действии, например, при сдвиге влево показывающая, что приложение будет свёрнуто и показан домашний экран.
  • На базе прослойки ANGLE подготовлена реализация OpenGL ES, работающая поверх графического API Vulkan, который отмечен как приоритетный программный интерфейс для взаимодействия с GPU. Задействование прослойки ANGLE для OpenGL-приложений позволяет улучшить совместимость , а в некоторых ситуациях и повысить производительность. Для включения ANGLE в секцию настроек "Developer options/Experimental" добавлена опция "Enable ANGLE". В 2025 году реализацию OpenGL ES на базе ANGLE планируют активировать по умолчанию, а в 2026 году сделать единственно поддерживаемой.
  • Обеспечено использование библиотеки dav1d для программного декодирования видео в формате AV1 на устройствах без поддержки аппаратного ускорения. Библиотека развивается участниками проектов VideoLAN и FFmpeg, и нацелена на достижение максимально возможной производительности декодирования и обеспечение качественной работы в многопоточном режиме. В проведённых тестах dav1d в три раза обгоняет по производительности ранее используемый программный декодировщик. Библиотека пока доступна в виде опции, но в одном из следующих обновлений будет предложена по умолчанию.
  • В графическую подсистему добавлена поддержка класса Matrix44 для преобразования координат с использованием матрицы 4x4 при манипуляции 2D-поверхностями в 3D-пространстве. Также добавлена функция clipShader для наложения клипа с указанным шейдером.
  • Проведена оптимизация работы механизма фоновых сервисов, позволяющего приложениям находиться в активном состоянии, когда с ними не взаимодействует пользователь. Фоновые сервисы, выполняющие синхронизацию данных (dataSync) или обработку мультимедийного контента (mediaProcessing), теперь принудительно останавливаются после работы в течение 6 часов.
  • Добавлена поддержка устройств, на которых используются страницы памяти размером 16 КБ. Для задействования 16-килобайтных страниц достаточно просто пересобрать приложения, напрямую или косвенно использующие библиотеки NDK (Native Development Kit). Задействование страниц размером 16 КБ вместо 4 КБ позволяет повысить производительность программ, интенсивно работающих с памятью. Например, при использовании 16-килобайтных страниц время запуска подобных программ в среднем снизилось на 3.16% (для некоторых на 30%), а энегропотребление снизилось на 4.56%. Повторный запуск программы для работы с камерой ускорился на 4.48%, а общее время загрузки системы сократилось на 0.8 сек. (1.5%).
  • При предоставлении частичного доступа к контенту в интерфейсе выбора фотографий реализована возможность пометки только фото и видео, которые уже выбирали в недавнем прошлом, что позволяет упростить работу с часто запрашиваемыми фото и видео.
  • В конфигураторе (Settings → System → Languages & Input → System languages → Choose how you’re addressed) предоставлена возможность выставления предпочитаемого обращения к пользователю (мужчина, женщина, нейтральное обращение), используемая для адаптации грамматики в выдаваемых системой обращениях. Настройка пока доступна только для французского языка.
  • Добавлены дополнительные элементы API для обеспечения плавного перехода в режим "картинка в картинке" программ с элементами интерфейса, отображаемыми поверх основного интерфейса пользователя.
  • Предоставлена возможность выбора виброэффекта для предупреждения о поступлении нового уведомления.
  • В хранилище Health Connect добавлена поддержка новых типов данных, применяемых при занятиях спортом и контроле за питанием. Например, добавлено поле для контроля за температурой кожи и реализована структура для определения плана тренировок.
  • Обеспечена корректная обрезка текста, написанного с использованием шрифтов, воспроизводящих рукописный текст.

  1. OpenNews: Первая бета-версия Android 15
  2. OpenNews: Google экспериментирует с запуском Chromium OS в Android
  3. OpenNews: Второй предварительный выпуск Android 15
  4. OpenNews: Предварительный выпуск Android 15
  5. OpenNews: Выпуск мобильной платформы Android 14
Обсуждение (71 +14) | Тип: Программы |
·17.05.2024 Выпуск текстового редактора Neovim 0.10 (154 +28)
  Опубликован релиз Neovim 0.10, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. Проект уже более 10 лет занимается переработкой кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять, не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Оригинальные наработки проекта распространяются под лицензией Apache 2.0, а базовая часть под лицензией Vim. Готовые сборки подготовлены для Linux (appimage), Windows и macOS.

Из проблем Vim, побудивших к созданию Neovim, отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89). Во всех нюансах кодовой базы Vim разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер, что затрудняет сопровождение и работу над усовершенствованием редактора. Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.

Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack. Взаимодействие с плагинами производится в асинхронном режиме, без блокирования базовых компонентов редактора. Для обращения к плагину может использоваться TCP-сокет, т.е. плагин может запускаться на внешней системе. При этом Neovim остаётся обратно совместимым с Vim, продолжает поддерживать Vimscript (в качестве альтернативы предлагается Lua) и поддерживает подключения большинства штатных плагинов Vim. Расширенные возможности Neovim могут быть использованы в плагинах, построенных с использованием API, специфичного для Neovim.

За время существования проекта подготовлено более тысячи специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) и фреймворков (Qt, ncurses, Node.js, Electron, GTK). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но, в отличие от плагинов, они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.

Среди изменений в новой версии:

  • По умолчанию предложена новая цветовая схема, в которой уменьшена яркость, задействованы более сбалансированные сочетания цветов и решены проблемы, возникающие у людей с отклонениями цветовосприятия.
  • Изменены привязки клавиш: "K" - при включении LSP-клиента показывает информацию о функции и переменной, на которые указывает курсор, "[d" и "]d" - перемещение по диагностическим сообщениям, <C-W>d - вывод дополнительной информации о диагностическом сообщении.
  • Встроена функциональность плагина vim-commentary для быстрого обрамления символами комментария строк и блоков с кодом, учитывая контекст (например, для содержимого тега <script> будут использоваться символы "//", а для HTML - "<!--" "-->"
  • Добавлена опция 'termsync', включающая режим синхронизированного вывода, при котором для устранения мерцания и разрывов на экране осуществляется накопление обновлений интерфейса и их отображение в терминале одной порцией.
  • Для записи в системный буфер обмена задействована escape-последовательность "OSC 52", если работа осуществляется в сеансе SSH, не включена настройка 'clipboard' и имеется эмулятор терминала, поддерживающий "OSC 52".
  • Добавлена экспериментальная поддержка оформления гиперссылок при помощи escape-последовательности OSC 8. По умолчанию данная возможность применяется для выделения ссылок в документах Markdown, оформленных в виде "[example](https://example.com)".
  • Обеспечено автоматическое определение поддержки терминалом 24-разрядного представления цветов ("truecolor").
  • При использовании LSP (Language Server Protocol) обеспечен вывод подсказок по месту, в виде виртуального текста, показываемого другим цветом прямо в коде, но без фактического добавления в исходные тексты (на скриншоте подсказки отображаются тёмно серым цветом).
  • Расширены возможности для инспектирования синтаксического дерева исходного кода. Добавлен интерактивный режим написания запросов к синтаксическому дереву, на лету применяемых к текущему коду.
  • Добавлена возможность указания модификаторов в команде ":terminal", например, ":botright terminal" для открытия нового окна терминала в нижней правой части экрана.

  1. OpenNews: Релиз текстового редактора Vim 9.1
  2. OpenNews: Умер автор и ключевой разработчик Vim
  3. OpenNews: Выпуск консольной среды разработки LazyVim 5
  4. OpenNews: Доступен Vieb 9.4, web-браузер в стиле редактора Vim
  5. OpenNews: Выпуск Neovim 0.7.0, модернизированного варианта редактора Vim
Обсуждение (154 +28) | Тип: Программы |
·16.05.2024 Атака SSID Confusion, позволяющая подменить сеть Wi-Fi (73 +16)
  Группа исследователей из Лёвенского католического университета (Бельгия), выявила архитектурную уязвимость (CVE-2023-52424) в стандарте Wi-Fi IEEE 802.11, позволяющую организовать подключение к менее защищённой беспроводной сети, вместо заслуживающей доверия сети, к которой намеревался подключиться пользователь, после чего можно организовать перехват и манипуляции трафиком. Проблема проявляется в беспроводных стеках любых операционных систем и затрагивает методы аутентификации WPA3, WEP, EAP, AMPE и FILS.

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

Для успешного совершения атаки требуется, чтобы пользователь инициировал подключение к определённой беспроводной сети, а поблизости была другая беспроводная сеть с теми же параметрами подключения, что и в первой сети. Подобное практикуется, например, когда для диапазонов 2.4GHz и 5GHz создаются разные сети, одна из которых слабо защищена и уязвима для типовых атак по перехвату трафика, таких как KRACK или Frag. Проблемная конфигурация также применяется в некоторых университетских сетях, поддерживающих сервис Eduroam. Атакующий должен находиться в зоне досягаемости сигнала для того, чтобы вклиниться между пользователем и целевой сетью (MitM). Для проведения атаки злоумышленнику не требуется знать учётные данные жертвы.

Атака сводится к созданию атакующим точки доступа (WrongAP на диаграмме), обеспечивающей на другом канале трансляцию обращений к менее защищенной подставной сети (WrongNet), к которой должен подключиться клиент вместо желаемой сети (TrustedNet). Точка доступа может быть создана на обычном ноутбуке и применяется для организации многоканальной MitM-атаки на жертву (MC MitM). Атака осуществляется в три этапа:

  1. Определение сети (Network Discovery). MitM-система перехватывает пакеты, отправляемые в эфир жертвой и заслуживающей доверия точкой доступа (TrustedNet), заменяя в них SSID - в пакетах от точки доступа SSID заменяется на идентификатор менее защищённой сети, а в ответах жертвы на реальный, чтобы симулировать взаимодействие клиента и заслуживающей доверия точки доступа. В итоге устройство жертвы получает ответы и считает, что искомая сеть находится поблизости, несмотря на то, что эти ответы транслируются точкой доступа атакующего.
  2. Захват аутентификации (Authentication hijacking). Атакующий симулирует успешную аутентификацию и вынуждает клиента подключиться к менее защищенной сети, вместо заслуживающей доверия. Как и на прошлой стадии атакующий перехватывает кадры, отправляемые при аутентификации клиентом, заменяет в них SSID и переотправляет точке доступа.
  3. MitM. После согласования канала связи атакующий подменяет SSID c WrongNet на TrustedNet, создавая впечатление, что пользователь работает через заслуживающую доверия сеть, а не через менее защищенную сеть.

Воспользовавшись уязвимостью атакующий может вынудить клиента подключиться к менее защищённой сети, и при этом в интерфейсе будет отображаться SSID сети, к которой изначально намеревался подключиться пользователь, а не той, к которой он подключён фактически. Добившись подключения пользователя через не защищённую сеть атакующий может анализировать и вклиниваться в незашифрованные потоки трафика. При этом при использовании некоторых VPN, таких как WARP, hide.me и Windscribe, VPN не будет задействован при подключении к сетям, помеченным в настройках как заслуживающие доверия.

Атака применима к протоколам беспроводной аутентификации, использующим EAP (Extensible Authentication Protocol), SAE (Simultaneous Authentication of Equals) и 802.1X, а также в опциональном режиме работы протокола WPA3, в которых SSID не используется при формировании ключа PMK (Pairwise Master Key), что делается для исключения изначально известных данных при формировании ключа с целью защиты от различных криптоатак. Протокол FILS (Fast Initial Link Setup) уязвим при использовании PMK, созданного при согласовании соединения на базе EAP. Протоколы WPA1, WPA2 и FT (Fast BSS Transition) не подвержены проблеме, так как требуют корректного SSID при согласовании соединения.

Для защиты от атаки SSID Confusion на стороне точки доступа упоминается включение в стандарт 802.11 требования аутентификации SSID при подключении, что может быть реализовано через добавление SSID в функцию формирования ключа или включение SSID в число дополнительных данных, проверяемых во время согласования соединения. На стороне клиента защита может быть организована через обеспечение защиты beacon-кадров (будет применяться в WiFi 7). Создатели сетей могут предотвратить совершение атаки, отказавшись от использования общих учётных данных в сетях с разными SSID. Пользователи могут защитить себя, используя надёжные VPN при подключении через любые беспроводные сети.

  1. OpenNews: Атака TunnelVision, позволяющая перенаправить VPN-трафик через манипуляции с DHCP
  2. OpenNews: Новые уязвимости в технологии защиты беспроводных сетей WPA3 и в EAP-pwd
  3. OpenNews: FragAttacks - серия уязвимостей в стандартах и реализациях Wi-Fi
  4. OpenNews: Атака против WPA2, позволяющая перехватить трафик в WiFi-сети
  5. OpenNews: Атака MacStealer, позволяющая перехватывать трафик в Wi-Fi
Обсуждение (73 +16) | Тип: Проблемы безопасности |
·16.05.2024 SSH-бэкдор, установленный при взломе kernel.org, два года оставался незамеченным (202 +39)
  Исследователи из компании ESET опубликовали 43-страничный отчёт с анализом руткита Ebury и связанной с ним активности. Утверждается, что Ebury применяется с 2009 года и с тех пор был установлен на более чем 400 тысяч серверов под управлением Linux и несколько сотен систем на базе FreeBSD, OpenBSD и Solaris. Около 110 тысяч серверов оставались поражены Ebury по состоянию на конец 2023 года. Исследование представляет отдельный интерес с учётом того, что Ebury был задействован при атаке на kernel.org, что открывает некоторые новые подробности компрометации инфраструктуры разработки ядра Linux, выявленной в 2011 году. Ebury также был выявлен на серверах регистратора доменов, криптобиржах, выходных узлах Tor и у нескольких хостинг-провайдеров, имена которых не называются.

Изначально предполагалось, что атаковавшие серверы kernel.org злоумышленники оставались незамеченными 17 дней, но по данным ESET это время рассчитано с момента подстановки руткита Phalanx, а бэкдор Ebury находился на серверах с 2009 года и около двух лет мог использоваться для получения root-доступа к серверам. Вредоносное ПО Ebury и Phalanx установлено в рамках разных атак, не пересекающихся друг с другом и проводимых разными группами злоумышленников. Внедрение бэкдора Ebury затронуло как минимум 4 сервера в инфраструктуре kernel.org, два из которых были поражены приблизительно в течение двух лет, а остальные два - в течение 6 месяцев.

Атакующие получили доступ к хранящимся в /etc/shadow хэшам паролей 551 пользователя, среди которых были все мэйнтейнеры ядра (аккаунты использовались для доступа в Git; после инцидента пароли были заменены, а модель доступа была пересмотрена и переведена на использование цифровых подписей). Для 257 пользователей атакующим удалось определить пароли в открытом виде, предположительно путём подбора паролей по хэшам и через перехват вредоносным компонентом Ebury паролей, используемых в SSH.

Вредоносный компонент Ebury распространялся в виде разделяемой библиотеки, которая после установки перехватывала функции, используемые в OpenSSH, для организации удалённого подключения к системе c правами root. Атака была не целевой и, как и другие поражённые тысячи хостов, серверы kernel.org использовались как часть ботнета для рассылки спама, кражи учётных данных для распространения на других системах, перенаправления web-трафика и совершения другой вредоносной деятельности.

Для проникновения на серверы использовались неисправленные уязвимости в серверном ПО, например, уязвимости в хостинг-панелях, или перехваченные пароли (предполагается, что серверы kernel.org были взломаны в результате компрометации пароля одного из пользователей, имевшего shell-доступ). Для повышения привилегий использовались уязвимости, такие как Dirty COW.

Применяемые в последние годы новые версии Ebury кроме бэкдора включали в себя такие возможности, как модули к Apache httpd для проксирования трафика, перенаправления пользователей и перехвата конфиденциальной информации, модуль ядра для внесения изменений в транзитный HTTP-трафик, инструменты для скрытия собственного трафика от межсетевых экранов, скрипты для проведения AitM-атак (Adversary-in-the-Middle, двунаправленный MiTM) для перехвата учётных данных SSH в сетях хостинг-провайдеров.

  1. OpenNews: Арестован подозреваемый во взломе kernel.org
  2. OpenNews: Статус возрождения kernel.org: доступ к Git будет организован без shell доступа
  3. OpenNews: Kernel.org подвергся взлому
  4. OpenNews: Из-за недоступности kernel.org в ядре linux-next не хватает 89 веток
  5. OpenNews: Оценка причин и последствий взлома kernel.org
Обсуждение (202 +39) | Тип: Проблемы безопасности | Интересно
·15.05.2024 Пять уязвимостей в Git, среди которых одна критическая и две опасные (77 +23 )
  Опубликованы корректирующие выпуски распределённой системы управления исходными текстами Git 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 и 2.39.4, в которых устранены пять уязвимостей. Наиболее серьёзная уязвимость (CVE-2024-32002), которой присвоен критический уровень опасности, позволяет добиться выполнения кода злоумышленника при выполнении клонирования командой "git clone" репозитория, подконтрольного атакующему.

Уязвимость проявляется только в файловых системах, не различающих регистр символов и поддерживающих символические ссылки, например, используемых по умолчанию в Windows и macOS. Эксплуатация осуществляется через создание в субмодуле каталога и символической ссылки, отличающихся только регистром символов, что позволяет добиться записи файлов в каталог .git/, вместо рабочего каталога субмодуля. Получив возможность записи в .git/ атакующий может переопределить hook-вызовы через .git/hooks и добиться выполнения произвольного кода во время выполнения операции "git clone".

Другие уязвимости:

  • CVE-2024-32004 - атакующий в многопользовательской системе может подготовить специально оформленный локальный репозиторий и добиться выполнения кода при его клонировании. В частности, атакующий может создать локальный репозиторий, выглядящий как частичный клон, в котором отсутствует определённый объект. Клонирование этого репозитория приведёт к выполнению кода с правами пользователя, выполняющего операцию клонирования.
  • CVE-2024-32465 - клонирование из zip-архивов, содержащих полный git-репозиторий, включающий hook-и в каталоге .git/, приведёт к выполнению этих hook-ов.
  • CVE-2024-32020 - создание локальных клонов репозитория на том же диске в многопользовательской системе позволяет другим пользователям изменить файлы, для которых задействованы жёсткие ссылки.
  • CVE-2024-32021 - клонирование локального репозитория с символическими ссылками может использоваться для создания жёстких ссылок на произвольные файлы в каталоге objects/.

Помимо устранения уязвимостей в новых версиях также предложено несколько изменений, нацеленных на повышение защиты от уязвимостей, приводящих к удалённому выполнению кода и манипулирующих символическими ссылками при выполнения клонирования. Например, git теперь выдаёт предупреждение при наличии символических ссылок в каталоге .git/. Пути к субмодулям отныне могут содержать только реальные каталоги. При пересечении символических ссылок и каталогов, обрабатываются каталоги. При выполнении "git clone" добавлена защита от выполнения hook-ов во время клонирования и усилены проверки параметра core.hooksPath.

Дополнение: Опубликован подробный разбор техники эксплуатации уязвимости CVE-2024-32002 и пример эксплоита для создания репозиториев, при клонировании которых командой "git clone --recursive " выполняется заданный атакующим код.


   ...
   cat > y/hooks/post-checkout <EOF
   #!/bin/bash
   calc.exe
   open -a Calculator.app
   EOF

   chmod +x y/hooks/post-checkout
   git add y/hooks/post-checkout
   git commit -m "post-checkout"

   cd ..
   hook_repo_path="$(pwd)/hook"

   git init captain
   cd captain
   git submodule add --name x/y "$hook_repo_path" A/modules/x
   git commit -m "add-submodule"

   printf ".git" > dotgit.txt
   git hash-object -w --stdin < dotgit.txt > dot-git.hash
   printf "120000 %s 0\ta\n" "$(cat dot-git.hash)" > index.info
   git update-index --index-info < index.info
   git commit -m "add-symlink"

  1. OpenNews: Уязвимости в Git, позволяющие перезаписать файлы или выполнить свой код
  2. OpenNews: Уязвимости в Git, приводящие к утечке и перезаписи данных
  3. OpenNews: Две уязвимости в Git, способные привести к удалённому выполнению кода
  4. OpenNews: Уязвимости в Git, проявляющиеся при клонировании субмодулей и использовании git shell
  5. OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
Обсуждение (77 +23 ) | Тип: Проблемы безопасности |
·15.05.2024 В NetBSD введён запрет на использование кода, сгенерированного AI-системами (99 +30)
  Организация NetBSD Foundation представила обновлённые правила внесения изменений в дерево исходных текстов проекта. В новых правилах появился пункт, запрещающий включение в состав NetBSD кода, сгенерированного с использованием AI-инструментов на базе больших языковых моделей, таких как ChatGPT, GitHub Copilot и Code Llama, без предварительного письменного утверждения командой Core Team. В качестве причины упомянуты неопределённость в области авторских прав и несоответствия политике лицензирования NetBSD.

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

При обучении модели на коде с лицензией, требующей извещения об авторстве, в генерируемом AI-инструментами коде данное требование формально не выполняется, что может рассматриваться как нарушение большинства открытых лицензий, таких как GPL, MIT и Apache. Также могут возникнуть проблемы с лицензионной совместимостью при вставке в проекты под пермиссивными лицензиями, такими как BSD, кода, сгенерированного с использованием моделей, обученных на коде с копилефт-лицензиями.

  1. OpenNews: Проект Gentoo запретил принятие изменений, подготовленных при помощи AI-инструментов
  2. OpenNews: GitHub ввёл в строй систему машинного обучения Copilot, генерирующую код
  3. OpenNews: Судебное разбирательство против Microsoft и OpenAI, связанное с генератором кода GitHub Copilot
  4. OpenNews: Исследование влияния AI-ассистентов, подобных GitHub Copilot, на безопасность кода
Обсуждение (99 +30) | Тип: Тема для размышления |
·15.05.2024 GNOME OS переходит на организацию атомарных обновлений при помощи systemd-sysupdate (40)
  Разработчики GNOME OS, экспериментального дистрибутива для разработчиков и тестировщиков GNOME, позволяющего оценить состояние разработки среды рабочего стола, ознакомиться с появляющимися новыми возможностями и протестировать работу своих приложений в находящихся в разработке ветках GNOME, объявили о переходе на использование компонента systemd-sysupdate для организации атомарного обновления системы. Целью изменения является желание адаптировать ночные сборки GNOME OS для проведения ежедневного контроля качества разработки GNOME.

В настоящее время для формирования и обновления начинки корневого раздела GNOME OS задействована система OSTree, при использовании которой системный образ атомарно обновляется из Git-подобного хранилища. Системный раздел монтируется в режиме только для чтения, а обновления доставляются в виде небольших порций, содержащих изменения, относительно прошлого состояния (delta-обновления), что, например, в процессе тестирования GNOME позволяет при необходимости легко откатить систему на одну из предыдущих версий и проверить проявляется ли в ней выявленная ошибка.

Инструментарий systemd-sysupdate поставляется начиная с systemd 251 и предназначен для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов. Systemd-sysupdate позволяет использовать два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами.

Из преимуществ перевода GNOME OS c OSTree на systemd-sysupdate называется возможность задействовать верифицированный процесс загрузки, в котором цепочка доверия распространяется от загрузчика до системных компонентов дистрибутива. Кроме того, использование systemd-sysupdate даст возможность добиться более полной интеграции с systemd и задействовать архитектуру, манипулирующую готовыми системными образами как неделимыми компонентами.

Эксперименты по созданию sysupdate-образов с поддержкой UEFI Secure Boot были проведены ещё осенью прошлого года. По сути сейчас уже доступны два варианта сборок GNOME OS, созданных на базе OSTree и systemd-sysupdate. Остаётся обеспечить интеграцию sysupdate с GNOME и предоставление графического интерфейса для обновления системы.

В настоящее время управление обновлениями на базе sysupdate производится только из командной строки и требует наличия прав root. Для интеграции с GNOME уже разработан сервис D-Bus, которые в сочетании с Polkit, позволяет управлять обновлениями под непривилегированным пользователем. Развиваемый D-Bus-сервис и связанную с ним утилиту updatectl намерены включить в основной состав systemd.

В дальнейшем планируется добавить функциональность управления обновлениями на базе sysupdate в приложение GNOME Software, для которого подготовлен экспериментальный плагин gs-plugin-systemd-sysupdate, реализующий возможность обновления ОС через DBus сервис к sysupdate. Из ещё нерешённых задач отмечается необходимость добавления в systemd-sysupdate поддержки delta-обновлений (в настоящее время образы загружаются только целиком) и создание инструментов для поддержания параллельно нескольких версий операционной системы на базе стабильной и находящейся в разработке веток GNOME.

Дополнение: Началась работа над новым инсталлятором для GNOME OS, которая пока находится на начальном этапе (ещё не создан репозиторий).

  1. OpenNews: Инициатива по созданию сборок GNOME OS для реального оборудования
  2. OpenNews: Цели, мотивы и планы разработки GNOME OS
  3. OpenNews: Обсуждение развития GNOME, как привязанной к Linux системы
  4. OpenNews: Планы по созданию операционной системы GNOME OS
  5. OpenNews: Опубликована среда рабочего стола GNOME 46
Обсуждение (40) | Тип: К сведению |
·15.05.2024 Выпуск атомарно обновляемого дистрибутива Endless OS 6.0 (120 +1)
  Представлен выпуск дистрибутива Endless OS 6.0, нацеленного на создание простой в работе системы, в которой можно быстро подобрать приложения на свой вкус. Приложения распространяются в виде самодостаточных пакетов в формате Flatpak. Размер предлагаемых загрузочных образов составляет от 1.2 до 23 ГБ.

Дистрибутив не использует традиционные пакетные менеджеры, вместо которых предлагается минимальная атомарно обновляемая базовая система, работающая в режиме только для чтения и формируемая при помощи инструментария OSTree (системный образ атомарно обновляется из Git-подобного хранилища). Идентичные с Endless OS идеи пытаются повторить разработчики Fedora в рамках проекта Silverblue по созданию атомарно обновляемого варианта Fedora Workstation, а также создатели Vanilla OS, CarbonOS, tau-OS и Pop!_OS. Инсталлятор и система обновления Endless OS, используются в проекте GNOME OS.

Endless OS относится к числу дистрибутивов, продвигающих инновации среди пользовательских Linux-систем. Рабочее окружение в Endless OS основано на значительно переработанном форке GNOME. При этом разработчики Endless активно участвуют в разработке upstream-проектов и передают им свои наработки. Например, в выпуске GTK+ 3.22 около 9.8% всех изменений было подготовлено разработчиками Endless, а курирующая проект компания Endless Mobile входит в надзорный совет GNOME Foundation, наряду с FSF, Debian, Google, Linux Foundation, Red Hat и SUSE.

Основные изменения в Endless OS 6.0:

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

    Изменения в стилевом оформлении базируются на стандартных технология и также действуют в браузерах (Chrome, Firefox, GNOME Web, Chromium) и большинстве других приложений, загружаемых через App Center.

  • Переработано приложение для создания скриншотов и записи скринкастов. Упрощён процесс выбора области экрана, окна приложения или всего экрана. Выбранные области запоминаются, что избавляет от необходимости повторного выделения при создании последующих снимков. Для создания скриншота можно использовать кнопку PrintScr или отдельную пиктограмму в меню.
  • В базовую поставку включено новое приложение Music для управления музыкальной коллекцией и прослушивании музыки (Rhythmbox заменён на GNOME Music).
  • В состав включено приложение Decibels для воспроизведения отдельных звуковых файлов, которое может применяться, например, для быстрой оценки полученных по почте голосовых сообщений.
  • Обновлён просмотрщик изображений (Eye of GNOME заменён на GNOME Image Viewer), в котором модернизирован интерфейс, проведена оптимизация производительности и добавлена поддержка новых форматов, таких как HEIC/HEIF и WebP. Расширено управления при помоги мультитач жестов, например, при масштабировании щипком на тачпаде или сенсорном экране.
  • Добавлена коллекция приложений, которые могут быть полезны разработчикам игр, например, инструментарий для игрового движка Godot, звуковой редактор Audacity, система 3D-моделирования Blender и руководства к ней, графический редактор GIMP, векторный редактор Inkscape и редактор спрайтов и анимации Pixelorama.
  • Добавлены образовательные приложения и обучающие игры: Aqueducts, Dragon's Apprentice, Fablemaker, Frog Squash, The Passage, Tank Warriors.
  • Изменено поведение при нехватке памяти в системе. Настройки изменены для более активного закрытия приложений на начальном этапе нехватки памяти, чтобы не доводить систему до подвисаний.
  • Осуществлён переход на использование мультимедийного сервера Pipewire 1.0.
  • Системное окружение обновлено до Debian 12.5 (в ветке Endless OS 5 использовался Debian 11). Ядро Linux обновлено до версии 6.5. Компоненты GNOME синхронизированы с версией 43.9.

  1. OpenNews: Выпуск атомарно обновляемого дистрибутива Endless OS 5.1
  2. OpenNews: Выпуск Distrobox 1.7, инструментария для вложенного запуска дистрибутивов
  3. OpenNews: Canonical готовит вариант Ubuntu Desktop, содержащий только пакеты Snap
  4. OpenNews: Выпуск атомарно обновляемого дистрибутива carbonOS 2022.3
  5. OpenNews: Представлено семейство атомарно обновляемых дистрибутивов Fedora Atomic Desktops
Обсуждение (120 +1) | Тип: Программы |
·15.05.2024 Для OpenBSD реализована настройка, включающая режим TCP_NODELAY для всей системы (100 +20)
  Джоб Снейдерс (Job Snijders), маститый разработчик OpenBSD, руководитель одного из комитетов в IETF (Internet Engineering Task Force), автор 11 RFC, связанных с маршрутизацией и RPKI, и создатель IRRd (Internet Routing Registry Daemon), опубликовал набор патчей для OpenBSD, добавляющих новый sysctl-параметр "net.inet.tcp.nodelay" для отключения алгоритма Нейгла на уровне всей системы. Параметр избавляет разработчиков приложений от выставления флага TCP_NODELAY для отдельных сокетов.

Алгоритм Нейгла используется для агрегирования мелких сообщений с целью снижения трафика. Алгоритм приостанавливает отправку новых сегментов TCP до получения подтверждения о приёме ранее отправленных данных или до наступления таймаута. Например, без применения агрегирования при отправке 1 байта, дополнительно отправляется 40 байтов с TCP и IP заголовками пакета, а с применением алгоритма Нейгла - сообщения, отправленные до прихода подтверждения от удалённой стороны, накапливаются и отправляются одним пакетом. Из-за наличия оптимизации "delayed ACK", задерживающей отправку ACK-пакетов, сигнал через пакеты с подтверждением на деле не работает, и отправка накопленных сообщений выполняется при наступлении таймаута.

Снейдерс придерживается мнения, что в современных реалиях алгоритм Нейгла, разработанный во времена, когда несколько пользователей конкурировали за полосу пропускания 1200 бод, устарел, и в высокоскоростных сетях от него больше вреда чем пользы. Недавно подобную позицию также высказал Марк Брукер (Marc Brooker) из компании Amazon Web Services (AWS). С доводами в пользу отключения алгоритма Нейгла по умолчанию можно ознакомиться в опубликованной несколько дней назад заметке.

Для отключения алгоритма Нейгла предусмотрена опция TCP_NODELAY, которая может быть выставлена для отдельных сетевых сокетов. Режим TCP_NODELAY давно выставляется во многих приложениях OpenBSD, среди которых openssh, httpd, iscsid, relayd, bgpd и unwind, и, по мнению Снейдерса, настало время для предоставления возможности его включения для всех TCP-сокетов на уровне всей системы. Снейдерс предлагает обсудить вопрос включения TCP_NODELAY по умолчанию и перевода алгоритма Нейгла в разряд отдельной включаемой опции.

Дополнение: Опубликован патч, добавляющий в ядро Linux sysctl-параметр net.ipv4.tcp_nodelay, при помощи которого можно по умолчанию включить режим TCP_NODELAY для всех сокетов. Работа патча проверена с ядром 5.10.216.

  1. OpenNews: Предложение по включению режима TCP_NODELAY по умолчанию
  2. OpenNews: Разработчики OpenBSD экспериментируют с использованием Wayland
  3. OpenNews: Проект OpenBSD перешёл на использование формата PAX для tar-архивов
  4. OpenNews: Дебаты вокруг TLS 1.3 и совершенной прямой секретности
  5. OpenNews: В состав OpenBSD добавлена собственная реализация rsync
Обсуждение (100 +20) | Тип: Тема для размышления |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру