Материалы по тегу: ядро

25.02.2021 [01:47], Андрей Галадей

Google профинансирует Linux-разработчиков, занятых повышением безопасности ядра

Компания Google и Linux Foundation объявили, что выделяют средства на оплату двух штатных специалистов по обеспечению безопасности ядра Linux, Густаво Сильвы (Gustavo Silva) и Натана Ченселора (Nathan Chancellor). Эти специалисты уделяют особое внимание поддержанию и улучшению безопасности ядра и связанных проектов. Потому было принято решение профинансировать их работу, чтобы гарантировать эту поддержку.

«В Google безопасность всегда находится на первом месте, и мы понимаем критическую роль, которую она играет для устойчивости программного обеспечения с открытым исходным кодом», — заявил Дэн Лоренц (Dan Lorenc), штатный инженер по программному обеспечению Google. «Для нас большая честь поддерживать усилия Густаво Сильвы и Натана Ченселора, которые работают над повышением безопасности ядра Linux».

scmagazine.com

scmagazine.com

Как отмечается, Натан Ченселлор будет заниматься исправлением ошибок в компиляторе LLVM Clang и в дальнейшем будет занят поддержкой проекта ClangBuiltLinux по использованию LLVM для сборки ядра. Это позволит использовать различные механизмы защиты ещё на этапе сборки ядра. Задачей же Сильвы на данный момент является устранение различных возможностей переполнения буфера. Кроме того, он продолжит работу в рамках проекта Kernel Self Protection Project (KSPP), которыей отсекает целые классы уязвимостей.

Постоянный URL: http://servernews.ru/1033460
24.02.2021 [22:23], Андрей Галадей

Microsoft предложила расширить контроль целостности в Linux 5.12

Инженеры Microsoft продолжают добавлять в ядро Linux свои нововведения. Само собой, если это выгодно компании. И вот теперь одним из нововведений должна стать новая функция подсистемы контроля целостности Integrity Measurement Architecture (IMA), которую компания предложила для ядра Linux 5.12.

В нынешней версии ядра подсистема проверки целостности работает на основе вычисления контрольных хеш-сумм при загрузке программ и файлов. В Linux 5.12 появился дополнение на основе политик. Первоначально это будет использоваться для контроля версии ядра и для SELinux.

onyxes.com

onyxes.com

Разумеется, на данный момент уже существуют механизмы проверки ядра. При «холодной» загрузке они инспектируются загрузчиком, а при использовании kexec — текущим запущенным ядром. Однако сейчас проверка работает, только если загружаемое ядро более новое, чем текущее. А вот если оно более старое, и имеет уязвимости, то ситуация меняется. Microsoft предлагает расширить IMA, добавив возможность составить списки разрешённых к загрузке версий ядер. Это позволит не допустить загрузку и установку ядра с уязвимостями, отсекая таким образом один из возможных путей атаки.

Постоянный URL: http://servernews.ru/1033356
08.02.2021 [19:51], Андрей Галадей

Опубликованы необычные тестовые ядра Linux 4.4.256 и 4.9.256

Мейнтейнер ядра Linux Грег Кроа-Хартман (Greg Kroah-Hartman) опубликовал выпуски ядра Linux под номерами 4.4.256 и 4.9.256. Они отличаются от существующих исключительно номером, поскольку главной и единственной задачей их будет проверка переполнения однобайтовой переменной, которая содержит номер версии.

even3.com.br

even3.com.br

Эта переменная используется в счётчике номера версии и имеет длину 8 бит. Потому при вызове макроса KERNEL_VERSION(4, 4, 256) эквивалентом будет KERNEL_VERSION(4, 4, 0). В результате в пространство пользователя может быть экспортирована неверная константа, что приведёт к ошибкам в GCC, Glibc и любых других программ, которым для работы требуется знать версию ядра. Кроа-Хартман попросил пользователей установить тестовые версии ядра, и проверить их на наличие возможных ошибок.

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

Постоянный URL: http://servernews.ru/1032126
29.01.2021 [17:17], Андрей Галадей

Itanium забыт и заброшен: Линус Торвальдс констатировал смерть архитектуры

