The OpenNET Project / Index page

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

10.04.2021 Проект LLVM представил HPVM 1.0, компилятор для CPU, GPU, FPGA и ускорителей (32 +4)
  Разработчики проекта LLVM опубликовали выпуск компилятора HPVM 1.0 (Heterogeneous Parallel Virtual Machine), нацеленного на упрощение программирования для гетерогенных систем и предоставляющего средства для генерации кода для CPU, GPU, FPGA и предметно-ориентированных аппаратных ускорителей (поддержка FGPA и ускорителей не вошла в выпуск 1.0). Код проекта распространяется под лицензий Apache 2.0.

Основная идея HPVM в том, чтобы использовать при компиляции унифицированное представление параллельно выполняемых программ, которое может применяться для выполнения с использованием различных видов оборудования, поддерживающего распараллеливание вычислений, включая GPU, векторные инструкции, многоядерные процессоры, FPGA и различные специализированные чипы-ускорители. Программирование для гетерогенных параллельных систем усложнено из-за наличия в одной системе компонентов (ядра CPU, векторные инструкции, GPU и т.п.), использующих разные модели достижения параллелизма, разные наборы инструкций и разные иерархии памяти, и в каждой системе комбинация подобных компонентов меняется.

Отмечается, что применение HPVM позволяет добиться существенного прироста производительности. Производительность результатов работы трансляторов HPVM сопоставима с написанным вручную кодом OpenCL для GPU и векторных вычислительных устройств. В отличие от других систем в HPVM попытались совместить три возможности для организации гетерогенных вычислений: независимое от языка программирования и оборудования промежуточное представление, виртуальную архитектуру набора команд (V-ISA) и планирование во время выполнения (runtime scheduling).

Применяемое в HPVM независимое от целевой системы и языка программирования промежуточное представление (IR) основано на промежуточном представлении инструкций LLVM 9.0 и расширяет его иерархическим графом потоков данных, позволяющим охватывать параллелизм на уровне задач, данных и вычислительных конвейеров. Промежуточное представление HPVM также включает векторные инструкции и разделяемую память. Основной целью применения промежуточного представления является эффективная генерация кода и оптимизации для гетерогенных систем.

Виртуальная архитектура набора команд (V-ISA) абстрагирует низкоуровневые особенности оборудования и унифицирует различные формы параллелизма и архитектуры памяти, используя только базовую модель обеспечения параллелизма - граф потоков данных. V-ISA позволяет добиться переносимости между разными типами оборудования для параллельных вычислений и даёт возможность не терять производительность при использовании разных элементов гетерогенных систем. Виртуальная ISA также может применяться для поставки универсального исполняемого кода программ, который может запускаться с привлечением CPU, GPU, FPGA и различных ускорителей.

На текущем этапе развития в HPVM предложены генераторы кода, способные транслировать узлы приложений, определённые при помощи виртуальной ISA, для выполнения с использованием GPU NVIDIA (cuDNN и OpenCL), векторных инструкций Intel AVX и многоядерных CPU x86. Во время выполнения HPVM применяет гибкие политики планирования вычислительного процесса, реализуемые как на основе информации о программе (структуры графа), так и через компилирование отдельных узлов программы для выполнения на любом из целевых вычислительных устройств, доступных в системе.

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

  1. OpenNews: Релиз набора компиляторов LLVM 11.0
  2. OpenNews: Опубликована спецификация гетерогенных вычислительных систем HSA 1.0
  3. OpenNews: Для ядра Linux развивается система распределённого выполнения потоков Popcorn
  4. OpenNews: Микроядро seL4 математически верифицировано для архитектуры RISC-V
  5. OpenNews: Представлен RV64X, открытый GPU на базе технологий RISC-V
Обсуждение (32 +4) | Тип: Программы | Интересно
10.04.2021 В ядре Linux 5.13 появится начальная поддержка CPU Apple M1 (110 +17)
  Гектор Мартин (Hector Martin), предложил включить в ядро Linux первый набор патчей, подготовленных проектом Asahi Linux, ведущим работу по адаптации Linux для компьютеров Mac, оснащённых ARM-чипом Apple M1. Указанные патчи уже одобрены сопровождающим ветки Linux SoC и приняты в кодовую базу Linux-next, на основе которой формируется функциональность ядра 5.13. Технически, Линус Торвальдс может блокировать поставку предложенных изменений, но такое развитие событий оценивается как маловероятное.

Патчи включают в себя поддержку компонентов SoC M1, не связанных с GPU, таких как контроллер прерываний, таймер, UART, SMP, функции для организации ввода/вывода и MMIO. Обратный инжиниринг GPU пока не завершён, для организации вывода в патчах предоставляется поддержка фреймбуфера и консоли через последовательный порт. Из устройств заявлена поддержка компьютера Apple Mac mini, который используется в качестве эталонной платформы в проекте Asahi Linux (имеется подробная инструкция по установке).

Отдельно развивается открытый аппаратный адаптер, призванный упростить подключение к консоли через последовательный порт и проведение отладки. В текущем виде, из-за использования компанией Apple в своём оборудовании нестандартных команд USB-PD, наиболее простым способом доступа к консоли является подключения к другому компьютеру на базе чипа Apple M1 с использованием кабеля USB C. Более сложный способ заключается в создании развязки на базе микроконтроллера Arduino, чипа FUSB30 и адаптера UART-TTL.

Проектом также подготовлен загрузчик m1n1, дающий возможность загрузить ядро Linux и минимальное системное окружение на компьютерах Mac с CPU Apple M1. Компания Apple на компьютерах с CPU M1 в штатном режиме разрешает загружать незаверенные цифровой подписью ядра без необходимости применения jailbreak. Данная особенность даёт возможность разработчикам экспериментировать с новыми ядрами XNU, но при попытке загрузки других систем возникают трудности, так как Apple использует собственный протокол загрузки и иной формат Device Tree. Предложенный проектом Asahi Linux загрузчик m1n1 выступает в роли прослойки, дающей возможность использовать стандартный Device Tree и штатный протокол загрузки, используемый в ядре Linux для ARM64. В дальнейшем в m1n1 планируется добавить возможность вызова U-Boot и GRUB для организации типового процесса загрузки, аналогичного тому, что используется на других платформах ARM64.

  1. OpenNews: Компания Corellium адаптировала Linux для работы на компьютерах с чипом Apple M1
  2. OpenNews: Компания Apple открыла ядро и системные компоненты macOS 11.0 "Big Sur"
  3. OpenNews: Apple перейдёт на процессоры ARM собственной разработки в компьютерах и ноутбуках
  4. OpenNews: В OpenBSD добавлена начальная поддержка чипа Apple M1
  5. OpenNews: Инициатива по поддержке чипа Apple M1 в Linux
