The OpenNET Project / Index page

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

·07.08.2022 Для Linux предложен механизм верификации корректности работы ядра (54 +24)
  Для включения в состав ядра Linux 5.20 (возможно, ветка получит номер 6.0) предложен набор патчей с реализацией механизма RV (Runtime Verification), представляющего средства для проверки корректности работы на высоконадежных системах, гарантирующих отсутствие сбоев. Проверка производится во время выполнения через прикрепление обработчиков к точкам трассировки, сверяющих фактический ход выполнения с заранее определённой эталонной детерминированной моделью автомата, определяющего ожидаемое поведение системы.

Информация от точек трассировки переводит модель из одного состояния в другое, и если новое состояние не соответствует параметрам модели, генерируется предупреждение или ядро переводится в состояние "panic" (подразумевается, что высоконадёжные системы будут определять подобные ситуации и реагировать на них). Модель автомата, определяющая переходы из одного состояния в другое, экспортируется в формат "dot" (graphviz), после чего транслируется при помощи утилиты dot2c в представление на языке Си, которое загружается в форме модуля ядра, отслеживающего отклонения хода выполнения от предопределённой модели.

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

  1. OpenNews: Red Hat и Google представили Sigstore, сервис для криптографической верификации кода
  2. OpenNews: Найден способ формального подтверждения 100% отсутствия ошибок в программе
  3. OpenNews: Микроядро seL4 математически верифицировано для архитектуры RISC-V
  4. OpenNews: Прототип отечественной ОС Phantom на базе Genode будет готов до конца года
  5. OpenNews: Новая криптографическая библиотека EverCrypt с математическим доказательством надёжности
Обсуждение (54 +24) | Тип: К сведению |
·07.08.2022 Выпуск NetBSD 9.3 (106 +17)
  Спустя 15 месяцев после формирования прошлого обновления опубликован релиз операционной системы NetBSD 9.3. Для загрузки подготовлены установочные образы размером 470 МБ, доступные в сборках для 57 системных архитектур и 16 различных семейств CPU. Версия 9.3 полностью совместима с прошлыми выпусками ветки 9.x и содержит важные исправления, в том числе связанные с устранением уязвимостей.

Изначально предполагалось сформировать новый значительный выпуск NetBSD 10.0, но из-за необходимости решения проблем с совместимостью, связанных с реализацией списков контроля доступа для FFS, решено отложить значительный релиз и опубликовать дополнительный промежуточный выпуск ветки 9.x, выделив дополнительное время на стабилизацию кодовой базы.

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

  • Значительно улучшена поддержка спящего режим (suspend/resume). Во многих драйверах решены проблемы с блокировками и сохранением состояния, проявляющиеся при переходе в спящий режим.
  • Расширена поддержка оборудования в драйверах устройств.
  • Добавлена поддержка новых гигабитных Ethernet-чипов Intel.
  • Улучшена поддержка новых чипсетов Intel и AMD Zen 3.
  • Обеспечена совместимость с файловыми системами UDF (Universal Disk Format), в том числе внесены исправления для достижения полной совместимости с разделами UDF, созданными в Windows 10 (с учётом особенностей и ошибок).
  • В инсталляторе sysinst реализована возможность настойки беспроводных соединений.
  • В сборки для платформы Commodore Amiga добавлена возможность запуска X11-сервера с использованием драйвера wsfb (использует вывод через framebuffer).
  • Внесены изменения, нацеленные на повышение производительности гипервизора Xen.

  1. OpenNews: Выпуск NetBSD 9.2
  2. OpenNews: Удалённая уязимость в ядре NetBSD, эксплуатируемая из локальной сети
  3. OpenNews: NetBSD перешёл на оконный менеджер CTWM по умолчанию и экспериментирует с Wayland
  4. OpenNews: В ядро NetBSD добавлена поддержка VPN WireGuard
  5. OpenNews: Релиз операционной системы NetBSD 9.0
Обсуждение (106 +17) | Тип: Программы |
·06.08.2022 Студия Dreamworks анонсировала открытие системы рендеринга MoonRay (62 +33)
  Анимационная студия Dreamworks анонсировала открытие кода системы рендеринга MoonRay, использующей трассировку лучей на основе численного интегрирования по методу Монте-Карло (MCRT). Продукт применялся для рендеринга анимационных фильмов "Как приручить дракона 3", "Семейка Крудс 2: Новоселье", "Плохие парни" и "Кот в сапогах 2: Последнее желание". В настоящий момент уже запущен сайт открытого проекта, но сам код обещают опубликовать позднее на GitHub под лицензией Apache 2.0.

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

Для организации распределённого рендеринга используется собственный фреймворк Arras, позволяющий разносить вычисления на несколько серверов или облачных окружений. Код Arras будет открыт вместе с основной кодовой базой MoonRay. Для оптимизации расчёта освещения в распределённых окружениях может использоваться библиотека трассировки лучей Intel Embree, а для векторизации шейдеров - компилятор Intel ISPC. Возможна остановка рендеринга в произвольный момент и возобновление операций с прерванной позиции.

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

  1. OpenNews: Pixar передал проект OpenTimelineIO под покровительство Linux Foundation
  2. OpenNews: Инициатива по развитию открытого ПО для киноиндустрии
  3. OpenNews: Студия Dreamworks начала открытие кода своих анимационных программ
  4. OpenNews: Анимационная студия Pixar приняла решение об открытии пакета USD
  5. OpenNews: Pixar передал проект OpenTimelineIO под покровительство Linux Foundation
Обсуждение (62 +33) | Тип: К сведению | Интересно
·06.08.2022 Дэниэл Бернштейн подал в суд из-за утаивания NIST информации о постквантовых криптоалгоритмах (125 +66)
  Дэниэл Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns, NaCl, Ed25519, Curve25519 и ChaCha20-Poly1305, инициировал судебное разбирательство против правительства США, связанное с невыполнением Национальным институтом стандартов и технологий США (NIST) требований по полному раскрытию информации, связанной со стандартизацией криптоалгоритмов.

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

После выявления бэкдора в стандартизированном алгоритме Dual EC DRBG, разработанном в Агентстве национальной безопасности США, организация NIST обязалась обеспечить прозрачность процесса стандартизации и раскрывать всю сопутствующую информацию. Тем не менее, все решения по выбору алгоритмов продолжают приниматься в NIST за закрытыми дверями с раскрытием лишь части имеющейся информации. В соответствии с законом FOIA (Freedom of Information Act), предписывающим передавать информацию по запросу, с 2020 года Бернштейн отправил семь запросов о раскрытии данных о работе проекта NISTPQC (Post-Quantum Cryptography Standardization Project), но получил лишь отписки и так ничего не добился.

Так как скрываемая информация имеет большое общественное значение и необходим анализ полученной от АНБ информации, а также изучение корректности принятия решений в NIST, Бернштейн подал в федеральный суд США иск с требованием принудить NIST к публикации всех записей, связанных с работой группы NISTPQC, а также записей всех встреч и совещаний NIST с участием представителей Агентства национальной безопасности США, в которых встречается слово 'quantum', независимо от их связи с проектом стандартизации алгоритмов постквантовой криптографии. Отмечается, что без полного раскрытия всех данных можно легко пропустить доказательства атак на предложенные алгоритмы и попытки саботажа со стороны злоумышленников, пытающихся влиять на проект через подставных лиц.

  1. OpenNews: Отобранный NIST постквантовый криптоалгоритм SIKE оказался не защищён от взлома на обычном компьютере
  2. OpenNews: NIST утвердил алгоритмы шифрования, устойчивые к квантовым вычислениям
  3. OpenNews: Рассчитаны параметры квантового компьютера для взлома ключей, используемых в Bitcoin
  4. OpenNews: Дэниэл Бернштейн выступил с инициативой создания Си-компилятора для защищённого ПО
  5. OpenNews: Дэниел Бернштейн выступил с критикой позиции ФБР о шифровании смартфонов и сетей
