The OpenNET Project / Index page

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

16.02.2019 Развитие Fedora Atomic Host прекращено в пользу проекта Fedora CoreOS (55)
  Разработчики проекта Fedora сообщили об удалении компонентов Fedora Atomic Host из репозитория Rawhide и прекращении разработки данной редакции дистрибутива. Fedora 29 станет последним выпуском с компонентами Fedora Atomic Host. После окончания цикла сопровождения Fedora 29 выпуск обновлений для Fedora Atomic Host будет полностью прекращён (ориентировочно в ноябре или декабре 2019 года).

Напомним, что в рамках проекта Fedora Atomic Host предлагалось урезанное до минимума окружение, обновление которого производится атомарно через замену образа всей системы, без разбивки на отдельные пакеты. На базе Fedora Atomic Host формировалось специализированное окружение для запуска и управления изолированными контейнерами Docker. Все пакеты, обеспечивающие работу конечных приложений, поставлялись непосредственно в составе контейнеров, а хост-система содержала только минимальный набор компонентов (systemd, journald, docker, rpm-OSTree и т.п.). Наработки Fedora Atomic Host использовались для формирования продуктов Red Hat Enterprise Linux Atomic Host и CentOS Atomic Host.

Отмечается, что на смену Fedora Atomic Host придёт проект Fedora CoreOS, продолжающий разработку серверной Linux-системы Container Linux, которая перешла в руки Red Hat после покупки компании CoreOS. В рамках продукта Fedora CoreOS объединены технологии Fedora Atomic и Container Linux. Как и в Fedora Atomic начинка Fedora CoreOS формируется на основе репозиториев Fedora с применением rpm-ostree, а для дополнительной изоляции контейнеров применяется SELinux, но базовые технологии, такие как Ignition (система конфигурирования на стадии начальной загрузки, альтернатива Cloud-Init) и механизм установки обновлений, перенесены из Container Linux.

Прекращение развития Fedora Atomic Host не повлияет на разработку проекта Fedora Atomic Workstation, который теперь развивается под именем Fedora Silverblue и со временем может заменить традиционный Fedora Workstation. Редакция Fedora Silverblue также поставляется в монолитном виде, без разделения базовой системы на отдельные пакеты, с применением атомарного механизма обновления. Вместо контейнеров Docker для установки дополнительных приложений применяются самодостаточные пакеты в формате flatpak. Системный образ неделим и формируется с использованием технологии OSTree (отдельные пакеты установить в таком окружении нельзя, можно лишь пересобрать весь образ системы, расширив его новыми пакетами при помощи инструментария rpm-ostree).

  1. OpenNews: Проект Silverblue будет развивать атомарно обновляемый вариант Fedora Workstation
  2. OpenNews: Представлен проект Fedora CoreOS
  3. OpenNews: Объявлено о создании редакции Fedora для интернета вещей
  4. OpenNews: Компания Red Hat представила первый стабильный выпуск дистрибутива Atomic Host
  5. OpenNews: Выпуск CentOS Atomic Host 7.1811, специализированной ОС для запуска контейнеров Docker
Обсуждение (55) | Тип: К сведению |
15.02.2019 Выпуск Ubuntu 18.04.2 LTS c обновлением графического стека и ядра Linux (144 +21)
  Сформировано обновление дистрибутива Ubuntu 18.04.2 LTS, в которое включены изменения, связанные с улучшением поддержки оборудования, обновлением ядра Linux и графического стека, исправлением ошибок в инсталляторе и загрузчике. В состав также включены актуальные обновления для нескольких сотен пакетов, связанные с устранением уязвимостей и проблем, влияющих на стабильность. Одновременно представлены аналогичные обновления Kubuntu 18.04.2 LTS, Ubuntu Budgie 18.04.2 LTS, Ubuntu MATE 18.04.2 LTS, Lubuntu 18.04.2 LTS, Ubuntu Kylin 18.04.2 LTS и Xubuntu 18.04.2 LTS.

В состав выпуска включены некоторые улучшения, бэкпортированные из выпуска Ubuntu 18.10:

  • Предложено обновление пакетов с ядром 4.18 (в Ubuntu 18.04 и 18.04.1 использовалось ядро 4.15).
  • Обновлены компоненты графического стека, включая X.Org Server 1.20.1 и Mesa 18.2, которые были протестированы в осеннем выпуске Ubuntu 18.10. Добавлены свежие версии видеодрайверов для чипов Intel, AMD и NVIDIA.
  • Обновлены версии пакетов LibreOffice 6.0.7, Thunderbird 60.4.0, Firefox 65, GNOME Shell 3.28.3, Glib 2.56.2, OpenStack Queens, snapd 2.37.1, LXC 3.0.2, cloud-init 18.3, evince 3.28.4, shotwell 0.28, llvm 7;
  • Решены проблемы с отображением приглашения входа в систему на устройствах со старыми GPU Intel (Core2 и Atom);
  • Устранена утечка памяти в файловом менеджере Nautilus;
  • В экранной клавиатуре (OSK) исправлена ошибка, не позволявшая вводить буквы в верхнем регистре;
  • Исправлена ошибка, приводившая к запуску двух экземпляров приложения при попытке запуска через касание к ярлыку на панели на устройствах с сенсорным экраном;
  • Исправлена ошибка, из-за которой панель могла показываться и во время блокировки экрана;
  • Решены проблемы с производительностью в GNOME Shell;
  • Исправлена ошибка, приводившая к потере уведомлений о наличии Livepatch-обновлений;
  • В Ubuntu Server после установки оставлен активным только репозиторий "main";
  • Устранён сбой при попытке установки на дисковый раздел, до этого используемый для ZFS;
  • Добавлены сборки Ubuntu Server для плат Raspberry Pi 3, помимо ранее формируемых сборок для Raspberry Pi 2.

В сборках для рабочего стола новые ядро и графический стек предложены по умолчанию. Для серверных систем новое ядро добавлено в качестве опции в инсталляторе. Использовать новые сборки имеет смысл только для новых установок - системы, установленные ранее, могут получить все присутствующие в Ubuntu 18.04.2 изменения через штатную систему установки обновлений. Пользователи прошлой LTS-ветки Ubuntu 16.04 получат в менеджере установки обновлений уведомление о возможности автоматического перехода на ветку 18.04.2.

