· | 26.06.2022 | Новая версия почтового сервера Exim 4.96 (9 +5) |
Состоялся релиз почтового сервера Exim 4.96, в который внесены накопившиеся исправления и добавлены новые возможности. В соответствии с майским автоматизированным опросом около 800 тысяч почтовых серверов, доля Exim составляет 59.59% (год назад 59.15%), Postfix используется на 33.64% (33.76%) почтовых серверов, Sendmail - 3.55% (3.55%), MailEnable - 1.93% (2.02%), MDaemon - 0.45% (0.56%), Microsoft Exchange - 0.23% (0.30%).
| ||
Обсуждение (9 +5) |
Тип: Программы |
| ||
· | 25.06.2022 | Redbean 2.0 - платформа для web-приложений, упакованных в универсальный исполняемый ZIP-архив (54 +3) |
Представлен выпуск проекта Redbean 2.0, позволяющего поставлять web-приложения в форме универсального исполняемого файла со встроенным web-сервером, поддерживающего выполнение в Linux, Windows, MacOS, FreeBSD, NetBSD и OpenBSD. Файл, в котором скомпонованы все связанные с web-приложением и сервером ресурсы, при этом совместим с форматом архивов ZIP и позволяет использовать утилиту zip для добавления дополнительных файлов. Возможность запуска одного файла в разных ОС и его распознание как ZIP-архива достигается благодаря манипуляциям с заголовками исполняемых файлов и связыванием с многоплатформенной стандартной Си-библиотекой Cosmopolitan. Код проекта распространяется под лицензией ISC.
Разработчик web-приложения может при помощи утилиты zip добавить в предлагаемый базовый файл с web-сервером свои HTML- и Lua-файлы и получить на выходе самодостаточное web-приложение, выполняемое во всех популярных ОС и для работы не требующее запуска в системе отдельного web-сервера. Предлагаемый встроенный web-сервер позволяет взаимодействовать с сохранённым в файле web-приложением через обращение к localhost, но сервер также может применяться и в качестве обычного публичного web-сервера (например, данный сервер обслуживает сайт проекта). Встроенный Web-сервер поддерживает обращение по HTTPS и может выполняться с использованием sandbox-изоляции, позволяющей контролировать к каким системным интерфейсам производится обращение. Для управления работой сервера во время его выполнения предоставляется интерактивный интерфейс REPL (на базе Lua REPL и библиотеки bestline, аналога GNU Readline), дающий возможность изменять состояние процесса в интерактивном режиме. Утверждается, что web-сервер способен обработать более миллиона запросов в секунду на обычном ПК, отдавая html-контент, сжатый методом gzip. Высокой производительности способствует то, что zip и gzip используют общий формат, поэтому данные отдаются без перепаковки из уже сжатых областей в zip-файле. Кроме того, так как исполняемый файл создан с использованием статического связывания и имеет небольшой размер, вызов функции fork для него практически не приводит к накладным расходам при размещении в памяти. Помимо обработки статического web-контента и выполнения JavaScript в браузере, логика web-приложения может расширяться при помощи скриптов на языке Lua, web-фреймворка Fullmoon и СУБД SQLite. Среди дополнительных возможностей отмечается поддержка схемы хэширования паролей argon2, возможность определения региона IP по базе MaxMind и доступ к Unix API библиотеки Cosmopolitan. Размер базового стека, включающего web-сервер, MbedTLS, Cosmopolitan, Lua и SQLite, составляет всего 1.9 МБ. Универсальный исполняемый файл формируется путём совмещения специфичных для разных операционных систем сегментов и заголовков PE, ELF, MACHO, OPENBSD, ZIP в одном файле. Для обеспечения запуска одного исполняемого файла в Windows и Unix-системах применяется трюк, суть которого в кодировании файлов Windows PE в виде shell-скрипта, пользуясь тем, что Thompson Shell не использует маркер скриптов "#!". В итоге создаётся исполняемый файл, в котором скомбинировано несколько разных форматов, используемых в Linux, BSD, Windows и macOS. $ curl https://redbean.dev/redbean-demo-2.0.7.com >redbean.com $ chmod +x redbean.com $ zip redbean.com hello.html $ zip redbean.com hello.lua $ ./redbean.com -vv I2022-06-23T08:27:14+000767:redbean] (srvr) listen http://127.0.0.1:8080 >: waiting for command... $ curl https://127.0.0.1:8080/hello.html hello $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 hello
| ||
Обсуждение (54 +3) |
Тип: Программы |
| ||
· | 24.06.2022 | Google начал распространение прошивки на базе ОС Fuchsia для устройств Nest Hub Max (77 +6) |
Компания Google приступила к распространению новой прошивки, основанной на ОС Fuchsia, для умных фоторамок Nest Hub Max, выпускаемых с 2019 года. На первом этапе прошивка на базе Fuchsia начнёт доставляться участникам программы Google Preview Program, и если в ходе пробного внедрения не возникнет непредвиденных проблем, прошивка будет применена и на устройствах остальных пользователей Nest Hub Max.
Фоторамка Nest Hub Max стала вторым потребительским устройством, оснащённым операционной системой Fuchsia. Первым прошивку на базе Fuchsia год назад получила модель Nest Hub, которая отличается меньшим экраном и отсутствием встроенной видеокамеры, которая используется в системе видеонаблюдения и обеспечения безопасности. Несмотря на замену операционной системы в прошивке, пользовательский интерфейс и функциональность полностью сохранены и конечные пользователи не должны заметить различий, так как интерфейс построен на базе фреймворка Flutter и абстрагирован от низкоуровневых компонентов. Ранее в устройствах Nest Hub Max, сочетающих функции рамки для фотографий, мультимедийной системы и интерфейса для управления умным домом, применялась прошивка на базе оболочки Cast и ядра Linux. ОС Fuchsia развивается компаний Google c 2016 года с учётом недостатков в области масштабирования и обеспечения безопасности, имеющихся в платформе Android. Система базируется на микроядре Zircon, основанном на наработках проекта LK, расширенного для применения на различных классах устройств, включая смартфоны и персональные компьютеры. Zircon расширяет LK поддержкой процессов и разделяемых библиотек, уровнем пользователя, системой обработки объектов и моделью обеспечения безопасности на основе capability. Драйверы реализуются в виде работающих в пространстве пользователя динамических библиотек, загружаемых процессом devhost и управляемых менеджером устройств (devmg, Device Manager). Для Fuchsia подготовлен собственный графический интерфейс, написанный на языке Dart с использованием фреймворка Flutter. Проектом также развиваются фреймворк для построения интерфейсов пользователя Peridot, пакетный менеджер Fargo, стандартная библиотека libc, система рендеринга Escher, Vulkan-драйвер Magma, композитный менеджер Scenic, файловые системы MinFS, MemFS, ThinFS (FAT на языке Go) и Blobfs, а также менеджер разделов FVM. Для разработки приложений предоставляется поддержка языков C/C++, Dart, в системных компонентах также допускается использование Rust, в сетевом стеке Go, а в системе сборки языка Python. ![]() В процессе загрузки используется системный менеджер, включающий appmgr для создания начального программного окружения, sysmgr для формирования загрузочного окружения и basemgr для настройки пользовательского окружения и организации входа в систему. Для обеспечения безопасности предлагается продвинутая система sandbox-изоляции, в которой новые процессы не имеют доступа к объектам ядра, не могут выделять память и не могут запускать код, а для доступа к ресурсам применяется система пространств имён, определяющая доступные полномочия. Платформа предоставляет фреймворк для создания компонентов, представляющих собой программы, запускаемые в своём sandbox, которые могут взаимодействовать с другими компонентами через IPC.
| ||
Обсуждение (77 +6) |
Тип: Программы |
| ||
· | 23.06.2022 | Результат опроса предпочтений разработчиков от Stack Overflow (117 +19) |
Дискуссионная площадка Stack Overflow опубликовала результаты ежегодного опроса, в котором приняло участие около 70 тысяч разработчиков ПО.
| ||
Обсуждение (117 +19) |
Тип: К сведению |
| ||
· | 22.06.2022 | Релиз Chrome 103 (80 –6) |
Компания Google представила релиз web-браузера Chrome 103. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 104 запланирован на 2 августа.
Основные изменения в Chrome 103:
Кроме нововведений и исправления ошибок в новой версии устранено 14 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной из проблем (CVE-2022-2156) присвоен критический уровень опасности, который подразумевает возможность обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Детали по данной уязвимости пока не разглашаются, известно только, что она вызвана обращением к освобождённому блоку памяти (use-after-free). В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 9 премий на сумму 44 тысячи долларов США (одна премия $20000, одна премия $7500, одна премия $7000, две премии $3000 и по одной премии в $2000, $1000 и $500). Размер вознаграждения за критическую уязвимость пока не определён.
| ||
Обсуждение (80 –6) |
Тип: Программы |
| ||
· | 22.06.2022 | GitHub ввёл в строй систему машинного обучения Copilot, генерирующую код (150 –11) |
GitHub объявил о завершении тестирования интеллектуального помощника GitHub Copilot, способного генерировать типовые конструкции при написании кода. Система разработана совместно с проектом OpenAI и использует платформу машинного обучения OpenAI Codex, натренированную на большом массиве исходных текстов, размещённых в публичных репозиториях GitHub. Сервис бесплатен для сопровождающих популярных открытых проектов и студентов. Для остальных категорий пользователей доступ к GitHub Copilot платный ($10 в месяц или $100 в год), но предоставляется бесплатный ознакомительный доступ к течение 60 дней.
Поддерживается генерация кода на языках программирования Python, JavaScript, TypeScript, Ruby, Go, C# и C++ с использованием различных фреймворков. Доступны модули для интеграции GitHub Copilot со средами разработки Neovim, JetBrains IDEs, Visual Studio и Visual Studio Code. Судя по собранной в процессе тестирования телеметрии сервис позволяет генерировать код достаточно высокого качества - например, 26% предложенных в GitHub Copilot рекомендаций были приняты разработчиками как есть. От традиционных систем автодополнения кода GitHub Copilot отличается возможностью формирования достаточно сложных блоков кода, вплоть до готовых функций, синтезированных c учётом текущего контекста. GitHub Copilot адаптируется к манере написания кода разработчиком и учитывает используемые в программе API и фреймворки. Например, при наличии в комментарии примера структуры JSON при начале написания функции для разбора этой структуры GitHub Copilot предложит уже готовый код, а при написании рутинных перечислений повторяющихся описаний сформирует оставшиеся позиции. ![]() Способность GitHub Copilot генерировать готовые блоки кода привела к спорам, связанным с потенциальным нарушением копилефт лицензий. При формировании модели машинного обучения использованы реальные исходные тексты из репозиториев открытых проектов, размещённые на GitHub. Многие из этих проектов поставляются под копилефт лицензиями, такими как GPL, требующими поставки под совместимой лицензией кода производных работ. В случае вставки предложенного Copilot существующего кода разработчики могут невольно нарушить лицензию на проект, из которого был заимствован данный код. Может ли считаться производной работа, сгенерированная системой машинного обучения, пока не ясно. Также возникают вопросы к тому является ли модель машинного обучения объектом авторских прав и если да, то кому принадлежат эти права и как они соотносятся с правами на код, на основе которого построена модель. С одной стороны, сгенерированные блоки могут повторять отрывки текста из существующих проектов, но с другой стороны, система воссоздаёт структуру кода, а не копирует сам код. В соответствии с проведённым в GitHub исследованием, только в 1% случаев предлагаемая Copilot рекомендация может включать отрывки кода существующих проектов размером более 150 символов. В большинстве ситуаций повторы возникают, когда Copilot не может корректно определить контекст или предлагает типовые решения проблемы. Для предотвращения подстановки существующего кода в Copilot добавлен специальный фильтр, не допускающий пересечения с существующими проектами. При настройке разработчик может на своё усмотрение активировать или отключить данный фильтр. Из других проблем отмечается вероятность, что синтезированный код может повторить ошибки и уязвимости, присутствующие в коде, использованном при обучении модели.
| ||
Обсуждение (150 –11) |
Тип: К сведению |
| ||
· | 22.06.2022 | Создатель GeckoLinux представил новый дистрибутив SpiralLinux (50 +3) |
Создатель дистрибутива GeckoLinux, основанного на пакетной базе openSUSE и уделяющего большое внимание оптимизации рабочего стола и мелочам, таким как качественная отрисовка шрифтов, представил новый дистрибутив - SpiralLinux, построенный с использованием пакетов Debian GNU/Linux. Дистрибутив предлагает 7 готовых к использованию Live-сборок, поставляемых с рабочими столами Cinnamon, Xfce, GNOME, KDE Plasma, Mate, Budgie и LXQt, настройки которых оптимизированы для повышения удобства работы.
Проект GeckoLinux продолжит сопровождаться, а SpiralLinux является попыткой сохранить привычный уклад в случае прекращения существования openSUSE или его трансформации в принципиально иной продукт, в соответствии с грядущими планами по значительной переработки SUSE и openSUSE. Debian выбран в качестве основы как стабильный, гибко адаптируемый под свои нужды и качественно поддерживаемый дистрибутив. При этом отмечается, что разработчики Debian недостаточно ориентированы на удобство работы конечного пользователя, что является поводом к созданию производных дистрибутивов, авторы которых пытаются сделать продукт более дружественным обычным потребителям. В отличие от таких проектов, как Ubuntu и Linux Mint, SpiralLinux не пытается развивать собственную инфраструктуру, а старается оставаться как можно ближе к Debian. SpiralLinux использует пакеты из основного состава Debian и пользуется теми же репозиториями, но предлагает другие настройки по умолчанию для всех основных окружений рабочего стола, доступных в репозиториях Debian. Таким образом, пользователю предлагается альтернативный вариант установки Debian, который обновляется из штатных репозиториев Debian, но предлагает набор более оптимальных для пользователя настроек. Особенности SpiralLinux
Cinnamon: ![]() LXQt: ![]() Budgie: ![]() Mate: ![]() KDE: ![]() GNOME: ![]() Xfce: ![]()
| ||
· | 21.06.2022 | Проект AlmaLinux представил новую сборочную систему ALBS (30 +7) |
Разработчики дистрибутива AlmaLinux, развивающего похожий на CentOS бесплатный клон Red Hat Enterprise Linux, представили новую сборочную систему ALBS (AlmaLinux Build System), которая уже использована при формировании выпусков AlmaLinux 8.6 и 9.0, подготовленных для архитектур x86_64, Aarch64, PowerPC ppc64le и s390x. Кроме сборки дистрибутива ALBS также используется для генерации и публикации корректирующих обновлений (errata), и заверения пакетов цифровой подписью. Код сборочной системы написан на языке Python и
распространяется под лицензией GPLv3.
Представленная сборочная система основана на наработках компании CloudLinux, развивающей собственный коммерческий дистрибутив на основе пакетной базы RHEL. Компания CloudLinux основала проект AlmaLinux и выступила учредителем некоммерческой организации AlmaLinux OS Foundation, созданной для разработки на нейтральной площадке с участием сообщества и c использованием модели управления, похожей на организацию работы проекта Fedora. Для подтверждения приверженности изначально заявленной полностью открытой и прозрачной для сообщества модели разработки, код сборочной системы теперь полностью открыт, а все стадии сборки AlmaLinux подконтрольны сообществу. Система ALBS ориентирована на автоматизацию сборки дистрибутива, сборки пакетов, тестирования пакетов, формирования цифровых подписей и публикации собранных пакетов в публичных репозиториях. Система нацелена на обработку всех стадий формирования дистрибутива как единого целого для исключения ошибок, вызванных человеческим фактором. Сборочная система продолжает развитие внутренней сборочной системы CloudLinux, применяемой с 2012 года. Помимо пакетов в формате RPM, поддерживается формат DEB и предоставляются средства для автоматизации замены брендов и модификации пересобираемых пакетов. В том числе система может применяться для создания произвольных дистрибутивов на основе Ubuntu и Debian. Для тестирования сборок применяется система непрерывной интеграции Jenkins. Исходный код собираемых пакетов загружается из Git-репозитория (в случае с AlmaLinux изменения в пакетах RHEL отслеживается через git.centos.org и переносятся в git.almalinux.org и sources.almalinux.org). ![]() Для всех желающих открыт анонимный доступ к сборочной системе AlmaLinux, позволяющий отслеживать все стадии сборки дистрибутива. Через предоставленный интерфейс можно определить какие пакеты собираются в данный момент, когда был собран интересующий пакет и при сборке каких пакетов возникли сбои. Для анализа доступен полный сборочный лог с детализацией на уровне отдельных пакетов. В настоящее время доступ ограничен возможностью наблюдения за системой, но в конце июля планируется запустить систему управления доступом на основе ролей (RBAC) и предоставить участникам из сообщества и сопровождающим возможность собирать в ALBS собственные пакеты. В будущем также ожидается поддержка верификации сборок с использованием сервиса CodeNotary, поддержка сборочного сервиса COPR, поддержка пространств имён для предоставления проектам и организациям инфраструктуры сборки своих пакетов, подготовка средств для автоматизации сборки и публикации образов виртуальных машин и контейнеров.
| ||
Обсуждение (30 +7) |
Тип: Программы |
| ||
· | 21.06.2022 | Facebook представил механизм TMO, позволяющий экономить 20-32% памяти на серверах (143 +13) |
Инженеры из компании Facebook (запрещена в РФ) опубликовали отчёт о внедрении в прошлом году технологии TMO (Transparent Memory Offloading), позволяющей значительно экономить оперативную память на серверах за счёт вытеснения не требуемых для выполнения работы вторичных данных на более дешёвые накопители, такие как NVMe SSD-диски. По оценке Facebook, применение TMO позволяет экономить от 20 до 32% ОЗУ на каждом сервере. Решение рассчитано на применение в инфраструктурах, в которых приложения запускаются в изолированных контейнерах. Работающие на стороне ядра компоненты TMO уже включены в состав ядра Linux.
На стороне ядра Linux работа технологии обеспечивается подсистемой PSI (Pressure Stall Information), поставляемой начиная с выпуска 4.20. PSI уже применяется в различных обработчиках нехватки памяти и позволяет проанализировать информацию о времени ожидания получения различных ресурсов (CPU, память, ввод/вывод). При помощи PSI обработчики в пространстве пользователя могут более точно оценить уровень загруженности системы и характер замедления работы, что позволяет выявлять отклонения на самом раннем этапе, когда они ещё заметно не сказываются на производительности. В пространстве пользователя работу TMO обеспечивает компонент Senpai, который через cgroup2 динамически корректирует ограничение памяти для контейнеров приложений на основании данных, полученных из PSI. Senpai анализирует признаки начала нехватки ресурсов через PSI, оценивает чувствительность приложений к замедлению доступа к памяти и пытается определить тот минимально необходимый контейнеру размер памяти, при котором требуемые для работы данные остаются в ОЗУ, а сопутствующие данные, осевшие в файловом кэше или напрямую не используемые в данный момент, вытесняются в раздел подкачки. ![]() Таким образом, суть TMO в том, чтобы держать процессы на строгой диете с точки зрения потребления памяти, принудительно добиваясь переноса в раздел подкачки неиспользуемых страниц памяти, вытеснение которых заметно не влияет на производительность (например, страницы с кодом, используемым только при инициализации, и единично используемые данные в дисковом кэше). В отличие от вытеснения информации в раздел подкачки в ответ на нехватку памяти, в TMO данные вытесняются на основании упреждающего прогнозирования. В качестве одного из критериев для вытеснения используется отсутствие обращения к странице памяти в течение 5 минут. Подобные страницы именуются холодными (cold memory page) и в среднем составляют около 35% памяти приложений (в зависимости от вида приложений наблюдается разброс от 19% до 65%). При вытеснении учитывается активность, связанная с анонимными страницами памяти (память, выделяемая приложением) и памятью, используемой при кэшировании файлов (выделяется ядром). В некоторых приложениях основное потребление связано с анонимной памятью, но в других большое значение имеет и файловый кэш. Для того, чтобы избежать дисбаланса при вытеснении памяти в кэш, в TMO применяется новый алгоритм подкачки, который вытесняет анонимные страницы и страницы, связанные с файловым кэшем, пропорционально. Вытеснение редко используемых страниц в более медленную память не сказывается сильно на производительности, но позволяет значительно снизить расходы на оборудование. Данные вытесняются на SSD-накопители или в сжатую область подкачки в оперативной памяти. По стоимости хранения байта данных применение NVMe SSD до 10 раз дешевле использования сжатия в оперативной памяти. ![]()
| ||
Обсуждение (143 +13) |
Тип: К сведению |
| ||
· | 20.06.2022 | Опубликован инструментарий для определения дополнений, установленных в Chrome (52 +6) |
Опубликован инструментарий с реализацией метода определения дополнений, установленных в браузере Chrome. Полученный список дополнений может использоваться для увеличения точности пассивной идентификации конкретного экземпляра браузера, в сочетании с другими косвенными признаками, такими как разрешение экрана, особенности WebGL, списки установленных плагинов и шрифтов. Предложенная реализация проверяет установку более 1000 дополнений. Для проверки своей системы предложена online-демонстрация.
Определение дополнений производится через анализ предоставляемых дополнениями ресурсов, доступных для внешних запросов. Как правило, дополнения включают различные сопутствующие файлы, такие как изображения, которые определяются в манифесте дополнения свойством web_accessible_resources. В первой версии манифеста Chrome доступ к ресурсам не ограничивался и любой сайт мог загрузить предоставляемые ресурсы. Во второй версии манифеста доступ к подобным ресурсам по умолчанию был разрешён только для самого дополнения. В третьей версии манифеста была предоставлен возможность определить, какие ресурсы можно отдавать каким дополнениям, доменам и страницам. Web-страницы могут запрашивать поставляемые в дополнении ресурсы при помощи метода fetch (например "fetch('chrome-extension://okb....nd5/test.png')"), возвращение которым значения "false" обычно свидетельствует о том, что дополнение не установлено. Для блокирования определения дополнения по наличию ресурсов некоторые дополнения генерируют проверочный токен, необходимый для доступа к ресурсу. Вызов fetch без указания токена всегда завершается неудачей. Как оказалось, защиту доступа к ресурсам дополнений можно обойти, оценивая время выполнения операции. Несмотря на то, что fetch при запросе без токена всегда возвращает ошибку, время выполнения операции при наличии и отсутствии дополнения отличается: если дополнение присутствует, то запрос потребует больше времени, чем если дополнение не установлено. Оценивая время реакции, можно достаточно точно определить наличие дополнения. Некоторые дополнения, которые не включают доступные извне ресурсы, можно определить по дополнительным свойствам. Например, дополнение MetaMask можно определить через оценку определения свойства window.ethereum (если дополнение не установлено, "typeof window.ethereum" вернёт значение "undefined").
| ||
Обсуждение (52 +6) |
Тип: Проблемы безопасности |
| ||
· | 20.06.2022 | Доступна система обмена сообщениями Mattermost 7.0 (71 +6) |
Опубликован выпуск системы обмена сообщениями Mattermost 7.0, ориентированной на обеспечение коммуникации разработчиков и сотрудников предприятий. Код серверной части проекта написан на языке Go и распространяется под лицензией MIT. Web-интерфейс и мобильные приложения написаны на JavaScript с использованием React, десктоп-клиент для Linux, Windows и macOS построен на платформе Electron. В качестве СУБД могут применяться MySQL и PostgreSQL.
Mattermost позиционируется как открытая альтернатива системе организации коммуникаций Slack и позволяет получать и отправлять сообщения, файлы и изображения, отслеживать историю переговоров и получать уведомления на смартфоне или ПК. Поддерживаются подготовленные для Slack модули интеграции, а также предоставлена большая коллекция собственных модулей для интеграции с Jira, GitHub, IRC, XMPP, Hubot, Giphy, Jenkins, GitLab, Trac, BitBucket, Twitter, Redmine, SVN и RSS/Atom. Основные новшества:
| ||
Обсуждение (71 +6) |
Тип: Программы |
| ||
· | 19.06.2022 | Уязвимости в механизме MMIO процессоров Intel (130 +26) |
Компания Intel раскрыла информацию о новом классе утечек данных через микроархитектурные структуры процессоров, позволяющих через манипуляцию с механизмом MMIO (Memory Mapped Input Output) определить информацию, обрабатываемую на других ядрах CPU. Например, уязвимости позволяют извлекать данные из других процессов, анклавов Intel SGX или виртуальных машин. Уязвимости специфичны только для CPU компании Intel, процессоры других производителей уязвимости не затрагивают.
Уязвимости проявляются в различных CPU Intel, включая процессоры на базе микроархитектур Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake и Rocketlake, а также серверные процессоры Xeon EP/EX, Scalable и некоторые Atom. Для совершения атаки требуется доступ к MMIO, который, например, может быть получен в системах виртуализации, предоставляющих возможность обращения к MMIO для гостевых систем, подконтрольных атакующему. Исправление также может потребоваться для систем, использующих изолированные анклавы Intel SGX (Software Guard Extensions). Для блокирования уязвимости требуется как обновление микрокода, так и применение дополнительных программных методов защиты, основанных на применении инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе. Подобная защита также применяется для блокирования ранее выявленных атак класса MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) и TAA (Transactional Asynchronous Abort). На стороне микрокода необходимые для реализации защиты изменения предложены в майском обновлении микрокода для CPU Intel (IPU 2022.1). В ядре Linux защита от нового класса атак включена в состав выпусков 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 и 4.9.319. Для проверки подверженности системы уязвимостям в MMIO и оценки активности тех или иных механизмов защиты в ядро Linux добавлен файл "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data". Для управления включением защиты реализован загрузочный параметр ядра "mmio_stale_data", который может принимать значения "full" (включение чистки буферов при переходе в пространство пользователя и в VM), "full,nosmt" (как "full" + дополнительно отключается SMT/Hyper-Threads) и "off" (защита отключена). Отдельные исправления предложены для гипервизора Xen и операционной системы Qubes. Суть выявленного класса уязвимостей в том, что некоторые операции приводят к копированию или перемещению данных, оставшихся после выполнения на других ядрах CPU, из одного микроархитектурного буфера в другой. Уязвимости в MMIO позволяют перенести эти остаточные данные из изолированных микроархитектурных буферов в видимые приложениям регистры или буферы CPU. Выявлено три метода извлечения остаточных данных через MMIO:
![]()
| ||
Обсуждение (130 +26) |
Тип: Проблемы безопасности |
| ||
· | 17.06.2022 | Выпуск системы управления контейнерами LXC 5.0 (47 +27) |
Компания Canonical опубликовала релиз инструментария для организации работы изолированных контейнеров LXC 5.0, предоставляющий runtime, подходящий как для запуска контейнеров с полным системным окружением, близких к виртуальным машинам, так и для выполнения непривилегированных контейнеров отдельных приложений (OCI). LXC относится к низкоуровневым инструментариям, работающим на уровне отдельных контейнеров. Для централизованного управления контейнерами, развёрнутыми в кластере из нескольких серверов, на базе LXC развивается система LXD. Ветка LXC 5.0 отнесена к выпускам с длительной поддержкой, обновления для которых формируются в течение 5 лет. Код LXC написан на языке Си и распространяется под лицензией GPLv2.
В состав LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux. Для изоляции процессов, сетевого стека ipc, uts, идентификаторов пользователей и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities. Основные изменения:
| ||
Обсуждение (47 +27) |
Тип: Программы |
| ||
· | 17.06.2022 | Компания Grafana открыла код системы реагирования на инциденты OnCall (76 +18) |
Компания Grafana Labs, развивающая платформу визуализации данных Grafana и систему мониторинга Prometheus, объявила об открытии исходных текстов системы реагирования на инциденты OnCall, предназначенной для обеспечения совместной работы команд по устранению и разбору инцидентов. OnCall ранее поставлялся в форме проприетарного продукта и был приобретён Grafana в процессе поглощения компании Amixr Inc. в прошлом году. Код проекта написан на языке Python и открыт под лицензией AGPLv3.
Система позволяет собирать информацию об аномалиях и событиях из различных систем мониторинга, после чего автоматически группировать данные, направлять уведомления ответственным группам и отслеживать состояние решения проблем. Поддерживается интеграция с системами мониторинга Grafana, Prometheus, AlertManager и Zabbix. Из полученной от систем мониторинга информации отфильтровываются второстепенные и малозначительные события, агрегируются дубликаты и исключаются проблемы, которые могут быть решены без участия человека. Очищенные от лишнего информационного шума значительные события поступают в подсистему отправки оповещений, которая выделяет сотрудников, ответственных за решения выявленных категорий проблем, и отправляет уведомления с учётом графика их работы и степени занятости (оцениваются данные из календаря-планировщика). Поддерживается ротация привязки инцидентов между разными сотрудниками и эскалация особо важных или оставшихся без решения проблем другим участникам команды или работникам более высоких ступеней. ![]() В зависимости от степени важности инцидента уведомления могут отправляться через телефонные звонки, SMS, электронную почту, создание событий в календаре-планировщике, мессенджеры Slack и Telegram. При этом в Slack могут автоматически создаваться каналы для обсуждения вопросов, связанных с решением инцидента, к которым автоматически подключаются как отдельные сотрудники, так и целые команды. Система предоставляет гибкие возможности расширения и настройки (например, под свои предпочтения можно настроить группировку и маршрутизацию событий, определить правила и каналы доставки уведомлений). Для интеграции с внешними системами предоставляется API и поддержка Terraform. Управление работой осуществляется через web-интерфейс. ![]()
| ||
Обсуждение (76 +18) |
Тип: Программы |
| ||
· | 16.06.2022 | Tauri 1.0 - конкурирующая с Electron платформа для создания пользовательских приложений (218 +16) |
Опубликован выпуск проекта Tauri 1.0, развивающего фреймворк для создания многоплатформенных пользовательских приложений с графическим интерфейсом, построенных с использованием web-технологий. По своей сути Tauri напоминает платформу Electron, но отличается иной архитектурой и более низким потреблением ресурсов. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.
Логика работы приложения определяется на JavaScript, HTML и CSS, но в отличие от web-приложений, программы на базе Tauri поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру и компилируемых для различных операционных систем. Платформа также предоставляет инструменты для организации автоматической доставки и установки обновлений. Подобный подход позволяет разработчику не заботиться о портировании приложения для различных платформ и упрощает поддержание приложения в актуальном состоянии. В приложении могут использоваться любые web-фреймворки для построения интерфейса, выдающие на выходе HTML, JavaScript и CSS. Подготовленный на базе web-технологий фронтэнд привязывается к бэкенду, выполняющему такие функции, как организация взаимодействия с пользователем и выполнение web-приложения. Для обработки окон на платформе Linux используется библиотека GTK (биндинг GTK 3 Rust), а в macOS и Windows развиваемая проектом библиотека Tao, написанная на Rust. Для формирования интерфейса применяется библиотека WRY, представляющая собой обвязку над браузерным движком WebKit для macOS, WebView2 для Windows и WebKitGTK для Linux. Библиотека также предлагает набор готовых компонентов для реализации таких элементов интерфейса, как меню и панель задач. В создаваемом приложении можно использовать многооконный интерфейс, сворачивание в системный лоток и вывод уведомлений через штатные системные интерфейсы. Первый выпуск платформы позволяет собирать приложения для Windows 7/8/10 (.exe, .msi), Linux (.deb, AppImage) и macOS (.app, .dmg). В разработке поддержка iOS и Android. Исполняемый файл может быть заверен цифровой подписью. Для сборки и разработки предлагается CLI-интерфейс, дополнение к редактору VS Code и набор сборочных сценариев для GitHub (tauri-action). Для расширения базовых компонентов платформы Tauri могут использоваться плагины. Из отличий от платформы Electron отмечается значительно более компактный установщик (3.1 MB в Tauri и 52.1 MB в Electron), низкое потребление памяти (180 MB против 462 MB), высокая скорость запуска (0.39 секунд против 0.80 секунд), использование бэкенда на Rust вместо Node.js, дополнительные меры защиты и изоляции (например, Scoped Filesystem для ограничения доступа к файловой системе).
| ||
Обсуждение (218 +16) |
Тип: Программы |
| ||
Следующая страница (раньше) >> |
Закладки на сайте Проследить за страницей |
Created 1996-2022 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |