Сообщество - Проект OpenNet

Проект OpenNet

17 постов 149 подписчиков
86

Сбои в системах сборки из-за изменения контрольных сумм архивов в GitHub

Сбои в системах сборки из-за изменения контрольных сумм архивов в GitHub Технологии, Github, Microsoft

GitHub изменил метод формирования автоматически генерируемых архивов ".tar.gz" и ".tgz" на страницах с релизами, что привело к изменению их контрольных сумм и массовым сбоям в автоматизированных системах сборки, которые для подтверждения целостности осуществляют сверку загружаемых с GitHub архивов с ранее сохранёнными контрольными суммами, например, размещёнными в метаданных пакетов или в сборочных сценариях.

Начиная с выпуска 2.38 в инструментарии Git была включена по умолчанию встроенная реализация gzip, которая позволяла унифицировать поддержку данного метода сжатия в разных операционных системах и повысить производительность создания архивов. GitHub подхватил изменение после обновления версии git в своей инфраструктуре. Проблему вызвало то, что сжатые архивы, генерируемые встроенной реализацией gzip на базе zlib, бинарно отличаются от архивов, созданных утилитой gzip, что привело к отличию контрольных сумм для архивов, созданных разными версиями git при выполнении команды "git archive".

Соответственно, после обновления git в GitHub на страницах релизов стали отдаваться немного другие архивы, не проходящие проверку по старым контрольным суммам. Проблема проявилась в различных сборочных системах, системах непрерывной интеграции и в инструментариях сборки пакетов из исходных текстов. Например, нарушилась сборка около 5800 портов FreeBSD, исходные тексты для которых загружались из GitHub.

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

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

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

Показать полностью
13

Выпуск OpenSSH 9.2 с устранением уязвимости, проявляющейся на этапе до аутентификации

Выпуск OpenSSH 9.2 с устранением уязвимости, проявляющейся на этапе до аутентификации Ssh, Технологии

Опубликован релиз OpenSSH 9.2, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В новой версии устранена уязвимость, приводящая к двойному освобождению области памяти на стадии до прохождения аутентификации. Уязвимости подвержен только выпуск OpenSSH 9.1, в более ранних версиях проблема не проявляется.

Для создания условий проявления уязвимости достаточно изменить баннер SSH-клиента на "SSH-2.0-FuTTYSH_9.1p1" для того, чтобы добиться выставления флагов "SSH_BUG_CURVE25519PAD" и "SSH_OLD_DHGEX", зависящих от версии SSH-клиента. После выставления данных флагов память под буфер "options.kex_algorithms" освобождается два раза - при выполнении функции do_ssh2_kex(), вызывающей compat_kex_proposal(), и при выполнении функции do_authentication2(), вызывающей по цепочке input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() и kex_assemble_names().

Создание рабочего эксплоита для уязвимости считается маловероятным, так как процесс эксплуатации слишком усложнён - современные библиотеки распределения памяти предоставляют защиту от двойного освобождения памяти, а процесс pre-auth, в котором присутствует ошибка, выполняется с пониженными привилегиями в изолированном sandbox-окружении.

Кроме отмеченной уязвимости в новом выпуске также устранены ещё две проблемы с безопасностью:

  • Ошибка при обработке настройки "PermitRemoteOpen", приводящая к игнорированию первого аргумента, если он отличается от значений "any" и "none". Проблема проявляется в версиях новее OpenSSH 8.7 и приводит к пропуску проверки при указании только одного полномочия.

  • Атакующий, контролирующий DNS-сервер, используемый для определения имён, может добиться подстановки спецсимволов (например, "*") в файлы known_hosts, если в конфигурации включены опции CanonicalizeHostname и CanonicalizePermittedCNAMEs, и системный резолвер не проверяет корректность ответов от DNS-сервера. Проведение атаки рассматривается как маловероятное, так как возвращаемые имена должны соответствовать условиям, заданным через CanonicalizePermittedCNAMEs.

