The OpenNET Project / Index page

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

20.06 Уязвимость в ядре Linux, затрагивающая сетевой протокол CAN BCM (44 +9)
  В ядре Linux выявлена уязвимость (CVE-2021-3609), позволяющая локальному пользователю поднять свои привилегии в системе. Проблема вызвана состоянием гонки в реализации протокола CAN BCM и проявляется в выпусках ядра Linux с 2.6.25 по 5.13-rc6. В дистрибутивах проблема пока остаётся неисправленной (RHEL, Fedora, Debian, Ubuntu, SUSE, Arch).

Выявивший уязвимость исследователь смог подготовить эксплоит для получения прав root на системах с ядрами Linux 5.4 и новее, в том числе показана возможность успешного проведения атаки в Ubuntu 20.04.02 LTS. Не исключена возможность переработки эксплоита и для работы с более старыми ядрами (в ядре 5.4 код CAN BCM (net/can/bcm.c) был переведён с hrtimer_tasklet на HRTIMER_MODE_SOFT).

Протокол CAN BCM позволяет зарегистрировать собственный обработчик сообщений, поступающих через шину CAN (controller area network), и прикрепить его к определённому сетевому сокету. При поступлении входящего сообщения вызывается функция bcm_rx_handler(). Атакующий может воспользоваться состоянием гонки и добиться закрытия сетевого сокета одновременно с выполнением bcm_rx_handler(). При закрытии сокета вызывается функция bcm_release(), в которой освобождается память, выделенная для структур bcm_op и bcm_sock, которые продолжают использоваться в ещё выполняемом обработчике bcm_rx_handler(). Возникает ситуация, приводящая к обращению к уже освобождённому блоку памяти (use-after-free).

Атака сводится к открытию двух сокетов CAN BCM и привязке их к интерфейсу vcan. В первом сокете выполняется вызов sendmsg() с флагом RX_SETUP для настройки обработчика поступающих сообщений CAN, а во втором сокете совершается вызов sendmsg() для отправки сообщения в первый сокет. После поступления сообщения срабатывает вызов bcm_rx_handler(), а атакующий подбирает нужный момент и закрывает первый сокет, что приводит к запуску bcm_release() и освобождению структур bcm_op и bcm_sock, хотя работа bcm_rx_handler() ещё не завершена.

Через манипуляции с содержимым bcm_sock атакующий может переопределить указатель на функцию sk->sk_data_ready(sk), перенаправить выполнение и при помощи приёмов возвратно-ориентированного программирования (ROP - Return-Oriented Programming) организовать перезапись параметра modprobe_path и добиться выполнения своего кода с правами root. При использовании техники ROP атакующий не пытается разместить свой код в памяти, а оперирует уже имеющимися в загруженных библиотеках кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания библиотечных функций). Работа эксплоита сводится к построению цепочки вызовов подобных блоков ("гаджетов") для получения нужной функциональности.

Для атаки требуется наличие доступа для создания сокетов CAN и настроенный сетевой интерфейс vcan. Необходимые для совершения атаки полномочия могут быть получены непривилегированным пользователем в контейнерах, создаваемых в системах с включённой поддержкой пространств имён идентификаторов пользователей (user namespaces). Например, user namespaces по умолчанию включён в Ubuntu и Fedora, но не активирован в Debian и RHEL.

  1. Главная ссылка к новости
  2. OpenNews: Уязвимости в подсистеме eBPF, позволяющие выполнить код на уровне ядра Linux
  3. OpenNews: Уязвимость в подсистеме iSCSI ядра Linux, позволяющая поднять свои привилегии
  4. OpenNews: Уязвимости в ядре Linux, затрагивающие реализации VSOCK, Futex и io_uring
  5. OpenNews: Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо выполнить код с правами ядра Linux
  6. OpenNews: Уязвимость в реализации сокетов AF_PACKET ядра Linux
Обсуждение (44 +9) | Тип: Проблемы безопасности |


20.06 Опубликован web-браузер Min 1.20 (45 –4)
  Доступен релиз web-браузера Min 1.20, предлагающего минималистичный интерфейс, построенный вокруг манипуляций с адресной строкой. Браузер создан с использованием платформы Electron, позволяющей создавать обособленные приложения на основе движка Chromium и платформы Node.js. Интерфейс Min написан на JavaScript, CSS и HTML. Код распространяется под лицензией Apache 2.0. Сборки сформированы для Linux, macOS и Windows.

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

Центральным элементом управления в Min является адресная строка, через которую можно отправлять запросы к поисковой системе (по умолчанию DuckDuckGo) и выполнять поиск на текущей странице. При вводе в адресной строке по мере набора формируется сводка актуальной для текущего запроса информации, такой как ссылка на статью в Wikipedia, выборка из закладок и истории посещений, а также рекомендации от поисковой системы DuckDuckGo. Каждая открытая в браузере страница индексируется и становится доступна для последующего поиска в адресной строке. В адресной строке также можно вводить команды для быстрого выполнения операций (например, "!settings" - переход к настройкам, "!screenshot" - создание скриншота, "!clearhistory"- очистка истории посещений и т.п.).

В новом выпуске:

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

  1. Главная ссылка к новости
  2. OpenNews: Доступны web-браузеры qutebrowser 1.11.0 и Min 1.14
  3. OpenNews: Опубликован web-браузер Min 1.13
  4. OpenNews: Релиз минималистичного web-браузера links 2.22
  5. OpenNews: Выпуск перенастраиваемого web-браузера Nyxt 2.0.0
  6. OpenNews: Выпуск web-браузера Otter 1.0.2 с интерфейсом в стиле Opera 12
