LINUXTALKS.CO

0
Всего сообщений: 24

Инициатива по сокращению зависимостей у libsystemd

Группа systemd

Среди разработчиков системного менеджера systemd ведётся обсуждение вопроса сокращения зависимостей у библиотеки libsystemd, которая связывается не только с компонентами systemd, но и со многими внешними приложениями. Например, в Fedora более 150 пакетов используют libsystemd в зависимостях. Инициатор обсуждения считает, что подтягивание в libsystemd дополнительных сторонних библиотек, которые не контролируют разработчики systemd, существенно увеличивает поверхность атаки в случае компрометации сторонних библиотек, как это произошло с библиотекой liblzma.

( читать дальше... )

>>> Подробности

 ,

cocucka ()

Инженер из AMD признал, что графический стек Linux нуждается в совершенствовании

Группа Ядро Linux

При обсуждении ошибки, связанной с относительно высоким по сравнению с Windows потреблением электроэнергии на APU AMD с поддержкой аппаратного декодирования видео, инженер из AMD, Алекс Дойкер (Alex Deucher, основной разработчик драйвера amdgpu), признал, что отображение видео в Linux в принципе неэффективно.

При выводе видео в Linux сейчас используется следующая цепочка:

  • Сжатый видеопоток
  • VCN (модуль аппаратного декодирования видео для GPU AMD)
  • Сырые YUV данные
  • Конвертация палитры, масштабирование на модуле GFX (по сути 3D акселератор в GPU, что заставляет его повышать частоты работы ядра и VRAM)
  • RGB данные
  • Вывод на дисплей.

Как должно работать:

  • Сжатый видеопоток
  • VCN
  • Сырые YUV данные
  • Контроллер дисплея, который будет преобразовывать палитру, масштабировать и отображать.

Более эффективно это может быть решено в Wayland композиторах, но пока реализации нет. Данная проблема решена в Microsoft Windows и Google Android, ибо там есть полноценные одиночные композиторы, которые предоставляют соответствующие возможности и API - чего пока нет в Linux, потому что ни X.org, ни Wayland не могут работать с YUV-потоками напрямую.

>>> Подробности

 , , ,

cocucka ()

Изменения в подготовке промежуточных выпусков Red Hat Enterprise Linux

Группа IBM / RedHat

Компания Red Hat объявила о об изменении процесса подготовки промежуточных выпусков дистрибутива Red Hat Enterprise Linux. Начиная с версии RHEL 9.5 пакеты для будущего промежуточного обновления будут выпускаться раньше с использованием непрерывного цикла публикации, без привязки к релизу. Полный релиз будет сопровождаться обновлением документации, установочных носителей и образов виртуальных машин.

Изменится и процесс формирования бета версий дистрибутива, которые раньше выпускались примерно за месяц до очередного промежуточного выпуска. Вместо отдельных бета-выпусков промежуточных обновлений RHEL, начиная в версии 9.5 дистрибутив перейдёт к практике публикации бета-версий пакетов по мере их готовности. С учётом 6-месячного цикла разработки промежуточных выпусков RHEL, первые бета-версии пакетов начнут появляться за 4 месяца до релиза. Дополнительные обновления бета-версий будут публиковаться каждую неделю.

Тестовые версии пакетов как и раньше будут размещаться в отдельных репозиториях rhel-9-for-<arch>-baseos-beta-rpms и rhel-9-for-<arch>-appstream-beta-rpms. Установочные носители для бета-версий публиковаться больше не будут, но пользователь при желании сможет сам сгенерировать установочную сборку или образ для виртуальной машины при помощи инструментария Red Hat Image Builder.

Для значительных веток, таких как RHEL 10 и 11, бета-версии как и раньше будут публиковаться примерно за 6 месяцев до релиза. В прежнем режиме также продолжится разработка CentOS Stream и ветки RHEL 8. Изменения обусловлены тем, что при тестировании значительных версий 6 месяцев достаточно для ознакомления, выявления проблем и информирования об ошибках, в то время, как для тестирования промежуточных версий одного месяца слишком мало, чтобы полноценно протестировать обновление и выявить в нём проблемы.

>>> Подробности

 , , ,

cocucka ()

FreeBSD прекратит поддержку 32-разрядных платформ

Группа FreeBSD

Джон Болдуин (John Baldwin), от лица FreeBSD Core Team, опубликовал предупреждение о прекращении поддержки 32-разрядных платформ. В ветке FreeBSD 15 планируется прекратить поставку платформ armv6, i386 и powerpc, а в ветке FreeBSD 16 прекратить поддержку оставшейся 32-разрядной платформы armv7. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16. Никаких планов по удалению возможности запуска 32-разрядных программ из 64-разрядных сборок ядра FreeBSD пока нет.