Другие изменения:

  • В ssh_config для ssh добавлена настройка EnableEscapeCommandline, управляющая включением обработки на стороне клиента escape-последовательности "~C", предоставляющей командную строку. По умолчанию обработка "~C" теперь отключена для использования более жёсткой sandbox-изоляции, что потенциально может привести к нарушению работы систем, в которых "~C" используется для перенаправления портов во время работы.

  • В sshd_config для sshd добавлена директива ChannelTimeout для задания таймаута неактивности канала (каналы, в которых за указанное в директиве время не зафиксирован трафик, будут автоматически закрыты). Для сеанса, X11, агента и перенаправления трафика могут быть заданы разные таймауты.

  • В sshd_config для sshd добавлена директива UnusedConnectionTimeout, позволяющая задать таймаут для завершения клиентских соединений, находящихся определённое время без активных каналов.

  • В sshd добавлена опция "-V" для вывода версии по аналогии с подобной опцией в клиенте ssh.

  • В вывод "ssh -G" добавлена строка "Host", отражающая значение аргумента с именем хоста.

  • В scp и sftp добавлена опция "-X" для управления такими параметрами протокола SFTP, как размер буфера копирования и число ожидающих завершения запросов.

  • В ssh-keyscan разрешено сканирование полных CIDR-диапазонов адресов, например, "ssh-keyscan 192.168.0.0/24".

Показать полностью
116

В ходе атаки на GitHub захвачены ключи для подписи приложений GitHub Desktop и Atom

В ходе атаки на GitHub захвачены ключи для подписи приложений GitHub Desktop и Atom Инновации, Github, Atom

GitHub раскрыл сведения о компрометации репозиториев, в которых велась разработка приложений GitHub Desktop и Atom. Среди прочего, атакующим удалось получить доступ к сертификатам, используемым в GitHub Actions при заверении публикуемых релизов GitHub Desktop для macOS и Atom цифровой подписью. Так как ключи были дополнительно зашифрованы с использованием паролей, их использование для вредоносных действий оценивается как маловероятное, тем не менее GitHub принял решение отозвать проблемные сертификаты, что приведёт к неработоспособности некоторых версий GitHub Desktop и Atom, начиная со 2 февраля.

По заверению GitHub атака ограничилась только указанными репозиториями и инфраструктура проекта не пострадала. Доступ был получен с использованием персонального токена (PAT, Personal Access Token), привязанного к учётной записи одного из разработчиков.

6

В Wine добавлена поддержка HDR для Vulkan

В Wine добавлена поддержка HDR для Vulkan Технологии, Wine, Vulkan

В код Vulkan-драйвера для Wine добавлена поддержка Vulkan-расширения VK_EXT_hdr_metadata, предназначенного для обработки метаданных расширенного динамического диапазона (HDR), включающих сведения о первичных цветах, точке белого и диапазоне яркости, в составе виртуальных фреймбуферов (SwapChain) Vulkan. Предложенный патч для Wine необходим для работы с HDR в играх, работающих на основе графического API Vulkan, таких как Doom Eternal, а также в играх на основе графического API Direct3D с поддержкой HDR, использующих DXVK или VKD3D-Proton, которые "на лету" преобразуют вызовы Direct3D в системные вызовы Vulkan.

Компания Valve уже использовала предложенный патч в составе своей сборки Proton на основе Wine, но теперь он официально стал частью Wine 8.1+, а затем войдёт в состав стабильной версии Wine 9.0, которая ожидается в январе 2024 года. Разработка ведётся компанией Valve в рамках проекта по обеспечению поддержки HDR-игр, которая в настоящее время ограничена композитным сервером Gamescope, разрабатываемый и используемый для запуска игр на портативной игровой консоли Steam Deck. В настоящее время во всех других композитных серверах для Wayland, включая GNOME Mutter и KDE Kwin, отсутствует поддержка HDR и нет точных данных, когда конкретно такая поддержка в них появится. Появление поддержки HDR для X.org оценивается как маловероятное, так как развитие протокола X11 последние годы прекращено и разработка ограничивается сопровождением.