Обсуждение (110 +17) | Тип: Программы |
09.04.2021 Уязвимости в подсистеме eBPF ядра Linux (94 +16)
  В подсистеме eBPF, позволяющей запускать обработчики для трассировки, анализа работы подсистем и управления трафиком, выполняемые внутри ядра Linux в специальной виртуальной машине с JIT, выявлена уязвимость (CVE-2021-29154), позволяющая локальному пользователю добиться выполнения своего кода на уровне ядра. Проблема проявляется вплоть до выпуска 5.11.12 (включительно) и ещё не исправлена в дистрибутивах (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Исправление доступно в виде патча.

По заявлению исследователей, выявивших уязвимость, им удалось разработать рабочий прототип эксплоита для 32- и 64-разрядных систем x86, который может быть использован непривилегированным пользователем. При этом компания Red Hat отмечает, что опасность проблемы зависит от доступности пользователю системного вызова eBPF. Например, в конфигурации по умолчанию в RHEL и большинстве других дистрибутивов Linux для эксплуатации уязвимости требуется наличие у пользователя прав CAP_SYS_ADMIN и включение BPF JIT. В качестве обходной меры защиты рекомендуется отключить BPF JIT при помощи команды:


   echo 0 > /proc/sys/net/core/bpf_jit_enable

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

Примечательно, что это не единственная уязвимость в подсистеме еBPF за последнее время. В конце марта в ядре были выявлены ещё две уязвимости (CVE-2020-27170, CVE-2020-27171), предоставляющие возможность использовать еBPF для обхода защиты от уязвимостей класса Spectre, позволяющих определять содержимое памяти ядра в результате создания условий для спекулятивного выполнения определённых операций. Для атаки Spectre требуется наличие в привилегированном коде определённой последовательности команд, приводящих к спекулятивному выполнению инструкций. В еBPF найдено несколько способов генерации подобных инструкций через манипуляции с передаваемыми для выполнения BPF-программами.

Уязвимость CVE-2020-27170 вызвана наличием в верификаторе BPF манипуляций с указателями, вызывающими спекулятивные операции обращения к области вне границ буфера. Уязвимость CVE-2020-27171 связана с ошибкой целочисленной арифметики (integer underflow) при работе с указателями, приводящей к спекулятивному обращению к данным вне буфера. Указанные проблемы уже устранены в выпусках ядра 5.11.8, 5.10.25, 5.4.107, 4.19.182 и 4.14.227, а также вошли в состав обновлений ядра большинства дистрибутивов Linux. Исследователями подготовлен прототип эксплоита, позволяющий непривилегированному пользователю извлечь данные из памяти ядра.

  1. OpenNews: Уязвимость в ядре Linux, позволяющая повысить свои привилегии через BPF
  2. OpenNews: Критические уязвимости в подсистеме eBPF ядра Linux
  3. OpenNews: Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо выполнить код с правами ядра Linux
  4. OpenNews: Уязвимости в ядре Linux, затрагивающие реализации VSOCK, Futex и io_uring
  5. OpenNews: В eBPF найдена возможность обхода защиты ядра Linux от атаки Spectre
Обсуждение (94 +16) | Тип: Проблемы безопасности |
09.04.2021 На соревновании Pwn2Own 2021 совершены взломы Ubuntu, Chrome, Safari, Parallels и продуктов Microsoft (109 +34)
  Подведены итоги трёх дней соревнований Pwn2Own 2021, ежегодно проводимых в рамках конференции CanSecWest. Как и в прошлом году соревнования проводились виртуально и атаки демонстрировались online. Из 23 намеченных целей рабочие техники эксплуатации ранее неизвестных уязвимостей были продемонстрированы для Ubuntu Desktop, Windows 10, Сhrome, Safari, Parallels Desktop, Microsoft Exchange, Microsoft Teams и Zoom. Во всех случаях тестировались самые свежие версии программ, включающие все доступные обновления. Суммарный размер выплат составил один миллион двести тысяч долларов США (общий призовой фонд насчитывал полтора миллиона долларов).

На соревнованиях были предприняты три попытки эксплуатации уязвимостей в Ubuntu Desktop. Первая и вторая попытки были засчитаны и атакующим удалось продемонстрировать локальное повышение привилегий через эксплуатацию ранее неизвестных уязвимостей, связанных с переполнением буфера и двойном освобождении памяти (в каких именно компонентах проблемы пока не сообщается, до раскрытия данных разработчикам даётся 90 дней на исправление ошибок). За данные уязвимости выплачены премии в 30 тыс. долларов.

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

Успешная атака также была продемонстрирована для браузеров на основе движка Chromium - Google Chrome и Microsoft Edge. За создание эксплоита, позволяющего выполнить свой код при открытии специально оформленной страницы в Chrome и Edge (был создан один универсальный эксплоит для двух браузеров), была выплачена премия в 100 тысяч долларов. Исправление планируется опубликовать в ближайшие часы, пока известно лишь то, что уязвимость присутствует в процессе, отвечающем за обработку web-контента (renderer).

Другие успешные атаки:

  • 200 тысяч долларов за взлом приложения Zoom (удалось выполнить свой код, отправив сообщение другому пользователю, без необходимости совершения со стороны получателя каких-либо действий). Для атаки использовались три уязвимости в Zoom и одна в операционной системе Windows.
  • 200 тысяч долларов за взлом Microsoft Exchange (обход аутентификации и локальное повышение привилегий на сервере для получения прав администратора). Другой командной был продемонстрирован ещё один успешно работающий эксплоит, но вторая премия не была выплачена, так как те же ошибки уже были использованы первой командой.
  • 200 тысяч долларов за взлом Microsoft Teams (выполнение кода на сервере).
  • 100 тысяч долларов за эксплуатацию Apple Safari (целочисленное переполнение в Safari и переполнение буфера в ядре macOS для обхода sandbox и выполнении кода на уровне ядра).
  • 140 тысяч долларов за взлом Parallels Desktop (выход из виртуальной машины и выполнение кода в основной системе). Атака совершена через эксплуатацию трёх разных уязвимостей - утечки неинициализированной памяти, переполнения стека и целочисленного переполнения.
  • Две премии по 40 тысяч долларов за взломы Parallels Desktop (логическая ошибка и переполнение буфера, позволившие выполнить код во внешней ОС через действия внутри виртуальной машины).
  • Три премии по 40 тысяч долларов за три успешных эксплуатации Windows 10 (целочисленное переполнение, обращение к уже освобождённой памяти и состояние гонки, позволившие добиться получения привилегий SYSTEM).

Предприняты, но не увенчались успехом, попытки взлома Oracle VirtualBox. Номинации за взлом Firefox, VMware ESXi, Hyper-V client, MS Office 365, MS SharePoint, MS RDP и Adobe Reader осталась невостребованными. Также не нашлось желающих продемонстрировать взлом информационной системы автомобиля Tesla, несмотря на приз в 600 тысяч долларов плюс автомобиль Tesla Model 3.

  1. OpenNews: На соревновании Pwn2Own 2020 продемонстрированы взломы Ubuntu, Windows, macOS и VirtualBox
  2. OpenNews: Уязвимость в ядре Linux, позволяющая повысить свои привилегии через BPF
  3. OpenNews: На соревновании Tianfu Cup продемонстрированы 0-day уязвимости в Chrome и qemu-kvm
  4. OpenNews: На соревновании Pwn2Own 2019 продемонстрированы взломы Firefox, Edge, Safari, VMware и VirtualBox
  5. OpenNews: На соревновании Pwn2Own 2018 продемонстрированы взломы Firefox, Edge и Safari
Обсуждение (109 +34) | Тип: Проблемы безопасности |
09.04.2021 Выпуск мультимедиа-пакета FFmpeg 4.4 (57 +47)
  После десяти месяцев разработки доступен мультимедиа-пакет FFmpeg 4.4, включающий набор приложений и коллекцию библиотек для операций над различными мультимедиа-форматами (запись, преобразование и декодирование звуковых и видеоформатов). Пакет распространяется под лицензиями LGPL и GPL, разработка FFmpeg ведётся смежно с проектом MPlayer.

Из изменений, добавленных в FFmpeg 4.4, можно выделить:

  • Реализована возможность использования API VDPAU (Video Decode and Presentation) для аппаратного ускорения декодирования видео в форматах HEVC/H.265 (10/12bit) и VP9 (10/12bit).
  • Обеспечена поддержка декодирования видео в формате AV1 с использованием движков аппаратного ускорения NVIDIA NVDEC и Intel QSV (Quick Sync Video), а также при помощи API DXVA2/D3D11VA.
  • Добавлена возможность кодирования AV1 в монохромном режиме, используя библиотеку libaom (требуется как минимум версия 2.0.1).
  • Реализована возможность кодирования видео в формате AV1 с использованием кодировщика SVT-AV1 (Scalable Video Technology AV1), в котором задействованы присутствующие в современных CPU Intel средства аппаратного распараллеливания вычислений.
  • Добавлено устройство для вывода через фреймворк AudioToolbox.
  • Добавлена поддержка протокола "gophers" (gopher поверх TLS).
  • Добавлена поддержка протокола RIST (Reliable Internet Stream Transport), используя librist.
  • Удалена поддержка кодировщика на базе libwavpack.
  • Добавлены новые декодировщики: AV1 (с аппаратным ускорением декодирования), AV1 (через VAAPI), AVS3 (через libuavs3d), Cintel RAW, PhotoCD, PGX, IPU, MobiClip Video, MobiClip FastAudio, ADPCM IMA MOFLEX, Argonaut Games Video, MSP v2 (Microsoft Paint), Simbiosis IMX, Digital Pictures SGA.
  • Добавлены новые кодировщики: RPZA, PFM, Cineform HD, OpenEXR, SpeedHQ, ADPCM IMA Ubisoft APM, ADPCM Argonaut Games, High Voltage Software ADPCM, ADPCM IMA AMV, TTML (субтитры).
  • Добавлены упаковщики медиаконтейнеров (muxer): AMV, Rayman 2 APM, ASF (Argonaut Games), TTML (субтитры), LEGO Racers ALP (.tun и .pcm).
  • Добавлены распаковщики медиаконтейнеров (demuxer): AV1 (Low overhead bitstream), ACE, AVS3, MacCaption, MOFLEX, MODS, MCA, SVS, BRP (Argonaut Games), DAT, aax, IPU, xbm_pipe, binka, Simbiosis IMX, Digital Pictures SGA, MSP v2 (Microsoft Paint).
  • Добавлены новые парсеры: IPU, Dolby E, CRI, XBM.
  • Новые фильтры:
    • chromanr - сокращает цветовой шум на видео.
    • afreqshift и aphaseshift - осуществляют сдвиг частоты и фазы звука.
    • adenorm - добавляет шум определённого уровня.
    • speechnorm - выполняет нормализацию речи.
    • asupercut - вырезает из звука частоты выше 20 кГц.
    • asubcut - вырезает частоты саббуфера.
    • asuperpass и asuperstop - реализация частотных фильтров Баттерворта.
    • shufflepixels - перегруппировка пикселей в кадрах видео.
    • tmidequalizer - применение эффекта временного выравнивания видео (Temporal Midway Video Equalization).
    • estdif - устранение чересстрочности c использованием алгоритма Edge Slope Tracing.
    • epx - фильтр увеличения для создания пиксельной графики.
    • shear - сдвиговое преобразование видео.
    • kirsch - применение оператора Кирша к видео.
    • colortemperature - корректировка цветовой температуры видео.
    • colorcontrast - корректировка цветового контраста между RGB-компонентами для видео.
    • colorcorrect - корректировка баланса белого для видео.
    • colorize - наложение цвета на видео.
    • exposure - корректировка уровня экспозиции для видео.
    • monochrome - преобразование цветного видео в оттенки серого.
    • aexciter - генерация высокочастотных составляющих звука, отсутствующих в исходном сигнале.
    • vif и msad - определение коэффициентов VIF (Visual Information Fidelity) и MSAD (Mean Sum of Absolute Differences) для оценки различий двух видео.
    • identity - определение уровня различий двух видео.
    • setts - выставляет PTS (presentation time stamp) и DTS (decoding time stamp) в пакетах (bitstream).

  1. OpenNews: Проекту FFmpeg исполнилось 20 лет
  2. OpenNews: Выпуск мультимедиа-пакета FFmpeg 4.3 c поддержкой графического API Vulkan
  3. OpenNews: Выпуск мультимедиа-пакета FFmpeg 4.2
  4. OpenNews: Доступен мультимедийный фреймворк GStreamer 1.18.0
  5. OpenNews: Выпуск мультимедийной библиотеки SDL 2.0.14
Обсуждение (57 +47) | Тип: Программы |
08.04.2021 Выпуск GnuPG 2.3.0 (62 +24)
  Спустя три с половиной года с момента формирования прошлой значительной ветки представлен новый выпуск инструментария GnuPG 2.3.0 (GNU Privacy Guard), совместимого со стандартами OpenPGP (RFC-4880) и S/MIME, и предоставляющего утилиты для шифрования данных, работы с электронными подписями, управления ключами и доступа к публичным хранилищам ключей.

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

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

  • Предложен экспериментальный фоновый процесс с реализацией базы данных ключей, использующий для хранения СУБД SQLite и демонстрирующий более быстрый поиск ключей. Для включения нового хранилища следует активировать в gpg.conf и gpgsm.conf опцию "use-keyboxd".
  • Добавлена новая утилита gpg-card, которую можно использовать как гибкий интерфейс для всех поддерживаемых типов смарткарт.
  • Добавлен новый фоновый процесс tpm2d, позволяющий использовать чипы TPM 2.0 для защиты закрытых ключей и выполнения операций шифрования или создания цифровых подписей на стороне TPM-модуля.
  • В качестве алгоритмов по умолчанию для открытых ключей задействованы ed25519 и cv25519.
  • В gpg прекращено использование для шифрования алгоритмов с размером блока в 64 бита. Использование 3DES запрещено, а в качестве минимально поддерживаемого алгоритма заявлен AES. Для отключения ограничения можно использовать опцию "--allow-old-cipher-algos".
  • Добавлена поддержка AEAD-режимов блочного шифрования OCB и EAX.
  • Обеспечена поддержка пятой версии (с идентификатором на базе SHA256 вместо SHA1) ключей и цифровых подписей.
  • Добавлена поддержка кривых X448 (ed448, cv448).
  • Разрешено использование имён групп в списках ключей.
  • В gpg результаты проверки теперь зависят от опции "--sender" и идентификатора создателя подписи.
  • В gpg, gpgsm, gpgconf, gpg-card и gpg-connect-agent добавлена опция "--chuid" для смены идентификатора пользователя.
  • В gpg добавлены опции "--full-timestrings" (вывод даты и времени), "--force-sign-key" и "--no-auto-trust-new-key".
  • Прекращена поддержка устаревшего метода обнаружения ключей PKA и удалены связанные с ним опции.
  • В gpg добавлена возможность экспорта ключей Ed448 для SSH.
  • В gpgsm добавлена базовая поддержка ECC и возможность создания сертификатов EdDSA.
  • В агенте разрешено использования значения "Label:" в файле ключей для настройки приглашения ввода PIN-кода. Реализована поддержка расширений ssh-agent для переменных окружения.
  • В scd улучшена поддержка нескольких кардридеров и токенов. Реализована возможность использования нескольких приложений с определённой смарткартой. Добавлена поддержка карт PIV, Telesec Signature Cards v2.0 и Rohde&Schwarz Cybersecurity. Добавлены новые опции "--application-priority" и "--pcsc-shared".
  • Удалена утилита symcryptrun (устаревшая обвязка над внешней утилитой Chiasmus.
  • На платформе Windows реализована полная поддержка Unicode в командной строке.

  1. OpenNews: Критическая уязвимость в библиотеке Libgcrypt 1.9.0, затрагивающая GnuPG и systemd
  2. OpenNews: Обновление GnuPG 2.2.23 с устранением критической уязвимости
  3. OpenNews: Разработчики GnuPG предупредили о трудноустранимой атаке на серверы ключей
  4. OpenNews: Доступен NeoPG 0.0.6, форк GnuPG 2
  5. OpenNews: Выпуск GnuPG 2.2.0
Обсуждение (62 +24) | Тип: Программы |
08.04.2021 Мессенджер Signal возобновил публикацию серверного кода и интегрировал криптовалюту (155 +18)
  Организация Signal Technology Foundation, развивающая систему защищённых коммуникаций Signal, возобновила публикацию кода серверных частей мессенджера. Код проекта изначально было открыт под лицензией AGPLv3, но публикация изменений в публичном репозитории без объяснения причин была прекращена 22 апреля прошлого года. Обновление репозитория прекратилось после объявления о намерении интегрировать в Signal систему платежей.

На днях началось тестирование встроенной в Signal системы платежей, основанной на собственной криптовалюте MobileCoin (MOB), разработанной Мокси Марлинспайком (Moxie Marlinspike), автором протокола Signal. Примерно в это же время в репозитории были опубликованы накопившиеся за год изменения серверных компонентов, в том числе включающие реализацию системы платежей.

Криптовалюта MobileCoin спроектирована для построения сети мобильных платежей, обеспечивающей конфиденциальность пользователей. Данные пользователей остаются только в их руках, и разработчики Signal или администраторы элементов инфраструктуры не имеют возможность получить доступ к деньгам, данным о балансе пользователя и истории транзакций. Платёжная сеть не имеет единой точки контроля и основывается на идее долевого владения, суть которой в том, что все средства сети образуются как совокупность индивидуальных долей, которыми можно обмениваться. Общий размер средств в сети фиксирован и составляет 250 миллионов MOB.

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

Данные могут быть переданы только узлам криптографически подтвердившим использование в анклаве немодифицированного кода MobileCoin. Каждый изолированный анклав реплицирует конечный автомат (state machine), который добавляет действительные транзакции в блокчейн, используя для подтверждения платежей алгоритм достижения консенсуса (MobileCoin Consensus Protocol). Узлы также могут брать на себя роль полных валидаторов, которые дополнительно формируют и размещают в сетях доставки контента публичную копию вычисленного блокчейна. В итоговом блокчейне отсутствуют сведения, позволяющие идентифицировать пользователя без знания его ключей. В блокчейне присутствуют лишь идентификаторы, вычисленные на основе ключей пользователя, зашифрованные данные о средствах и метаданные для контроля целостности.

Для обеспечения целостности и защиты от искажения данных задним числом применяется древовидная структура "дерево Меркла" (Merkle Tree), в которой каждая ветка верифицирует все нижележащие ветки и узлы благодаря совместному (древовидному) хешированию. Имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний БД (корневой проверочный хеш нового состояния базы вычисляется с учётом прошлого состояния).

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

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

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

  1. OpenNews: Уязвимости в Signal Desktop и в платформе Electron
  2. OpenNews: Представлен метод атаки на групповой чат WhatsApp и Signal
  3. OpenNews: Опубликован Signal Desktop, вариант мессенджера для настольных систем
  4. OpenNews: Выпуск Matrix-клиента Riot 1.6 с включением сквозного шифрования
  5. OpenNews: Анализ негативного эффекта от формирования мессенджерами эскизов ссылок
Обсуждение (155 +18) | Тип: К сведению |
07.04.2021 Rust включён в число основных языков для разработки платформы Android (328 +21)
  Компания Google объявила о включении языка программирования Rust в число языков, допустимых для разработки платформы Android. Компилятор языка Rust был включён в дерево исходных текстов Android ещё в 2019 году, но поддержка данного языка оставалась экспериментальной. Одними из первых компонентов на Rust, которые планируется поставлять в Android, являются новые реализации механизма межпроцессного взаимодействия Binder и Bluetooth-стека.

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

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

В Android безопасная работа с памятью обеспечивается в уже поддерживаемых языках Kotlin и Java, но они не подходят для разработки системных компонентов из-за больших накладных расходов. Rust даёт возможность добиться производительности близкой к языкам C и С++, что позволяет использовать его для разработки низкоуровневых частей платформы и компонентов для взаимодействия с оборудованием.

Для обеспечения безопасности кода на C и C++ в Android применяется sandbox-изоляция, статический анализ и fuzzing-тестирование. Возможности sandbox-изоляции ограничены и достигли предела своих возможностей (дальнейшее дробление на процессы нецелесообразно с точки зрения потребления ресурсов). Из ограничений применения sandbox упоминаются большие накладные расходы и рост потребления памяти, вызванные необходимостью порождения новых процессов, а также возникновение дополнительных задержек, связанных с использованием IPC.

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

Для системных процессов в Android компания Google придерживается "правила двух", в соответствии с которым любой добавляемый код должен подпадать не больше, чем под два условия из трёх: работа с непроверенными входными данными, использование небезопасного языка программирования (C/C++) и выполнение без жёсткой sandbox-изоляции (наличие повышенных привилегий). Из этого правила следует, что код для обработки внешних данных должен либо быть урезан до минимальных привилегий (изолирован), либо быть написан на безопасном языке программирования.

Google не ставит перед собой цель переписать на Rust уже имеющийся код C/C++, а планирует использовать данный язык для разработки нового кода. Использовать Rust для нового кода имеет смысл, так как по статистике большинство ошибок всплывает в новом или недавно изменённом коде. В частности, около 50% выявляемых ошибок работы с памятью в Android выявляются в коде, написанном менее года назад.

  1. OpenNews: Google развивает новый Bluetooth-стек для Android, написанный на Rust
  2. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
  3. OpenNews: Разработчики Chrome экспериментируют с языком программирования Rust
  4. OpenNews: Разработчики Mesa обсуждают возможность добавления кода на языке Rust
  5. OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
Обсуждение (328 +21) | Тип: К сведению |
07.04.2021 Отчёт о компрометации git-репозитория и базы пользователей проекта PHP (86 +21)
  Опубликованы первые результаты разбора инцидента, связанного с выявлением в Git-репозитории проекта PHP двух вредоносных коммитов с бэкдором, активируемым при передаче запроса со специально оформленным заголовком User Agent. В ходе изучения следов деятельности атакующих был сделан вывод, что непосредственно сервер git.php.net, на котором был размещён git-репозиторий не был взломан, но была скомпрометирована база данных с учётными записями разработчиков проекта.

Не исключается, что злоумышленники смогли загрузить базу пользователей, хранившуюся в СУБД на сервере master.php.net. Содержимое master.php.net уже перенесено на новый сервер main.php.net, установленный с нуля. Все пароли разработчиков, использовавшиеся для доступа к инфраструктуре php.net, были сброшены и инициирован процесс их смены через специальную форму восстановления пароля. Репозитории git.php.net и svn.php.net остаются доступны в режиме только для чтения (разработка перенесена на GitHub).

После обнаружения первого вредоносного коммита, совершённого через учётную запись Расмуса Лердорфа, основателя PHP, было сделано предположение, что взломан аккаунт Расмуса, и Никита Попов, один из ключевых разработчиков PHP, откатил изменения и блокировал права коммита для проблемной учётной записи. Через какое-то время пришло осознание, что блокировка не имела смысла, так как без верификации коммитов по цифровой подписи, любой участник с доступом к репозиторию php-src мог внести изменение, подставив фиктивное имя автора.

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

Оперативно был отключён сервер git.php.net, а первичный репозиторий переведён на GitHub. Впопыхах было упущено из виду то, что для доступа к репозиторию кроме SSH с использованием gitolite имелся ещё один вход, позволяющий отправлять коммиты через HTTPS. В данном случае для взаимодействия с Git использовался бэкенд git-http-backend, а аутентификация выполнялась при помощи HTTP-сервера Apache2, который проверял полномочия через обращение к базе данных, размещённой в СУБД на сервере master.php.net. Допускался вход не только по ключам, но и по обычному паролю. Разбор логов http-сервера, подтвердил, что вредоносные изменения были добавлены через HTTPS.

При изучении логов было выявлено, что атакующие подключились не с первого раза, а вначале пытались подобрать имя учётной записи, но после определения вошли с первой попытки, т.е. они заранее знали пароли Расмуса и Никиты, но не знали их логины. Если атакующие смогли получить доступ к СУБД, то непонятно, почему они сразу не использовали указанный там корректный логин. Данная несостыковка пока не получила достоверного объяснения. Взлом master.php.net рассматривается как наиболее вероятный сценарий, так как на данном сервере был использован очень старый код и устаревшая ОС, которые давно не обновлялись и имели неисправленные уязвимости.

Из предпринятых действий отмечается переустановка окружения сервера master.php.net и перевод скриптов на новую версию PHP 8. Код для работы с СУБД переделан для использования параметризованных запросов, усложняющих подстановку SQL-кода. Для хранения хэшей паролей в БД задействован алгоритм bcrypt (ранее пароли хранились с использованием ненадёжного хэша MD5). Существующие пароли сброшены и предложено установить новый пароль через форму восстановления пароля. Так как доступ к репозиториям git.php.net и svn.php.net по HTTPS был привязан к хэшам MD5, решено оставить git.php.net и svn.php.net в режиме только для чтения, а также перенести все остающиеся на них репозитории расширений PECL на GitHub, по аналогии с основным репозиторием PHP.

  1. OpenNews: В Git-репозитории проекта PHP выявлены вредоносные изменения
  2. OpenNews: Релиз языка программирования PHP 8.0
  3. OpenNews: Уязвимость, позволяющая удалённо выполнить код на сервере PHP-репозитория Packagist
  4. OpenNews: Подтверждён факт взлома инфраструктуры проекта PHP
  5. OpenNews: Проект PHP сообщил о взломе и утечке базы паролей с Wiki-сервера
Обсуждение (86 +21) | Тип: Проблемы безопасности |
06.04.2021 Google опубликовал аудиокодек Lyra для передачи речи при плохом качестве связи (110 +31)
  Компания Google представила новый аудиокодек Lyra, оптимизированный для достижения максимального качества передачи речи даже при использовании очень медленных каналов связи. Код реализации Lyra написан на C++ и открыт под лицензией Apache 2.0, но в числе необходимых для работы зависимостей присутствует проприетарная библиотека libsparse_inference.so с реализацией ядра для математических вычислений. Отмечается, что проприетарная библиотека является временной - в дальнейшем Google обещает разработать открытую замену и обеспечить поддержку различных платформ.

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

Кодек включает в себя кодировщик и декодировщик. Алгоритм работы кодировщика сводится к извлечению параметров голосовых данных каждые 40 миллисекунд, их сжатию и передаче получателю по сети. Для передачи данных достаточно канала связи со скоростью 3 килобита в секунду. Извлекаемые звуковые параметры включают в себя логарифмические мел-спектрограммы, учитывающие характеристики энергии речи в различных частотных диапазонах и подготовленные с учётом модели человеческого слухового восприятия.

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

Для ускорения также применены специализированные процессорные инструкции, доступные в 64-разрядных процессорах ARM. В итоге, несмотря на применение машинного обучения, кодек Lyra может применяться для кодирования и декодирования речи в реальном режиме времени на смартфонах среднего ценового диапазона, демонстрируя задержку передачи сигнала на уровне 90 миллисекунд.

  1. OpenNews: Доступен аудиокодек Opus 1.3
  2. OpenNews: Обновление свободного звукового кодека FLAC 1.3.2
  3. OpenNews: Google передаёт систему объёмного звука Resonance Audio сообществу
  4. OpenNews: Публикация RFC ознаменовала первый стабильный релиз свободного аудиокодека Opus
  5. OpenNews: Google опубликовал данные и модель машинного обучения для разделения звуков
Обсуждение (110 +31) | Тип: Программы |
06.04.2021 KDE взял на себя продолжение сопровождения общедоступной ветки Qt 5.15 (88 +32)
  В связи с ограничением компанией Qt Company доступа к репозиторию с исходными текстами LTS-ветки Qt 5.15 проект KDE приступил к поставке собственной коллекции патчей Qt5PatchCollection, нацеленной на поддержание на плаву ветки Qt 5 до завершения миграции сообщества на Qt6. KDE взял на себя сопровождение патчей к Qt 5.15, включающих исправления функциональных дефектов, крахов и уязвимостей. Патчи доступны в Git-репозиториях, соответствующих модулям Qt.

В настоящее время коллекция включает только патчи, рецензированные и одобренные проектом Qt, но, в будущем могут быть приняты и патчи, по каким-то причинам не утверждённые в upstream. Критериями включения патчей в коллекцию является важность реализуемого исправления и востребованность в открытом ПО. KDE не планирует выпускать отдельные релизы набора патчей и будет развивать его как непрерывно пополняемую коллекцию, отталкивающуюся от последнего общедоступного среза репозитория Qt 5.15. Приветствуется включение патчей в состав дистрибутивов.

Патчи планируется поддерживать до тех пор, пока остаётся потребность пользователей открытых продуктов, завязанных на ветке Qt 5.15, и пока Qt 6 окончательно не вытеснит Qt 5 при разработке открытого ПО. Компания Qt Company, которая намерена способствовать инициативе KDE, выразила понимание, что такому большому проекту как KDE требуется время для перехода на Qt 6. Предоставление исправлений для ветки Qt 5 поможет сделать миграцию более гладкой и даст возможность уделить больше времени стабилизации кода.

Напомним, что компания Qt Company с 5 января ограничила доступ к коду с обновлениями для ветки Qt 5.15. Выпущенный в марте корректирующий выпуск 5.15.3, включающий около 250 исправлений, был предоставлен только обладателям коммерческой лицензии. Ограничение введено в соответствии с озвученным год назад планом, подразумевающим общедоступную публикацию кода изменений в LTS-ветках только до формирования очередного значительного выпуска. При этом Qt Company выразила готовность предоставить доступ к закрытым репозиториям сопровождающим внешние Qt-модули. Открытым остался и репозиторий dev-ветки, в которой производится разработка новых выпусков Qt и через которую проходит большинство исправлений для прошлых веток.

  1. OpenNews: Проект Qt объявил о смене лицензии и изменении соглашения с KDE
  2. OpenNews: Около половины изменений в Qt вносят участники проекта KDE
  3. OpenNews: Qt переходит на лицензию LGPLv3 вместо GPLv3, что позволит заимствовать код Qt в KDE
  4. OpenNews: Проект KDE обозначил свою позицию в отношении будущего Qt и указал на недопустимость форка
  5. OpenNews: Компания Qt Company ограничила доступ к исходному коду LTS-ветки Qt 5.15
Обсуждение (88 +32) | Тип: Программы | Интересно
06.04.2021 Выпуск платформы webOS Open Source Edition 2.10 (53 +11)
  Представлен выпуск открытой платформы webOS Open Source Edition 2.10, которая может применяться на различных портативных устройствах, платах и автомобильных информационно-развлекательных системах. В качестве эталонной аппаратной платформы рассматриваются платы Raspberry Pi 4. Платформа развивается в публичном репозитории под лицензией Apache 2.0, а разработку курирует сообщество, придерживаясь совместной модели управления разработкой.

Платформа webOS была изначально разработана компанией Palm в 2008 году и использовалась на смартфонах Palm Pre и Pixie. В результате поглощения компании Palm в 2010 году платформа перешла в руки Hewlett-Packard, после чего HP пыталась использовать данную платформу в своих принтерах, планшетах, ноутбуках и ПК. В 2012 году компания HP анонсировала перевод webOS в независимый открытый проект и в 2013 году начала открытие исходных текстов его компонентов. В 2013 году платформа была выкуплена компанией LG у Hewlett-Packard и теперь применяется на более чем 70 миллионах телевизоров и потребительских устройств LG. В 2018 году был основан проект webOS Open Source Edition, через который компания LG попыталась вернуться к открытой модели разработки, привлечь других участников и расширить спектр поддерживаемых в webOS устройств.

Системное окружение webOS формируется с использованием инструментария и базовых пакетов OpenEmbedded, а также сборочной системы и набора метаданных от проекта Yocto. Ключевыми компонентами webOS являются менеджер системы и приложений (SAM, System and Application Manager), отвечающий за выполнение приложений и сервисов, и Luna Surface Manager (LSM), формирующий интерфейс пользователя. Компоненты написаны с использованием фреймворка Qt и браузерного движка Chromium.

Отрисовка осуществляется через композитный менеджер, применяющий протокол Wayland. Для разработки пользовательских приложений предлагается использовать web-технологии (CSS, HTML5 и JavaScript) и фреймворк Enact, основанный на React, но возможно и создание программ на С и C++ с интерфейсом на базе Qt. Пользовательская оболочка и встроенные графические приложения в основном реализованы как нативные программы, написанные с использованием технологии QML. По умолчанию предлагается оболочка Home Launcher, оптимизированная для управления с сенсорных экранов и предлагающая концепцию сменяющих друг друга карт (вместо окон).

Для хранения данных в структурированном виде с использованием формата JSON применяется хранилище DB8, использующее в качестве бэкенда БД LevelDB. Для инициализации используется bootd на основе systemd. Для обработки мультимедийного контента предлагаются подсистемы uMediaServer и Media Display Controller (MDC), в качестве звукового сервера применяется PulseAudio. Для автоматического обновления прошивки применяется OSTree и атомарная замена разделов (создаются два системных раздела, один из которых является активным, а второй используется для копирования обновления).

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

  • Реализован фреймворк Storage Access, предоставляющий единый интерфейс для доступа к различным хранилищам, включая внутреннее хранилище, USB-накопители и облачные системы хранения (пока поддерживается только Google Drive). Фреймворк позволяет через общий пользовательский интерфейс просматривать и открывать документы, изображения и файлы из всех настроенных провайдеров хранения данных.
  • В браузерном движке обеспечено хранение сессионных и аутентификационных Cookie в зашифрованном виде.
  • Добавлен новый сервис Peripheral Manager для управления периферийными устройствами, поддерживающий взаимодействие с устройствами через интерфейсы GPIO, SPI, I2C и UART. Сервис позволяет организовать управления новыми устройствами без изменения исходных текстов платформы.
  • Расширены возможности модели управления доступом ACG (Access Control Groups), применяемой для ограничения полномочий сервисов, использующих Luna Bus. В новом выпуске на ACG переведены все старые сервисы, в которых ранее использовалась старая модель безопасности. Изменён синтаксис правил ACG.

  1. OpenNews: Выпуск платформы webOS Open Source Edition 2
  2. OpenNews: Выпуск AsteroidOS 1.0, открытой ОС для умных часов на базе Qt и Wayland
  3. OpenNews: Обновление мобильной платформы LuneOS, продолжившей развитием webOS
  4. OpenNews: Объявлено о слиянии открытого проекта Mer и проприетарной ОС Sailfish
  5. OpenNews: Компания LG опубликовала операционную систему webOS Open Source Edition
Обсуждение (53 +11) | Тип: Программы |
05.04.2021 Google одержал победу в разбирательстве с Oracle, связанном с Java и Android (144 +50)
  Верховный суд США вынес решение, касающееся рассмотрения тянущегося с 2010 года судебного разбирательства "Oracle против Google", связанного с использованием Java API в платформе Android. Суд высшей инстанции встал на сторону Google и признал, что использование Java API носит характер добросовестного использования (fair use).

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

Компания Google заимствовала приблизительно 11500 строк с описанием структур API, что составляет лишь 0.4% от всей реализации API, насчитывающей 2.86 миллиона строк. Принимая во внимание объем и значительность использованной порции кода, 11500 строк были рассмотрены судом как одна небольшая часть значительно большего целого. В составе программного интерфейса скопированные строки неразрывно связаны другим кодом (не принадлежащим Oracle), который используют программисты. Компания Google скопировала рассматриваемую порцию кода не из-за её совершенства или функциональных преимуществ, а так как она давала возможность программистам использовать имеющиеся навыки в новой вычислительной среде для смартфонов.

Напомним, что в 2012 году судья, имеющий опыт программирования, согласился с позицией Google и признал, что формирующее API дерево имён является частью структуры команд - набора символов, связанного с определённой функцией. Подобный набор команд трактуется законом об авторском праве как не подпадающий под действие копирайта, так как дублирование структуры команд является непременным условием обеспечения совместимости и переносимости. Поэтому идентичность строк с декларациями и заголовочными описаниями методов не имеет значения - для реализации аналогичной функциональности формирующие API имена функций должны совпадать, даже если сама функциональность реализована по-другому. Так как существует только один способ выражения идеи или функции, то каждый волен использовать идентичные декларации, и никто не может монополизировать такие выражения.

Компания Oracle подала апелляцию и добилась в Федеральном апелляционном суде США отмены решения - апелляционный суд признал, что Java API является интеллектуальной собственностью Oracle. После этого компания Google сменила тактику и попыталась доказать, что реализация Java API в платформе Android носит характер добросовестного использования, и данная попытка увенчалась успехом. Позиция Google сводилась к тому, что создание переносимого программного обеспечения не требует получения лицензии на API, а повторение API для создания совместимых функциональных аналогов относится к "добросовестному использованию". По мнению Google, отнесение API к категории интеллектуальной собственности негативно скажется на индустрии, так как подрывает развитие инноваций, а создание совместимых функциональных аналогов программных платформ может стать объектом судебных исков.

Компания Oracle второй раз подала апелляцию, и опять дело было пересмотрено в её пользу. Суд постановил, что принцип "добросовестного использования" не применим к Android, так как данная платформа развивается компанией Google с корыстными целями, реализуемыми не через прямую продажу программного продукта, а через контроль над сопутствующими сервисами и рекламой. При этом Google удерживает контроль над пользователями через проприетарный API для взаимодействия со своими сервисами, который запрещено использовать для создания функциональных аналогов, т.е. использование Java API не ограничивается некоммерческим применением. В ответ компания Google подала ходатайство в суд высшей инстанции и Верховный суд США вернулся к рассмотрению вопроса о принадлежности программных интерфейсов (API) к интеллектуальной собственности и вынес окончательное решение в пользу Google.

  1. OpenNews: IBM, Microsoft и Mozilla поддержали Google в судебном разбирательстве с Oracle
  2. OpenNews: Верховный суд согласился возобновить связанное с Java и Android разбирательство между Google и Oracle
  3. OpenNews: Google возобновил разбирательство с Oracle, связанное с Java и Android
  4. OpenNews: Компания Oracle выиграла апелляцию в деле против Google, связанном с Java и Android
  5. OpenNews: Google одержал победу над Oracle в разбирательстве, связанном с использованием Java API в Android
Обсуждение (144 +50) | Тип: К сведению | Интересно
05.04.2021 ИСП РАН займётся повышением защиты Linux и поддержанием отечественной ветки ядра Linux (388 +59)
  Федеральная служба по техническому и экспортному контролю заключила с Институтом системного программирования Российской академии наук (ИСП РАН) контракт на выполнение работ по созданию технологического центра исследования безопасности операционных систем, созданных на базе ядра Linux. Контракт также подразумевает создание программно-аппаратного комплекса для центра исследования безопасности операционных систем. Сумма контракта - 300 млн рублей. Дата завершения работ - 25 декабря 2023 года.

Среди указанных в техзадании задач:

  • Формирование отечественной ветки ядра Linux и обеспечения поддержки её безопасности при постоянной синхронизации с международными открытыми проектами по разработке ядра Linux.
  • Подготовка исправлений, устраняющих уязвимости в операционных системах, созданных на базе ядра Linux, и их тестирование. Доведение указанных исправлений до разработчиков операционных систем.
  • Разработка методологии архитектурного анализа, статического анализа исходного кода ядра, fuzzing-тестирования ядра, системного и модульного тестирования и полносистемного динамического анализа. Применение подготовленных методов для тестирования программного обеспечения ядра Linux, используемого для создания отечественных операционных систем.
  • Подготовка сведений об уязвимостях в операционных системах, созданных на базе ядра Linux, для включения в банк данных угроз безопасности информации ФСТЭК России, выявленных по результатам анализа и тестирования.
  • Подготовка рекомендаций по реализации мер безопасной разработки операционных систем, созданных на базе ядра Linux.

Цели создания Технологического центра:

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

  1. OpenNews: Официально представлена отечественная операционная система "ОСь"
  2. OpenNews: Отечественный защищённый Linux-дистрибутив Заря готов к внедрению
  3. OpenNews: Утверждена программа перехода органов государственной власти Украины на открытое ПО
  4. OpenNews: Утвержден план перехода государственных учреждений РФ на свободное ПО
  5. OpenNews: На развитие отечественной открытой ОС в следующем году будет потрачено 161 млн руб.
Обсуждение (388 +59) | Тип: Тема для размышления |
05.04.2021 Атака на GitHub Actions для майнинга криптовалюты на серверах GitHub (41 +22)
  GitHub расследует серию атак, в ходе которых злоумышленникам удалось организовать майнинг криптовалюты в облачной инфраструктуре GitHub, используя для запуска своего кода механизм GitHub Actions. Первые попытки использования GitHub Actions для майнинга датированы ноябрём прошлого года.

GitHub Actions даёт возможность разработчикам кода прикреплять обработчики для автоматизации различных операций в GitHub. Например, при помощи GitHub Actions можно выполнить определённые проверки и тесты при совершении коммитов или автоматизировать обработку новых Issues. Для запуска майнинга атакующие создают форк репозитория, в котором используется GitHub Actions, добавляют в свою копию новый GitHub Actions и отправляют в оригинальный репозиторий pull-запрос, предлагающий замену существующих обработчиков GitHub Actions на новый обработчик ".github/workflows/ci.yml".

Вредоносный pull-запрос порождает многократные попытки запуска заданного атакующим обработчика GitHub Actions, который после 72 часов прерывается из-за таймаута, завершается сбоем и затем запускается вновь. Для атаки злоумышленнику достаточно лишь создать pull-запрос - обработчик запускается автоматически без какого-либо подтверждения или участия со стороны сопровождающих оригинального репозитория, которые лишь могут заметить подозрительную активность и остановить уже запущенные задания GitHub Actions.

В добавляемом атакующими обработчике ci.yml в параметре "run" присутствует обфусицированный код (eval "$(echo 'YXB0IHVwZGF0ZSAt...' | base64 -d"), который при выполнении пытается загрузить и запустить программу для майнинга. В первых вариантах атаки из разных репозиториев на GitHub и GitLab загружалась программа, названная npm.exe и собранная в форме исполняемого ELF-файла для Alpine Linux (используется в образах Docker). В более новых формах атаки загружается код типового майнера XMRig из официального репозитория проекта, который затем собирается с подстановкой адреса кошелька и серверов для отправки данных.

  1. OpenNews: Уязвимость в GitHub Actions, допускающая подстановку команд
  2. OpenNews: Через уязвимость в GitHub от имени Линуса Торвальдса создан фиктивный репозиторий linux-ng
  3. OpenNews: GitHub устранил уязвимость, приводившую к подмене сеанса пользователя
  4. OpenNews: В GitHub устранена уязвимость, допускающая внедрение кода в любой репозиторий
  5. OpenNews: Волна взломов суперкомпьютеров для майнинга криптовалюты
Обсуждение (41 +22) | Тип: Проблемы безопасности |
Следующая страница (раньше) >>



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

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