В качестве причин прекращения поддержки 32-разрядных архитектур упоминается снижение популярности 32-разрядных установок, смещение рынка аппаратного обеспечения в сторону 64-разрядных систем, вывод из эксплуатации 32-разрядного оборудования и нехватка у проекта ресурсов на сопровождение устаревших платформ

>>> Подробности

 , ,

cocucka ()

Представлен FreeNginx, форк Nginx, созданный из-за несогласия с политикой компании F5

Группа Open Source

Максим Дунин, один из трёх активных ключевых разработчиков Nginx, объявил о создании нового форка - FreeNginx. В отличие от проекта Angie, также создавшего ответвление от Nginx, новый форк будет разрабатываться исключительно как некоммерческий проект, развиваемый сообществом. FreeNginx позиционируется как основной потомок Nginx - «с учётом деталей - скорее, форк остался у F5». Целью FreeNginx объявлено обеспечение разработки Nginx, свободной от произвольного корпоративного вмешательства.

Причиной создания нового проекта стало несогласие с политикой руководства компании F5, владеющей проектом Nginx. Компания F5 без согласования с сообществом разработчиков изменила политику безопасности и перешла к практике назначения CVE-идентификаторов для пометки как уязвимостей проблем, потенциально представляющих угрозу безопасности пользователей (Максим был против назначения CVE данным ошибкам, так как они присутствуют в экспериментальном и не используемом по умолчанию коде).

После закрытия московского офиса в 2022 году Максим уволился из F5, но по отдельному соглашению сохранил свою роль в разработке и продолжил развивать и курировать проект Nginx в качестве волонтёра. По мнению Максима, изменение политики безопасности противоречит заключённому соглашению и он больше не может контролировать изменения, которые вносят в Nginx разработчики из компании F5, поэтому, больше не может рассматривать Nginx как открытый и свободный проект, разрабатываемый для общего блага.

>>> Подробности

 , ,

cocucka ()

В Chromium экспериментируют с автоматическими микроплатежами для монетизации сайтов

Группа Chromium совместимые

Разработчики проекта Chromium сообщили о намерении реализовать в браузере поддержку технологии Web Monetization, позволяющей автоматически выполнять микроплатежи владельцам сайтов за просмотр их содержимого. Предполагается, что технология может использоваться для монетизации сайтов вместо показа рекламы, в качестве аналога сетевых чаевых или для предоставления выборочного платного доступа к контенту без оформления подписки. Первый прототип реализации Web Monetization рассчитывают добавить в состав выпуска Chromе 127, намеченного на 23 июля.

( читать дальше... )

>>> Подробности

 ,

cocucka ()

Уязвимость в glibc, позволяющая получить root-доступ в системе

Группа Безопасность

Компания Qualys выявила опасную уязвимость (CVE-2023-6246) в стандартной Си-библиотеке Glibc, позволяющую через манипуляции с запуском SUID-приложений добиться выполнения своего кода с повышенными привилегиями. Исследователи смогли разработать рабочий эксплоит, позволяющий получить права root через манипуляцию с аргументами командной строки при запуске утилиты su.

Уязвимость вызвана переполнением буфера в функций __vsyslog_internal(), используемой при вызове функций syslog() и vsyslog(). Проблема возникает из-за ошибки при попытке вывода через макрос SYSLOG_HEADER слишком длинного имени приложения. При попытке расширения буфера с учётом длинного имени возникает сбой, после которого данные записываются в старый буфер изначального меньшего размера.

При организации атаки через утилиту su атакующий может изменить имя процесса при запуске приложения через замену значения argv[0], которое используется для получения информации об имени программы при выводе в лог, и добиться контролируемой перезаписи данных за пределами выделенного буфера. Далее переполнение можно использовать для перезаписи структуры nss_module в библиотеке nss для создания разделяемой библиотеки и её загрузки с правами root.

Проблема проявляется начиная с выпуска glibc 2.37, опубликованного в августе 2022 года и включающего изменение, обрабатывающее ситуацию с попыткой записи слишком больших сообщений. Вносящее уязвимость исправление было бэкпортировано в ветку glibc 2.36 и пакеты дистрибутивов с более старыми версиями glibc, так как отмеченное исправление устраняло уязвимость CVE-2022-39046, приводящую к утечке данных из кучи. Получилось так, что исправление неопасной уязвимости привело к появлению критической проблемы. Примечательно, что о похожей уязвимости в функции vsyslog() из состава библиотеки libc 5.4.3 сообщалось ещё в 1997 году.

Наличие уязвимости подтверждено в Debian 12/13, Ubuntu 23.04/23.10 и Fedora 37-39. Работа эксплоита для получения непривилегированным пользователем прав root продемонстрирована в полностью обновлённом окружении Fedora 38 со всеми включёнными в конфигурации по умолчанию механизмами защиты. Уязвимость может быть эксплуатирована только локально, так как требует передачи более 1024 байт через параметр argv[0] или аргумент ident в функции openlog().

Исправление уязвимости включено несколько часов назад в кодовую базу Glibc и войдёт в состав завтрашнего обновления Glibc 2.39, наряду с исправлением ещё двух уязвимостей (CVE-2023-6779, CVE-2023-6780) , также затрагивающих код __vsyslog_internal() и приводящих к переполнению буфера. Более того, компания Qualys предупредила о выявлении переполнения буфера в реализации функции qsort(), которое не было отнесено разработчиками Glibc к числу уязвимостей, так как эксплуатация подразумевает использование в качестве аргумента при вызове qsort нетипичной функции сравнения, возвращающей разницу сравниваемых параметров.

Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Протестировать подверженность системы уязвимости можно следующей командой:

   $ (exec -a "`printf '%0128000x' 1`" /usr/bin/su < /dev/null)

>>> Подробности

 , ,

cocucka ()

Сбой в доменной зоне RU из-за ошибки при замене ключей DNSSEC

Группа Безопасность

30 января в 18:20 (MSK) пользователи столкнулись с массовым сбоем определения хостов в доменной зоне RU, вызванный ошибкой при смене ключей, используемых для заверения достоверности зоны RU через DNSSEC. В результате инцидента на DNS-серверах, применяющих DNSSEC для проверки достоверности данных, перестали определяться все домены в зоне «.ru». Проблема затронула только пользователей, использующих DNS-резолверы провайдеров или публичные DNS-сервисы, такие как 8.8.8.8, верифицирующие достоверность запросов при помощи DNSSEC. Пользователей DNS-резолверов, на которых DNSSEC отключён, не пострадали.

>>> Подробности

 , , ,

cocucka ()

Для OpenBSD реализована возможность использования рабочего стола KDE Plasma

Группа OpenBSD

Рафаэль Садовский (Rafael Sadowski) объявил о доступности пользовательского окружения KDE Plasma 5.27 для установки в OpenBSD-current, формировании готовых для установки пакетов kde-plasma и kde-plasma-extra, и намерении обеспечить поддержку KDE Plasma в весеннем выпуске OpenBSD 7.5. После прекращения поддержки KDE4 в OpenBSD так и не была перенесена возможность использования новой ветки рабочего стола KDE Plasma 5. Пакеты с приложениями KDE Gears 5 и библиотеками KDE Frameworks 5 достаточно давно доступны в портах OpenBSD, но сама оболочка до настоящего времени оставалась неработоспособной.

Для установки KDE Plasma и KDE Gear теперь достаточно выполнить команды:

pkg_add kde 
pkg_add kde-plasma 
pkg_add kde-plasma-extra

Отмечается, что переход ветки KDE 6 на Qt 6 не будет большой проблемой для OpenBSD, так как в рамках проведённого портирования ветка Qt 6 и связанные с ней зависимости уже адаптированы для работы в OpenBSD. Из остающихся задач отмечается решение некоторых недоработок с композитным сервером KWin, Wayland, NetworkManager и SDDM. Также планируется добавить поддержку утилиты pkg_add в интерфейсе установки приложений Discover.

>>> Подробности

 , ,

cocucka ()

Эксперимент с созданием NPM-пакета, зависимого от всех пакетов в репозитории

Группа Безопасность

Один из разработчиков JavaScript-пакетов провёл эксперимент с созданием и размещением в репозитории NPM пакета «everything», который охватывает зависимостями все существующие пакеты в репозитории. Для реализации подобной возможности пакет «everything» связан прямыми зависимостями с пятью пакетами «@everything-registry/chunk-N», которые в свою очередь привязываются зависимостями к более 3000 пакетов «sub-chunk-N», в каждом из которых осуществляется привязка к 800 существующих пакетов в репозитории.

Размещение «everything» в NPM привело к двум интересным эффектам. Во-первых пакет «everything» стал своеобразным инструментом для совершения DoS-атак, так как попытка его установки приводит к загрузке миллионов размещённых в NPM пакетов и исчерпанию имеющегося дискового пространства или остановке выполнения сборочных процессов. По статистике NPM пакет был загружен около 250 раз, но никто не мешает добавить его в зависимости к другому пакету после взлома учётной записи разработчика для совершения диверсии. Кроме того, невольно атаке оказались подвержены некоторые службы и инструменты осуществляющие мониторинг и проверку новых пакетов, размещаемых в NPM.

Во-вторых публикация пакета «everything» фактически заблокировала возможность удаления любых пакетов в NPM, которые оказались в списке его зависимостей. Пакет из NPM может быть удалён автором только если он ещё не используется в зависимостях других пакетов, но после публикации «everything» зависимостями оказались охвачены все пакеты в репозитории. Примечательно, что удаление самого пакета «everything» также оказалось заблокированным, так как 9 лет назад в репозитории был размещён тестовый пакет «everything-else», в котором была указана строка «everything» в списке зависимостей. Таким образом, пакет «everything» после публикации оказался в зависимостях у другого пакета.

>>> Подробности

 , ,

cocucka ()

Red Hat удалит сервер X.org и связанные компоненты из RHEL 10

Группа IBM / RedHat

Компания Red Hat опубликовала план прекращения поддержки сервера X.org в дистрибутиве Red Hat Enterprise Linux 10. Изначально, X.org Server был объявлен устаревшим и намеченным на удаление в будущей ветке RHEL ещё год назад в примечании к выпуску RHEL 9.1. Возможность запуска X11-приложений в сеансе Wayland, обеспечиваемая при помощи DDX-сервера XWayland, будет сохранена. Первый выпуск ветки RHEL 10, в котором будет прекращена поставка X.org Server, запланирован на первую половину 2025 года.

( читать дальше... )

>>> Подробности

 , , , ,

cocucka ()

В OpenZFS выявлена ошибка, которая может привести к повреждению файлов

Группа Hardware & Drivers

Доступен промежуточный выпуск проекта OpenZFS 2.2.1, развивающего реализацию файловой системы ZFS для Linux и FreeBSD. Выпуск примечателен добавлением поддержки ядра Linux 6.6 и попыткой устранения проблемы, приводящей к повреждению данных (обнулению части блоков) в файлах после их копирования.

Изначально предполагалось, что проблема проявляется только в ветке 2.2.x и вызвана ошибкой во включённом в OpenZFS 2.2.0 механизме клонирования блоков, позволяющем создать копию файла или его части без дублирования данных, используя во второй копии ссылки на уже существующие блоки данных исходного файла без их фактического копирования. В версии OpenZFS 2.2.1 для блокирования проблемы механизм клонирования блоков был отключён по умолчанию, а для возвращения поддержки данного режима добавлена настройка zfs_bclone_enabled.

Позднее разработчики заявили о воспроизведении проблемы и в конфигурациях с веткой OpenZFS 2.1.x. Не подтвердились и предположения, что проблема проявляется на системах со старыми выпусками пакета coreutils - ошибку удалось воспроизвести во FreeBSD и в Linux-дистрибутивах со свежим выпуском coreutils 9.4.

Повреждение файлов проявляется при достаточно редком стечении обстоятельств, например, выполнение в Gentoo команды «emerge -1 dev-lang/go» приводит к установке инструментария для языка Go с повреждением файлов в каталоге /usr/lib/go/pkg/tool/linux_amd64/compile. Предполагается, что ошибка начала проявляться после выставления по умолчанию параметра «zfs_dmu_offset_next_sync=1» в версии openzfs 2.1.4. Источник ошибки пока не выявлен. В качестве рекомендованного обходного пути блокирования ошибки предложено выставить в 0 параметр «/sys/module/zfs/parameters/zfs_dmu_offset_next_sync».

>>> Подробности

 , ,

cocucka ()

Представлена система синтеза видео Stable Video Diffusion

Группа Мультимедиа

Компания Stability AI опубликовала модель машинного обучения Stable Video Diffusion, позволяющую генерировать короткие видео на основе изображений. Модель расширяет возможности проекта Stable Diffusion, ранее ограниченного синтезом статических изображений. Код инструментов для обучения нейронной сети и генерации изображений написан на языке Python с использованием фреймворка PyTorch и опубликован под лицензией MIT. Уже обученные модели открыты под пермиссивной лицензией Creative ML OpenRAIL-M, допускающей использование в коммерческих целях.

( читать дальше... )

>>> Подробности

 , , ,

cocucka ()

Свежие уязвимости в процессорах Intel и AMD

Группа Безопасность

Тэвис Орманди (Tavis Ormandy), исследователь безопасности из компании Google, выявил новую уязвимость (CVE-2023-23583) в процессорах Intel, получившую кодовое имя Reptar и в основном представляющую опасность для облачных систем, в которых выполняются виртуальные машины разных пользователей. Уязвимость позволяет вызвать зависание или аварийную остановку работы системы при выполнении в непривилегированных гостевых системах определённых операций. Для тестирования своих систем опубликована утилита, создающая условия для проявления уязвимости.