Обсуждение (45 –4) | Тип: Программы |


20.06 Релиз дистрибутива Network Security Toolkit 34 (8 +2)
  После года разработки состоялся релиз Live-дистрибутива NST 34 (Network Security Toolkit), предназначенного для проведения анализа безопасности сети и мониторинга её функционирования. Размер загрузочного iso-образа (x86_64) составляет 4.8 ГБ. Для пользователей Fedora Linux подготовлен специальный репозиторий, дающий возможность установить все созданные в рамках проекта NST наработки в уже установленную систему. Дистрибутив построен на базе Fedora 34 и допускает установку дополнительных пакетов из внешних репозиториев, совместимых с Fedora Linux.

В состав дистрибутива включена большая подборка приложений, имеющих отношение к сетевой безопасности (например: Wireshark, NTop, Nessus, Snort, NMap, Kismet, TcpTrack, Etherape, nsttracroute, Ettercap и т.д.). Для управления процессом проверки безопасности и автоматизации вызова различных утилит подготовлен специальный web-интерфейс, в который также интегрирован web-фронтэнд для сетевого анализатора Wireshark. Графическое окружения дистрибутива базируется на FluxBox.

В новом выпуске:

  • Пакетная база синхронизирована с Fedora 34. Задействовано ядро Linux 5.12. Обновлены до свежих выпусков поставляемые в составе приложения.
  • В web-интерфейс NST WUI интегрирована утилита lft (альтернатива утилитам traceroute и whois, поддерживающая различные режимы трассировки маршрутов, в том числе на базе TCP SYN/FIN, и вывод информации об автономных системах).
  • В NST WUI добавлена поддержка Ntopng REST API.
  • В NST WUI предоставлена возможность отображения результатов быстрого сканирования каталогов в табличном формате.
  • В состав включён NST-скрипт etherapedump для выделения сетевых ресурсов из XML-файлов Etherape.
  • Обеспечено отображение состояния перевода сетевых интерфейсов в режим "promiscuous", позволяющего анализировать транзитные сетевые кадры, не адресованные текущей системе.
  • В разделе NST WUI для работы с Nmap добавлены опции сканирования для определения сервисов DHCP и SMB.
  • В виджет определения имён хостов (NST Host Name Tools) добавлена утилита massdns для отправки DNS-запросов в пакетном режиме.
  • С основной страницы NST WUI удалено старое навигационное меню, которое показывалось в левом столбце.
  • В NST WUI на страницы с табличными отчётами добавлены кнопки для копирования в буфер обмена.

  1. Главная ссылка к новости
  2. OpenNews: Релиз дистрибутива Network Security Toolkit 32
  3. Релиз CAINE 11.0, дистрибутива для выявления скрытых данных
  4. OpenNews: Выпуск BlackArch 2020.06.01, дистрибутива для тестирования безопасности
  5. OpenNews: Выпуск дистрибутива Parrot 4.11 с подборкой программ для проверки безопасности
  6. OpenNews: Релиз дистрибутива для исследования безопасности Kali Linux 2021.2
Обсуждение (8 +2) | Тип: Программы |


19.06 Обновление Debian 10.10 (53 +11)
  Опубликовано десятое корректирующее обновление дистрибутива Debian 10, в которое включены накопившиеся обновления пакетов и устранены недоработки в инсталляторе. Выпуск включает 81 обновление с устранением проблем со стабильностью и 55 обновлений с устранением уязвимостей.

Из изменений в Debian 10.10 выделяется реализация поддержки механизма SBAT (UEFI Secure Boot Advanced Targeting), решающего проблемы с отзывом сертификатов, которыми заверены загрузчики для UEFI Secure Boot. В пакетном менеджере APT принято изменение имени репозитория по умолчанию (из stable в oldstable). До свежей стабильной версии обновлён пакет clamav. Удалён пакет sogo-connector, который несовместим с актуальной версией Thunderbird.

Для загрузки и установки "с нуля" подготовлены установочные сборки, а также live iso-hybrid c Debian 10.10. Системы, установленные ранее и поддерживаемые в актуальном состоянии, получают обновления, присутствующие в Debian 10.10, через штатную систему установки обновлений. Исправления проблем безопасности, включённые в новые выпуски Debian, доступны пользователям по мере выхода обновлений через сервис security.debian.org.

  1. Главная ссылка к новости
  2. OpenNews: Второй кандидат в релизы инсталлятора Debian 11 "Bullseye"
  3. OpenNews: Проект Debian выбрал нейтральную позицию относительно петиции против Столлмана
  4. OpenNews: Обновление Debian 10.9
  5. OpenNews: Адаптация Debian для использования реализации coreutils на языке Rust
  6. OpenNews: Проект Debian запустил сервис для динамического получения отладочной информации
Обсуждение (53 +11) | Тип: Программы |