Обсуждение (125 +66) | Тип: Тема для размышления |
·05.08.2022 Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к файлам вне рабочего каталога (61 +6)
  В HTTP-сервере muhttpd, применяемом преимущественно в маршрутизаторах и точках доступа, выявлена уязвимость (CVE-2022-31793), позволяющая неаутентифицированному атакующему через отправку специально оформленного HTTP-запроса загрузить произвольные файлы, насколько это позволяют права доступа, под которыми выполняется HTTP-сервер (во многих устройствах muhttpd запускается с правами root). Например, атакующий может получить доступа к файлам с паролями, настройками беспроводного доступа, параметрами подключения к провайдеру и закрытыми ключами.

Проблема вызвана ошибкой при обработке пути в запросе, что позволяет обратиться к файлам, вне корневного каталога web-сервера. Атака сводится к указанию вначале пути любого дополнительного символа, отличного от точки, слеша и вопроса. Например, для загрузки файла /etc/hosts достаточно отправить запрос "GET a/etc/hosts" или "GET a/etc/hosts" (printf "GET b/etc/hosts\n\n" | nc server port).

Причина указанного поведения в том, что открытие запрошенного файла производится командой "open(&req->filename[1], O_RDONLY)" с предварительным выполнением функции chdir() для перехода в корень web-сервера. Указание &req->filename[1] приводит к игнорированию первого символа пути (разработчики подразумевали, что первый символ всегда "/"). Таким образом, при запросе "GET /etc/hosts" сервер попытается открыть файл по относительному пути "etc/hosts", но если указать вначале любой дополнительный символ ("GET a/etc/hosts") - последующий путь будет обработан полностью.

Проблема присутствует начиная с самой первой версии muhttpd и устранена в выпуске 1.1.7. Из устройств, использующих muhttpd, наличие проблемы подтверждено в маршрутизаторах SaskTel и Arris. Потенциально проблема также может проявляться в устройствах, выпускаемых компаниями AT&T, Frontier и Windstream. При ограничении доступа к порту HTTP только для внутренней сети атака может быть совершена из внешней сети при помощи техники "DNS rebinding", позволяющую при открытии пользователем определённой страницы в браузере отправить HTTP-запрос на сетевой порт, недоступный для прямого обращения через интернет.

  1. OpenNews: Обновление DNS-сервера BIND c устранением уязвимости в реализации DNS-over-HTTPS
  2. OpenNews: Обновление HTTP-сервера H2O 2.2.5 с устранением уязвимости
  3. OpenNews: Ещё одна уязвимость в Apache httpd, позволяющая обратиться за пределы корневого каталога сайта
  4. OpenNews: Уязвимость в http-сервере Apache 2.4.49, позволяющая получить файлы вне корня сайта
  5. OpenNews: Уязвимость в http-сервере Nostromo, приводящая к удалённому выполнению кода
Обсуждение (61 +6) | Тип: Проблемы безопасности |
·05.08.2022 Доступна операционная система Chrome OS 104 (116 –2)
  Доступен релиз операционной системы Chrome OS 104, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 104. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Исходные тексты распространяются под свободной лицензией Apache 2.0. Сборка Chrome OS 104 доступна для большинства актуальных моделей Chromebook. Для использования на обычных компьютерах предлагается редакция Chrome OS Flex. Энтузиастами также формируются неофициальные сборки для обычных компьютеров с процессорами x86, x86_64 и ARM.

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

  • Обновлён интерфейс Smart Lock, позволяющий использовать смартфон на базе платформы Android для разблокировки Chromebook. Для включения Smart Lock следует привязать свой смартфон к Chrome OS в настройках "Chrome OS Settings>Connected devices".
  • В панель быстрых настроек и строку состояния добавлена возможность вызова календаря с представлением дней по месяцам. Из календаря можно сразу просматривать события, отмеченные в Google Calendar.
  • Добавлена кнопка для закрытия разом всех окон и вкладок, связанных с выбранным виртуальным рабочим столом. Кнопка "Close desk and windows" доступна в контекстном меню, показываемом при подведении курсора к виртуальному рабочему столу в панели.
  • Переработано оформление интерфейса вывода уведомлений. Реализована группировка уведомлений в зависимости от отправителей.
  • В мультимедийном просмотрщике Gallery добавлена поддержка аннотаций в PDF-документах. Пользователь теперь может не только просматривать PDF, но и выделять текст, заполнять интерактивные формы и прикреплять произвольные аннотации.
  • При поиске в интерфейсе запуска программ (Launcher) обеспечен вывод рекомендаций установки приложений из каталога Play Store, соответствующих поисковому запросу.
  • Предложена для тестирования функциональность для создания интернет-киосков и цифровых демонстрационных стендов. Инструменты для организации работы киосков поставляются на платной основе ($25 в год).
  • Модернизирован хранитель экрана, в котором теперь можно настроить показ изображений и фотографий из выбранного альбома. Таким образом в режиме простоя устройство может использоваться как цифровая фоторамка.
  • Реализована поддержка светлых и тёмных вариантов тем оформления, а также режима автоматического выбора тёмного или светлого стиля.
  • В системе удалённого доступа Chrome Remote Desktop появилась возможность работы с несколькими мониторами. При подсоединении к устройству нескольких экранов пользователь теперь может выбрать на каком экране показывать удалённый сеанс.
  • В интерфейсе администратора предоставлена возможность экспорта в формате CSV отчётов об использовании приложений и дополнений, а также добавлена новая страница с детальной информацией о выбранном приложении.
  • Реализована возможность осуществления плановой автоматической перезагрузки при активном сеансе пользователя. Если сеанс активен, то за час до запланированной администратором перезагрузки пользователю будет выведено специальное предупреждение.
  • Дополнительно анонсирована реализация в приложении Google Photos возможностей для редактирования видео и создания роликов из набора клипов или фотографий, которые будут предложены пользователем в осеннем обновлении. Также отмечены новые предустановленные приложения для создания скринкастов и ведения рукописных заметок.

  1. OpenNews: Релиз Chrome 104
  2. OpenNews: Операционная система Chrome OS Flex готова для установки на любое оборудование
  3. OpenNews: Доступна операционная система Chrome OS 103
  4. OpenNews: В Chrome OS появилась возможность запуска игр, распространяемых через Steam
  5. OpenNews: Новая техника эксплуатации уязвимостей класса Spectre в Chrome
Обсуждение (116 –2) | Тип: Программы |
·04.08.2022 GitLab намерен удалять бесплатно размещённые проекты, неактивные в течение года (дополнено) (312 –60)
  Компания GitLab планирует в сентябре внести изменения в правила использования сервиса, в соответствии с которыми проекты, размещаемые на хостинге GitLab.com бесплатно, будут автоматически удаляться, если в течение 12 месяцев их репозитории будут оставаться неактивными. Изменения правил пока не объявлены официально и находятся на стадии внутреннего планирования.

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

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

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

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

Дополнение 1: Компания GitLab пересмотрела свои планы и решила не удалять неиспользуемые репозитории, а перемещать их в отдельное объектное хранилище. Отмечается, что хранилище с устаревшими проектами будет более медленным, чем основное хранилище для активных репозиториев, но оно позволит не потерять безвозвратно код. Пока не уточняется смогут ли обращаться к архиву все желающие или он останется доступен только для владельцев удалённых проектов.

Дополнение 2: Руководитель GitLab уточнил, что подлежащие чистке неактивные репозитории останутся доступны для чтения всем желающим и, скорее всего, доступ к ним будет напоминать возможность работы с проектами, переведёнными разработчиками в разряд архивных.

  1. OpenNews: Разработчики Wine приняли решение о переводе разработки на GitLab
  2. OpenNews: Fedora и CentOS запускают Git Forge. GitLab открывает 18 проприетарных возможностей
  3. OpenNews: GitLab отложил включение телеметрии
  4. OpenNews: Уязвимость в GitLab, позволяющая захватить аккаунты, авторизированные через OAuth, LDAP и SAML
  5. OpenNews: GitLab вводит проверку по номеру кредитной карты для запуска обработчиков в CI