Исследователи Центра Гельмгольца по информационной безопасности (CISPA) опубликовали новый метод атаки CacheWarp, позволяющий скомпрометировать механизм защиты AMD SEV (Secure Encrypted Virtualization), применяемый в системах виртуализации для защиты виртуальных машин от вмешательства со стороны гипервизора или администратора хост-системы. Предложенный метод позволяет злоумышленнику, имеющему доступ к гипервизору, добиться выполнения стороннего кода и повышения привилегий в виртуальной машине, защищённой при помощи AMD SEV.

( читать дальше... )

>>> Подробности

 , ,

cocucka ()

Первый выпуск ядра БМПОС

Группа СССР

В России ведётся разработка обучающей платформы для системных программистов - БМПОС (Базовая Модульная Платформа Операционных Систем), которая задумана и создаётся как обучающее пособие по разработке операционных систем с развитой теоретической и практической базой. В рамках проекта развивается модульное ядро, которое фундаментально отличается от существующих ядер и спроектировано специально для изучения процесса разработки операционных систем. Код ОС написан на языке Си и распространяется под MIT-подобной лицензией ГОЛ (Государственная Открытая Лицензия, в настоящий момент организациями GNU и OSI не была проведена экспертная оценка на предмет соответствия данной лицензии определениям Свободного ПО или Open Source).

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

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

В первом тестовом выпуске ядра доступен менеджер памяти, менеджер видеопамяти и загрузчик модулей. Реализована поддержка экранов TGA. Добавлены инструкции по сборке и запуску. Продолжается работа над менеджером задач и системой потоков ввода-вывода. В ближайших планах создание драйверов для клавиатуры, SATA (ACHI) и ФС EXT2.

>>> Подробности

 , ,

cocucka ()

В Chrome планируют реализовать режим скрытия IP-адреса пользователя

Группа Chromium совместимые

Компания Google приступила к реализации в браузере Chrome функции IP Protection, предназначенной для скрытия IP-адреса пользователя от владельцев сайтов. Новая возможность может использоваться в качестве встроенного анонимайзера, нацеленного прежде всего на предотвращение отслеживания перемещений, но, среди прочего, пригодного и для обхода блокировок, реализованных как на стороне сайтов, так и на уровне операторов связи.

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

Google планирует протестировать режим защиты IP-адресов на небольшом проценте пользователей в одном из будущих выпусков Chrome (c 119 по 125). На первом этапе в тестировании будет задействован только один прокси-сервер, принадлежащий Google, и скрытие будет включено только для доменов и рекламных сетей Google. Данный этап будет предложен для систем с IP-адресами из США и охватит не более 33% пользователей экспериментальных выпусков Chrome.

На второй фазе тестирования планируют ввести в строй конфигурацию из двух уровней прокси: вначале соединение будет направляться из браузера через шифрованный туннель к прокси, принадлежащий Google, а затем направляться на второй прокси, принадлежащий компании, не связанной с Google. Туннелирование трафика будет организовано так, что первый прокси, который видит IP-адрес пользователя, не будет видеть параметры запроса и не сможет определить целевой хост, к которому адресовано обращение пользователя. Второй же прокси сможет определить данные о целевом хосте, но не будет видеть IP-адрес пользователя. Т.е. прокси будут видеть сведения либо об адресе пользователя, либо о целевом сайте, что не позволит на стороне прокси связать пользователя с запрошенным сайтом.

Трафик будет направляться на прокси с использованием методов CONNECT и CONNECT-UDP и созданием туннеля на базе протокола TLS, обеспечивающем сквозное шифрование. Для предотвращения злоупотреблений доступ к первому прокси, контролируемому Google, будет производиться при помощи криптографического токена, который будет генерироваться сервером аутентификации Google при подключении Chrome к учётной записи пользователя в Google (без аутентификации в Chrome доступ к прокси будет закрыт). К токену также будут привязаны ограничения трафика, которые затруднят пробрасывание трафика через прокси серверы во вредоносных целях.

Режим скрытия IP-адресов по умолчанию будет отключён и сможет быть активирован по желанию пользователя. Скрытие адресов планируют применять не для всех сайтов, а только для отдельно сформированного списка доменов, которые уличены в отслеживании перемещений пользователей. Привязка к списку позволит избежать нежелательных изменений, нарушающих поведение сайтов и приводящих к проблемам c определением местоположения, разделением пользователей и учётом трафика (например, блокировка нарушителя на сайте может оказаться применённой ко всем пользователям, перенаправляемым через прокси).

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