Одной из проблем и в то же время достоинств Linux является поддержка многих старых архитектур процессоров. Это увеличивает размеры ядра и усложняет сопровождение. Но теперь, похоже, на одну архитектуру станет меньше. В ядре Linux 5.11, как выяснилось, оказалась нарушена поддержка Itanium IA-64.

После исправления выяснилось, что это не единственная проблема такого рода, однако истинную причину выяснить не удалось из-за отсутствия доступа к «железу». Так что Линус Торвальдс (Linus Torvalds) в итоге принял решение пометить данную архитектуру как orphaned, то есть заброшенную, и прямо заявил, что она мертва. А это первый шаг к полному исключению её из ядра, как это уже случилось с другим продуктом Intel — Xeon Phi.

wikipedia.org

Изображения: wikipedia.org

Два последних крупных игрока на рынке Itanium-систем — сама Intel и её клиент HPE — уже давно забросили поддержку этой архитектуры в Linux, да и энтузиасты к ней охладели. И это объяснимо. Последнее поколение Itanium 9700 Kittson вышло в 2017 году, а приём заказов на них прекратился год назад. Поставки формально будут свёрнуты 29 июля 2021 года, но эти CPU с высокой степенью вероятности практически никто не закупил хоть в сколько-то значимых объёмах.

Несбывшиеся надежды

Несбывшиеся надежды

В дистрибутивах же поддержку процессоров убрали давно. Red Hat не поддерживает чипы с RHEL 5, SUSE перестала поддерживать после SUSE Linux 11. Так что теперь поддержка будет осуществляться лишь теми компаниями, которые явно заинтересованы в этом. Разумеется, если такие остались. В своё время спор между Oracle и HPE подорвал репутацию платформы. Впрочем, Linux не является единственным вариантом — поддержка HP-UX, наследника классических UNIX, версии 11i v3 для ряда продуктов HPE будет осуществляться до 31 декабря 2025.

Аналогичная ситуация сложилась и вокруг SPARC c Solaris, так как большую часть разработчиков обоих продуктов Oracle уволила ещё в 2017 году. Oracle обязалась сопровождать Solaris 11 максимум до 2034 года. В частности, на днях она выпустила патч безопасности для sudo и восстановила некоторые старые материалы. Однако Solaris 12 мы вряд ли когда-либо увидим. Сейчас компании гораздо более интересны облака, Linux и Arm-процессоры Ampere.

Постоянный URL: http://servernews.ru/1031387
29.01.2021 [00:36], Андрей Галадей

Ядро Linux 5.10 LTS, возможно, будет поддерживаться только до 2022 года

За последние годы длительная поддержка ядер Linux стала стандартом. Так, Linux 5.4 LTS будет поддерживаться до конца 2025 года, Linux 4.19 — до конца 2024 года, а Linux 4.14 — до начала 2024. Однако отлаженная система дала сбой. Как сообщается, свежее ядро Linux 5.10 LTS, вероятно, будет поддерживаться лишь до конца 2022-го. Всё дело в том, что на данный момент нет компаний, которые согласились бы финансировать эту работу.

youtube.com

youtube.com

Таким образом, всё зависит от участников рынка, которые могут обеспечить необходимые инвестиции. Мейнтейнер стабильной версии Linux Грег Кроа-Хартман (Greg Kroah-Hartman) отметил, что хочет, чтобы компании использовали Linux 5.10 более двух лет, так что ожидает от них ответных действий.

По его словам, сейчас идёт поиск тех, кто возьмётся тестировать релиз-кандидаты, чтобы был смысл продолжать поддерживать выпуск LTS более чем 2 года. Отметим, что это ядро будет использоваться в Debian 11 Bullseye, Android 12 и так далее. При этом упомянутые в начале ядра версий 5.4 и 4.14 получили летом прошлого года продление срока сопровождения до примерно шести лет.

Постоянный URL: http://servernews.ru/1031331
13.01.2021 [23:29], Андрей Галадей

Разработчики ядра Linux обсуждают отказ от ряда старых процессоров