19.06 Выпуск СУБД SQLite 3.36 (23 +13)
  Опубликован релиз SQLite 3.36, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.

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

  • Вывод команды "EXPLAIN QUERY PLAN" сделан более простым для восприятия.
  • Обеспечена генерация ошибки при попытках доступа к идентификатору строки (rowid) в представлении (VIEW) или подзапросе. Для возвращения возможности доступа к rowid для представлений предусмотрена сборочная опция "-DSQLITE_ALLOW_ROWID_IN_VIEW"
  • Включены по умолчанию интерфейсы sqlite3_deserialize() и sqlite3_serialize(). Для отключения предусмотрена сборочная опция "-DSQLITE_OMIT_DESERIALIZE"
  • В VFS "memdb" разрешено совместное использование хранимой в памяти БД в разных соединениях к одному процессу, если имя БД начинается с "/".
  • Отменена появившаяся в прошлом выпуске оптимизация "EXISTS-to-IN", которая замедляла некоторые запросы.
  • Оптимизация объединения проверки констант адаптирована для работы с запросами без слияния (join).
  • В CLI включено расширение REGEXP.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск СУБД SQLite 3.35
  3. OpenNews: Выпуск rqlite 6.0, распределённой отказоустойчивой СУБД на основе SQLite
  4. OpenNews: Проект DuckDB развивает вариант SQLite для аналитических запросов
  5. OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
  6. OpenNews: Доступен Dqlite 1.0, распределённый вариант SQLite от компании Canonical
Обсуждение (23 +13) | Тип: Программы |


19.06 Обновление OpenVPN 2.5.3. Отключение Opera VPN и VyprVPN в РФ (200 –2)
  Подготовлен корректирующий выпуск OpenVPN 2.5.3, пакета для создания виртуальных частных сетей, позволяющего организовать шифрованное соединение между двумя клиентскими машинами или обеспечить работу централизованного VPN-сервера для одновременной работы нескольких клиентов. Код OpenVPN распространяется под лицензией GPLv2, готовые бинарные пакеты формируются для Debian, Ubuntu, CentOS, RHEL и Windows.

В новой версии устранена уязвимость (CVE-2021-3606), проявляющаяся только в сборке для платформы Windows. Уязвимость позволяет организовать загрузку файлов конфигурации OpenSSL из сторонних каталогов, доступных на запись, для изменения настроек шифрования. В новой версии загрузка файлов конфигурации OpenSSL полностью отключена.

Из не связанных с безопасностью изменений отмечается добавление опции "--auth-token-user" (аналог "--auth-token", но без применения "--auth-user-pass"), улучшение процесса сборки для Windows, улучшение поддержки библиотеки mbedtls и обновление примечаний об авторских правах в коде (косметические изменения).

Дополнительно можно отметить отключение компанией Opera своего VPN для российских пользователей по требованию Роскомнадзора. На данный момент функциональность VPN перестала работать в beta- и developer-версиях браузера. Роскомнадзор утверждает, что ограничения необходимы для "реагирования на угрозы обхода ограничений доступа к детской порнографии, суицидальному, пронаркотическому и иному запрещённому контенту". Кроме Opera VPN блокировка также применена к сервису VyprVPN.

Ранее Роскомнадзор рассылал предупреждение 10 VPN-сервисам с требованием "подключения к государственной информационной системе (ФГИС)" для блокировки доступа к запрещённым в РФ ресурсам, Opera VPN и VyprVPN были в их числе. 9 из 10 сервисов требование проигнорировали или отказались сотрудничать c Роскомнадзором (NordVPN, Hide My Ass!, Hola VPN, OpenVPN, VyprVPN, ExpressVPN, TorGuard, IPVanish, VPN Unlimited). Выполнил требования только продукт Kaspersky Secure Connection.

  1. Главная ссылка к новости
  2. OpenNews: Обновление OpenVPN 2.5.2 и 2.4.11 с устранением уязвимости
  3. OpenNews: Корректирующий релиз OpenVPN 2.5.1
  4. OpenNews: Доступен OpenVPN 2.5.0
  5. OpenNews: Официально запущен сервис Mozilla VPN
  6. OpenNews: Доступен VPN WireGuard 1.0.0
Обсуждение (200 –2) | Автор: Darwin | Тип: Программы |


19.06 Выпуск Wine 6.11 и Wine staging 6.11 (48 +12)
  Состоялся выпуск экспериментальной ветки открытой реализации WinAPI - Wine 6.11. С момента выпуска версии 6.10 было закрыто 33 отчёта об ошибках и внесено 290 изменений.

Наиболее важные изменения:

  • Во все встроенные приложения Wine добавлена поддержка тем оформления.
  • В C runtime добавлены все недостающие реализации математических функций из кода библиотеки Musl.
  • Для поддержки формата MP3 в macOS задействована библиотека libmpg123.
  • Закрыты отчёты об ошибках, связанные с работой игр: Hogs of War, Starcraft 2, Might & Magic Clash of Heroes, Roller Coaster Rampage, Pendulumania, Stories: The Path of Destinies, Two Worlds Epic Edition, Amnesia: Rebirth, Starcraft Remastered, Kingdom Come: Deliverance, Just Cause 4, Wizard101.
  • Закрыты отчёты об ошибках, связанные с работой приложений: Excel 2007, Microsoft SyncToy 2.1, WHO Anthro, Roblox, PDF Eraser, Nexton LC-ScriptEngine, Ri-li 2.0.1, EmuMovies Sync 2.x, Notepad++ v7.5.9, Memu, ZynAddSubFX 3.0.3, Foxit Reader 5.1, Otvdm, WeChat.

Одновременно сформирован выпуск проекта Wine Staging 6.11, в рамках которого формируются расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 578 дополнительных патчей.

В новом выпуске осуществлена синхронизация с кодовой базой Wine 6.11. В основной состав Wine переведено два патча: поддержка вычислений sinh/cosh/exp/pow с повышенной точностью в msvcrt и запрет в ntdll на высвобождение стека для текущего потока. Проведена работа по избавлению патчей от вывода предупреждений во время компиляции.