Обсуждение (312 –60) | Тип: Тема для размышления |
·03.08.2022 Релиз Chrome 104 (116 +1)
  Компания Google представила релиз web-браузера Chrome 104. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 105 запланирован на 30 августа.

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

  • Введено предельное время существование Cookie - все новые или обновлённые Cookie будут автоматически удаляться после 400 дней существования, даже если выставленное через атрибуты Expires и Max-Age время устаревания превышает 400 дней (для таких Cookie время жизни будет урезано до 400 дней). Созданные до введения ограничения Cookie сохранят своё время жизни, даже если оно превышает 400 дней, но будут ограничены в случае обновления. Изменение отражает новые требования, отмеченные в черновике новой спецификации.
  • Включена блокировка обращений из iframe к URL, ссылающихся на локальную файловую систему ("filesystem://").
  • Для ускорения загрузки страницы добавлена новая оптимизация, обеспечивающая установку соединения к целевому хосту в момент нажатия на ссылку, не дожидаясь отпускания кнопки или убирания пальца с сенсорного экрана.
  • Добавлены настройки для управления API "Topics & Interest Group", продвигаемого в рамках инициативы Privacy Sandbox и позволяющего определять категории интересов пользователя и использовать их вместо отслеживающих Cookie для выделения групп пользователей со сходными интересами без идентификации отдельных пользователей. Кроме того, добавлены показываемые один раз информационные диалоги, поясняющие пользователю суть технологии и предлагающие активировать её поддержку в настройках.
  • Увеличены пороговые значения для ограничения вложенных вызовов таймеров setTimeout и setInterval, запущенных с указанием интервала менее 4 мс ("setTimeout(..., <4ms)"). Суммарный лимит на подобные вызовы увеличен с 5 до 100, что позволяет агрессивно не урезать единичные вызовы, но при этом не допускать злоупотреблений, способных повлиять на производительность браузера.
  • Включена отправка на сервер основного сайта запроса подтверждения полномочий CORS (Cross-Origin Resource Sharing) с заголовком "Access-Control-Request-Private-Network: true", в случае обращения со страницы к субресурсу во внутренней сети (192.168.x.x, 10.x.x.x, 172.16-31.x.x) или к localhost (127.x.x.x). При подтверждении операции в ответ на данный запрос сервер должен вернуть заголовок "Access-Control-Allow-Private-Network: true". В версии Chrome 104 результат подтверждения пока не влияет на обработку запроса - в случае отсутствия подтверждения в web-консоли отображается предупреждение, но сам запрос субресурса не блокируется. Включение блокировки при отсутствии подтверждения от сервера ожидается не раньше, чем в выпуске Chrome 107. Для включения блокировки в более ранних выпусках можно активировать настройку "chrome://flags/#private-network-access-respect-preflight-results".

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

  • Добавлен механизм Region Capture, позволяющий обрезать лишние содержимое из видео, формируемого на основе захвата экрана. Например, при помощи API getDisplayMedia web-приложение может организовать передачу видео с содержимым вкладки, а Region Capture позволяет вырезать часть содержимого, включающего элементы управления видеоконференцией.
  • Добавлена поддержка определённого в спецификации Media Queries Level 4 нового синтаксиса медиазапросов, определяющих минимальный и максимальный размер видимой области (viewport). Новый синтаксис позволяет использовать обычные математические операторы сравнения и логические операторы, такие как "not", "or" и "and". Например, вместо "@media (min-width: 400px) { … }" теперь можно указывать "@media (width >= 400px) { … }".
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Добавлено CSS-свойство "focusgroup" для улучшение навигации по элементам при помощи стрелок управления курсором на клавиатуре.
    • В API Secure Payment Confirmation предоставлена возможность отключения пользователем хранилища параметров кредитных карт. Для вывода диалога, позволяющего отказаться от сохранения параметров кредитных карт, в конструкторе PaymentRequest() предусмотрен флаг "showOptOut: true".
    • Добавлен API Shared Element Transitions, позволяющий организовать плавный переход между разными представлениями содержимого в одностраничных web-приложениях.
  • Стабилизирована поддержка спекулятивных правил (Speculation rules), позволяющих авторам сайтов передать браузеру сведения о наиболее вероятных страницах, на которые пользователь может перейти. Браузер использует эту информацию для упреждающей загрузки и отрисовки содержимого страниц.
  • Стабилизирован механизм упаковки субресурсов в пакеты в формате Web Bundle, позволяющий увеличить эффективность загрузки большого числа сопутствующих файлов (CSS-стили, JavaScript, изображения, iframe). В отличие от пакетов в формате Webpack, формат Web Bundle обладает следующими достоинствами: в HTTP-кэше оседает не сам пакет, а его составные части; компиляция и выполнение JavaScript начинается не дожидаясь полной загрузки пакета; допускается включение дополнительных ресурсов, таких как CSS и изображения, которые в webpack должны были кодироваться в форме JavaScript-строк.
  • Добавлено CSS-свойство object-view-box, позволяющее определить часть изображения, которая будет выведена в области вместо заданного элемента, что можно использовать, например, для добавления обрамления или тени.
  • Добавлен API Fullscreen Capability Delegation, позволяющий одному объекту Window передать другому объекту Window право вызова requestFullscreen().
  • Добавлен API Fullscreen Companion Window, позволяющий разместить полноэкранное содержимое и всплывающие окна на другом экране после получения подтверждения от пользователя.
  • В CSS-свойство overflow-clip-margin добавлен атрибут visual-box, определяющий с какого места следует начинать обрезку контента, вышедшего за границу области (может принимать значения content-box, padding-box и border-box).
  • В API Async Clipboard добавлена возможность определения специализированных форматов для передаваемых через буфер обмена данных, отличных от текста, изображений и текста с разметкой.
  • В WebGL предоставлена поддержка указания цветового пространства для буфера отрисовки и преобразования при импорте из текстуры.
  • Прекращена поддержка платформ OS X 10.11 и macOS 10.12.
  • Прекращена поддержка API U2F (Cryptotoken), который ранее объявлен устаревшим и и отключён по умолчанию. На смену API U2F пришёл API Web Authentication.
  • Внесены улучшения в инструменты для web-разработчиков. В отладчике добавлена возможность перезапуска кода с начала функции, после срабатывания точки останова где-то в теле функции. Добавлена поддержка разработки дополнений для панели Recorder. В панель для анализа производительности добавлена поддержка визуализации меток, выставленных в web-приложении через вызов метода performance.measure(). Улучшены рекомендации при автодополнении свойств объектов JavaScript. При автодополнении CSS-переменных обеспечен предпросмотр значений, не связанных с цветами.

Кроме нововведений и исправления ошибок в новой версии устранено 27 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 22 премии на сумму 84 тысячи долларов США (одна премия $15000, одна премия $10000, одна премия $8000, одна премия $7000, четыре премии $5000, одна премия $4000, три премии $3000, четыре премии $2000 и три премии $1000). Размер одного вознаграждения пока не определён.

  1. OpenNews: Операционная система Chrome OS Flex готова для установки на любое оборудование
  2. OpenNews: Релиз Chrome 103
  3. OpenNews: Доступна операционная система Chrome OS 103
  4. OpenNews: Для Chrome развивают режим автоматического блокирования спама в уведомлениях
  5. OpenNews: В Chrome тестируют встроенный редактор скриншотов
Обсуждение (116 +1) | Тип: Программы |
·03.08.2022 Отобранный NIST постквантовый криптоалгоритм SIKE оказался не защищён от взлома на обычном компьютере (180 +41)
  Исследователи из Лёвенского католического университета разработали метод атаки на механизм инкапсуляции ключей SIKE (Supersingular Isogeny Key Encapsulation), который вошёл в финал конкурса постквантовых криптосистем, проводимого Национальным институтом стандартов и технологий США (SIKE был включён в число дополнительных алгоритмов, прошедших основные этапы отбора, но отправленных на доработку для устранения замечаний перед переводом в разряд рекомендованных). Предложенный метод атаки позволяет на обычном персональном компьютере восстановить значение ключа, используемого для шифрования на базе протокола SIDH (Supersingular Isogeny Diffie-Hellman), применяемого в SIKE.