В анонсе упоминается, что поддержка выпуска обновлений и исправлений проблем безопасности для Ubuntu Desktop, Ubuntu Server, Ubuntu Cloud и Ubuntu Base 18.04 составит 5 лет, а для дополнительных редакций (Kubuntu, Xubuntu и т.п.) - 3 года. При этом ранее Марк Шаттлворт заявлял о продлении срока поддержки для ветки 18.04 до 10 лет, что не отражено в примечании к выпуску.

Напомним, что для поставки новых версий ядра и графического стека применяется rolling-модель поддержки обновлений, в соответствии с которой бэкпортированные ядра и драйверы будут поддерживаться только до выхода следующего корректирующего обновления LTS-ветки Ubuntu. Например, предложенное в текущем выпуске ядро Linux 4.18 будет поддерживаться до выхода Ubuntu 18.04.3, в котором будет предложено ядро из состава Ubuntu 19.04. Изначально поставляемое базовое ядро 4.15 будет поддерживаться в течение всего цикла сопровождения.

Для перевода уже существующих установок на новые версии ядра и графического стека следует выполнить команду:


   sudo apt-get install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04 

Дополнение: Внимание, обладателям видеокарт NVIDIA следует повременить с обновлением графического стека из-за проблем с зависимостями драйвера или установить исправленый пакет nvidia-340, доступный сейчас только в тестовом репозитории bionic-proposed.



  1. OpenNews: Выпуск Ubuntu Core 18
  2. OpenNews: Время поддержки Ubuntu 18.04 увеличено до 10 лет
  3. OpenNews: Релиз Ubuntu 18.10
  4. OpenNews: Релиз Ubuntu 18.04.1 LTS
  5. OpenNews: Релиз дистрибутива Ubuntu 18.04 LTS
Обсуждение (144 +21) | Тип: Программы |
14.02.2019 Обновление PostgreSQL с устранением серьёзных проблем с fsync (74 +26)
  Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL: 11.2, 10.7, 9.6.12, 9.5.16 и 9.4.21, в которых исправлено около 70 ошибок. Наиболее значительным изменением стала переработка механизма использования вызова fsync() для обеспечения целостности записываемых на диск данных.

Оказалось, что вызов fsync() некорректно используется в PostgreSQL уже около 20 лет, что потенциально могло приводить в Linux, NetBSD и OpenBSD к потере записываемых данных в случае аппаратных сбоев. Разработчики PostgreSQL полагали, что успешно завершившийся вызов fsync() гарантирует, что поступившие данные записаны на постоянный носитель, но оказалось, что существуют ситуации когда это не так.

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

Так как буферы были очищены повторный вызов будет завершён успешно и PostgreSQL посчитает, что все данные записаны успешно. Но на деле, при чтении блоков, которые PostgreSQL полагает записанными, будет возвращено не то, что ожидается. Проблема усугубляется тем, что в разных операционных системах fsync() ведёт себя по разному и логичным кажется поведение, когда данные не отбрасываются при первой же неудачной попытке записи, а сохраняются в памяти в состоянии "dirty" для повторения попыток записи.

Начиная с выпусков PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16 и 9.4.21 логика обработки ошибок fsync() изменена и PostgreSQL теперь не пытается после сбоя выполнения fsync() повторно вызвать fsync(), а завершается с выдачей фатальной ошибки. Данный шаг даёт возможность при перезапуске восстановить корректное состояние данных на основе WAL-лога, минуя скрытое повреждение содержимого базы. Подобная логика обработки ошибки может показаться неоптимальной, но разработчики сочли данное решение достаточным так как указанные проблемы возникают крайне редко.

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

Поведение с очисткой буфера записи после ошибки объясняется тем, что в подавляющем большинстве случаев ошибки ввода/вывода возникают из-за удаления USB-накопителя без отмонтирования. Без очистки ситуация, когда какой-то процесс продолжает пытаться записать большой объём данных, приведёт к накапливанию страниц в состоянии "dirty", вплоть до исчерпания доступной памяти. Очистка же помогает сохранить работоспособность системы в подобных ситуациях.

Дополнительно можно отметить, что факт ошибки не всегда удаётся отследить. Например, если ошибка ввода/вывода возникла до открытия файла, то fsync() завершится успешно. Компания Google для обхода описанной проблемы использует альтернативный метод обработки ошибок ввода/вывода, основанный на сборе сведений об ошибках напрямую из ядра через netlink-сокет. Другим вариантом является использование прямого ввода/вывода (DIO), который предоставляет дополнительные механизмы для отслеживания сброса данных на диск и контроля за активностью ввода/вывода.

  1. OpenNews: Обновление PostgreSQL 11.1, 10.6, 9.6.11, 9.5.15, 9.4.20 и 9.3.25
  2. OpenNews: Выпуск PipelineDB 1.0.0, надстройки к PostgreSQL для непрерывной обработки потоков
  3. OpenNews: Релиз СУБД PostgreSQL 11
  4. OpenNews: Для PostgreSQL предложено новое хранилище zheap
  5. OpenNews: Microsoft поглотил компанию Citus, развивающую СУБД на базе PostgreSQL
Обсуждение (74 +26) | Тип: Программы |
14.02.2019 Выпуск системного менеджера systemd 241 (192 –10)
  Опубликован релиз системного менеджера systemd 241, в котором устранены ранее выявленные уязвимости в systemd-journald, позволяющие непривилегированному локальному пользователю получить права root. Для защиты от эксплуатации уязвимостей в systemd-journald и systemd-journal-remote теперь отбрасываются записи со слишком большим числом полей и установлены лимиты на размер данных командной строки.

