The OpenNET Project / Index page

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

20.06.2021 Уязвимость в ядре Linux, затрагивающая сетевой протокол CAN BCM (41 +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. OpenNews: Уязвимости в подсистеме eBPF, позволяющие выполнить код на уровне ядра Linux
  2. OpenNews: Уязвимость в подсистеме iSCSI ядра Linux, позволяющая поднять свои привилегии
  3. OpenNews: Уязвимости в ядре Linux, затрагивающие реализации VSOCK, Futex и io_uring
  4. OpenNews: Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо выполнить код с правами ядра Linux
  5. OpenNews: Уязвимость в реализации сокетов AF_PACKET ядра Linux
Обсуждение (41 +9) | Тип: Проблемы безопасности |
18.06.2021 Доступен 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. OpenNews: Wasmer 1.0, инструментарий для платформонезависимых приложений на базе WebAssembly
  2. OpenNews: Разработчики V8 представили декомпилятор для WebAssembly
  3. OpenNews: Первый выпуск wasm3, быстрого интерпретатора WebAssembly
  4. OpenNews: W3C придал WebAssembly статус рекомендованного стандарта
  5. OpenNews: Mozilla, Fastly, Intel и Red Hat продвигают WebAssembly, как платформу для универсального применения
Обсуждение (74) | Тип: Программы |
18.06.2021 Выпуск 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. OpenNews: Выпуск языка программирования Rust 1.52
  2. OpenNews: Поддержка Rust для ядра Linux столкнулась с критикой Торвальдса
  3. OpenNews: Rust включён в число основных языков для разработки платформы Android
  4. OpenNews: Для http-сервера Apache будет подготовлен TLS-модуль, написанный на языке Rust
  5. OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
Обсуждение (251 –6) | Тип: Программы |
17.06.2021 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.2021 Релиз сетевого конфигуратора 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. OpenNews: Релиз сетевого конфигуратора NetworkManager 1.30.0
  2. OpenNews: Выпуск сетевого конфигуратора ConnMan 1.38
  3. OpenNews: Релиз программы для настройки сетевых соединений Wicd 1.7
  4. OpenNews: Выпуск hostapd и wpa_supplicant 2.7
  5. OpenNews: Выпуск Wi-Fi демона IWD 1.10
Обсуждение (91 +7) | Тип: Программы |
16.06.2021 Представлена библиотека 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. OpenNews: Уязвимости в подсистеме eBPF, позволяющие выполнить код на уровне ядра Linux
  2. OpenNews: Microsoft подготовил реализацию eBPF для Windows
  3. OpenNews: Компания Oracle намерена переработать DTrace для Linux с использованием eBPF
  4. OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
  5. OpenNews: Поддержка Rust для ядра Linux столкнулась с критикой Торвальдса
Обсуждение (114 +4) | Тип: Программы |
15.06.2021 Google открыл инструментарий для полностью гомоморфного шифрования (121 +29)
  Компания Google опубликовала открытый набор библиотек и утилит с реализацией системы полностью гомоморфного шифрования, позволяющей обрабатывать данные в шифрованном виде, которые не фигурируют в открытой форме ни на одном из этапов вычислений. Инструментарий даёт возможность создавать программы для конфиденциальных вычислений, способные работать с данными без расшифровки, в том числе выполнять математические и простые строковые операции над зашифрованными данными. Код проекта написан на языке C++ и распространяется под лицензией Apache 2.0.

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

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

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

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

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

  1. OpenNews: IBM открыл тулкит гомоморфного шифрования для Linux
  2. OpenNews: IBM, Google, Microsoft и Intel образовали альянс для развития открытых технологий защиты данных
  3. OpenNews: Google открыл код библиотеки для конфиденциальной обработки данных
  4. OpenNews: CryptDB - проект по обеспечению надежного шифрования данных в СУБД
  5. OpenNews: Google открыл систему для анализа наборов данных без нарушения конфиденциальности
Обсуждение (121 +29) | Тип: К сведению |
15.06.2021 Выпуск новой стабильной ветки Tor 0.4.6 (89 +19)
  Представлен выпуск инструментария Tor 0.4.6.5, используемого для организации работы анонимной сети Tor. Версия Tor 0.4.6.5 признана первым стабильным выпуском ветки 0.4.6, которая развивалась последние пять месяцев. Ветка 0.4.6 будет сопровождаться в рамках штатного цикла сопровождения - выпуск обновлений будет прекращён через 9 месяцев или через 3 месяца после релиза ветки 0.4.7.x. Длительный цикл поддержки (LTS) обеспечен для ветки 0.3.5, обновления для которой будут выпускаться до 1 февраля 2022 года. Одновременно сформированы выпуски Tor 0.3.5.15, 0.4.4.9 и 0.4.5.9 в которых устранены DoS-уязвимости, позволяющие вызвать отказ в обслуживании клиентов onion-сервисов и релеев.

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

  • Добавлена возможность создания onion-сервисов на базе третьей версии протокола с аутентификацией доступа клиентов через файлы в каталоге 'authorized_clients'.
  • Для релеев добавлен признак, позволяющий оператору узла понять, что релей не включён в консенсус в процессе выбора серверами директорий (например, когда слишком много релеев на одном IP-адресе).
  • Обеспечена возможность передавать сведения о перегрузке в данных extrainfo, которые могут использоваться при балансировке нагрузки в сети. Передача метрики контролируется при помощи опции OverloadStatistics в torrc.
  • В подсистему защиты от DoS-атак добавлена возможность ограничения интенсивности соединений клиентов к релеям.
  • В релеях реализована публикация статистики о числе onion-сервисов на базе третьей версии протокола и объёме их трафика.
  • Из кода для релеев удалена поддержка опции DirPorts, которая не используется для данного типа узлов.
  • Проведён рефакторинг кода. Подсистема защиты от DoS-атак перемещена в менеджер subsys.
  • Прекращена поддержка старых onion-сервисов на базе второй версии протокола, который был объявлен устаревшим год назад. Полностью удаление кода, связанного со второй версией протокола ожидается осенью. Вторая версия протокола была разработана около 16 лет назад и из-за применения устаревших алгоритмов в современных условиях не может считаться безопасной. Два с половиной года назад в выпуске 0.3.2.9 пользователям была предложена третья версия протокола для onion-сервисов, примечательная переходом на 56-символьные адреса, более надёжной защитой от утечек данных через серверы директорий, расширяемой модульной структурой и использованием алгоритмов SHA3, ed25519 и curve25519 вместо SHA1, DH и RSA-1024.
  • Устранены уязвимости:
    • CVE-2021-34550 - обращение к области памяти вне выделенного буфера в коде для парсинга дескрипторов onion-сервисов на базе третьей версии протокола. Атакующий может через размещение специально оформленного дескриптора onion-сервиса инициировать крах любого клиента, попытавшегося обратиться к этому onion-сервису.
    • CVE-2021-34549 - возможность проведения атаки для вызова отказа в обслуживании релеев. Атакующий может сформировать цепочки с идентификаторами, вызывающими коллизии в хэш-функции, обработка которых приводит к большой нагрузке на CPU.
    • CVE-2021-34548 - релей мог выполнить спуфинг ячеек RELAY_END и RELAY_RESOLVED в наполовину закрытых потоках, что позволяло завершить поток, который был создан без участия данного релея.
    • TROVE-2021-004 - добавлены дополнительные проверки сбоев при обращении генератору случайных чисел OpenSSL (с вызываемой по умолчанию реализацией RNG в OpenSSL подобные сбои не проявляются).

    1. OpenNews: Выпуск Tor Browser 10.0.17 и дистрибутива Tails 4.19
    2. OpenNews: Обновление Tor с устранением уязвимостей
    3. OpenNews: Проект Tor опубликовал приложение для обмена файлами OnionShare 2.3
    4. OpenNews: Выпуск новой стабильной ветки Tor 0.4.5
    5. OpenNews: Выпуск новой стабильной ветки Tor 0.4.4
Обсуждение (89 +19) | Тип: Программы |
14.06.2021 Выпуск rqlite 6.0, распределённой отказоустойчивой СУБД на основе SQLite (49 +16)
  Представлен релиз распределённой СУБД rqlite 6.0, которая использует SQLite в качестве движка хранения и позволяет организовать работу кластера из синхронизированных между собой хранилищ. Из особенностей rqlite отмечается простота установки, развёртывания и сопровождения распределённого отказоустойчивого хранилища, чем-то похожего на etcd и Consul, но использующего реляционную модель работы с данными вместо формата ключ/значения. Код проекта написан на языке Go и распространяется под лицензией MIT.

Для поддержания всех узлов в синхронизированном состояния используется алгоритм достижения консенсуса Raft. Rqlite использует оригинальную библиотеку SQLite и драйвер go-sqlite3, поверх которых запускается прослойка, обрабатывающая запросы клиентов, выполняющая репликацию на другие узлы и отслеживающая достижение консенсуса по выбору лидирующего узла.

Изменения в базу данных могут вноситься только узлом, который выбран в качестве лидирующего, но соединения с операциями записи могут направляться и к другим узлам кластера, которые вернут адрес лидера для повторения запроса (в следующей версии обещают добавить автоматический проброс обращения к лидеру). Главный упор делается на отказоустойчивость, поэтому СУБД масштабируется только по операциям чтения, а операции записи являются узким местом. Возможно запустить кластер rqlite из одного узла и такое решение может использоваться для организации доступа к SQLite поверх HTTP без предоставления отказоустойчивости.

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

Особенности rqlite:

  • Простота развёртывания кластера, без необходимости отдельной установки SQLite.
  • Возможность быстро получить реплицированное SQL-хранилище.
  • Готовность для использования в рабочих проектах (production-grade).
  • Наличие HTTP(S) API, позволяющего обновлять данные в пакетном режиме и определять лидирующий узел кластера. Также предоставляется интерфейс командной строки и клиентские библиотеки для различных языков программирования.
  • Наличие сервиса для определения других узлов, позволяющего создавать кластеры динамически.
  • Поддержка шифрования обмена данных между узлами.
  • Возможность настройки уровня проверки актуальности и согласованности данных при чтении.
  • Опциональная возможность подключения узлов в режиме только для чтения, не принимающих участие в определении консенсуса и используемых для увеличения масштабируемости кластера по операциям чтения.
  • Поддержка собственной формы транзакций на базе объединения команд в одном запросе (транзакции на базе BEGIN, COMMIT, ROLLBACK, SAVEPOINT и RELEASE не поддерживаются).
  • Поддержка создания горячих резервных копий.

В новом выпуске внесены значительные архитектурные изменения, направленные на повышения надёжности кластера за счёт улучшения процесса направления запросов на чтения и запись к корректным узлам кластера. Узлы rqlite теперь могут мультиплексировать между собой несколько логических соединений, используя TCP-соединения, установленные между узлами протоколом Raft. Если запрос требует полномочий лидирующего узла, но отправлен вторичному узлу, вторичный узел может определить адрес лидера и передать его клиенту, без выполнения расчёта консенсуса по протоколу Raft.

Изменение также позволило избавиться от отдельного компонента для синхронизации метаданных и исключить отдельную обработку состояния Raft и метаданных. Вторичные узлы теперь направляют запросы к узлу-лидеру только по необходимости, когда нужно узнать адрес лидирующего узла. В API предоставлена возможность получения информации о состоянии других узлов в кластере. В интерфейс командной строки добавлена команда ".sysdump".

  1. OpenNews: Доступен Dqlite 1.0, распределённый вариант SQLite от компании Canonical
  2. OpenNews: В рамках проекта LiteTree развивается вариант SQLite с поддержкой ветвления БД
  3. OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
  4. OpenNews: Проект DuckDB развивает вариант SQLite для аналитических запросов
  5. OpenNews: Выпуск СУБД SQLite 3.35
Обсуждение (49 +16) | Тип: Программы |
12.06.2021 Выпуск дистрибутива helloSystem 0.5, использующего FreeBSD и напоминающего macOS (184 +22)
  Симон Петер (Simon Peter), создатель формата самодостаточных пакетов AppImage, опубликовал выпуск дистрибутива helloSystem 0.5, основанного на FreeBSD и позиционируемого как система для обычных пользователей, на которую могут перейти любители macOS, недовольные политикой Apple. Система лишена усложнений, свойственных современным Linux-дистрибутивам, находится под полным контролем пользователя и позволяет чувствовать себя комфортно бывшим пользователям macOS. Для ознакомления с дистрибутивом cформирован загрузочный образ, размером 1.2 ГБ.

Интерфейс напоминает macOS и включает две панели - верхнюю с глобальным меню и нижнюю с панелью приложений. Для формирования глобального меню и строки состояния задействован пакет panda-statusbar, развиваемый дистрибутивом CyberOS (бывший PandaOS). Панель приложений Dock основана на наработках проекта cyber-dock, также от разработчиков CyberOS. Для управления файлами и размещения ярлыков на рабочем столе развивается файловый менеджер Filer, основанный на pcmanfm-qt от проекта LXQt. По умолчанию предлагается браузер Falkon, но опционально доступен и Chromium.

В качестве основной файловой системы используется ZFS, а для монтирования поддерживаются exFAT, NTFS, EXT4, HFS+, XFS и MTP. Приложения поставляются в самодостаточных пакетах. Для запуска приложений применяется утилита launch, которая находит программу и анализирует ошибки при выполнении. Система для сборки Live-образов основана на инструментарии проекта FuryBSD.

Проектом развивается серия собственных приложений, таких как конфигуратор, инсталлятор, утилита mountarchive для монтирования архивов в дерево ФС, утилита для восстановления данных с ZFS, интерфейс для разбивки дисков, индикатор настройки сети, утилита для создания скриншотов, браузер Zeroconf-серверов, индикатор для настройки громкости, утилита для настройки загрузочного окружения. Для разработки используется язык Python и библиотека Qt. Среди поддерживаемых компонентов для разработки приложений в порядке снижения предпочтения названы PyQt, QML, Qt, KDE Frameworks и GTK.

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

  • Базовое окружение синхронизировано с FreeBSD 12.2.
  • Значительно сокращён размер iso-образа (c 1.7 до 1.27 ГБ).
  • Реализовано автоматическое обновление системного меню при добавлении, перемещении или удалении подкаталогов и приложений.
  • В конфигураторе появилась возможность выбора различных вариантов раскладки клавиатуры. Обеспечена поддержка сохранения параметров клавиатуры между перезагрузками.
  • В набор /Applications/Developer предустановлено приложение QHexEdit.
  • Добавлена поддержка GPU AMD Radeon HD 6630M/6650M/6750M/7670M/7690M, применявшихся в Mac образца 2011 года.
  • В файловом менеджере Filer реализована начальная поддержка пространственного режима, при котором каждый каталог открывается в отдельном окне. Кроме того, добавлено новое меню "Go to...", опция для открытия файлов/каталогов с правами root, контекстное меню для отмонтирования накопителя, сочетание клавиш Command+Up для перехода к родительскому каталогу и Command+I для вывода параметров файла.
  • Добавлена утилита для доступа к файлам на мобильных телефонах с использованием протокола MTP.
  • Реализована поддержка скрытия области с заголовком окна через двойной клик на заголовке.
  • В глобальном меню появилась возможность управления громкостью запущенных приложений (при клике правой кнопкой мыши).

  1. OpenNews: Релиз FreeBSD 13.0
  2. OpenNews: Проект FreeBSD перевёл порт ARM64 в число первичных и исправил три уязвимости
  3. OpenNews: Автор AppImage развивает дистрибутив helloSystem, использующий FreeBSD и напоминающий macOS
  4. OpenNews: Выпуск Bastille 0.8, системы управления контейнерами на основе FreeBSD Jail
  5. OpenNews: Выпуск дистрибутива NomadBSD 130R-20210508
Обсуждение (184 +22) | Тип: Программы |
12.06.2021 CuteFish - новое окружение рабочего стола (168 +36)
  Разработчики Linux-дистрибутива CuteFishOS, основанного на пакетной базе Debian, развивают новое пользовательское окружение CuteFish, по стилю напоминающий macOS. В качестве дружественного проекта упоминается JingOS, имеющего схожий с CuteFish интерфейс, но оптимизированный для планшетов. Наработки проекта написаны на языке С++ с использованием Qt и библиотек KDE Frameworks. Код распространяется под лицензией GPLv3. Установочные сборки дистрибутива CuteFishOS ещё не готовы, но окружение уже можно протестировать, установив группу пакетов cutefish для Arch Linux ("pacman -Syu cutefish") или воспользовавшись альтернативной сборкой - Manjaro Сutefish.

Для разработки компонентов пользовательского окружения используется библиотека fishui с реализацией надстройки над набором виджетов Qt Quick Controls 2. Поддерживается светлая и тёмная темы оформления, окна без рамок, тени под окнами, размытие содержимого фоновых окон, глобальное меню и стили Qt Quick Control. Для управления окнами используется композитный менеджер KWin с набором дополнительных плагинов.

Проектом развиваются собственные панель задач, полноэкранный интерфейс для запуска приложений (launcher) и верхняя панель с глобальным меню, виджетами и системным лотком. Среди приложений, разработанных участниками проекта: файловый менеджер, калькулятор и конфигуратор.

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

  1. OpenNews: Доступен JingOS 0.9, дистрибутив для планшетных ПК
  2. OpenNews: Выпуск рабочего стола Budgie 10.5.3
  3. OpenNews: Выпуск рабочего стола Regolith 1.6
  4. OpenNews: Релиз дистрибутива Manjaro Linux 21.0
  5. OpenNews: Выпуск дистрибутива Deepin 20.2, развивающего собственное графическое окружение
Обсуждение (168 +36) | Тип: Программы |
11.06.2021 Google признал неудачным эксперимент с показом только домена в адресной строке Chrome (127 +42)
  Компания Google признала неудачной идею с отключением отображения элементов пути и параметров запроса в адресной строке и удалила из кодовой базы Chrome код с реализацией данной возможности. Напомним, что год назад в Chrome был добавлен экспериментальный режим, при котором видимым оставался только домен сайта, а полный URL можно будет увидеть лишь после клика на адресной строке.

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

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

Идеи по изменению показа URL в адресной строке компания Google продвигает начиная с 2018 года, мотивируя свои действия тем, что обычным пользователям трудно понять URL, его трудно читать и по нему сразу не понятно какие из частей адреса заслуживают доверия. Начиная с Chrome 76 адресная строка была переведена по умолчанию на показ ссылок без "https://", "http://" и "www.", после чего разработчики выразили желание урезать и информативную части URL, но после года экспериментов отказались от этого намерения.

По мнению Google в адресной строке пользователь должен ясно видеть с каким сайтом взаимодействует и можно ли ему доверять (компромиссный вариант с более явным выделением домена и отображением параметров запроса более светлым/мелким шрифтом не рассматривался). Также упоминается путаница с заполнением URL при работе с интерактивными web-приложениями, такими как Gmail. При изначальном обсуждении инициативы некоторыми пользователями было высказано предположение, что избавление от показа полного URL выгодно для продвижения технологии AMP (Accelerated Mobile Pages).

При помощи AMP страницы отдаются не напрямую, а через инфраструктуру Google, что приводит к отображению в адресной строке другого домена (https://cdn.ampproject.org/c/s/example.com) и часто вызывает замешательство пользователей. Уход от отображения URL позволит скрыть домен AMP Cache и создаст иллюзию прямого обращения к основному сайту. Подобное скрытие уже производится в Chrome для Android. Скрытие URL также может быть полезным при распространении web-приложений при помощи механизма Signed HTTP Exchanges (SXG), предназначенного для организации размещения верифицированных копий web-страниц на других сайтах.

  1. OpenNews: В Chrome 83 появится настройка для показа полного URL в адресной строке
  2. OpenNews: В Chrome 90 утверждено использование HTTPS по умолчанию в адресной строке
  3. OpenNews: Google намерен уйти от показа традиционного URL в адресной строке Chrome
  4. OpenNews: В Chrome 86 будет по умолчанию включено контекстное меню для возвращения полного URL
  5. OpenNews: В Chrome намерены перейти к показу только домена в адресной строке
Обсуждение (127 +42) | Тип: К сведению |
09.06.2021 ALPACA - новая техника MITM-атак на HTTPS (201 +34)
  Группа исследователей из нескольких университетов Германии разработала новый метод MITM-атаки на HTTPS, дающий возможность извлечь Cookie с идентификаторами сеанса и другие конфиденциальные данные, а также добиться выполнения произвольного кода JavaScript в контексте другого сайта. Атака получила название ALPACA и может быть применена к TLS-серверам, реализующим разные протоколы прикладного уровня (HTTPS, FTPS, SMTP, IMAP, POP3), но использующим общие TLS-сертификаты.

Суть атаки в том, что при наличии контроля над сетевым шлюзом или точкой беспроводного доступа атакующий может перенаправить web-трафик на другой сетевой порт и организовать установку соединения с FTP или почтовым сервером, поддерживающими TLS-шифрование и использующими общий с HTTP-сервером TLS-сертификат, и браузер пользователя будет считать, что установлено соединение с запрошенным HTTP-сервером. Так как протокол TLS универсален и не привязан к протоколам прикладного уровня, установка шифрованного соединения для всех сервисов идентична и ошибка отправки запроса не к тому сервису может быть определена только уже после установки шифрованного сеанса во время обработки команд отправленного запроса.

Соответственно, если, например, перенаправить соединение пользователя, изначально адресованное к HTTPS, на почтовый сервер, в котором применяется общий с HTTPS-сервером сертификат, TLS-соединение будет успешно установлено, но почтовый сервер не сможет обработать переданные HTTP-команды и вернёт ответ с кодом ошибки. Данный ответ будет обработан браузером как ответ запрошенного сайта, переданный внутри корректно установленного шифрованного канала связи.

Предложено три варианта атаки:

  • "Upload" для извлечения Cookie с параметрами аутентификации. Метод применим, если охватываемый TLS-сертификатом FTP-сервер позволяет загрузить и извлечь свои данные. В данном варианте атаки атакующий может добиться сохранения частей изначального HTTP-запроса пользователя, таких как содержимое заголовка Cookie, например, если FTP-сервер интерпретирует запрос как файл для сохранения или полностью журналирует входящие запросы. Для успешной атаки злоумышленнику требуется затем каким-то образом извлечь сохранённое содержимое. Атака применима к Proftpd, Microsoft IIS, vsftpd, filezilla и serv-u.
  • "Download" для организации межсайтового скриптинга (XSS). Метод подразумевает, что атакующий в результате каких-то отдельных манипуляций может разместить данные в сервисе, использующем общий TLS-сертификат, которые затем можно выдать в ответ на запрос пользователя. Атака затрагивает вышеотмеченные FTP-серверы и IMAP/POP3-серверы (courier, cyrus, kerio-connect и zimbra). Например, подобный вариант атаки может быть применим к почтовым сервисам, предоставляющим доступ к сообщениям через web-интерфейс и через POP3/IMAP поверх TLS.
  • "Reflection" для запуска JavaScript в контексте другого сайта. Метод основан на возвращении клиенту части запроса, в котором содержится отправленный атакующим JavaScript-код. Атака применима к вышеотмеченным FTP-серверам, IMAP-серверам cyrus, kerio-connect и zimbra, а также к SMTP-серверу sendmail.

Например, при открытии пользователем страницы, подконтрольной атакующим, с этой страницы может быть инициирован запрос ресурса с сайта, на котором у пользователя имеется активная учётная запись (например, bank.com). В ходе MITM-атаки этот запрос, адресованный web-сайту bank.com, можно перенаправить на почтовый сервер, в котором используется общий с bank.com TLS-сертификат. Так как почтовый сервер не завершает сеанс после первой ошибки, служебные заголовки и команды, такие как "POST / HTTP/1.1" и "Host:", будут обработаны как неизвестные команды (почтовый сервер вернёт на каждый заголовок "500 unrecognized command").

Почтовый сервер не разбирает особенности протокола HTTP и для него служебные заголовки и блок данных POST-запроса обрабатываются одинаково, поэтому в теле POST-запроса можно указать строку с командой почтовому серверу. Например, можно передать:


   MAIL FROM: <script>alert(1);</script>
на что почтовый сервер вернёт сообщение об ошибке

   501 <script>alert(1);</script>: malformed address: alert(1);</script> may not follow <script>

Этот ответ получит браузер пользователя, который выполнит JavaScript-код в контексте не изначально открытого сайта атакующего, а сайта bank.com, на который был отправлен запрос, так как ответ поступил внутри корректного TLS-сеанса, сертификат которого подтвердил подлинность ответа bank.com. Из браузеров подобная манипуляция сработает только в Internet Explorer и в старом Microsoft Edge (выпуски до перехода на движок Chromium), которые определяют наличие HTML/JavaScript в выдаваемом потоке, даже если ответ сервера не содержит корректного заголовка ("HTTP/1.1 200 OK"). Для того, чтобы заставить выполнить JavaScript в остальных браузерах необходимо обеспечить вывод корректного HTTP-ответа, например, это можно сделать при наличии доступа на запись на FTP-сервер при возможности вернуть содержимое сохранённого файла в ответ на запрос из браузера пользователя.

Сканирование глобальной сети показало, что проблеме в общем виде подвержены около 1.4 млн web-серверов, для которых возможно совершение атаки со смешиванием обращений по разным протоколам. Возможность реального совершения атаки определена для 119 тысяч web-серверов, для которых присутствовали сопутствующие TLS-серверы на базе других прикладных протоколов.

Примеры эксплоитов подготовлены для ftp-серверов pureftpd, proftpd, microsoft-ftp, vsftpd, filezilla и serv-u, IMAP- и POP3-серверов dovecot, courier, exchange, cyrus, kerio-connect и zimbra, SMTP-серверов postfix, exim, sendmail, mailenable, mdaemon и opensmtpd. Исследователями изучена возможность совершения атаки только в сочетании с серверами FTP, SMTP, IMAP и POP3, при этом не исключается, что проблема может проявляться и для других прикладных протоколов, использующих TLS.

Для блокирования атаки предложено использовать расширение ALPN (Application Layer Protocol Negotiation) для согласования TLS-сеанса с учётом прикладного протокола и расширение SNI (Server Name Indication) для привязки к имени хоста в случае применения TLS-сертификатов, охватывающих несколько доменных имён. На стороне приложений рекомендовано ограничить лимит на число ошибок при обработке команд, после достижения которого разрывать соединение. Процесс выработки мер по блокированию атаки начался ещё в октябре прошлого года. Подобные меры для защиты уже приняты в Nginx 1.21.0 (mail proxy), Vsftpd 3.0.4, Courier 5.1.0, Sendmail, FileZilla, crypto/tls (Go) и Internet Explorer.

  1. OpenNews: RangeAmp - серия атак на CDN, манипулирующая HTTP-заголовком Range
  2. OpenNews: Представлен Sweet32, новый вид атаки на HTTPS и OpenVPN
  3. OpenNews: Уязвимость, позволяющая совершить MITM-атаку через манипуляцию с HTTP-заголовком Proxy
  4. OpenNews: Новая техника атаки на SSL/TLS, которой подвержены 33% HTTPS-сайтов
  5. OpenNews: Представлен новый вид атаки по перехвату данных, передаваемых через HTTPS-соединения
Обсуждение (201 +34) | Тип: Проблемы безопасности |
09.06.2021 Релиз загрузочного менеджера GNU GRUB 2.06 (107 +28)
  После двух лет разработки представлен стабильный релиз модульного многоплатформенного менеджера загрузки GNU GRUB 2.06 (GRand Unified Bootloader). GRUB поддерживает широкий спектр платформ, включая обычные ПК с BIOS, платформы IEEE-1275 (оборудование на базе PowerPC/Sparc64), EFI-системы, RISC-V, оборудование на основе MIPS-совместимого процессора Loongson 2E, системы Itanium, ARM, ARM64 и ARCS (SGI), устройства, использующие свободный пакет CoreBoot.

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

  • Добавлена поддержка механизма SBAT (UEFI Secure Boot Advanced Targeting), решающего проблемы с отзывом сертификатов, которыми заверены загрузчики для UEFI Secure Boot. SBAT подразумевает добавление новых метаданных, которые заверяются цифровой подписью и могут дополнительно включаться в списки разрешённых или запрещённых компонентов для UEFI Secure Boot. Указанные метаданные позволяют при отзыве манипулировать номерами версий компонентов без необходимости перегенерации ключей для Secure Boot и без формирования новых подписей.
  • Добавлена поддержка формата шифрования дисков LUKS2, который отличается от LUKS1 упрощённой системой управления ключами, возможностью использования секторов большого размера (4096 вместо 512, снижает нагрузку при расшифровке), применением символьных идентификаторов разделов и средствами резервирования метаданных с возможностью их автоматического восстановления из копии в случае выявления повреждения.
  • Прекращена поддержка коротких MBR gap (область между MBR и началом дискового раздела, в GRUB используется для хранения части загрузчика, не умещающейся в сектор MBR).
  • Добавлена поддержка модулей XSM (Xen Security Modules), позволяющих определять дополнительные ограничения и полномочия для гипервизора Xen, виртуальных машин и связанных с ними ресурсов.
  • Реализован механизм lockdown, похожий на аналогичный набор ограничений в ядре Linux. Lockdown блокирует возможные пути обхода UEFI Secure Boot, например, запрещает доступ к некоторым интерфейсам ACPI и MSR-регистрам CPU, ограничивает использование DMA для PCI-устройств, блокирует импорт кода ACPI из переменных EFI, не допускаются манипуляции с портами ввода/вывода.
  • По умолчанию отключена утилита os-prober, находящая загрузочные разделы других ОС и добавляющая их в загрузочное меню.
  • Бэкпортированы патчи, подготовленные различными дистрибутивами Linux.
  • Устранены уязвимости BootHole и BootHole2.
  • Реализована возможность сборки с использованием GCC 10 и Clang 10.

  1. OpenNews: Трудноустранимые уязвимости в GRUB2, позволяющие обойти UEFI Secure Boot
  2. OpenNews: Дистрибутивы устранили проблемы с обновлением GRUB2
  3. OpenNews: В обновлении GRUB2 выявлена проблема, приводящая к невозможности загрузки
  4. OpenNews: Критическая уязвимость в загрузчике GRUB2, позволяющая обойти UEFI Secure Boot
  5. OpenNews: Релиз менеджера загрузки GNU GRUB 2.04
Обсуждение (107 +28) | Тип: Программы |
08.06.2021 Релиз рабочего стола KDE Plasma 5.22 (178 +57)
  Доступен релиз пользовательской оболочки KDE Plasma 5.22, построенной с использованием платформы KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES для ускорения отрисовки. Оценить работу новой версии можно через Live-сборку от проекта openSUSE и сборки от проекта KDE Neon User Edition. Пакеты для различных дистрибутивов можно найти на данной странице.

Ключевые улучшения:

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


  • Значительно улучшена поддержка Wayland. При использовании Wayland предоставлена возможность работы с комнатами (activity) и поддержка поиска по элементам меню в апплете с реализацией глобального меню. Налажена работа вертикальной и горизонтальной максимизации окон, а также реализована возможность использования эффекта "Present Windows".

    В оконном менеджере KWin при использовании протокола Wayland реализована оптимизация производительности через использование прямого вывода (direct scan-out) полноэкранных окон на GPU, отличных от NVIDIA. При использовании Wayland добавлена поддержка технологии FreeSync, которая позволяет видеокарте менять частоту обновления монитора с тем, чтобы обеспечить плавность и отсутствие рваного изображения во время игр. Добавлена поддержка горячего подключения GPU и возможность настройки значений вылетов развёртки (overscan).

  • В конфигурациях с несколькими мониторами по умолчанию обеспечено открытие окон на экране, на котором в текущий момент находится курсор.
  • Для отслеживания изменения параметров системы (потребление памяти, нагрузка на CPU, сетевая активность, запущенные приложения и т.п.) по умолчанию задействован интерфейс Plasma System Monitor, который заменил собой KSysGuard.
  • В новом меню Kickoff устранены раздражающие задержки перед переключением категорий, а также решена проблема со случайных переключением категорий при перемещении курсора.
  • В менеджере задач изменено поведение по умолчанию режима подсветки окон, который теперь срабатывает только при наведении курсора мыши на эскиз окна.
  • Обеспечена корректная работа глобальных горячих клавиш, затрагивающих не только латинские символы на клавиатурах.
  • В виджете липких заметок предоставлена возможность изменения размера текста.
  • При запуске конфигуратора теперь по умолчанию показывается новая страница быстрых настроек, на которой в одном месте собраны самые востребованные пользователями параметры, а также размещена ссылка для смены обоев рабочего стола. Добавлен параметр для управления активностью режима установки обновлений в offline-режиме в обход настроек по умолчанию, предлагаемых в дистрибутивах. Улучшена поддержка средств для людей с ограниченными возможностями и навигация с использованием клавиатуры.
  • Проведена работа по унификации интерфейса апплетов системного лотка. Изменено оформление всплывающего диалога апплета часов и добавлена возможность настройки показа даты в одной строке со временем. В апплете управления громкостью предоставлена возможность выбора профиля для звуковых устройств, например, для быстрого переключения устройства воспроизведения без открытия интерфейса настройки.
  • Добавлена клавиатурная комбинация Meta+V для показа истории помещения данных в буфер обмена.
  • В системе вывода уведомлений для загруженных или перемещённых файлов обеспечен показ приложений, которые будут открыты при нажатии ссылки "открыть". Уведомления о загрузке файлов теперь информируют пользователя о блокировке процесса загрузки и необходимости инициирования действий по началу или продолжению загрузки. Обеспечена автоматическая активация режима "не беспокоить" для блокирования вывода уведомлений во время предоставления совместного доступа к экрану или записи скринкастов.
  • В интерфейсе поиска программ (KRunner) реализован показ многострочных результатов поиска, что, например, делает более удобным показ определений. Добавлено отсеивание дубликатов, найденных разными обработчиками (например, поиск "firefox" больше не предлагает равнозначные варианты запуска приложения firefox и запуска команды firefox в командной строке).

  1. OpenNews: Релиз рабочего стола KDE Plasma 5.21
  2. OpenNews: Релиз десктоп-окружения Trinity R14.0.10, продолжающего развитие KDE 3.5
  3. OpenNews: Выпуск KDE Gear 21.04, набора приложений от проекта KDE
  4. OpenNews: KDE взял на себя продолжение сопровождения общедоступной ветки Qt 5.15
  5. OpenNews: Представлен Fedora Kinoite, аналог Fedora Silverblue с рабочим столом KDE
Обсуждение (178 +57) | Тип: Программы |
Следующая страница (раньше) >>



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

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