Готовая реализация метода взлома SIKE опубликована в виде сценария для алгебраической системы Magma. Для восстановления закрытого ключа, применяемого для шифрования защищённых сетевых сеансов, при использовании набора параметров SIKEp434 (level 1) на одноядерной системе потребовались 62 минуты, SIKEp503 (level 2) - 2 часа 19 минут, SIKEp610 (level 3) - 8 часов 15 минут, SIKEp751 (level 5) - 20 часов 37 минут. На решение разработанных компанией Microsoft конкурсных заданий $IKEp182 и $IKEp217 было потрачено 4 и 6 минут соответственно.

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

Опубликованный метод взлома SIKE основан на предложенной в 2016 году адаптивной атаке GPST (Galbraith-Petit-Shani-Ti) на суперсингулярные изогенные механизмы инкапсуляции ключей и использует существование небольшого нескалярного эндоморфизма в начале кривой, подкрепляемого дополнительными сведениями о точке кручения, передаваемыми агентами, взаимодействующими в процессе работы протокола.

  1. OpenNews: NIST утвердил алгоритмы шифрования, устойчивые к квантовым вычислениям
  2. OpenNews: Рассчитаны параметры квантового компьютера для взлома ключей, используемых в Bitcoin
  3. OpenNews: Предложен метод определения коллизий в SHA-1, пригодный для атаки на PGP
  4. OpenNews: NIST и RSA отзывают ранее стандартизованный Dual EC DRBG из-за возможного бэкдора
  5. OpenNews: Hertzbleed - новое семейство атак по сторонним каналам, затрагивающее современные CPU
Обсуждение (180 +41) | Тип: Проблемы безопасности |
·03.08.2022 Выпуск языка программирования Go 1.19 (153 +25)
  Представлен релиз языка программирования Go 1.19, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD.

Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно, без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.

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

Среди изменений в новом выпуске:

  • Проведена работа по оттачиванию добавленной в прошлом выпуске поддержки обобщённых функций и типов (дженериков), при помощи которых разработчик может определить и использовать функции, предназначенные для работы сразу с несколькими типами. Проведена оптимизация - производительность некоторых программ, использующих дженерики, выросла на 20%.
  • В документирующих комментариях добавлена поддержка ссылок, списков и более простого синтаксиса определения заголовков. В утилите gofmt обеспечено форматирование с учётом расширенных возможностей комментариев с документацией на API.
  • Пересмотрена модель памяти для языка Go, которая приведена в соответствие с моделями языков C, C++, Java, JavaScript, Rust и Swift, не поддерживающих последовательные согласованные атомарные значения. Для упрощения использования атомарных значений в пакете sync/atomic предложены новые типы, такие как atomic.Int64 и atomic.Pointer[T]. Изменение модели памяти не повлияло на совместимость с ранее написанным кодом.
  • С целью усиления защиты модуль os/exec теперь не учитывает относительные пути при раскрытии переменной окружения PATH (например, при определении пути для исполняемого файла теперь не проверяется текущий каталог).
  • В сборщике мусора появилась возможность определения мягких ограничений памяти (soft limit), которые применяются путём ограничения размера кучи и более агрессивного возвращения памяти системе, т.е. не гарантируется, что потребление будет находится в заданных рамках в любых условиях. Мягкие ограничения могут быть полезны для оптимизации программ, запускаемых в контейнерах с фиксированным размером памяти.
  • Добавлено новое сборочное ограничение "unix", которое может применяться в строках "go:build" для отсеивания Unix-подобных систем (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris).
  • Реализованы многочисленные оптимизации производительности. Добавлена поддержка динамической установки размера стека сопрограмм для сокращения размера копируемых данных. На Unix-системах реализовано автоматическое задействование дополнительных файловых дескрипторов (увеличение лимита RLIMIT_NOFILE). Для ускорения больших switch-выражений на системах x86-64 и ARM64 задействованы таблицы переходов (jump table), позволяющие обрабатывать большие switch-выражений до 20% быстрее. На системах riscv64 реализована передача аргументов функций через регистры CPU, что позволило добиться прироста производительности примерно на 10%.
  • Добавлена экспериментальная поддержка Linux-окружений на системах с процессорами Loongson на базе 64-разрядной архитектуры LoongArch (GOARCH=loong64).

  1. OpenNews: Выпуск языка программирования Go 1.18
  2. OpenNews: Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
  3. OpenNews: Уязвимости в системе загрузки модулей для языка Go
  4. OpenNews: Атака Trojan Source для внедрения изменений в код, незаметных для разработчика
  5. OpenNews: Обновление рейтинга библиотек, требующих особой проверки безопасности
Обсуждение (153 +25) | Тип: Программы |
·02.08.2022 Выпуск системной библиотеки Glibc 2.36 (71 +19)
  После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.36, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 59 разработчиков.

Из реализованных в Glibc 2.36 улучшений можно отметить:

  • Добавлена поддержка нового формата относительных перемещений адресов DT_RELR (relative relocation), позволяющего сократить размер относительных перемещений в разделяемых объектах и исполняемых файлах, скомпонованных в режиме с PIE (Position-independent executables). Для использования поля DT_RELR в ELF-файлах необходима поддержка опции "-z pack-relative-relocs" в компоновщике, появившаяся в выпуске набора binutils 2.38.
  • Для платформы Linux реализованы функции pidfd_open, pidfd_getfd и pidfd_send_signal, предоставляющие доступ к функциональности pidfd, помогающей обрабатывать ситуации с повторным использованием PID для более точной идентификации процессов, обращающихся к отслеживаемым файлам (pidfd связывается с конкретным процессом и не меняется, в то время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID).
  • Для платформы Linux добавлена функция process_madvise(), позволяющая одному процессу выполнить системный вызов madvise() от имени другого процесса, идентифицируя целевой процесс при помощи pidfd. Через madvise() можно информировать ядро об особенностях работы с памятью для оптимизации управления памятью процесса, например, на основе переданной информации ядро может инициировать высвобождение дополнительной свободной памяти. Вызов madvise() другим процессом может потребоваться в ситуации, когда информация, необходимая для оптимизации, неизвестна текущему процессу, а координируется отдельным фоновым управляющим процессом, который самостоятельно может инициировать изъятие у процессов неиспользуемой памяти.
  • Для платформы Linux добавлена функция process_mrelease(), позволяющая ускорить освобождение памяти процесса, завершающего своё выполнение. В обычных условиях освобождение ресурсов и завершение процесса выполняется не мгновенно и по разным причинам может задерживаться, что мешает работе функционирующих в пространстве пользователя систем раннего реагирования на нехватку памяти, таких как oomd (предоставляется в systemd). При помощи вызова process_mrelease подобные системы могут более предсказуемо инициировать возвращение памяти от принудительно завершаемых процессов.
  • Во встроенную реализацию DNS-резолвера добавлена поддержка опции "no-aaaa", позволяющей для упрощения диагностики проблем отключить отправку DNS-запросов записей AAAA (определение адреса IPv6 по имени хоста), в том числе при выполнении NSS-функций, подобных getaddrinfo(). Опция не влияет на обработку привязок IPv6-адресов, определённых в /etc/hosts и вызовы getaddrinfo() с флагом AI_PASSIVE.
  • Для платформы Linux добавлены функции fsopen, fsmount, move_mount, fsconfig, fspick, open_tree и mount_setattr, предоставляющие доступ к новому API ядра для управления монтированием файловых систем с учётом пространств имён точек монтирования (mount namespaces). Предложенные функции позволяют раздельно обработать разные стадии монтирования (обработать суперблок, получить информацию об ФС, примонтировать, прикрепить к точке монтирования), которые ранее выполнялись при помощи общей функции mount(). Раздельные функции дают возможность выполнять более сложные сценарии монтирования и отдельно выполнять такие операции, как перенастройка суперблока, включение опций, изменение точки монтирования и перенос в другое пространство имён. Кроме того, раздельная обработка позволяет точно определять причины вывода кодов ошибок и задавать несколько источников для многослойных ФС, таких как overlayfs.
  • В localedef реализована поддержка обработки файлов с определениями локалей, поставляемых в кодировке UTF-8 вместо ASCII.
  • Добавлены функции для преобразования многобайтовых кодировок mbrtoc8 и c8rtomb, соответствующие спецификациям ISO C2X N2653 и C++20 P0482R6.
  • Добавлена поддержка типа char8_t, определённого в черновике стандарта ISO C2X N2653.
  • Добавлены функции arc4random, arc4random_buf и arc4random_uniform, предоставляющие обвязки над системным вызовом getrandom и интерфейсом /dev/urandom, возвращающие псевдослучайные числа высокого качества.
  • При работе на платформе Linux реализована поддержка архитектуры набора команд LoongArch, применяемой в процессорах Loongson 3 5000 и реализующей новый RISC ISA, похожий на MIPS и RISC-V. В текущем виде доступна только поддержка 64-разрядного варианта LoongArch (LA64). Для работы требуется наличие как минимум версий binutils 2.38, GCC 12 и ядра Linux 5.19.
  • Объявлен устаревшим и будет удалён в следующем выпуске механизм prelink, а также связанные с ним переменные окружения LD_TRACE_PRELINKING и LD_USE_LOAD_BIAS и возможности компоновщика.
  • Удалён код для проверки версии ядра Linux и обработки переменной окружения LD_ASSUME_KERNEL. Минимально поддерживаемая при сборке Glibc версия ядра определяется через ELF-поле NT_GNU_ABI_TAG.
  • На платформе Linux прекращена поддержка переменной окружения LD_LIBRARY_VERSION.

  1. OpenNews: Выпуск системной библиотеки Glibc 2.35
  2. OpenNews: Уязвимость в Glibc, позволяющая вызвать крах чужого процесса
  3. OpenNews: Проект Glibc отменил обязательную передачу прав на код Фонду СПО
  4. OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.5
  5. OpenNews: Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6