Дополнительно можно упомянуть тестирование кандидата в релизы Proton 6.3-5, развиваемого компанией Valve пакета для запуска Windows-игр в Linux. В новой версии внесено несколько изменений, направленных на улучшение качества отрисовки в играх Bloodstained, Deep Rock Galactic, The Medium, Metal Gear Solid V: The Phantom Pain, Resident Evil 2 (2019), Resident Evil 3 (2020), Team Sonic Racing. Обновлены DXVK (1.9) и vkd3d-proton. Для выбора GPU по умолчанию задействован DXGI, предоставляемый в DXVK. Улучшена поддержка игровых контроллеров в Hades и многих других играх на базе движка Unity. Добавлена поддержка игр:

  • Sid Meier's Civilization VI,
  • Crypt Stalker,
  • Dark Devotion,
  • Dorfromantic,
  • Far Cry,
  • Hard Reset,
  • Hogs of War,
  • Might & Magic: Clash of Heroes,
  • Pro Cycling Manager 2020,
  • Sang Froid - Tales of Werewolves,
  • Secret of Mana,
  • Trainz Railroad Simulator 2019,
  • World of Final Fantasy.

  1. Главная ссылка к новости
  2. OpenNews: В Wayland-драйвере для Wine появилась поддержка Vulkan и многомониторных конфигураций
  3. OpenNews: Выпуск Wine 6.10
  4. OpenNews: Компания Valve выпустила Proton 6.3, пакет для запуска Windows-игр в Linux
  5. OpenNews: Выпуск Proton 6.10-GE-1, расширенной сборки Proton, пакета для запуска Windows-игр в Linux
  6. OpenNews: Выпуск DXVK 1.9, реализации Direct3D 9/10/11 поверх API Vulkan
Обсуждение (48 +12) | Тип: Программы |


18.06 Доступен Wasmer 2.0, инструментарий для создания приложений на базе WebAssembly (74)
  Состоялся второй значительный выпуск проекта Wasmer, развивающего runtime для выполнения модулей WebAssembly, который можно использовать для создания универсальных приложений, способных выполняться в разных операционных системах, а также для изолированного выполнения кода, не заслуживающего доверия. Код проекта написан на языке Rust и распространяется под лицензией MIT.

Переносимость обеспечивается благодаря компиляции кода приложения в низкоуровневый промежуточный код WebAssembly, который может запускаться в любых ОС или встраиваться в программы на других языках программирования. Программы представляют собой легковесные контейнеры, в которых выполняется псевдокод WebAssembly. Данные контейнеры не привязаны к операционной системе и могут включать код, изначально написанный на любом языке программирования. Для компиляции в WebAssembly может использоваться инструментарий Emscripten. Для трансляции WebAssembly в машинный код текущей платформы поддерживается подключение разных бэкендов компиляции (Singlepass, Cranelift, LLVM) и движков (задействование JIT или генерация машинного кода).

Управление доступом и взаимодействие с системой обеспечивается при помощи API WASI (WebAssembly System Interface), предоставляющем программные интерфейсы для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой. Приложения изолированы от основной системы в sandbox-окружении и имеют доступ только к заявленной функциональности (механизм безопасности на основе управления возможностями - для действий с каждым из ресурсов (файлы, каталоги, сокеты, системные вызовы и т.п.) приложению должны быть даны соответствующие полномочия).

Для запуска WebAssembly-контейнера достаточно установить в системе runtime Wasmer, который поставляется без внешних зависимостей ("curl https://get.wasmer.io -sSfL | sh"), и запустить необходимый файл ("wasmer test.wasm"). Программы распространяются в форме обычных WebAssembly-модулей, для управления которыми можно использовать пакетный менеджер WAPM. Wasmer также доступен в форме библиотеки, которую можно использовать для встраивания кода WebAssembly в программы на языках Rust, С/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir и Java.

Платформа позволяет добиться производительности выполнения приложений, близкой к выполнению родных сборок. При помощи Native Object Engine для WebAssembly-модуля можно сгенерировать машинный код ("wasmer compile --native" для генерации предкомпилированных объектных файлов .so, .dylib и .dll), для запуска которого требуется минимальный runtime, но сохраняются все возможности sandbox-изоляции. Возможна поставка предкомпилированных программ со встроенным Wasmer. Для создания надстроек и дополнений предлагаются Rust API и Wasm-C-API.

Значительная смена номера версии Wasmer связана с внесением нарушающих совместимость изменений во внутренний API, которые, по заверению разработчиков, никак не отразятся на 99% пользователей платформы. Из нарушающих совместимость изменений также отмечается изменение формата сериализированных модулей Wasm (модули, сериализированные в Wasmer 1.0, не смогут использоваться в Wasmer 2.0). Другие изменения:

  • Поддержка инструкций SIMD (Single Instruction, Multiple Data), позволяющих организовать распараллеливание операций над данными. Из областей, в которых применение SIMD может заметно поднять производительность, отмечается машинное обучение, кодирование и декодирование видео, обработки изображений, симуляция физических процессов и манипуляции с графикой.
  • Поддержка ссылочных типов, позволяющих модулям Wasm обращаться к информации в других модулях или в базовом окружении.
  • Проведена значительная оптимизация производительности. Скорость работы LLVM runtime с числами с плавающей запятой увеличена примерно на 50%. Значительно ускорен вызов функций за счёт сокращения ситуаций, требующих обращения к ядру. На 40% увеличена производительность генератора кода Cranelift. Сокращено время десериализации данных.
  • Для более точного отражения сути изменены названия движков: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

  1. Главная ссылка к новости
  2. OpenNews: Wasmer 1.0, инструментарий для платформонезависимых приложений на базе WebAssembly
  3. OpenNews: Разработчики V8 представили декомпилятор для WebAssembly
  4. OpenNews: Первый выпуск wasm3, быстрого интерпретатора WebAssembly
  5. OpenNews: W3C придал WebAssembly статус рекомендованного стандарта
  6. OpenNews: Mozilla, Fastly, Intel и Red Hat продвигают WebAssembly, как платформу для универсального применения