Ядро Linux 5.10 стало очередным релизом с долгосрочной поддержкой (LTS), который будет поддерживаться как минимум в течение следующих пяти лет. И потому в сообществе началось обсуждение отказа от поддержки ряда устаревших процессоров и архитектур. В числе аргументов сторонники удаления отмечали, что многие платформы не получали обновлений и коммитов уже много лет.

Разработчик Арнд Бергманн (Arnd Bergmann) предложил список из 30 с лишним платформ Arm, которые можно было бы безболезненно убрать. Большая часть из них, попав в основную ветку ядра, получала обновления в течение 1-3 лет, после чего была заброшена. Другая часть относится к «доисторическим», то есть к таким, которые уже давным-давно не производятся.

hackster.io

hackster.io

Наконец, есть перечень платформ, которые давно «мертвы» и не поддерживаются разработчиками порядка 10 лет:

  • H8300
  • C6X
  • SPARC/Sun4M
  • PowerPC: CELL (не считая PS3), CHRP, AmigaOne, Maple
  • M68K: Apollo, HP300, Sun3, Q40
  • MIPS JAZZ и Cobalt

Кроме того, есть и архитектуры, которые тоже можно рассмотреть в качестве кандидатов на исключения из ядра Linux:

  • 80486SX/DX — поддержка 80386 прекратилась в 2012 году, нет смысла поддерживать и 80486.
  • Alpha 2106x — системами на базе любых Alpha вряд ли кто-то пользуется.
  • IA64 Merced — первое поколение Itanium, на смену которым через год пришли Itanium II.
  • MIPS R3000/TX39xx: 32-бит чипы MIPS-II (не путать с более современной MIPS32), которые с 1991 года вытеснены 64-бит MIPS-III.
  • SuperH SH-2 — популярная в середине 90-х архитектура для встраиваемых систем.
  • 68328 (DragonBall) — поддержка похожих микроконтроллеров 68360 удалена в 2016 году. Поддержка более новых 68020+ и Coldfire MCF5xxx сохранится.

Вопрос об удалении старых архитектур возник не на пустом месте. Арнд Бергманн изучал текущее состояние 32-бит платформ и потенциальную возможность отказа от них, так как полный переход на поддержку только 64-бит архитектур значительно облегчил бы жизнь разработчиков во многих аспектах. Ранее он предположил, что через десять лет среди массовых архитектур останутся только x86-64, ARM и RISC-V.

Постоянный URL: http://servernews.ru/1029884
29.12.2020 [20:40], Андрей Галадей

Bootlin «научит» старые NAS с 32-бит ARM-процессорами работать с хранилищем ёмкостью более 17 Тбайт

Современные объёмы жёстких дисков и технологии RAID уже давно позволяют собирать системы на десятки Тбайт данных. Однако не всегда есть возможность задействовать такие объёмы из-за ограничения аппаратной и программной частей. В строю до сих пор есть масса устаревших NAS на базе 32-битных процессоров ARM и не самых свежих ядер Linux.

Однако в такой конфигурации есть проблема, связанная с тем, что по умолчанию используются 4-КиБ (кибибайт) физические страницы, а это накладывает ограничение на максимальный размер адресуемой памяти в 16 ТиБ (~17,59 Тбайт) для хранилища, причём это практически не зависит от файловой системы. Проще говоря, современные накопители, которые уже достигли 20-Тбайт объёма, подобный NAS попросту не «осилит».

kobol.io

kobol.io

Одно из решений проблемы — использование страниц памяти большего размера. Точнее говоря, их эмуляция, так как есть некоторые нюансы в организации работы с памятью внутри ядра и собственно аппаратной реализацией в 32-бит ARM. Другим подходом является использование 64-битных (pgoff_t) смещений для адресации файловых систем, и некоторые производители уже используют его.

Подробнее обо всём этом компания Bootlin рассказывает в своем блоге. Именно она по заказу неназванного производителя NAS подготовила серию патчей для решения этой проблемы. Причём её реализация поддерживает страницы размером 4, 8, 16, 32 и 64 КиБ. То есть это даёт возможность работы с 256-ТиБ пространством в случае 64-КиБ страницы.