Обсуждение (71 +19) | Тип: Программы |
·01.08.2022 Релиз ядра Linux 5.19 (355 +49)
  После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.19. Среди наиболее заметных изменений: поддержка процессорной архитектуры LoongArch, интеграция патчей "BIG TCP", режим "on-demand" в fscache, удаление кода для поддержки формата a.out, возможность применения ZSTD для сжатия прошивок, интерфейс для управления вытеснением памяти из пространства пользователя, повышение надёжности и производительности генератора псевдослучайных чисел, поддержка расширений Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) и ARM SME (Scalable Matrix Extension).

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

Также Линус упомянул, что использовал для формирования релиза ноутбук Apple на базе архитектуры ARM64 (Apple Silicon) с Linux-окружением на базе дистрибутива Asahi Linux. Это не основная рабочая станция Линуса, но он использовал данную платформу, чтобы проверить её пригодность для работы над ядром и быть уверенным в том, что сможет формировать выпуски ядра в поездке, имея под рукой лёгкий ноутбук. До этого много лет назад Линус имел опыт использования оборудования Apple для разработки - когда-то он пользовался компьютером на базе CPU ppc970 и ноутбуком Macbook Air.

В новую версию принято 16401 исправлений от 2190 разработчиков (в прошлом выпуске было 16206 исправлений от 2127 разработчиков), размер патча - 90 МБ (изменения затронули 13847 файлов, добавлено 1149456 строк кода, удалено 349177 строк). Около 39% всех представленных в 5.19 изменений связаны с драйверами устройств, примерно 21% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 11% связано с сетевым стеком, 4% - с файловыми системами и 3% c внутренними подсистемами ядра.