Среди других изменений в systemd 241:

  • Включены по умолчанию sysctl fs.protected_regular и fs.protected_fifos, реализованные в ядре Linux 4.19 и запрещающие в каталогах с флагом sticky (например, /tmp) открытие чужих FIFO-каналов или файлов с флагом O_CREAT (т.е. только владелец может пересоздать свои FIFO и файлы). Активация указанных sysctl позволяет блокировать атаки, в которых злоумышленник создаёт в /tmp подставной fifo или файл, используемый другим процессом. Для отключения в /etc/sysctl.d/60-protected.conf следует изменить значения fs.protected_regular и fs.protected_fifos на "0";
  • В link-файлах реализован новый режим наименования сетевых устройств (NamePolicy) - "keep", который указан по умолчанию в файле 99-default.link (запасной набор настроек для обеспечения обратной совместимости). Указанный режим добавлен для решения проблемы с изменением логики переименования сетевых интерфейсов из-за регрессивного изменения в systemd 240. При использовании режима "keep" или при обнаружении версии настроек (naming-scheme) меньше 240 будет сохранено старое поведение, при котором уже установленные в пространстве пользователя имена (например, через опцию NAME в правилах udev) не будут второй раз переименовываться на автоматически сгенерированные;
  • Реализована возможность настройки на этапе компиляции выставляемой по умолчанию локали. Если не менять настройки локаль по умолчанию будет выбрана автоматически (C.UTF-8, en_US.UTF-8 или C);
  • Строка с номером версии, показываемая systemd и другими утилитами, при сборке из Git теперь включает хэш коммита. При сборке данное поведение можно переопределить и использовать в номере версии, например, версию пакета из репозитория дистрибутива;
  • В утилиту systemd-cat добавлена поддержка фильтрации стандартного ввода (STDIN) и стандартного вывода ошибок (STDERR) на основании уровня приоритета syslog ("--stderr-priority");
  • В pam_systemd обеспечено выставление переменной окружения DBUS_SESSION_BUS_ADDRESS;
  • Из сборочных опций убран флаг "-fPIE". Для сборки исполняемых файлов в режиме PIE следует использовать в сборочной системе meson параметр "-Db_pie=true";
  • В процессе чтения файлов, указанных в настройке EnvironmentFile для unit-файлов, внутри текста в кавычках теперь обрабатываются обратные слэши, в соответствии с поведением POSIX shell;
  • Команды "udevadm trigger", "udevadm control", "udevadm settle" и "udevadm monitor" теперь автоматически определяют запуск в chroot-окружении и не выполняют в этом случае никаких действий;
  • Строки с флагом "C" в tmpfiles.d/ теперь копируют дерево каталогов не только когда целевой каталог отсутствует, но и когда целевой каталог существует, но не содержит файлов или вложенных каталогов;
  • В команду "udevadm control" добавлена опция "--ping" для проверки запуска и работоспособности процесса systemd-udevd.

  1. OpenNews: Systemd в Debian остался без мэйнтейнера из-за разногласий с разработчиками systemd
  2. OpenNews: В systemd-journald выявлены три уязвимости, позволяющие получить права root
  3. OpenNews: Выпуск системного менеджера systemd 240
  4. OpenNews: Удалённая уязвимость в systemd-networkd
  5. OpenNews: Спорная ошибка в systemd, позволяющая повысить привилегии, закрыта без исправления
Обсуждение (192 –10) | Тип: Программы |
14.02.2019 Выпуск Cilium 1.4, сетевой системы для Linux-контейнеров, основанной на BPF (17 +2)
  Представлен релиз проекта Cilium 1.4, в рамках которого при участии компаний Google, Facebook, Netflix и Red Hat развивается система обеспечения сетевого взаимодействия и применения политик безопасности для изолированных контейнеров и процессов. Для разграничения сетевого доступа в Cilium применяются еBPF (Berkeley Packet Filter) и XDP (eXpress Data Path). Код компонентов, работающих на уровне пользователя, написан на языке Go и распространяется под лицензией Apache 2.0. Загружаемые в ядро Linux сценарии BPF доступны под лицензией GPLv2.

Основу Cilium составляет фоновый процесс, который работает в пространстве пользователя и выполняет работу по генерации и компиляции BPF-программ, а также взаимодействию с runtime, обеспечивающим работу контейнеров. В форме BPF-программ реализованы системы обеспечения связности контейнеров, интеграции с сетевой подсистемой (физические и виртуальные сети, VXLAN, Geneve) и балансировки нагрузки. Фоновый процесс дополняют управляющий cli-интерфейс, репозиторий правил доступа, система мониторинга и модули интеграции с поддержкой Kubernetes, Mesos, Istio, и Docker. Производительность решения на базе Cilium при большом числе сервисов и соединений в два раза опережает решения на базе iptables из-за больших накладных расходов на перебор правил. Более подробно про особенности Cilium можно прочитать в тексте анонса первого выпуска проекта.

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

  • Добавлена возможность маршрутизации и проброса трафика сервисов между несколькими кластерами Kubernetes. Также предложена концепция глобальных сервисов (вариант штатных сервисов Kubernetes с бэкендами в нескольких кластерах). Новая функциональность позволяет в случае выхода из строя бэкендов, обеспечивающих работу сервиса в одном кластере, автоматически перенаправить трафик к обработчикам данного сервиса в другом кластере.

  • Реализованы средства для задания правил обработки запросов и ответов DNS в привязке к группам контейнеров (pods), позволяющие увеличить контроль за обращением к внешним ресурсами из контейнеров. Дополнительно появилась поддержка ведения лога всех запросов и ответов DNS в привязке к pod-ам. Помимо правил доступа на уровне IP-адресов теперь можно определить какие DNS-запросы и DNS-ответы допустимы, а какие нужно блокировать. Например, можно блокировать доступ к определённым доменам или разрешить запросы только для локального домена, без необходимости отслеживания изменений привязки доменов к IP. В том числе реализована возможность использования возвращённого в процессе запроса к DNS IP-адреса для ограничения последующих сетевых операций (например, можно разрешить только обращение к IP-адресам, которые были возвращены при резолвинге в DNS, т.е. предоставлен своеобразный межсетевой экран, манипулирующий доменами вместо IP, с временем жизни привязок в соответствии с определённым TTL);

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

  • Добавлен модуль для интеграции с Flannel, системой для автоматизации настройки сетевого взаимодействия между узлами в кластере Kubernetes, позволяющий работать бок о бок или запустить Cilium поверх Flannel (сетевое взаимодействие от Flannel, политики доступа и балансировка от Cilium);
  • Обеспечена экспериментальная поддержка определения правил доступа на основе метаданных AWS (Amazon Web Services), таких как метки EC2, группы безопасности и имена VPC;
  • Предоставлена возможность запуска Cilium в GKE (Google Kubernetes Engine в Google Cloud) с использованием COS (Container-Optimized OS);
  • Обеспечена тестовая возможность для использования Sockmap BPF для ускорения коммуникаций между локальными процессами (например, полезно для ускорения взаимодействия между sidecar proxie и локальными процессами);

  • Добавлены дополнительные метрики для системы мониторинга Prometheus и предложены новые графики в сводной панели Grafana;

  • Добавлена поддержка Kubernetes 1.13 и новых версий CRI-O;
  • Проведена большая работа по оптимизации потребления памяти и нагрузки на CPU.

  1. OpenNews: Эксперимент по настройке Linux для блокирования 10 млн пакетов в секунду
  2. OpenNews: Для Linux представлена система динамической отладки BPFtrace (DTrace 2.0)
  3. OpenNews: Выпуск Cilium 1.0, сетевой системы для Linux-контейнеров, основанной на BPF
  4. OpenNews: Google представил Cilium, сетевую систему для Linux-контейнеров, основанную на BPF
  5. OpenNews: В eBPF найдена возможность обхода защиты ядра Linux от атаки Spectre