Показать полностью 1
5

Обновление LibreOffice 7.4.5 с устранением сбоя, затрагивающего многих пользователей

Обновление LibreOffice 7.4.5 с устранением сбоя, затрагивающего многих пользователей Libreoffice, Офис

Организация The Document Foundation объявила о публикации внепланового корректирующего выпуска Community-редакции LibreOffice 7.4.5, в котором устранена одна ошибка, приводящая к аварийному завершению при нажатии на кнопку верхнего или нижнего колонтитула после прокрутки. Отмечается, что проблема может затрагивать многих пользователей офисного пакета. Проблема вызвана регрессивным изменением, вошедшим в обновление 7.4.4.2. Готовые установочные пакеты подготовлены для платформ Linux, macOS и Windows.

10

Компания Canonical объявила о готовности сервиса Ubuntu Pro

Компания Canonical объявила о готовности сервиса Ubuntu Pro Linux, Инновации, Ubuntu, Канон

Компания Canonical объявила о готовности к повсеместному использованию сервиса Ubuntu Pro, предоставляющего доступ к расширенным обновлениям для LTS-веток Ubuntu. Сервис предоставляет возможность получать обновления с исправлениями уязвимостей на протяжении 10 лет (штатный срок сопровождения LTS-веток 5 лет) для дополнительных 23 тысяч пакетов, помимо пакетов из репозитория Main. Ubuntu Pro также открывает доступ к live-патчам, позволяющим на лету применять обновления к ядру Linux без перезагрузки.

Бесплатная подписка на Ubuntu Pro предоставляется для частных лиц и малых предприятий, насчитывающих в своей инфраструктуре до 5 физических хостов (программа также охватывает все виртуальные машины, размещённые на этих хостах). Официальные члены сообщества Ubuntu могут получить бесплатный доступ для 50 хостов. Стоимость платной подписки составляет $25 в год на каждую рабочую станцию и $500 в год на сервер. Для получения токенов доступа к сервису Ubuntu Profree требуется учётная запись в Ubuntu One, которую может получить любой желающий.

912

Доступен OpenVPN 2.6.0

Доступен OpenVPN 2.6.0 Технологии, VPN, Openvpn

После двух с половиной лет с момента публикации ветки 2.5 подготовлен релиз OpenVPN 2.6.0, пакета для создания виртуальных частных сетей, позволяющего организовать шифрованное соединение между двумя клиентскими машинами или обеспечить работу централизованного VPN-сервера для одновременной работы нескольких клиентов. Код OpenVPN распространяется под лицензией GPLv2, готовые бинарные пакеты формируются для Debian, Ubuntu, CentOS, RHEL и Windows.