Основные новшества в ядре 5.19:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • Файловая система EROFS (Enhanced Read-Only File System), предназначенная для использования на разделах, доступных в режиме только для чтения, переведена на использование подсистемы fscache, обеспечивающей кэширование данных. Изменение позволило заметно поднять производительность систем, в которых из образа на базе EROFS запускается большое число контейнеров.
    • В подсистему fscache добавлен режим чтения по требованию ("on-demand"), который задействован для оптимизации EROFS. Новый режим позволяет организовать кэширование чтения из образов ФС, находящихся в локальной системе. В отличие от изначально доступного режима работы, ориентированного на кэширования в локальной файловой системе данных, передаваемых через сетевые файловые системы, режим "on-demand" делегирует функции извлечения данных и их записи в кэш отдельному фоновому процессу, выполняемому в пространстве пользователя.
    • В XFS обеспечена возможность хранения миллиардов расширенных атрибутов в i-node. Максимальное количество экстентов для одного файла увеличено с 4 миллиардов до 247. Реализован режим для атомарного обновления сразу нескольких расширенных атрибутов файла.
    • В файловой системе Btrfs оптимизирована работа с блокировками, что позволило добиться увеличения производительности примерно на 7% при прямой записи в режиме nowait. Производительность операций в режиме NOCOW (без copy-on-write) повышена приблизительно на 3%. Снижена нагрузка на страничный кэш при работе команды "send". Минимальный размер подстраниц снижен с 64К до 4K (можно использовать подстраницы размером меньше страниц ядра). Осуществлён переход с использования базисного дерева (radix tree) на алгоритм XArrays.
    • В NFS-сервер добавлен режим продления сохранения состояния блокировки, выставленной клиентом, который перестал отвечать на запросы. Новый режим позволяет задержать очистку блокировки вплоть до суток, если другой клиент не запросит конкурирующую блокировку. В штатном режиме блокировка очищается через 90 секунд после того как клиент перестал отвечать.
    • В подсистеме отслеживания событий в ФС fanotify реализован флаг FAN_MARK_EVICTABLE, при помощи которого можно отключить закрепление целевых i-node в кэше, например, для игнорирования подветок без закрепления их частей в кэше.
    • В драйвер для ФС FAT32 добавлена поддержка получения сведений о времени создания файла через системный вызов statx c реализацией более эффективного и функционального варианта stat(), возвращающего расширенную информацию о файле.
    • Внесены значительные оптимизации в драйвер exFAT, связанные с обеспечением одновременной очистки группы секторов при активном режиме 'dirsync', вместо последовательной посекторной очистки. За счёт сокращения числа запросов блоков после внесения оптимизации производительность создания большого числа каталогов на SD-карте возросла более чем на 73-85% в зависимости от размера кластера.
    • В состав ядра включено первое корректирующее обновление драйвера ntfs3. С момента включения ntfs3 в состав ядра 5.15 в октябре прошлого года драйвер не обновлялся, а с разработчиками была потеряна связь, но теперь разработчики возобновили публикацию изменений. В предложенных патчах устранены ошибки, приводящие к утечкам памяти и аварийным завершениям, решены проблемы с выполнением xfstests, проведена чистка неиспользуемого кода и исправлены опечатки.
    • Для OverlayFS реализована возможность маппинга идентификаторов пользователей примонтированных файловых систем, применяемого для сопоставления файлов определённого пользователя на примонтированном чужом разделе с другим пользователем в текущей системе.
  • Память и системные сервисы
    • Добавлена начальная поддержка архитектуры набора команд LoongArch, применяемой в процессорах Loongson 3 5000 и реализующей новый RISC ISA, похожий на MIPS и RISC-V. Архитектура LoongArch доступна в трёх вариантах: урезанный 32-разрядный (LA32R), обычный 32-разрядный (LA32S) и 64-разрядный (LA64).
    • Удалён код для поддержки формата исполняемых файлов a.out, который был переведён в разряд устаревших в выпуске 5.1. Формат a.out давно не применяется на системах с Linux, а генерация файлов a.out не поддерживается современными инструментальными средствами в конфигурациях для Linux по умолчанию. Загрузчик для a.out файлов может быть реализован целиком в пространстве пользователя.
    • Прекращена поддержка загрузочных опций, специфичных для архитектуры x86: nosep, nosmap, nosmep, noexec и noclflush).
    • Прекращена поддержка устаревшей архитектуры CPU h8300 (Renesas H8/300), давно оставшейся без сопровождения.
    • Расширены возможности, связанные с реагированием на выявление расщеплённых блокировок ("split lock"), возникающих при доступе к невыровненным данным в памяти из-за того, что при выполнении атомарной инструкции данные пересекают две линии кеша CPU. Подобные блокировки приводят к значительному падению производительности. Если ранее по умолчанию ядро выдавало предупреждение с информацией о вызвавшем блокировку процессе, то теперь проблемный процесс дополнительно будет замедлен, чтобы сохранить производительность остальной системы.
    • Добавлена поддержка реализованного в процессорах Intel механизма IFS (In-Field Scan), позволяющего запускать низкоуровневые диагностические тесты CPU, способные выявлять проблемы, не определяемые штатными средствами на основе кодов коррекции ошибок (ECC) или битов чётности. Выполняемые тесты оформляются в форме загружаемой прошивки, оформленной по аналогии с обновлениями микрокода. Результаты тестирования доступны через sysfs.
    • Добавлена возможность встраивания в ядро файла bootconfig, позволяющего помимо опций командной строки определять параметры работы ядра через файл с настройками. Встраивание осуществляется при помощи сборочной опции 'CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"'. Ранее bootconfig определялся через прикрепление к образу initrd. Встраивание в ядре позволяет использовать bootconfig в конфигурациях без initrd.
    • Реализована возможность загрузки прошивок, сжатых использованием алгоритма Zstandard. В sysfs добавлен набор управляющих файлов /sys/class/firmware/*, позволяющий инициировать загрузку прошивок из пространства пользователя.
    • В интерфейсе асинхронного ввода/вывода io_uring предложен новый флаг IORING_RECVSEND_POLL_FIRST, при выставлении которого сетевая операция вначале будет передана для обработки с использованием полинга (polling), что может сэкономить ресурсы в ситуациях, когда допустима обработка операции с некоторой задержкой. В io_uring также добавлена поддержка системного вызова socket(), предложены новые флаги для упрощения управления файловыми дескрипторами, добавлен режим "multi-shot" для приёма в вызове accept() разом нескольких соединений, добавлены операции для проброса команд NVMe напрямую в устройство.
    • Для архитектуры Xtensa обеспечена поддержка отладочного инструмента KCSAN (Kernel Concurrency Sanitizer), предназначенного для динамического выявления состояний гонки внутри ядра. Также добавлена поддержка спящего режима и сопроцессоров.
    • Для архитектуры m68k (Motorola 68000) реализована виртуальная машина (симулятор платформы), основанная на эмуляторе Android Goldfish.
    • Для архитектуры AArch64 реализована поддержка расширений Armv9-A SME (Scalable Matrix Extension).
    • В подсистеме eBPF разрешено хранения типизированных указателей в map-структурах, а также добавлена поддержка динамических указателей.
    • Предложен новый упреждающий механизм вытеснения памяти, поддерживающий управление из пространства пользователя при помощи файла memory.reclaim. Запись числа в указанный файл приведёт к попытке вытеснения соответствующего числа байт из набора, связанного с cgroup.
    • Повышена точность учёта использования памяти при сжатии данных в разделе подкачки при помощи механизма zswap.
    • Для архитектуры RISC-V обеспечена поддержка запуска 32-разрядных исполняемых файлов на 64-разрядных системах, добавлен режим для привязки ограничивающих атрибутов к страницам памяти (например, для запрета кэширования) и реализована функция kexec_file_load().
    • Реализация поддержки 32-разрядых систем Armv4T и Armv5 адаптирована для использования в универсальных многоплатформенных сборках ядра, подходящих для разных ARM-систем.
  • Виртуализация и безопасность
    • В подсистеме EFI реализована возможность конфиденциальной передачи гостевым системам секретной информации без её раскрытия хост-системе. Данные предоставляются через каталог security/coco в securityfs.
    • В режиме защиты Lockdown, который ограничивает доступ пользователя root к ядру и блокирует пути обхода UEFI Secure Boot, устранена лазейка, позволявшая обходить защиту через манипуляции с отладчиком ядра.
    • Включены патчи, нацеленные на повышение надёжности и производительности генератора псевдослучайных чисел.
    • При сборке при помощи Clang 15 реализована поддержка механизма рандомизации структур ядра.
    • В механизм Landlock, позволяющий ограничить взаимодействие группы процессов с внешним окружением, предоставлена поддержка правил, позволяющих контролировать выполнение операций переименования файлов.
    • Подсистема IMA (Integrity Measurement Architecture), предназначенная для проверки целостности компонентов операционной системы по цифровым подписям и хэшам, переведена на использование модуля fs-verity для верификации файлов.
    • Изменена логика действий при отключении непривилегированного доступа к подсистеме eBPF - ранее отключались все команды, связанные с системным вызовом bpf(), а начиная с версии 5.19 оставлен доступ к командам, которые не приводят к созданию объектов. При подобном поведении для загрузки BPF-программы требуется привилегированный процесс, но затем непривилегированные процессы могут взаимодействовать с этой программой.
    • Добавлена поддержка расширения AMD SEV-SNP (Secure Nested Paging), обеспечивающего безопасную работу с вложенными таблицами страниц памяти и защищающего от атак "undeSErVed" и "SEVerity" на процессоры AMD EPYC, позволяющих обойти механизм защиты AMD SEV (Secure Encrypted Virtualization).
    • Добавлена поддержка механизма Intel TDX (Trusted Domain Extensions), позволяющий блокировать попытки стороннего доступа к зашифрованной памяти виртуальных машин.
    • В драйвер virtio-blk, используемый для эмуляции блочных устройств, добавлена поддержка ввода/вывода с использованием полинга (polling), что по проведённым тестам позволило сократить задержки примерно на 10%.
  • Сетевая подсистема
    • В состав включена серия патчей BIG TCP позволяющих увеличить максимальный размер пакета TCP-пакета до 4ГБ для оптимизации работы высокоскоростных внутренних сетей дата-центров. Подобное увеличение размера пакета при 16-битном размере поля в заголовке достигается через реализацию "jumbo"-пакетов, размер в IP-заголовке которых выставляется в 0, а фактический размер передаётся в отдельном 32-разрядном поле в отдельном прикреплённом заголовке. При тестировании производительности выставление размера пакета в 185 КБ позволило увеличить пропускную способность на 50% и значительно сократить задержки передачи данных.
    • Продолжена работа по интеграции в сетевой стек средств для отслеживания причин отбрасывания пакетов (коды reason). Код причины передаётся во время освобождения памяти, связанной с пакетом, и позволяет учитывать такие ситуации, как отбрасывание пакета из-за ошибок заполнения полей в заголовке, выявление спуфинга фильтром rp_filter, неверная контрольная сумма, нехватка памяти, срабатывание правил IPSec XFRM, неверный номер последовательности TCP и т.п.
    • Добавлена поддержка отката соединений MPTCP (MultiPath TCP) на использование обычного TCP, в ситуациях, когда определённые возможности MPTCP не могут быть использованы. MPTCP представляет собой расширения протокола TCP для организации работы TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP-адресам. Добавлен API для управления потоками MPTCP из пространства пользователя.
  • Оборудование
    • Добавлено более 420 тысяч строк кода, связанных с драйвером amdgpu, из которых около 400 тысяч строк приходится на автоматически сгенерированные заголовочные файлы с данными для регистров ASIC в драйвере для GPU AMD, а ещё 22.5 тысяч строк обеспечивают начальную реализацию поддержки AMD SoC21. Общий размер драйвера для GPU AMD превысил 4 млн строк кода. Кроме SoC21 в драйвере AMD включена поддержка SMU 13.x (System Management Unit), обновлена поддержка USB-C и GPUVM, проведена подготовка к поддержке следующих поколений платформ RDNA3 (RX 7000) и CDNA (AMD Instinct).
    • В драйвере i915 (Intel) расширены возможности, связанные с управлением энергопотреблением. Добавлены идентификаторы GPU Intel DG2 (Arc Alchemist), используемых на ноутбуках, обеспечена начальная поддержка платформы Intel Raptor Lake-P (RPL-P), добавлена информация о графических картах Arctic Sound-M), реализован ABI для вычислительных движков, для карт DG2 добавлена поддержка формата Tile4, для систем на базе микроархитектуры Haswell реализована поддержка DisplayPort HDR.
    • В драйвере Nouveau осуществлён переход на использование обработчика drm_gem_plane_helper_prepare_fb, для некоторых структур и переменных применено статическое выделение памяти. Что касается использования в Nouveau открытых компанией NVIDIA исходных текстов модулей ядра, то работа пока сводится к выявлению и устранению ошибок. В дальнейшем опубликованную прошивку планируется использовать для повышения производительности драйвера.
    • Добавлен драйвер для контроллера NVMe, используемого в компьютерах Apple на базе чипа M1.

Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 5.19 - Linux-libre 5.19-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске проведена чистка драйверов для pureLiFi X/XL/XC и TI AMx3 Wkup-M3 IPC. Обновлён код чистки блобов в драйверах и подсистемах Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu drivers. Реализована обработка devicetree-файлов Qualcomm AArch64. Добавлена поддержка новой схемы наименования компонентов Sound Open Firmware. Прекращена чистка драйвера ATM Ambassador, удалённого из ядра. Управление чисткой блобов в HDCP и Mellanox Core перенесено в отдельные теги kconfig.

  1. OpenNews: Релиз ядра Linux 5.18
  2. OpenNews: Релиз ядра Linux 5.17
  3. OpenNews: Релиз ядра Linux 5.16
  4. OpenNews: Релиз ядра Linux 5.15
  5. OpenNews: Релиз ядра Linux 5.14
Обсуждение (355 +49) | Тип: Программы | Интересно
·31.07.2022 Релиз дистрибутива Linux Mint 21 (228 +29)
  Представлен релиз дистрибутива Linux Mint 21, перешедший на пакетную базу Ubuntu 22.04 LTS. Дистрибутив полностью совместим с Ubuntu, но существенно отличается подходом к организации интерфейса пользователя и подбором используемых по умолчанию приложений. Разработчики Linux Mint предоставляют десктоп-окружение, соответствующее классическим канонам организации рабочего стола, которое является более привычным для пользователей, не принимающих новые методы построения интерфейса GNOME 3. Для загрузки доступны DVD-сборки на базе оболочек MATE 1.26 (2 ГБ), Cinnamon 5.4 (2 ГБ) и Xfce 4.16 (2 ГБ). Linux Mint 21 отнесён к выпускам с длительным сроком поддержи (LTS), обновления для которого будут формироваться до 2027 года.

Основные изменения в Linux Mint 21 (MATE, Cinnamon, Xfce):

  • В состав включён новый выпуск десктоп-окружения Cinnamon 5.4, оформление и организация работы в котором продолжает развитие идей GNOME 2 - пользователю предлагается рабочий стол и панель с меню, областью быстрого запуска, перечнем открытых окон и системным лотком с запущенными апплетами. Cinnamon основан на GTK и технологиях GNOME 3. Проект развивает оболочку GNOME Shell и оконный менеджер Mutter в направлении предоставления окружения в стиле GNOME 2 с более современным оформлением и задействованием элементов из GNOME Shell, дополняющих средства классического десктопа. Редакции с рабочими столами Xfce и MATE поставляются с Xfce 4.16 и MATE 1.26.

    Оконный менеджер Muffin переведён на свежую кодовую базу оконного менеджера Metacity 3.36, развиваемого проектом GNOME. Изначально 11 лет назад Muffin был ответвлён от Mutter 3.2 и с тех пор развивался параллельно. Так как кодовые базы Muffin и Mutter за это время достаточно сильно разошлись и переносить изменения и исправления становится всё труднее, решено перевести Muffin на более актуальную кодовую базу Metacity, приблизив его состояние к upstream. Переход потребовал значительной внутренней переработки, многие возможности пришлось перенести в Cinnamon, а часть отбросить. Специфичные для Metacity изменение перенесены в конфигуратор экрана из gnome-control-center, а операции настойки, ранее обрабатываемые в csd-xrandr, перенесены в Muffin.

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

    С версии 1.66.2 до 1.70 обновлён используемый проектом интерпретатор JavaScript (GJS). Упрощена привязка действий при подведении курсора к углам экрана (hotcorner). Улучшена поддержка нецелых значений при масштабировании. В фоновом процессе управления настройками улучшена поддержка протокола MPRIS.

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

  • Для настройки Bluetooth-соединений вместо Blueberry, надстройки над GNOME Bluetooth, предложен интерфейс на базе Blueman, GTK-приложения, использующего стек Bluez. Blueman задействован для всех поставляемых рабочих столов и предоставляет более функциональный индикатор в системном лотке и конфигуратор, поддерживающий символьные пиктограммы. По сравнению с Blueberry в Blueman лучше поддерживается работа с беспроводными наушниками и звуковыми устройствами, предоставляются расширенные возможности мониторинга и диагностики.
  • Добавлено новое приложение xapp-thumbnailers, обеспечивающее генерацию миниатюр для различных типов контента. По сравнению с прошлыми выпусками в xapp-thumbnailers обеспечено формирование миниатюр для файлов в форматах AppImage, ePub, MP3 (показывается обложка альбома), Webp и форматов RAW-изображений.
  • Расширены возможности приложения для ведения заметок (Sticky Notes). Добавлена возможность дублирования заметок. При использовании разных цветов для новых заметок цвета теперь выбираются не случайно, а цикличным перебором для исключения повторов. Изменено оформление пиктограммы в системном лотке. Выбор позиции новых заметок теперь осуществляется относительно родительской заметки.
  • Реализована система мониторинга запуска фоновых процессов, показывающая в системном лотке специальный индикатор во время выполнения автоматизированных работ, которые могут негативно влиять на производительность. Например, при помощи нового индикатора пользователь информируется о выполнении фоновой загрузки и установки обновлений или создании снапшотов в файловой системе.
  • Продолжено усовершенствование приложений, развиваемых в рамках инициативы X-Apps, нацеленной на унификацию программного окружения в редакциях Linux Mint на базе разных рабочих столов. В приложениях X-Apps применены современные технологии (GTK3 для поддержки HiDPI, gsettings и т.п.), но сохранены традиционные элементы интерфейса, такие как панель инструментов и меню. Среди таких приложений: текстовый редактор Xed, менеджер фотографий Pix, просмотрщик документов Xreader, просмотрщик изображений Xviewer.
  • На платформу X-Apps переведено приложение Timeshift, предназначенное для создания срезов состояния системы с возможностью их последующего восстановления. В режиме rsync обеспечен расчёт дискового пространства, необходимого для размещения снапшота, и отмена операции, если после создания снапшота остаётся менее 1 ГБ свободного места.
  • В просмотрщик изображений Xviewer добавлена поддержка формата Webp. Улучшена навигация по каталогам. При удерживании клавиш управления курсором реализован показ изображений в форме слайд-шоу, с достаточной задержкой, чтобы рассмотреть каждое изображение.
  • В утилите Warpinator, предназначенной для шифрованного обмена файлами между двумя компьютерами в локальной сети, в случае если устройства для обмена не найдены, теперь предлагаются ссылки на альтернативные механизмы для Windows, Android и iOS.
  • Улучшен интерфейс пользователя программы Thingy, предназначенной для переименования файлов в пакетном режиме.
  • В менеджер web-приложений (WebApp) добавлена поддержка дополнительных браузеров и параметров.
  • Улучшена поддержка вывода на печать и сканирования документов с использованием протокола IPP, не требующего установки драйверов. Пакет HPLIP обновлён до версии 3.21.12 с поддержкой новых принтеров и сканеров HP. Для отключения режима работы без драйверов достаточно удалить пакеты ipp-usb и sane-airscan, после чего можно установить классические драйверы для сканеров и принтеров, предоставляемые производителем.
  • В интерфейсе выбора источников установки приложений, в списках репозиториев, PPA и ключей разрешён выбор одновременно нескольких элементов.
  • При удалении приложения из основного меню (кнопка uninstall в контекстном меню) теперь учитывается использование приложения в числе зависимостей (если другие программы зависят от удаляемого приложения возвращается ошибка). Кроме того, при удалении теперь удаляются связанные с приложением зависимости, которые были установлены автоматически и не используются в других пакетах.
  • При переключении графической карты через апплет NVIDIA Prime, переключатель теперь остаётся видимым и позволяет сразу отменить выполненное действие.
  • В темах оформления Mint-Y и Mint-X добавлена начальная поддержка GTK4. Изменено оформление темы Mint-X, которая теперь собирается с использованием языка SASS и поддерживает приложения, использующие тёмный режим.

  1. OpenNews: Выпуск десктоп-окружения Cinnamon 5.4
  2. OpenNews: Релиз дистрибутива Ubuntu 22.04 LTS
  3. OpenNews: Релиз дистрибутива Linux Mint 20.3
  4. OpenNews: Выпуск дистрибутива Linux Mint Debian Edition 5
  5. OpenNews: Релиз десктоп-окружения MATE 1.26, форка GNOME 2
Обсуждение (228 +29) | Тип: Программы |
·31.07.2022 Организация прослушивания через проходящий в помещении оптический кабель (131 +44)
  Группа исследователей из университета Цинхуа (Китай) разработала технику прослушивания разговоров в помещении, в котором проходит оптический кабель, например, используемый для подключения к интернету. Звуковые колебания создают перепады давления воздуха, из-за которых возникают микровибрации в оптическом кабеле, модулируемые с передаваемой по кабелю световой волной. Возникающие искажения можно проанализировать на достаточно большом расстоянии при помощи лазерного интерферометра Маха-Цендера.

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

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

В качестве мер для противодействия прослушиванию называется сокращение длины находящегося в помещении оптического кабеля и размещение кабеля в жёстких кабель-каналах. Для снижения эффективности прослушивания также можно использовать при подключении наклонные оптические разъёмы APC (Angled Physical Connect) вместо коннекторов с плоским торцом (PC). Для производителей оптических кабелей рекомендовано использовать в качестве покрытия оптоволокна материалы с высоким модулем упругости, такие как металл и стекло.

  1. OpenNews: Представлена техника воссоздания речи по вибрации предметов на видеозаписи
  2. OpenNews: Плачевная ситуация с безопасностью спутникового интернета
  3. OpenNews: Техника скрытой передачи данных через изменение яркости LCD-экрана
  4. OpenNews: Техника воссоздания речи через анализ вибрации лампы в подвесном светильнике
  5. OpenNews: Техника скрытой передачи данных через генерацию чипами памяти сигнала, улавливаемого по Wi-Fi
Обсуждение (131 +44) | Тип: Проблемы безопасности |
·29.07.2022 Выпуск реляционно-графовой СУБД EdgeDB 2.0 (48 +11)
  Представлен релиз СУБД EdgeDB 2.0, реализующей реляционно-графовую модель данных и язык запросов EdgeQL, оптимизированные для работы со сложными иерархическими данными. Код написан на языках Python и Rust (парсер и критичные к производительности части) и распространяется под лицензией Apache 2.0. Проект развивается в форме надстройки над PostgreSQL. Клиентские библиотеки подготовлены для языков Python, Go, Rust и TypeScript/Javascript. Предоставляется инструментарий командной строки для управления СУБД и интерактивного выполнения запросов (REPL).

Вместо модели данных на основе таблиц в EdgeDB применяется декларативная система на основе объектных типов. Вместо внешних ключей (foreign key) для определения связи между типами применяется связывание ссылками (один объект может использоваться как свойство другого объекта).


   type Person {
     required property name -> str;
   }
   type Movie {
     required property title -> str;
     multi link actors -> Person;
   }

Для ускорения обработки запросов могут применяться индексы. Поддерживаются также такие возможности как строгая типизация свойств, ограничения значений свойств, вычисляемые свойства и хранимые процедуры. Из особенностей объектной схемы хранения EdgeDB, которая чем-то напоминает ORM, отмечается возможность смешивания схем, связывания свойств из разных объектов и интегрированная поддержка JSON.

Предоставляются встроенные инструменты для миграции схемы хранения - после изменения схемы, задаваемой в отдельном esdl-файле, достаточно выполнить команду "edgedb migration create" и СУБД проанализирует различия в схеме и в интерактивном режиме сгенерирует скрипт для перехода на новую схему. Автоматически отслеживается история изменения схемы.

Для формирования запросов поддерживается как язык запросов GraphQL, так и собственный язык EdgeDB, представляющий собой адаптацию SQL для иерархических данных. Вместо списков результаты запроса оформляются в структурированном виде, а вместо подзапросов и операций JOIN предоставляется возможность указания одного запроса EdgeQL в качестве выражения внутри другого запроса. Поддерживаются транзакции и циклы.


   select Movie {
     title,
     actors: {
       name
     }
   }
   filter .title = "The Matrix"

   insert Movie {
     title := "The Matrix Resurrections",
     actors := (
       select Person
       filter .name in {
         'Keanu Reeves',
         'Carrie-Anne Moss',
         'Laurence Fishburne'
       }
     )
   }

   for number in {0, 1, 2, 3}
   union (
     select { number, number + 0.5 }
   );

В новой версии:

  • Добавлен встроенный web-интерфейс для администрирования БД, позволяющий просматривать и редактировать данные, выполнять запросы EdgeQL и анализировать применяемую схему хранения. Интерфейс запускается командой "edgedb ui", после выполнения которой становится доступен при обращении к localhost.
  • Реализовано выражение "GROUP", позволяющее секционировать и агрегировать данные и выполнять группировку данных по произвольным выражениям EdgeQL по аналогии с группировкой в операции SELECT.
  • Возможность управления доступом на уровне объектов. Правила доступа определяются на уровне схемы хранения и позволяют ограничить возможность использования определённого набора объектов в операциях выборки, вставки, удаления и обновления. Например, можно добавить правило, разрешающее обновление публикации только автору.
  • Добавлена возможность использования глобальных переменных в схеме хранения. Для привязки к пользователю предложена новая глобальная переменная current_user.
  • Добавлена поддержка типов, определяющих диапазоны значений (range).
  • Подготовлена официальная клиентская библиотека для языка Rust.
  • Стабилизирован бинарный протокол EdgeDB, в котором появилась возможность обработки одновременно нескольких разных сеансов в рамках одного сетевого соединения, проброса через HTTP, использования глобальных переменных и локальных состояний.
  • Добавлена поддержка активации по сокету, позволяющая не держать серверный обработчик в памяти и запускать его только при попытке установки соединения (полезно для экономии ресурсов на системах разработчиков).

  1. OpenNews: Для PostgreSQL подготовлено дополнение AGE для хранения данных в форме графа
  2. OpenNews: Компания Alibaba открыла код распределённой СУБД PolarDB, основанной на PostgreSQL
  3. OpenNews: Выпуск СУБД Tarantool 2.8
  4. OpenNews: Выпуск FerretDB 0.3, реализации MongoDB на базе СУБД PostgreSQL
  5. OpenNews: Выпуск графо-ориентированной СУБД Nebula Graph 3.2
Обсуждение (48 +11) | Тип: Программы |
Следующая страница (раньше) >>



Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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