Разработчики движка WebKit развивают для браузера Safari похожую функциональность Intelligent Tracking Protection, которая пока ограничена экспериментами с одним прокси, но в дальнейшем будет переведена на использование модели с двумя независимыми уровнями прокси-серверов.

>>> Подробности

 ,

cocucka ()

Релиз OpenBSD 7.4

Группа OpenBSD

Представлен выпуск свободной UNIX-подобной операционной системы OpenBSD 7.4. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, проактивная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 7.4 составляет 630 МБ.

Кроме непосредственно операционной системы, проект OpenBSD известен своими компонентами, которые получили распространение в других системах и зарекомендовали себя как одни из наиболее безопасных и качественных решений. Среди них: LibreSSL (форк OpenSSL), OpenSSH, пакетный фильтр PF, демоны маршрутизации OpenBGPD и OpenOSPFD, NTP-сервер OpenNTPD, почтовый сервер OpenSMTPD, мультиплексор текстового терминала (аналог GNU screen) tmux, демон identd с реализацией протокола IDENT, BSDL-альтернатива пакету GNU groff - mandoc, протокол для организации отказоустойчивых систем CARP (Common Address Redundancy Protocol), легковесный http-сервер, утилита синхронизации файлов OpenRSYNC.

Основные улучшения:

  • Для архитектур amd64 и i386 добавлены компоненты для обновления микрокода к процессорам AMD. Новые версии микрокода устанавливаются автоматически при загрузке. Для распространения бинарных файлов с микрокодом подготовлен порт «ports/sysutils/firmware/amd». Установка нового микрокода осуществляется при помощи штатной утилиты fw_update. Аналогичная поддержка обновления микрокода для процессоров Intel была реализована в 2018 году и предложена в выпуске OpenBSD 6.3.
  • Для ядра и пространства пользователя включены механизмы защиты IBT (Indirect Branch Tracking, amd64) и BTI (Branch Target Identification, arm64), предназначенные для блокирования нарушения нормального порядка выполнения (control flow) в результате применения эксплоитов, изменяющих хранимые в памяти указатели на функции (реализованная защита не позволяет вредоносному коду выполнить переход на середину функции).
  • На системах с архитектурой arm64 для защиты пространства пользователя включена аутентификация указателей (Pointer Authentication). Технология позволяет использовать специализированные инструкции ARM64 для проверки адресов возврата при помощи цифровых подписей, которые хранятся в неиспользуемых верхних битах самого указателя.
  • Настройки системного компилятора clang, а также clang и gcc из портов, изменены для применения вышеотмеченных механизмов защиты, что значительно усилило защиту всех базовых приложений и большинства приложений из портов от эксплоитов, использующих методы возвратно-ориентированного программирования (ROP - Return-Oriented Programming). При использовании техники ROP атакующий не пытается разместить свой код в памяти, а оперирует уже имеющимися в загруженных библиотеках кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания библиотечных функций). Работа эксплоита сводится к построению цепочки вызовов подобных блоков («гаджетов») для получения нужной функциональности.
  • Добавлен новый системный вызов kqueue1, который отличается от kqueue передачей флагов. В настоящее время в kqueue1 поддерживается только флаг O_CLOEXEC (close-on-exec) для автоматического закрытия файловых дескрипторов в дочернем процессе после вызова exec().
  • Для архитектур amd64 и i386 реализована поддержка псевдоустройства dt для организации динамической трассировки системы и приложений. Для вставки пользовательских записей в лог ktrace добавлен системный вызов utrace.
  • Из FreeBSD перенесены исправления, устраняющие неопределённое поведение при использовании файловых систем MS-DOS.
  • Отключена опция монтирования softdep, применяемая для отложенной сгруппированной записи метаданных.
  • Программам, защищённым при помощи системного вызова unveil, разрешено сохранение core-дампов в текущий рабочий каталог.
  • Для архитектуры ARM64 задействована возможность перехода в глубокие состояния неактивности (idle), доступные в чипах Apple M1/M2, для экономии энергии и реализации ждущего режима.
  • Добавлена обходная защита от уязвимости Zenbleed в процессорах AMD.
  • Усовершенствована поддержка многопроцессорных систем (SMP). Избавлены от блокировок функция arprequest(), код обработки входных ARP-пакетов и реализация определения соседних узлов в стеке IPv6.
  • Интерфейс синхронизации таблиц пакетного фильтра pfsync переписан для улучшения работы с блокировками и совместимости с будущей работой по распараллеливанию сетевого стека.
  • Реализация фреймворка drm (Direct Rendering Manager) синхронизирована с ядром Linux 6.1.55 (в прошлом выпуске - 6.1.15). Улучшена работа на системах с процессорами Intel на базе микроархитектур Alder Lake и Raptor Lake.
  • Внесены улучшения в гипервизор VMM. В vmd реализована поддержка многопроцессной модели для блочных и сетевых virtio-устройств. В блочное virtio-устройство добавлена поддержка векторного ввода/вывода в режиме zero-copy. Ограничен доступ гостевых систем к режимам p-state процессоров AMD. Владельцам виртуальных машин разрешено через vmctl переопределять загружаемое ядро.
  • Добавлен новый заголовочный файл uchar.h с типами char32_t и char16_t, и функциями c32rtomb(), mbrtoc32(), c16rtomb() и mbrtoc16(), определёнными в стандарте C11.
  • В функцию malloc добавлена опция «D» для определения утечек памяти при помощи ktrace («MALLOC_OPTIONS=D ktrace -tu program») и kdump («kdump -u malloc …»).
  • В утилиту make добавлена поддержка переменной ${.VARIABLES} для вывода имён всех выставленных глобальных переменных.
  • В утилиту kdump добавлена опция «-u» для выбора точек трассировки utrace по заданной метке.
  • В утилиту openrsync добавлены опции «–size-only» и «–ignore-times».
  • В cron и crontab добавлена поддержка случайных смещений при указании диапазонов значений с заданным шагом, что позволяет избежать одновременного запроса ресурса с разных машин, имеющих одинаковые правила в cron. Например, указание «0~59/30» или «~/30» в поле с минутами приведёт к запуску команды два раза в час через последовательные случайно выбранные интервалы.
  • В утилиту wsconsctl добавлена возможность маппинга кнопок для нажатий двумя или тремя пальцами на кликпаде.
  • Добавлена поддержка нового оборудования и включены в состав новые драйверы.
  • Улучшена установка на системы с процессорами armv7 и arm64.
  • Добавлена поддержка загрузки файлов из системного раздела EFI (EFI System Partition).
  • В инсталляторе улучшена поддержка программных RAID (softraid). Добавлена возможность размещения корневого раздела в softraid на системах riscv64 и arm64. Softraid добавлен в ramdisk для архитектуры powerpc64. Для arm64 реализована поддержка шифрования дисков (Guided Disk Encryption).
  • В функцию malloc добавлена проверка всех блоков в списке отложенного освобождения памяти для выявления ситуаций записи в освобождённую область памяти.
  • Для выполнения команды shutdown теперь требуется добавление пользователя в группу «_shutdown», что позволяет разделить полномочия, связанные с завершением работы и прямого чтения с дисковых устройств.
  • При помощи системного вызова unveil утилита patch ограничена доступом только к текущему каталогу, каталогу со временными файлами и файлам, перечисленным в командной строке.
  • Добавлен sysctl net.inet6.icmp6.nd6_queued для показа числа пакетов, ожидающих ответа ND6 (по аналогии с ARP).
  • При настройки адреса IPv6 на сетевом интерфейсе обеспечена отправка анонса соседним маршрутизаторам по мультикаст адресу.
  • Добавлена начальная поддержка TSO (TCP Segmentation Offload) и LRO (TCP Large Receive Offload) для обработки сегментов и объединения пакетов на стороне сетевой карты.
  • Ускорена загрузка из ядра правил пакетного фильтра pf утилитой pfctl. Включена обработка действий «keep state» и «nat-to» для возвращаемых через ICMP сообщений об ошибках.
  • Отключено вычисления контрольных сумм IP, TCP и UDP для loopback-интерфейсов.
  • Добавлена начальная поддержка VPN IPsec, зависящих от маршрутизации (route-based).
  • В bgpd добавлена поддержка Flowspec (RFC5575, пока поддерживается только анонсирование правил flowspec). Реализация ASPA (Autonomous System Provider Authorization) приведена к соответствию спецификациям draft-ietf-sidrops-aspa-verification-16 и draft-ietf-sidrops-aspa-profile-16, и переведена на использование поисковых таблиц, не зависящих от AFI (Address Family Indicator).
  • На 30-50% повышена производительность rpki-client. Добавлена поддержка сжатия gzip и deflate.
  • Обновлены пакеты LibreSSL и OpenSSH. Подробный обзор улучшений можно посмотреть в обзорах LibreSSL 3.8.0, OpenSSH 9.4 и OpenSSH 9.5.
  • Число портов для архитектуры AMD64 составило 11845 (было 11764), для aarch64 - 11508 (было 11561), для i386 - 10603 (было 10572). Среди версий приложений в портах:
    • Asterisk 16.30.1, 18.19.0б, 20.4.0
    • Audacity 3.3.3
    • CMake 3.27.5
    • Chromium 117.0.5938.149
    • Emacs 29.1
    • FFmpeg 4.4.4
    • GCC 8.4.0 и 11.2.0
    • GHC 9.2.7
    • GNOME 44
    • Go 1.21.1
    • JDK 8u382, 11.0.20 и 17.0.8
    • KDE Applications 23.08.0
    • KDE Frameworks 5.110.0
    • Krita 5.1.5
    • LLVM/Clang 13.0.0 и 16.0.6
    • LibreOffice 7.6.2.1
    • Lua 5.1.5, 5.2.4, 5.3.6 и 5.4.6
    • MariaDB 10.9.6
    • Mono 6.12.0.199
    • Mozilla Firefox 118.0.1 и ESR 115.3.1
    • Mozilla Thunderbird 115.3.1
    • Mutt 2.2.12 и NeoMutt 20230517
    • Node.js 18.18.0
    • OpenLDAP 2.6.6
    • PHP 7.4.33, 8.0.30, 8.1.24 и 8.2.11
    • Postfix 3.7.3
    • PostgreSQL 15.4
    • Python 2.7.18, 3.9.18, 3.10.13 и 3.11.5
    • Qt 5.15.10 и 6.5.2
    • R 4.2.3
    • Ruby 3.0.6, 3.1.4 и 3.2.2
    • Rust 1.72.1
    • SQLite 3.42.0
    • Shotcut 23.07.29
    • Sudo 1.9.14.2
    • Suricata 6.0.12
    • Tcl/Tk 8.5.19 и 8.6.13
    • TeX Live 2022
    • Vim 9.0.1897 и Neovim 0.9.1
    • Xfce 4.18
  • Обновлены компоненты от сторонних разработчиков, входящие в состав OpenBSD 7.3:
    • Графический стек Xenocara на базе X.Org 7.7 с xserver 21.1.8 + патчи, freetype 2.13.0, fontconfig 2.14.2, Mesa 22.3.7, xterm 378, xkeyboard-config 2.20, fonttosfnt 1.2.2.
    • LLVM/Clang 13.0.0 (+ патчи)
    • GCC 4.2.1 (+ патчи) и 3.3.6 (+ патчи)
    • Perl 5.36.1 (+ патчи)
    • NSD 4.7.0
    • Unbound 1.18
    • Ncurses 5.7
    • Binutils 2.17 (+ патчи)
    • Gdb 6.3 (+ патч )
    • Awk 12.9.2023
    • Expat 2.5.0.