Основные новшества:

  • Обеспечена поддержка неограниченного числа соединений.

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

    В проведённых тестах по сравнению с конфигурацией на основе интерфейса tun применение модуля на стороне клиента и сервера при использовании шифра AES-256-GCM позволило добиться прироста пропускной способности в 8 раз (с 370 Mbit/s до 2950 Mbit/s). При применении модуля только на стороне клиента пропускная способность возросла в три раза для исходящего трафика и не изменилась для входящего. При применении модуля только на стороне сервера пропускная способность возросла в 4 раза для входящего трафика и на 35% для исходящего.

  • Предоставлена возможность использования режима TLS с самоподписанными сертификатами (при применении опции "--peer-fingerprint" можно не указывать параметры "--ca" и "--capath" и обойтись без запуска PKI-сервера на базе Easy-RSA или похожего ПО).

  • В UDP-сервере реализован режим согласования соединения на основе Cookie, при котором в качестве идентификатора сеанса используется Cookie на основе HMAC, что позволяет серверу проводить верификацию без сохранения состояния.

  • Добавлена поддержка сборки с библиотекой OpenSSL 3.0. Добавлен параметр "--tls-cert-profile insecure" для выбора минимального уровня безопасности OpenSSL.

  • Добавлены новые управляющие команды remote-entry-count и remote-entry-get для подсчёта числа внешних подключений и вывода их списка.

  • В процессе согласования ключей более приоритетным методом получения материала для генерации ключей теперь является механизм EKM (Exported Keying Material, RFC 5705), вместо специфичного механизма OpenVPN PRF. Для применения EKM требуется библиотека OpenSSL или mbed TLS 2.18+.

  • Обеспечена совместимость с OpenSSL в FIPS-режиме, что позволяет использовать OpenVPN на системах, удовлетворяющих требованиям безопасности FIPS 140-2.

  • В mlock реализована проверка резервирования достаточного размера памяти. При доступности менее 100 МБ ОЗУ для повышения лимита осуществляется вызов setrlimit().

  • Добавлена опция "--peer-fingerprint" для проверки корректности или привязки сертификата по fingerprint-отпечатку на основе хэша SHA256, без применения tls-verify.

  • Для скриптов предоставлена возможность отложенной (deferred) аутентификации, реализуемой при помощи опции "--auth-user-pass-verify". В скриптах и плагинах добавлена поддержка информирования клиента об ожидании (pending) аутентификации при применении отложенной аутентификации.

  • Добавлен режим совместимости (--compat-mode), позволяющий подключаться к старым серверам, на которых используется OpenVPN 2.3.x или более старые версии.

  • В списке, передаваемом через параметр "--data-ciphers", разрешено указание префикса "?" для определения необязательных шифров, которые будут задействованы только при наличии поддержки в SSL-библиотеке.

  • Добавлена опция "--session-timeout" при помощи которой можно ограничить максимальное время сеанса.

  • В файле конфигурации разрешено указание имени и пароля при помощи тега <auth-user-pass></auth-user-pass>.

  • Предоставлена возможность динамической настройки MTU клиента, на основе данных об MTU, переданных сервером. Для изменения максимального размера MTU добавлена опция "--tun-mtu-max" (по умолчанию 1600).

  • Добавлен параметр "--max-packet-size" для определения максимального размера управляющих пакетов.

  • Удалена поддержка режима запуска OpenVPN через inetd. Удалена опция ncp-disable. Объявлены устаревшими опция verify-hash и режим статических ключей (оставлен только TLS). В разряд устаревших переведены протоколы TLS 1.0 и 1.1 (параметр tls-version-min по умолчанию выставлен в значение 1.2). Удалена встроенная реализация генератора псевдослучайных чисел (--prng), следует использовать реализацию PRNG из криптобиблиотек mbed TLS или OpenSSL. Прекращена поддержка пакетного фильтра PF (Packet Filtering). По умолчанию отключено сжатие (--allow-compression=no).

  • В список шифров по умолчанию добавлен CHACHA20-POLY1305.

Показать полностью
79

Утечка содержимого внутренних Git-репозиториев компании Яндекс

Утечка содержимого внутренних Git-репозиториев компании Яндекс Яндекс, Git, Утечка

Неизвестный опубликовал в открытом доступе (на форуме BreachForums) архив, включающий содержимое внутренних Git-репозиториев компании Yandex. Утверждается, что утечка произошла в июле 2022 года (внутри все файлы датированы 24 февраля 2022 года). Архив, размер которого 44.71 ГБ, включает срезы репозиториев с кодом 79 сервисов и проектов компании, среди которых поисковый движок (фронтэнд и бэкенд), бот индексации страниц, платформа web-аналитики Yandex Metrika, картографическая система Yandex Maps, голосовой помощник Алиса, информационная система службы поддержки, Яндекс Такси, Yandex Phone, рекламная платформа Yandex Direct, почтовый сервис Yandex Mail, хранилище Yandex Disk, сеть доставки контента, торговая площадка Yandex Market, бизнес-сервисы Yandex360, облачная платформа Yandex Cloud и платёжная система Yandex Pay.

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

Показать полностью
Отличная работа, все прочитано!