Обсуждение (74) | Тип: Программы |


18.06 Выпуск Rust 1.53. Google профинансирует добавление поддержки Rust в ядро Linux (251 –6)
  Опубликован релиз языка системного программирования Rust 1.53, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

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

Дополнительно можно отметить предоставление финансирования работы по развитию интеграции в ядро Linux средств для разработки компонентов на языке Rust. Работа будет вестись в рамках проекта Prossimo под эгидой организации ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета. Средства будут предоставлены компанией Google, которая оплатит работу Мигеля Охеда (Miguel Ojeda), автора проекта Rust-for-Linux. Ранее ISRG и Google уже профинансировали создание альтернативного HTTP-бэкенда для утилиты curl и разработку нового TLS-модуля для http-сервера Apache.

По данным компаний Microsoft и Google около 70% уязвимостей вызваны небезопасной работой с памятью. Предполагается, что использование языка Rust для разработки компонентов ядра, таких как драйверы устройств, позволит снизить риск появления уязвимостей, вызванных небезопасной работой с памятью, и исключить появление таких ошибок, как обращение к области памяти после её освобождения и выход за границы буфера.

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

  1. Главная ссылка к новости
  2. OpenNews: Выпуск языка программирования Rust 1.52
  3. OpenNews: Поддержка Rust для ядра Linux столкнулась с критикой Торвальдса
  4. OpenNews: Rust включён в число основных языков для разработки платформы Android
  5. OpenNews: Для http-сервера Apache будет подготовлен TLS-модуль, написанный на языке Rust
  6. OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
Обсуждение (251 –6) | Тип: Программы |


17.06 Компания Cloudflare опубликовала WARP для Linux (109 +18)
  Компания Cloudflare объявила о выпуске варианта приложения WARP для Linux, которое комбинирует в одном приложении DNS-резолвер, использующий DNS-сервис 1.1.1.1, VPN и прокси для перенаправления трафика через инфраструктуру сети доставки контента Cloudflare. Для шифрования трафика в VPN используется протокол WireGuard в реализации BoringTun, написанной на языке Rust и работающей целиком в пространстве пользователя.

Отличительной особенностью WARP является тесная интеграция с сетью доставки контента. Cloudflare предоставляет сеть доставки контента для 25 млн интернет-ресурсов и обслуживает трафик 17% из 1000 крупнейших сайтов. Если ресурс обслуживается в Cloudflare, обращение к нему через WARP приведёт к более быстрой передаче контента, чем при обращении через сеть провайдера.

Помимо VPN предусмотрено несколько режимов работы, позволяющих, например, шифровать только DNS-запросы (включить DNS-over-HTTPS) или запустить WARP в режиме прокси, к которому можно обращаться через HTTPS или SOCKS5. Также по желанию можно активировать фильтры для блокирования обращения к ресурсам, на которых выявлена вредоносная активность или контент для взрослых.

Готовые пакеты с WARP для Linux подготовлены для Ubuntu (16.04, 20.04), Debian (9, 10, 11), Red Hat Enterprise Linux (7, 8) и CentOS. В дальнейшем обещают расширить число поддерживаемых дистрибутивов. Программа оформлена в виде консольной утилиты warp-cli. Для организации работы VPN, использующего сеть Cloudflare, в простейшем случае достаточно аутентифицироваться в сети командой "warp-cli register" и командой "warp-cli connect" создать туннель для передачи трафика из своей системы.


   $ warp-cli register
   Success

   $ warp-cli connect
   Success

   $ curl https://www.cloudflare.com/cdn-cgi/trace/
   warp=on

  1. Главная ссылка к новости
  2. OpenNews: Cloudflare, Tesla многие другие компании скомпрометированы через камеры наблюдения Verkada
  3. OpenNews: Ошибка при настройке BGP привела к 27-минутному сбою в работе Cloudflare
  4. OpenNews: Cloudflare запустил сервис для отслеживания фильтрации некорректных маршрутов BGP
  5. OpenNews: Компания Cloudflare подготовила патчи, кардинально ускоряющие дисковое шифрование в Linux
  6. OpenNews: Cloudflare представил открытый сканер сетевой безопасности Flan Scan
Обсуждение (109 +18) | Тип: К сведению |


17.06 Google предложил SLSA для защиты от вредоносных изменений в процессе разработки (76 –1)
  Компания Google представила фреймворк SLSA (Supply-chain Levels for Software Artifacts), в котором обобщён имеющийся опыт по защите инфраструктуры разработки от атак, осуществляемых на стадии написания кода, тестирования, сборки и распространения продукта.