Обсуждение (17 +2) | Тип: Программы |
13.02.2019 Выпуск поискового сервера Xapiand 0.9 (29 +13)
  Доступен выпуск поискового сервера Xapiand 0.9, предназначенного для хранения, индексации и поиска большой коллекции документов. Сервер является надстройкой над библиотекой для создания поисковых систем Xapian. Для асинхронной обработки запросов применяется библиотека libev. Код Xapiand написан на C++ и поставляется под лицензией MIT. Для упрощения развёртывания предоставляется готовый образ для системы Docker (dubalu/xapiand).

Обращение к серверу производится через HTTP RESTful API. Документы могут представлять собой любые данные в форматах JSON или MessagePack. Определение схемы хранения не требуется, выборка осуществляется при помощи полнотекстовых поисковых запросов. Поддерживается создание специализированных индексов для определённых типов данных и прикрепление более одного индекса. В том числе имеется встроенная поддержка индексации геопространственных данных, позволяющая комбинировать данные о местоположении с операциями полнотекстового поиска. Поддерживаются различные форматы хранения координат и иерархические пространственные индексы HTM (Hierarchical Triangular Mesh).

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

Новый выпуск примечателен переходом на движок Xapian 1.5.0, существенным увеличением производительности и стабилизацией средств для обработки геопространственных данных. Кроме того, представлена поддержка языка запросов QueryDSL, позволяющего формировать запросы в формате JSON. Например, можно применять логические операторы, фильтровать вывод по определённым значениям полей в документах, учитывать вес и число совпадений, преобразовывать значения полей из одного формата в другой, отсеивать документы в зависимости от пространств имён (вложенных полей, например, для хранения тегов).

  1. OpenNews: Релиз поискового движка Elasticsearch 1.0.0
  2. OpenNews: Открыт исходный код поискового движка Gigablast
  3. OpenNews: Поисковый движок Searchdaimon переведён в разряд свободных проектов
  4. OpenNews: Wikimedia работает над созданием собственной поисковой системы
  5. OpenNews: Европейский Фонд СПО представил децентрализованную поисковую систему YaCy 1.0
Обсуждение (29 +13) | Тип: Программы |
13.02.2019 Уязвимость в snapd, позволяющая получить root-привилегии в системе (84 +11)
  В snapd, инструментарии для управления самодостаточными пакетами в формате snap, выявлена уязвимость (CVE-2019-7304), позволяющая непривилегированному пользователю получить права администратора (root) в системе. Для проверки систем на наличие уязвимости опубликовано два прототипа эксплоита - первый позволяет завести нового пользователя в системе, а второй даёт возможность установить любой snap-пакет и запустить код с правами root (через установку пакета в режиме "devmode" с прикреплением обработчика, вызываемого с привилегиями root при установке пакета).

Уязвимость вызвана отсутствием в snapd должных проверок при обработке адреса внешнего сокета в процессе оценки прав доступа для Unix-сокетов. При обработке запросов к API через Unix-сокет проверяется ассоциированный с соединением UID пользователя и на основании его принимается решение о предоставлении доступа. Пользователь может прикрепить к имени файла с сокетом строку ";uid=0;" (например, создать сокет "/tmp/sock;uid=0;") и данная строка будет обработана как часть адреса клиентского сокета.

При парсинге параметров в snapd идентификатор пользователя выделяется через цикличный поиск по маске ";uid=" в строке, также включающей имя файла с сокетом (например, при создании клиентского сокета "/tmp/sock;uid=0;" эта строка примет вид "pid=5275;uid=1000;socket=/run/snapd.socket;/tmp/sock;uid=0;"). Таким образом, при наличии строки ";uid=0;" в имени сокета идентификатор будет выделен из неё, а не из штатного параметра с реальным UID. Локальный атакующий может использовать данную ошибку для доступа через сокет /run/snapd.socket к привилегированным API snapd и получения полномочий администратора (в вышеупомянутых эксплоитах используется обращение к API v2/create-user и /v2/snaps).

Проблема проявляется в версиях snapd с 2.28 по 2.37 и затрагивает все поддерживаемые ветки дистрибутива Ubuntu (с 14.04 по 18.10), в котором начиная с Ubuntu 18.04 поддержка snap предлагается по умолчанию. Проблема также затрагивает дистрибутивы Fedora и Debian, в которых snapd предлагается из штатных репозиториев. Уязвимость устранена в выпуске snapd 2.37.1, а также в обновлениях пакетов для дистрибутивов Ubuntu и Debian.

  1. OpenNews: Компания Canonical опубликовала заявление, связанное с вредоносным ПО в Snap Store
  2. OpenNews: Уязвимость во Flatpak, позволяющая повысить привилегии в системе
  3. OpenNews: Уязвимость в Glibc, позволяющая поднять привилегии в системе
  4. OpenNews: В Kubernetes 1.13 устранена критическая уязвимость, позволяющая поднять свои привилегии
  5. OpenNews: Релиз системы самодостаточных пакетов Flatpak 1.2.0