>>> Подробности

 ,

cocucka ()

Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP из состава ядра Linux

Группа Безопасность

В Linux-подсистеме nvmet-tcp (NVMe-oF/TCP), позволяющей обращаться к NVMe-накопителям по сети (NVM Express over Fabrics), используя протокол TCP, выявлена уязвимость (CVE-2023-5178), потенциально позволяющая удалённо выполнить свой код на уровне ядра или, при наличии локального доступа, поднять свои привилегии в системе. Исправление пока доступно в виде патча. Проблема проявляется с самой первой версии драйвера NVMe-oF/TCP (в отчёте об уязвимости упоминается ядро Linux 5.15, но поддержка NVMe-oF/TCP была добавлена в ядро 5.0). Уязвимости подвержены системы с включённым сервером NVMe-oF/TCP (NVME_TARGET_TCP), который по умолчанию принимает соединения на сетевом порту 4420.

Уязвимость вызвана логической ошибкой, из-за которой функция nvmet_tcp_free_crypto вызывалась два раза и два раза освобождала некоторые указатели, а также разыменовывала освобождённые адреса. Подобное поведение приводит к обращению к уже освобождённой области памяти (use-after-free) и двойному освобождению памяти (double-free) при обработке сервером NVMe-oF/TCP специально оформленного сообщения от клиента, который может находиться как в локальной, так и в глобальной сети.

>>> Подробности

 ,

cocucka ()

Релиз Chrome 118. Подготовка к блокировке сторонних Cookie в Chrome

Группа Chromium совместимые

Компания Google опубликовала релиз web-браузера Chrome 118. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 119 запланирован на 31 октября.

( читать дальше... )

>>> Подробности

 ,

cocucka ()

Выпуск дистрибутива Ubuntu 23.10

Группа Canonical / Ubuntu

Опубликован релиз дистрибутива Ubuntu 23.10 «Mantic Minotaur», который отнесён к промежуточным выпускам, обновления для которых формируются в течение 9 месяцев (поддержка будет осуществляться до июля 2024 года). Готовые установочные образы созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon.

( читать дальше... )

>>> Подробности

 ,

cocucka ()