Процессы разработки становятся всё более сложными и зависящими от сторонних инструментариев, что создаёт благоприятные условия для продвижения атак, связанных не с выявлением и эксплуатацией уязвимостей в конечном продукте, а с компрометацией самого процесса разработки (атаки "supply chain", как правило нацеленные на внедрение вредоносных изменений в процессе написания кода, подмену распространяемых компонентов и зависимостей).

Фреймворк учитывает 8 видов атак, связанных с угрозами внесения вредоносных изменений на этапе разработки кода, сборки, тестирования и распространения продукта.

  • A. Включение в исходный код изменений, содержащих бэкдоры или скрытые ошибки, приводящие к уязвимостям.

    Пример атаки: "Hypocrite Commits" - попытка продвижения в ядро Linux патчей с уязвимостями.

    Предлагаемый метод защиты: независимое рецензирование каждого изменения двумя разработчиками.

  • B. Компрометация платформы управления исходным кодом.

    Пример атаки: внедрение вредоносных коммитов с бэкдором в Git-репозиторий проекта PHP после утечки паролей разработчиков.

    Предлагаемый метод защиты: Повышение защиты платформы управления кодом (в случае PHP атака была совершена через мало кем используемый HTTPS-интерфейс, допускавший отправку изменений при входе по паролю без проверки SSH-ключа, при том, что для хэширования паролей применялся ненадёжный MD5).

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

    Пример атаки: внедрение бэкдора в Webmin путем внесения изменений в сборочную инфраструктуру, приведших к использованию файлов с кодом, отличающихся от файлов в репозитории.

    Предлагаемый метод защиты: Проверка целостности и идентификация источника поступления кода на сборочном сервере.

  • D. Компрометация сборочной платформы.

    Пример атаки: атака SolarWinds, в ходе которой на этапе сборки было обеспечено внедрение бэкдора в продукт SolarWinds Orion.

    Предлагаемый метод защиты: внедрение расширенных мер обеспечения безопасности сборочной платформы.

  • E. Продвижение вредоносного кода через некачественные зависимости.

    Пример атаки: внедрение бэкдора в популярную библиотеку event-stream, через добавление безобидной зависимости с последующим включением в одном из обновлений этой зависимости вредоносного кода (вредоносное изменение не было отражено в git-репозитории, а присутствовало только в готовом NPM-пакете).

    Предлагаемый метод защиты: рекурсивное применение требований SLSA ко всем зависимостям (в случае event-stream проверка бы выявила сборку кода, не соответствующего содержимому основного Git-репозитория).

  • F. Загрузка артефактов, не созданных в системе CI/CD.

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

    Предлагаемый метод защиты: контроль за источником и целостностью артефактов (в случае с CodeCov могло быть выявлено, что отдаваемый с сайта codecov.io скрипт Bash Uploader не соответствует коду из репозитория проекта).

  • G. Компрометация репозитория пакетов.

    Пример атаки: исследователям удалось развернуть зеркала некоторых популярных репозиториев пакетов с целью распространения через них вредоносных пакетов.

    Предлагаемый метод защиты: Проверка, что распространяемые артефакты собраны из заявленных исходных текстов.

  • H. Введение в замешательство пользователя для установки не того пакета.

    Пример атаки: использование тайпсквоттинга (NPM, RubyGems, PyPI) для размещения в репозиториях пакетов, похожих по написанию на популярные приложения (например, coffe-script вместо coffee-script).

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

Обсуждение (76 –1) | Тип: К сведению |


17.06 Релиз сетевого конфигуратора NetworkManager 1.32.0 (91 +7)
  Доступен стабильный релиз интерфейса для упрощения настройки параметров сети - NetworkManager 1.32.0. Плагины для поддержки VPN, OpenConnect, PPTP, OpenVPN и OpenSWAN развиваются в рамках собственных циклов разработки.

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

  • Предоставлена возможность выбора бэкенда управления межсетевым экраном, для чего в NetworkManager.conf добавлена новая опция "[main].firewall-backend". По умолчанию выставляется бэкенд "nftables", а когда в системе отсутствует файл /usr/sbin/nft и присутствует /usr/sbin/iptables - бэкенд "iptables". В будущем планируется добавить ещё один бэкенд на базе Firewalld. Указанная возможность может применяться для настройки транслятора адресов при помощи nftables (ранее использовался только iptables) при включении профиля совместного доступа (shared).
  • Добавлены новые опции "ethtool.pause-autoneg", "ethtool.pause-rx" и "ethtool.pause-tx" для внесения задержек при приёме или отправке Ethernet-кадров. Добавлены опции соответствуют аналогичным режимам в утилите ethtool - "--pause devname [autoneg on|off] [rx on|off] [tx on|off]".
  • Добавлен параметр "ethernet.accept-all-mac-addresses", позволяющий перевести сетевой адаптер в режим "promiscuous" для анализа транзитных сетевых кадров, не адресованных текущей системе.
  • Предоставлена возможность выполнения обратных DNS-запросов для настройки имени хоста на основе имени из DNS, определённого для выданного системе IP-адреса. Режим включается при помощи опции hostname в профиле. Ранее для определения имени хоста вызывалась функция getnameinfo(), которая учитывала конфигурацию NSS и имя, заданное в файле /etc/hostname (новая возможность позволяет задавать имя только на основе резолвинга обратной зоны в DNS). Для запроса имени хоста через DNS теперь используется API systemd-resolved, а если systemd не применяется запускается обработчик 'nm-daemon-helper' на базе NSS-модуля 'dns'.
  • Добавлена поддержка типов правил маршрутизации "prohibit", "blackhole" и "unreachable".
  • Изменено поведение, касающееся правил управления трафиком - по умолчанию NetworkManager теперь сохраняет уже выставленные в системе правила qdiscs и фильтры трафика.
  • Обеспечено зеркалирование профилей беспроводных соединений NetworkManager в файлы конфигурации iwd.
  • Добавлена поддержка DHCP-опции 249 (Microsoft Classless Static Route).
  • Добавлена поддержка параметра ядра "rd.net.dhcp.retry", управляющего запросом обновлений привязки к IP-адресу.
  • Проведена значительная реструктуризации исходных текстов.
  • Внесены изменения в API, которые не должны отразиться на совместимости с существующими надстройками. Например, прекращена обработка сигнала PropertiesChanged и D-Bus свойства org.freedesktop.DBus.Properties.PropertiesChanged, которые давно объявлены устаревшими. В библиотеке libnm скрыты определения структур в классах NMSimpleConnection, NMSetting и NMSetting. В качестве основного ключа для идентификации профиля соединения задействован формат "connection.uuid".