Обсуждение (84 +11) | Тип: Проблемы безопасности |
12.02.2019 Релиз рабочего стола KDE Plasma 5.15 (206 +42)
  Представлен релиз пользовательской оболочки Plasma 5.15, построенной с использованием платформы KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES для ускорения отрисовки. Оценить работу нового выпуска можно через Live-сборку от проекта openSUSE и сборки от проекта KDE neon. Пакеты для различных дистрибутивов можно найти на данной странице.

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

  • Виджеты
    • В виджете контроля заряда аккумулятора реализовано отображение состояния аккумулятора внешних Bluetooth-устройств (функция работоспособна только при установке свежих версий upower и bluez);
    • В диалог настройки обоев рабочего стола встроены функции для загрузки и установки новых плагинов с реализацией динамических обоев;
    • Улучшена читаемость имён файлов под пиктограммами на рабочем столе: предоставлено достаточное горизонтальное пространство для текста, независимо от размера пиктограммы, и обеспечен должный контраст, необходимый для лёгкой читаемости текста, выводимого поверх очень светлых или замысловатых обоев рабочего стола. Для незрячих пользователей добавлена поддержка озвучивания пиктограмм через экранные ридеры;
    • В виджете для ведения заметок (Notes) появилась новая тема оформления, показывающая светлый текст на прозрачном фоне;
    • Добавлена возможность включения цикличной прокрутки при достижении конца списка виртуальных рабочих столов;
    • Улучшен внешний вид всплывающих предупреждений от системы уведомлений;
    • Повышено удобство работы в интерфейсе поиска программ (KRunner). Реализована корректная обработка дубликатов в выводе (теперь не показываются дубликаты закладок Firefox и повторяющиеся элементы при попадании найденного файла в несколько категорий). Оформление виджета отдельного поиска приведено в соответствии к оформлению KRunner;
    • Виджет для уведомления о подключении новых носителей теперь корректно обрабатывает попытки выполнения опасных для системы операций (например, отмонтирование корневой ФС);
  • Интерфейс для настройки системы
    • Изменено оформление и переписан код конфигуратора виртуальных рабочих столов. Новая реализация корректно работает в окружениях на базе Wayland, более удобна в работе и визуально соответствует остальным конфигураторам KDE;
    • Унифицировано оформление интерфейсов настройки часов и оболочки Folder View, которое приведено общему с остальными конфигураторами виду;
    • Проведена работа по унификации пиктограмм, отступов и кнопок на разных страницах Интерфейса для настройки системы;
    • На странице "Desktop Effects" в конфигураторе теперь отображаются и сторонние эффекты рабочего стола, установленные через каталог store.kde.org. Реализация конфигуратора "Desktop Effects" переведена на использование QtQuickControls 2;
    • В интерфейсе для настройки параметров экрана родное экранное разрешение теперь помечается звёздочкой;
    • Улучшено оформление страницы для настройки экрана входа в систему и обновлён эскиз внешнего вида для предлагаемой по умолчанию темы оформления Breeze;
  • Интеграция с GTK и GNOME
    • В Firefox 64 появилась поддержка использования в родных диалогов KDE для открытия и сохранения файлов. Для включения данной возможности требуется установить пакеты xdg-desktop-portal и xdg-desktop-portal-kde, после чего запустить Firefox с выставленной переменной окружения GTK_USE_PORTAL=1;
    • В интеграционные модули xdg-desktop-portal-kde и plasma-integration добавлена поддержка портала для доступа к настройкам, позволяющего обращаться к параметрам конфигурации Plasma (шрифты, пиктограммы, темы виджетов и цветовые схемы) из изолированных приложений Flatpak и Snap, без необходимости предоставления прямого доступа к глобальному файлу конфигурации KDE;
    • Глобальный коэффициент масштабирования для экранов с высокой плотностью пикселей (high-DPI) теперь учитывается и для вывода приложений GTK и GNOME, если он является целым числом;
    • Решены разнообразные проблемы, возникавшие при использовании темы оформления Breeze-GTK, в том числе устранены несоответствия между тёмным и светлым вариантами данной темы;
  • Центр установки приложений и дополнений (Discover):
    • В виджет для информирования о наличии обновлений добавлены сведения о появлении возможности обновления до новой версии дистрибутива, а также обеспечен показ кнопки "Restart" в ситуациях, когда после применения обновлений рекомендуется выполнить перезагрузку;
    • На странице со списком доступных обновлений появились опции для снятия метки и повторной отметки всех элементов списка, упрощающие выборочную установку обновлений;
    • Страница с настройками переименована в "Sources" и преобразована в боковую секцию;
    • Средства управления репозиториями модифицированы для практического применения в дистрибутивах на пакетной базе Ubuntu;
    • Добавлена поддержка дополнений, распространяемых в пакетах Flatpak;
    • Улучшена поддержка обработки локальных пакетов, для которых теперь определяются зависимости и показывается кнопка "Launch" для запуска приложения после установки;
    • При поиске в разделе избранных приложений в результатах теперь показываются только приложения. Дополнения к Plasma теперь фигурируют в результатах поиска только в случае явного поиска в категории "Дополнения";
    • Обеспечен корректный поиск установленных приложений, в случае наличия в системе приложений в формате Snap;
    • На странице со списком обновлений разделены на отдельные категории приложения и дополнения к Plasma;
  • Улучшения в оконном менеджере: В интерфейсе переключения между окнами по Alt+Tab добавлена поддержка управления с использованием экранного ридера и возможность переключения между элементами при помощи клавиатуры. Устранён крах при инициировании скриптом операции сворачивая окна. Эффекты закрытия окна теперь применяются и для диалогов с активным родительским окном. Окна конфигуратора теперь самостоятельно выдвигаются на передний план в случае получения фокуса ввода;
  • Улучшена поддержка Wayland. Полностью реализованы протоколы XdgStable, XdgPopups и XdgDecoration. В окружениях на базе Wayland обеспечена поддержка виртуальных рабочих столов, в том числе добавлена возможность выборочного размещения окна на заданных виртуальных рабочих столах (при использовании X11 подобной возможности нет и окно можно поместить либо на один виртуальный рабочий стол, либо на все). Добавлена поддержка перемещения элементов в режиме drag&drop при помощи жеста на сенсорном экране или тачпаде;
  • В интерфейс для управления сетевыми подключениями добавлена поддержка настойки VPN-туннелей WireGuard при наличии в системе соответствующего плагина к Network Manager. Добавлена возможность пометки сетевых соединений флагом "Metered" (тарификация по трафику);
  • Внесены улучшения в набор пиктограмм Breeze. Улучшены пиктограммы для устройств и настроек, полностью переработаны пиктограммы для эмблем и пакетов, задействованы более качественные пиктограммы для сетевых операций, добавлены отдельные пиктограммы для файлов с байткодом Python;
  • В KSysGuard реализована возможность скрытия строки меню с оставлением подсказки для его возвращения по аналогии с тем, как это сделано в Kate и Gwenview.

  1. OpenNews: Для Firefox реализована возможность использования файловых диалогов KDE
  2. OpenNews: Выпуск KDE Neon на базе Ubuntu 18.04
  3. OpenNews: Выпуск KDE Applications 18.12
  4. OpenNews: Релиз рабочего стола KDE Plasma 5.14
  5. OpenNews: Выпуск музыкального проигрывателя Elisa 0.3, развиваемого сообществом KDE