Патчи были выпущены довольно давно, но до сих пор не добавлены в основную ветку ядра Linux. И вряд ли будут. Одной из причин этого является тот факт, что поддержка больших страниц для 32-битной ARM-системы увеличивает расход памяти. Так что компромиссным вариантом пока является использование 8-КиБ страницы, которые дают поддержку до 32 ТиБ при минимально возможном перерасходе памяти.

Постоянный URL: http://servernews.ru/1028953
15.12.2020 [01:02], Андрей Галадей

Выпущено LTS-ядро Linux 5.10 и экстренное обновление 5.10.1

Как и планировалось, Линус Торвальдс (Linus Torvalds) официально выпустил ядро Linux 5.10. Оно относится к категории LTS, что говорит о длительной поддержке на протяжении будущих 5 лет. В течение суток появился и экстренный выпуск версии 5.10.1 c исправлением двух серьёзных ошибок, касающихся работы RAID DISCARD для RAID1/10 в коде Device Mapper и монтирования RAID6.

Ну и раз уж начали с обновлений подсистемы хранения данных, про них и продолжим. ФС для флеш-памяти F2FS получила ряд нововведений. Одним из них стала поддержка зонирования NVMe Zoned Namespaces (ZNS). Из новостей для более привычных ФС: в XFS теперь поддерживаются метки времени до 2486 года, а не до 2038 + с 2030 года прекратится поддержка формата V4, а в 2025-м там откажутся от и старых настроек Irix. Для Btrfs и Ext4 ускорена работа с файлами.

debugpoint.com

debugpoint.com

Свежий релиз также отличается поддержкой новых процессоров и видеокарт: AMD Zen 3 и Intel Rocket Lake, а также Big Navi, Intel Xe и VC4 (для Raspberry Pi 4). Среди наиболее интересных нововведений для AMD можно отметить полную поддержку мониторинга для Zen 3, RAS/EDAC для EPYC Milan, а также целый ряд патчей для повышения производительности и безопасности. Для будущих Intel Sapphire Rapids уже появляется поддержка DSA. Кроме того, начата работа над поддержкой Intel Alder Lake и Meteor Lake. Из других x86-вендоров добавлением кода для своего CenTaur KX-7000 отметилась китайская Zhaoxin.

Для ARM традиционно добавлена поддержка сразу нескольких SoC и SBC, включая и NVIDIA Orin + масса патчей для повышения безопасности и скорости работы. IBM продолжает улучшать поддержку POWER10. Что характерно, для «большой тройки» архитектур (x86-64, ARM, POWER) всё ещё продолжают выходить патчи, борющиеся с последствиями Spectre и других узявимостей того же класса. Также в новом ядре появилась дополнительная защита от возможных атак DMA со стороны внешних устройств PCI Express.

Из пропавших из ядра архитектур можно выделить старые варианты PowerPC и Xeon Phi. Зато для молодой RISC-V появилась возможность EFI-загрузки. Ну и наконец, в ядре теперь поддерживаются AWS Nitro Enclaves — изолированные облачные анклавы для безопасной работы с конфиденциальными данными.

Что касается сетевой части, то отныне ядро будет разрешать содание более чем 255 многоадресных интерфейсов IPv4. Также продолжилось развитите Multi-Path TCP (MPTCP) и поддержки сетевых адаптеров Broadcom 200GbE и Mellanox. Для последних говорится о приросте производительности в 20 % в некоторых сценариях. Из других нововведений отметим возможность приостановки выполнения BPF-программ за счёт перехода программы в режим сна.

В целом, новая версия ядра имеет 17,5 тыс. исправлений от более чем 2 тыс. разработчиков. Патч «весит» 64 Мбайт, и это один из самых крупных релизов наряду с Linux 5.8. Подробнее перечень изменений можно изучить по ссылке. Отмечается, что это ядро будет лежать в основе дистрибутивов Debian 11, Mageia 8 и других. А вот в Fedora 34 и Ubuntu 21.04 мы, скорее всего, увидим уже Linux 5.11.

Постоянный URL: http://servernews.ru/1027805
29.08.2020 [20:41], Илья Коваль

Ещё капельку: Microsoft занимается оптимизацией Linux для серверных ARM