Дополнительно можно отметить выпуск сетевого конфигуратора ConnMan 1.40, который развивается компанией Intel и отличается низким потреблением системных ресурсов и наличием гибких средств для расширения функциональности через плагины. ConnMan используется в таких платформах и дистрибутивах, как Tizen, Yocto, Sailfish, Aldebaran Robotics и Nest, а также в различных потребительских устройствах с прошивками на базе Linux.

Компания Intel также опубликовала выпуск Wi-Fi демона IWD 1.15 (iNet Wireless Daemon), развиваемого в качестве альтернативы wpa_supplicant для организации подключения Linux-систем к беспроводной сети. IWD может использоваться как самодостаточно, так и выступать в качестве бэкенда для сетевых конфигураторов Network Manager и ConnMan. Проект подходит для применения на встраиваемых устройствах и оптимизирован для минимального потребления памяти и дискового пространства. IWD не использует внешних библиотек и обращается только к возможностям, предоставляемым штатным ядром Linux (для работы достаточно ядра Linux и Glibc).

В новой версии ConnMan отмечены только исправления ошибок, связанные с обработкой состояния автосоединения и отключения в WiFi. Также устранена уязвимость, вызванная переполнением буфера в коде DNS Proxy. В новой версии IWD реализована поддержка экспортирования информации о работе фонового процесса, добавлена возможность прогнозирования интенсивности поступления пакетов в режиме VHT RX (Very High Throughput) и обеспечена поддержка процедуры FT-over-DS с несколькими базовыми наборами служб (BSS).

  1. Главная ссылка к новости
  2. OpenNews: Релиз сетевого конфигуратора NetworkManager 1.30.0
  3. OpenNews: Выпуск сетевого конфигуратора ConnMan 1.38
  4. OpenNews: Релиз программы для настройки сетевых соединений Wicd 1.7
  5. OpenNews: Выпуск hostapd и wpa_supplicant 2.7
  6. OpenNews: Выпуск Wi-Fi демона IWD 1.10
Обсуждение (91 +7) | Тип: Программы |


16.06 Обновление Firefox 89.0.1 (110 +19)
  Доступен корректирующий выпуск Firefox 89.0.1, в котором предложено несколько исправлений:
  • Устранена проблема с некорректной работой полос прокрутки на платформе Linux, проявляющаяся при использовании некоторых тем оформления GTK.
  • Решены проблемы с производительностью и стабильностью работы системы композитинга WebRender на платформе Linux.
  • Устранены регрессивные изменения, связанные со шрифтами. Временно выключена настройка gfx.e10s.font-list.shared, позволяющая сэкономить около 500 КБ памяти для каждого процесса обработки контента.
  • В macOS решена проблема с мерцанием экрана при прокрутке страниц на внешнем мониторе.
  • В версии для Windows решена проблема с некорректной работой экранных ридеров.
  • Устранена уязвимость (CVE-2021-29968), приводящая к чтению данных из области за границей буфера при отрисовке текстовых символов в элементе Canvas. Проблема проявляется только на платформе Windows при отключённом WebRender.

  1. Главная ссылка к новости
  2. OpenNews: Релиз Firefox 89 с переработанным интерфейсом
  3. OpenNews: Mozilla обобщила планы по поддержке в Firefox третьей версии манифеста Chrome
  4. OpenNews: Mozilla подготовила для Firefox дополнение с системой машинного перевода
  5. OpenNews: Компания Mozilla представила режим строгой изоляции сайтов для Firefox
  6. OpenNews: В Firefox 89 будет удалено меню адресной строки
Обсуждение (110 +19) | Тип: Программы |