Обсуждение (206 +42) | Тип: Программы |
12.02.2019 Опубликована техника скрытия вредоносного кода в анклавах Intel SGX (68 +28)
  Группа исследователей из Грацского технического университета (Австрия), ранее известная разработкой техники атаки NetSpectre и метода эксплуатация уязвимости в DRAM-памяти через локальную сеть, продемонстрировала (PDF) метод скрытия вредоносного кода при помощи изолированных анклавов Intel SGX и организации контроля за основной системой из выполняемого в анклаве кода, в обход накладываемых анклавом ограничений.

Напомним, что технология SGX (Software Guard Extensions) появилась в процессорах Intel Core шестого поколения (Skylake) и предлагает серию инструкций, позволяющих выделять приложениям пользовательского уровня закрытые области памяти - анклавы, содержимое которых не может быть прочитано и изменено даже ядром и кодом, выполняемым в режимах ring0, SMM и VMM. Передать управление коду в анклаве невозможно традиционными функциями перехода и манипуляциями с регистрами и стеком - для передачи управления в анклав применяется специально созданная новая инструкция, выполняющая проверку полномочий. При этом помещённый в анклав код может применять классические методы вызова для обращения к функциям внутри анклава и специальную инструкцию для вызова внешних функций. Для защиты от аппаратных атак, таких как подключение к модулю DRAM, применяется шифрование памяти анклава.

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

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

Для организации работы вредоносной логики в окружении операционной системы применяется метод возвратно-ориентированного программирования (ROP, Return-Oriented Programming). Суть метода в том, что для формирования вредоносной логики используется существующий легитимный код обычных приложений и библиотек. Атакующий оперирует уже имеющимися в библиотеках кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания библиотечных функций). Работа вредоносной вставки сводится к построению цепочки вызовов подобных блоков ("гаджетов") для получения нужной функциональности. Используя готовые блоки машинных инструкций (гаджеты) можно организовать достаточно сложные операции, в том числе организовать работу условных операторов и циклов.

Для доступа к памяти процесса из анклава оказалась эффективной техника TAP (TSX-based Address Probing), использующая процессорные инструкции TSX (Transactional Synchronization eXtensions) для определения виртуальных адресов, доступных для текущего процесса. Обнаружение кода в памяти позволяет выявить в нём "гаджеты" и построить цепочку их вызова для обеспечения нужной логики. Для совершения атаки остаётся инициировать передачу управления на построенную цепочку, но для этого требуется определить доступный на запись блок внешней памяти, чтобы сохранить в нём фиктивный кадр стека и разместить связанные с атакой данные (payload).

Для поиска доступных на запись областей применяется расширенный вариант техники TAP, получивший название CLAW (Checking Located Addresses for Writability). Метод основан на формировании транзакции TSX с подстановкой операций записи и её отмены после попытки записи. Доступность на запись определяется на основании возвращённого транзакцией кода возврата. Отмечается, что описанная техника SGX-ROP эффективно обходит такие методы защиты как ASLR, "канареечные" метки в стеке и детекторы ошибок при работе с памятью (address sanitizer).

  1. OpenNews: DRM-защита Widevine L3 полностью взломана
  2. OpenNews: Первая открытая реализация анклава для аппаратно изолированных окружений
  3. OpenNews: Google анонсировал Asylo, универсальный фреймворк для защищённых анклавов
  4. OpenNews: Представлена атака SgxPectre, позволяющая обойти технологию защиты Intel SGX
  5. OpenNews: Компания Intel открыла компоненты для использования технологии защиты SGX в Linux
Обсуждение (68 +28) | Тип: Проблемы безопасности | Интересно
12.02.2019 Выпуск виртуальной машины HHVM 4.0 с прекращением поддержки PHP (61 +10)
  Спустя пять лет с момента формирования ветки 3.0 компания Facebook представила выпуск виртуальной машины HHVM 4.0 (HipHop Virtual Machine), поддерживающей выполнение программ на языке Hack (вариант PHP со статической типизацией). С оговорками поддерживается синтаксис PHP 5 и большинство возможностей PHP 7. Код проекта написан на C++ и распространяется под открытыми лицензиями PHP и Zend.

Отличительной чертой HHVM является применение JIT-компиляции и динамических оптимизаций, учитывающих особенности выполнения скрипта. В процессе выполнения кода производится определение типов данных и генерация на лету эффективных наборов машинных инструкций, оптимизированных специально для используемых типов. Перед выполнением PHP-скрипты преобразуются в специальное промежуточное абстрактное представление AST (Abstract Syntax Tree), которое затем транслируется в байткод HHBC (HipHop bytecode), который выполняется внутри высокоуровневой виртуальной машины.

Проект активно используется в инфраструктуре Facebook. Ранее HHVM использовался проектами WordPress и Wikipedia. После намерений Facebook отказаться от полной поддержки PHP данные проекты перешли на ветку PHP 7, которая начиная с PHP 7.2 в некоторых тестах опережает по производительности HHVM.

Ключевые изменения:

Обсуждение (61 +10) | Тип: Программы |
11.02.2019 Уязвимость в runc и LXC, затрагивающая Docker и другие системы контейнерной изоляции (76 +16)
  В runc, инструментарии для запуска изолированных контейнеров, выявлена критическая уязвимость (CVE-2019-5736), позволяющая из подконтрольного злоумышленнику изолированного контейнера изменить исполняемый файл runc и получить root-привилегии на стороне хост-системы. Уязвимость затрагивает все системы контейнерной изоляции, использующие runtime runc, включая Docker, cri-o, containerd, Kubernetes, Podman и flatpak. Также отмечается, что аналогичная уязвимость присутствует в инструментариях LXC и Apache Mesos.

Суть уязвимости в возможности запуска исполняемого файла runc в окружении контейнера, но его обработки в контексте хост-системы. Например, атакующий может заменить /bin/bash в контейнере на скрипт с заголовком "#!/proc/self/exe" или использовать подставную разделяемую библиотеку. При выполнении "docker exec" и запуске runtime-ом подменённого /bin/bash внутри контейнера будет выполнен файл /proc/self/exe, который на данной стадии ссылается на исполняемый файл runtime (runc) в хост-окружении. После этого атакующий может через модификацию /proc/self/exe внутри контейнера внести изменение в исполняемый файл runc на стороне хост-системы.