Microsoft является платиновым членом Linux Foundation, в её облаке Azure доминирует Linux и, в целом, уже пора перестать удивляться работе корпорации с этой ОС. Но она всё равно порой преподносит сюрпризы. На конференции Linux Plumbers Conference 2020 разработчики компании рассказали об экспериментах по оптимизации сборки ядра Linux.

Любопытно, что эта работа выполняется по внутреннему запросу, а оптимизация делается для повышения производительности Linux на ARM-процессорах Marvell ThunderX2. Это особенно интересно в свете резко изменившихся планов Marvel относительно будущих ThunderX3: компания займётся достаточно глубокой оптимизацией CPU под нужды конкретных заказчиков и не будет выпускать «общие» версии. Теперь она ориентирована в первую очередь на гиперскейлеров, к которым относится и Microsoft.

Так вот, разработчики Microsoft изучают использование LTO (Link Time Optimization) вместе с PGO (Profile-guided optimization) для ускорения работы ядра. Обе техники не являются чем-то новым сами по себе, однако LTO лишь относительно недавно стала применяться для сборки ядра Linux и других пакетов в некоторых дистрибутивах, что было связано с незрелостью её поддержки в популярных открытых наборах компиляторов GCC и LLVM. А вот применение PGO для ядра всё ещё довольно редко. Интересно, что Microsoft активно использует LTO и PGO в Windows — PGO даёт улучшение производительности на 5% – 20 %.

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

На той же конференции разработчики Google поделились своим опытом оптимизации сборки ядра. В частности, продукты под брендом Pixel с 2018 года получают ядра с LTO. А сейчас корпорация изучает работу AutoFDO — ещё одной техники, которая собирает данные о работе от perf-подсистемы ядра и аппаратных счётчиков CPU. Собранные профили «скармливаются» компилятору. Таким образом для x86-64 удалось на 12% сократить число используемых циклов CPU. На других платформах результат тоже положительный, но уже не такой заметный.

Постоянный URL: http://servernews.ru/1019418
14.08.2020 [15:44], Илья Коваль

Дроворуб: вредоносный Linux-фреймворк с руткит-модулем ядра

ЦРУ и ФБР опубликовали совместный отчёт об обнаружении ранее неизвестного комплексного зловреда «Дроворуб» (Drovorub), разработчики которого, как утверждают исследователи, связаны с российскими спецслужбами и хакерской группировкой Fancy Bear, также известной под именами APT28, Group 74, Iron Twilight, PawnStorm, Sednit, Sofacy и Strontium.

«Дроворуб» включает четыре основных исполняемых компонента: клиентский модуль-имплант, руткит в виде модуля ядра Linux, клиентские модуль для передачи файлов и перенаправления портов/трафика, управляющий сервер. Сервер отвечает за регистрацию, аутентификацию и отправку задачи клиентам. Для связи используется протокол WebSocket.

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

После установки клиента загружается модуль ядра (руткит), и вот тут начинается самое интересное. Модуль Drovorub-kernel ставит хуки на системные вызовы самого ядра и перехватывает их. Модуль скрывает в списке процессов присутствие самого себя, клиента и его дочерних процессов — в /proc невозможно увидеть хоть какие-то следы присутствия лишнего ПО в системе. Также он скрывает любые файлы и директории самого клиента и любые другие по запросу. Кроме того, руткит занимается фильтрацией пакетов, сокетов (включая raw) и правил netfilter.

Общение между клиентом и модулем ядра организовано любопытным способом. Модуль создаёт псевдоустройство (такое как /dev/zero) и «прослушивает» весь поток данных, проходящих через него, вычленяя данные от клиента. Для обратной связи модуль посылает сигнал клиенту и когда тот обращается к псевдоустройству отдаёт необходимую порцию данных. И это, кстати, даёт один из самых простых способов проверить наличие руткита в системе, отправив на псевдоустройство команду скрыть какой-либо файл.

Остальные локальные методы включают более затратные анализ памяти и образа диска. Также можно заметить следы деятельности в сети и логах самого ядра. Для предотвращения заражения рекомендуется обновить ядро Linux до версии 3.7 или старше, устанавливать обновления, запретить загрузку недоверенных и неподписанных модулей ядра, а также использовать UEFI Secure Boot.

Постоянный URL: http://servernews.ru/1018272
Система Orphus