16.06 Выпуск DXVK 1.9, реализации Direct3D 9/10/11 поверх API Vulkan (45 +32)
  Доступен выпуск прослойки DXVK 1.9, предоставляющей реализацию DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 и 11, работающую через трансляцию вызовов в API Vulkan. Для использования DXVK требуется наличие драйверов с поддержкой API Vulkan 1.1, таких как Mesa RADV 20.2, NVIDIA 415.22, Intel ANV 19.0 и AMDVLK. DXVK может применяться для запуска 3D-приложений и игр в Linux при помощи Wine, выступая в качестве более высокопроизводительной альтернативы встроенных в Wine реализаций Direct3D 9/10/11, работающих поверх OpenGL.

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

  • Добавлена начальная поддержка форматов текстур YUV с цветовой субдискретизацией, таких как NV12, применяемых для воспроизведения видео в некоторых играх.
  • Реализован API ID3D11VideoProcessor, который используется для вывода видео в играх Nier Replicant и Contra: Rogue Corps.
  • Добавлена поддержка консервативной растеризации (Conservative Rasterization) для GPU, поддерживающих такую возможность. Изменение позволяет использовать опцию NVIDIA ShadowLibs в Final Fantasy XV и других играх.
  • Сокращены задержки при отображении, что может решить проблемы в играх, ограниченных вертикальной синхронизацией, ограничителями FPS или настройками DXGI.
  • Добавлен компонент для ограничения интенсивности показа кадров (frame rate limiter), который можно использовать для корректной работы игр, не рассчитанных на высокий FPS.
  • Прекращена передача приложениям информации о программных реализациях Vulkan, таких как Lavapipe, если в системе присутствует GPU с поддержкой Vulkan, что решает проблемы, возникающие при попытках использования играми Lavapipe вместо корректного драйвера. Для включения Lavapipe предлагается установить переменную окружения VK_ICD_FILENAMES.
  • Улучшена загрузка текстур и буферов в D3D9.
  • Решены проблемы в играх Atelier Mysterious Trilogy Deluxe Pack, Dal Segno, Nights of Azure, Days Gone, Demon Stone, Dragon Quest Builder 2, Final Fantasy XIII, Spec Ops: The Line, GTA IV, Halo 2, Kohan II, Nier Replicant, Second Sight и TrackMania Forever.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск DXVK 1.8, реализации Direct3D 9/10/11 поверх API Vulkan
  3. OpenNews: Компания Valve выпустила Proton 6.3-3, пакет для запуска Windows-игр в Linux
  4. OpenNews: В Wayland-драйвере для Wine появилась поддержка Vulkan и многомониторных конфигураций
  5. OpenNews: Выпуск Proton 6.10-GE-1, расширенной сборки Proton, пакета для запуска Windows-игр в Linux
Обсуждение (45 +32) | Тип: Программы |


16.06 Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust (114 +4)
  Представлен первый выпуск библиотеки Aya, позволяющей создавать на языке Rust обработчики eBPF, запускаемые внутри ядра Linux в специальной виртуальной машине с JIT. В отличие от других инструментов для разработки eBPF-программ, Aya не использует libbpf и компилятор bcc, а предлагает собственную реализацию, написанную на Rust, которая использует crate-пакет libc для прямого обращения к системным вызовам ядра. Для сборки Aya не требуется наличие инструментария для языка C и заголовочных файлов ядра. Код библиотеки распространяется под лицензиями MIT и Apache 2.0.

Основные возможности:

  • Поддержка формата BTF (BPF Type Format), предоставляющего информацию о типах в псевдокоде BPF для проверки типов и сопоставления с типами, предоставляемыми текущим ядром. Применение BTF даёт возможность создавать универсальные eBPF-обработчики, которые можно использовать без перекомпиляции с разными версиями ядра Linux.
  • Поддержка вызовов "bpf-to-bpf", глобальных переменных и инициализаторов, что позволяет оформлять программы для eBPF по аналогии с обычными программами, использующими aya в качестве runtime, переопределяющем функции с учётом работы в eBPF.
  • Поддержка внутренних типов ядра, включая обычные массивы, хэши (hash map), стеки, очереди, трассировки стека, а также структуры для сокетов и отслеживания производительности.
  • Возможность создавать различные типы eBTF-программ, включая программы для фильтрации и управления трафиком, обработчики cgroup и различных операций с сокетами, XDP-программы.
  • Поддержка платформ для асинхронной обработки запросов в неблокирующем режиме tokio и async-std.
  • Быстрая сборка, без привязки к сборке ядра и заголовочным файлам ядра.

Проект пока рассматривается как экспериментальный - API ещё не стабилизирован и продолжает развиваться. Также ещё не реализованы все задуманные возможности. До конца года разработчики рассчитывают довести функциональность Aya до паритета с libbpf, а в январе 2022 года сформировать первый стабильный релиз. Также планируется объединить части Aya, необходимые для написания кода на Rust для ядра Linux с компонентами, работающими в пространстве пользователя и используемыми для загрузки, прикрепления и взаимодействия с программами eBPF.

Напомним, что eBPF представляет собой встроенный в ядро Linux интерпретатор байткода, позволяющий создавать обработчики сетевых операций, отслеживать работу систем, перехватывать системные вызовы, контролировать доступ, обрабатывать события с сохранением хронометража, подсчитывать частоту и время выполнения операций, выполнять трассировку с использованием kprobes/uprobes/tracepoints. Благодаря применению JIT-компиляции, байткод на лету транслируется в машинные инструкции и выполняется с производительностью нативного кода. XDP предоставляет средства для запуска BPF-программ на уровне сетевого драйвера, с возможностью прямого доступа к DMA-буферу пакетов, что позволяет создавать высокопроизводительные обработчики для работы в условиях большой сетевой нагрузки.

  1. Главная ссылка к новости
  2. OpenNews: Уязвимости в подсистеме eBPF, позволяющие выполнить код на уровне ядра Linux
  3. OpenNews: Microsoft подготовил реализацию eBPF для Windows
  4. OpenNews: Компания Oracle намерена переработать DTrace для Linux с использованием eBPF
  5. OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
  6. OpenNews: Поддержка Rust для ядра Linux столкнулась с критикой Торвальдса
Обсуждение (114 +4) | Тип: Программы |


Следующая страница (раньше) >>



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

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