Для проведения атаки требуется, чтобы пользователь с правами root (администратор) выполнил операцию создания нового контейнера на основе подготовленного атакующим образа или подключился к существующему контейнеру (достаточно выполнения "docker exec"), к которому ранее атакующий имел доступ на запись. Проблема не блокируется профилем по умолчанию AppArmor и правилами SELinux в Fedora (процессы контейнера запускаются в контексте container_runtime_t, предоставляющем полный доступ к runtime). При этом проблема не проявляется при корректном использованием пространств имён идентификаторов пользователя (user namespaces) или при использовании режима "enforcing" SELinux в RHEL 7.

Уязвимость уже устранена в RHEL, Fedora и Ubuntu, но остаётся неисправленной в Debian и SUSE. Решающие проблему патчи подготовлены для runc и LXC. Рабочий прототип эксплоита планируют опубликовать 18 февраля.

  1. OpenNews: Оценка безопасности новой системы контейнерной изоляции Nabla
  2. OpenNews: Linux Foundation представил containerd 1.0, runtime для изолированных контейнеров
  3. OpenNews: Intel представил инструментарий Clear Containers 3.0, переписанный на языке Go
  4. OpenNews: Утверждена единая спецификация для образов и runtime изолированных контейнеров
  5. OpenNews: Доступен Oryx Linux, новый дистрибутив для встраиваемых систем
Обсуждение (76 +16) | Тип: Проблемы безопасности |
11.02.2019 NVIDIA открыла код StyleGAN, генератора лиц на основе машинного обучения (114 +15)
  Компания NVIDIA открыла наработки, связанные с проектом StyleGAN, позволяющим генерировать изображения новых лиц людей, имитируя фотографии. Система автоматически учитывает аспекты размещения лиц и делает результат неотличим от настоящих фотографий (большинство опрошенных не смогли отличить оригинальные фотографии от сгенерированных). Для синтеза лиц применяется система машинного обучения на основе генеративно-состязательной нейронной сети (GAN). Код написан на языке Python с применением фреймворка TensorFlow и опубликован под лицензией Creative Commons BY-NC 4.0 (только для некоммерческого использования).

Для загрузки доступны как готовые натренированные модели, так и коллекции изображений для самостоятельного обучения нейронной сети. Базовая модель обучена на основе коллекции Flickr-Faces-HQ (FFHQ), включающей 70 тысяч высококачественных (1024x1024) PNG-изображений лиц людей. При этом система не привязана к лицам - в качестве примера показаны варианты, обученные на коллекциях фотографий автомобилей, кошек и кроватей. Для работы требуется одна или несколько видеокарт NVIDIA (рекомендуется GPU Tesla V100), как минимум 11 Гб ОЗУ, драйверы NVIDIA 391.35+, инструментарий CUDA 9.0+ и библиотека cuDNN 7.3.1.

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

  1. OpenNews: Использование нейронной сети для восстановления повреждённых изображений
  2. OpenNews: Facebook открыл код платформы Detectron для распознавания объектов на фотографиях
  3. OpenNews: Yahoo открыл модель машинного обучения для выявления неприличных изображений
  4. OpenNews: Реализация нейронной сети для синтеза и редактирования лиц
  5. OpenNews: Новые системы машинного обучения от Fаcebook и Google. Код для раскрашивания чёрно-белых фотографий
Обсуждение (114 +15) | Тип: Программы |
11.02.2019 Новая версия почтового сервера Exim 4.92 (64 +13)
  После 10 месяцев разработки представлен релиз почтового сервера Exim 4.92, в который внесены накопившиеся исправления и добавлены новые возможности. В соответствии с февральским автоматизированным опросом более двух миллионов почтовых серверов, доля Exim составляет 56.91% (год назад 56.56%), Postfix используется на 34.42% (33.79%) почтовых серверов, Sendmail - 4.16% (4.59%), Microsoft Exchange - 0.61% (0.85%).

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

  • Добавлены операторы "${l_header:имя}" и "${l_h:имя}", выдающие содержимое заголовка в виде списка с разделителем ":" (имеет смысл для заголовков, указываемых более одного раза, например для заголовка "Received");
  • В оператор "${readsocket }" добавлена поддержка TLS (реализована опция "tls");
  • Добавлены экспериментальные сборочные опции EXPERIMENTAL_REQUIRETLS и EXPERIMENTAL_PIPE_CONNECT для поддержки SMTP-опций REQUIRETLSSMTP (доставка только при установке шифрованного соединения) и PIPE_CONNECT (одновременная отправка баннера, EHLO и первой команды);
  • В транспорт smtp добавлена опция "utf8_downconvert", доступная при сборке в режиме SUPPORT_I18N;
  • В log_selector добавлен фильтр "pipelining", позволяющий отсеять ошибки при работе в режиме PIPELINING (PIPE_CONNECT);
  • Добавлены встроенные макросы со значениями, поддерживаемыми в опциях log_selector и openssl_options;
  • Реализован вариант оператора "${extract }" для извлечения в формате JSON;
  • Добавлена отладочная опция "noutf8" для отключения в отладочном выводе использования символов в кодировке UTF-8;
  • Для платформы macOS реализована поддержка механизма быстрого открытия TCP-соединений (TFO - TCP Fast Open, RFC 7413).

  1. OpenNews: Релиз почтового сервера Postfix 3.3.0
  2. OpenNews: Уязвимость в Exim, позволяющая выполнить код на сервере
  3. OpenNews: Новая версия почтового сервера Exim 4.90
  4. OpenNews: Выпуск Exim 4.90.1 с устранением уязвимости, не исключающей выполнение кода на сервере
  5. OpenNews: Опубликован метод эксплуатации уязвимости в коде разбора блоков BASE64 в Exim
Обсуждение (64 +13) | Тип: Программы |
10.02.2019 Google представил механизм Adiantum для быстрого шифрования накопителей (16 +22)
  Компания Google предложила механизм шифрования накопителей Adiantum, который может применяться на маломощных устройствах, на которых невозможно использовать алгоритм блочного шифрования AES из-за слишком больших накладных расходов. В частности, Google намерен применять Adiantum для шифрования накопителей младших моделей смартфонов на базе платформы Android, оснащаемых процессорами ARM, не предоставляющими инструкции для аппаратного ускорения шифрования AES. Эталонная реализация алгоритма опубликована под лицензией MIT, реализация на уровне подсистемы ядра Linux dm-crypt опубликована под лицензией GPLv2 (патчи подготовлены как для редакций ядра для Android, так и для обычных ванильных ядер Linux).

По аналогии с AES-128-CBC-ESSIV и AES-XTS метод Adiantum не изменяет результирующий размер данных, что позволяет использовать его для шифрования секторов на накопителях. Adiantum также обеспечивает генерацию блоков с разным шифротекстом для повторяющихся исходных данных. Реализация Adiantum базируется на применении быстрой хэш-функции NH, алгоритме аутентификации сообщений (MAC) Poly1305 и потоковом шифре XChaCha12, а также единоразовой операции на базе блочного шифра AES-256 для 16 байт в каждом блоке (с учётом размера блока в 4096 байт такая операция не критична с точки зрения производительности).

Poly1305 и XChaCha12 позиционируются как более быстрые и безопасные аналоги HMAC и AES, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальной аппаратной поддержки. Для повышения производительности алгоритм ChaCha применяется в варианте с 12 раундами вместо обычно используемых 20, но этого вполне достаточно, так как ChaCha даже с 12 раундами обеспечивает более высокий уровень стойкости к атакам, чем AES-256. На процессоре ARM Cortex-A7 реализация Adiantum тратит на операцию расшифровки 10.6 циклов процессора на каждый байт (при размере блока 4096 байт), что в пять раз быстрее AES-256-XTS.

На процессорах с аппаратной поддержкой ускорения AES, таких как ARMv8 с инструкциями A64, A32 и T32 (Cryptography Extensions) и x86 с инструкциями AES-NI, рекомендуется применять систему шифрования дисков на базе AES, так как в этом случае аппаратно ускоренный AES будет быстрее программной реализации Adiantum. При этом Adiantum обеспечивает более высокую стойкость к атакам, так как в AES-XTS изменение одного байта исходных данных приводит к изменению всего 16 байт шифротекста, в то время как в Adiantum изменяется целиком весь блок, равный размеру сектора (512 или 4096 байт).

  1. OpenNews: Google представил Android Go, платформу для телефонов с небольшим ОЗУ
  2. OpenNews: В Chrome добавлены средства шифрования, стойкие к подбору на квантовом компьютере
  3. OpenNews: Для файловой системы Ext4 представлена поддержка шифрования
  4. OpenNews: Значительное обновление файловой системы Bcachefs
  5. OpenNews: Выпуск Cryptsetup 2.0
Обсуждение (16 +22) | Тип: К сведению |
10.02.2019 Раскрыты детали новой атаки на различные реализации TLS (20 +13)
  Исследователи из компании NCC Group раскрыли сведения (PDF) о новой атаке по сторонним каналам, позволяющей через анализ остаточных данных в процессорном кэше восстановить содержимое, передаваемое через каналы связи, зашифрованные при помощи протоколов TLS и QUIC. С некоторыми оговорками атака затрагивает и протокол TLS 1.3.

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

Атака позволяет восстановить шифротекст, зашифрованный при помощи RSA-ключа, через анализ добавочного заполнения (padding oracle), используемого для выравнивания зашифрованных данных по границе блока. Принцип атаки основан на методе, предложенном Даниэлем Блейхенбахером (Daniel Bleichenbacher) в 1998 году, суть которого в том, что атакующий на основании разных ответов от сервера может отделить корректные и некорректные блоки добавочного заполнения (padding oracle) в режиме PKCS #1 v1.5. Манипулируя информацией о корректности блоков добавочного заполнения атакующий может путём перебора определить содержимое шифротекста.

Так как утечки состояний на основе активности сервера уже давно блокированы в реализациях криптографических библиотек, в новой атаке для определения корректности блоков предлагается анализировать следы работы библиотек в процессорном кэше. Для атаки применимы различные техники извлечения остаточных данных из процессорного кэша, такие как Flush+Reload, Prime+Probe и методы на основе манипуляций с блоком предсказания переходов. Атака является достаточно эффективной и позволяет восстановить все 2048 бит шифротекста RSA за время, не превышающее 30 секунд.

Проблема была выявлена в ноябре 2018 года и сообщена разработчикам библиотек, но детали раскрыты только сейчас, после публикации исправлений. Проблема затрагивает реализации TLS в библиотеках OpenSSL, Amazon s2n, MbedTLS, Apple CoreTLS, Mozilla NSS, WolfSSL и GnuTLS. Не подвержены атаке оказались библиотеки BearSSL и BoringSSL. В TLS 1.3 не используется обмен ключами на основе RSA, поэтому для атаки на TLS 1.3 применяется обходной манёвр, позволяющий откатить шифрованное соединение на прошлую версию протокола через спуфинг TCP-пакетов.

Для атаки на клиентские браузеры может применяться метод, напоминающий атаки BEAST и POODLE, и требующий запуска подконтрольного атакующему JavaScript-кода в браузере жертвы (например, через подстановку кода в любой незашифрованный HTTP-ответ при наличии контроля за транзитным шлюзом). JavaScript-код используется для отправки на защищённый сайт, с которым работает жертва, фиктивных запросов с изначально известными контрольными метками, которые используются атакующим для воссоздания отдельных шифрованных блоков. Так как для успешной атаки необходимо проанализировать тысячи проверочных запросов, которые не удаётся отправить в рамках установленного в браузерах таймаута (обычно 30 секунд), предложен метод распараллеливания подобных запросов через их отправку к различным TLS-серверам, на которых используется сертификат с одним и тем же открытым ключом.

  1. OpenNews: Новый метод атаки на TLS, затрагивающий 27 из 100 крупнейших сайтов
  2. OpenNews: Новая техника атаки на SSL/TLS, которой подвержены 33% HTTPS-сайтов
  3. OpenNews: Новая атака SLOTH, затрагивающая протоколы TLS 1.2, SSH и IKE/IPsec с MD5 и SHA-1
  4. OpenNews: Новая атака на TLS, позволяющая откатиться к уязвимым методам шифрования
  5. OpenNews: Атака NetSpectre, приводящая к утечке содержимого памяти по сети
Обсуждение (20 +13) | Тип: Проблемы безопасности |
Следующая страница (раньше) >>


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