Defeating KASLR by doing nothing at all
Исследователи Project Zero обнаружили уязвимость в защите KASLR на устройствах Android с процессорами arm64. Оказалось, что из-за поддержки горячего подключения памяти (memory hotplug) линейное отображение ядра больше не рандомизируется, а PHYS_OFFSET всегда имеет фиксированное значение 0x80000000. На Pixel-телефонах загрузчик дополнительно распаковывает ядро по одному и тому же физическому адресу (0x80010000) при каждой загрузке, что делает возможным статическое вычисление виртуальных адресов для любых данных ядра.
Эта уязвимость позволяет злоумышленникам с примитивом для произвольной записи обходить KASLR без сложных техник утечки адресов. Исследователь Seth Jenkins продемонстрировал, как с помощью формулы phys_tovirt(x) = ((x) - 0x80000000) | 0xffffff8000000000 можно точно вычислять виртуальные адреса для ядерных структур, таких как modprobe_path. Команда разработала инструмент bpf_arb_read для чтения экспортируемых переменных ядра, что упрощает эксплуатацию этой уязвимости.
Комментарии (7)
- Hendrikto сообщил о двух проблемах: отсутствии рандомизации линейного отображения и статичном физическом адресе загрузки ядра в Pixel, но обе считаются ожидаемым поведением.
- Google Pixel может добавить рандомизацию физических адресов ядра позже, но конкретных планов по устранению проблем нет.
- i-con указывает на параллель с уязвимостью в KVM (проект Rain) и сомневается в необходимости постоянного отображения всей физической памяти.
VMScape and why Xen dodged it
Новая атака VMScape от ETH Zürich использует уязвимости предсказателя переходов в процессорах AMD Zen 4 и Zen 5 для утечки данных между виртуальными машинами в облачных средах. Она успешно работает против гипервизоров KVM и VMware, позволяя вредоносной гостевой VM атаковать компоненты пользовательского пространства, такие как QEMU, и извлекать конфиденциальную информацию. Это очередное проявление проблем с изоляцией в современных CPU, оптимизированных для производительности.
Xen оказался неуязвим благодаря своей микроядерной архитектуре, где гипервизор минимален, а все дополнительные сервисы, включая эмуляцию устройств, вынесены в отдельную виртуальную машину Dom0. Это решение, принятое два десятилетия назад, сократило поверхность атаки и предотвратило воздействие VMScape на критически важные компоненты. Таким образом, архитектурный выбор Xen обеспечил встроенную защиту без необходимости экстренных исправлений, в отличие от KVM и VMware.
Комментарии (22)
- Архитектура Xen на микроядре с изолированным Dom0 ограничивает утечку данных при атаке vmscape только процессами внутри самого Dom0, что снижает риски.
- В отличие от KVM, где эмуляция оборудования происходит в пользовательском пространстве хоста, в Xen управление и эмуляция выделены в отдельный Dom0, что обеспечивает дополнительный уровень изоляции.
- Атака vmscape позволяет утечку данных между виртуальными машинами, но не затрагивает напрямую гипервизор Xen, так как он работает на более привилегированном уровне.
- Обсуждаются потенциальные преимущества микроядерных архитектур (например, seL4) для дальнейшего ограничения последствий побега из VM.
- Отмечается, что сама уязвимость остается на аппаратном уровне, и контейнеризация (LXC, SmartOS zones) не обязательно защищает от подобных атак.
Show HN: Bottlefire – Build single-executable microVMs from Docker images
Bottlefire — превращает Docker-образы в единый исполняемый файл с микро-VM на Firecracker.
Запуск без root и настроек, где есть KVM.
curl -fL https://bottlefire.dev/run/
Собирается утилитой bake, внутри: сеть, порты, shared-папки.
Цены
Публичные образы — бесплатно.
Pro: 5 $/мес, 20 ГБ «активных» образов, любые регистри.
curl -fL -H "Authorization: Bearer …" -o app \
https://images.bottlefire.dev/ghcr.io/org/app:1.0
Нужен больше или ECR/GCP — пишите.
Спонсорство от 50 $/мес — публикуй свои образы для всех.
Комментарии (21)
- Участник спросил, можно ли «заморозить» microVM в bottlefire и возобновить позже — ответ: Firecracker умеет снимки, но в текущем формате пока не реализовано.
- Вопрос о запуске microVM в обычном облаке:部分 провайдеры (GCP, DigitalOcean) уже позволяют запускать Firecracker.
- Сеть у bake устроена через SOCKS5-прокси поверх tun2socks, используя сетёвой стек хоста.
- Проект по сути обёртка bake: с KVM можно запустить любой Docker-контейнер без установки Docker.
- Участники сравнили с docker2exe/dockerc, обсудили GUI-оболочку, 9p для rootfs и возможность адаптации под Apple Hypervisor.framework.
Show HN: Lightweight tool for managing Linux virtual machines
Flint — лёгкий инструмент для управления виртуальными машинами Linux.
Клонируй, настрой и запускай ВМ из CLI без лишних зависимостей.
Комментарии (26)
- Пользователи не поняли, что делает утилита: «управляет» KVM-ВМ, но не ясно — создаёт, запускает, монтирует папки или работает по сети.
- Автор показал компактный бинарь на Go, но код (~26 k строк) написан «вайб-кодингом» без тестов, поэтому многим не доверяют.
- Обсуждали альтернативы: systemd-nspawn, libvirt/virsh, Virt-Manager, Cockpit; последний удобен, но по умолчанию слушает 0.0.0.0 и требует PAM-логин.
- Нашлись советы: Cockpit завернуть в SSH-туннель, libvirt подключаться по SSH, PAM заменить на безопасный модуль.
- Вопросы о Vite-hot-reload в гостевой ОС, снапшотах и расписании остались без ответа.
Kernel-hack-drill and exploiting CVE-2024-50264 in the Linux kernel
CVE-2024-50264: кратко о сложнейшей гонке в AF_VSOCK
Уязвимость введена в 2016 г. (ядро 4.8); это race между connect() AF_VSOCK и POSIX-сигналом, приводящий к UAF 80-байтового объекта virtio_vsock_sock. Триггер доступен обычному пользователю без user-ns. Ограничения: объект быстро освобождается, UAF-запись делает kworker, система легко падает. За это баг получил Pwnie 2025 «Best Privilege Escalation».
Управление сигналом без самоубийства процесса
Вместо SIGKILL, который убивает эксплойт, используется «бессмертный» сигнал 33:
sev.sigev_signo = 33;
timer_create(CLOCK_MONOTONIC, &sev, &race_timer);
timer_settime(...); // точный момент прерывания connect()
Сигнал 33 зарезервирован NPTL, процесс его не видит и не завершается.
kernel-hack-drill: тренажёр для ядерных атак
Проект https://github.com/a13xp0p0v/kernel-hack-drill автоматизирует:
- сборку нужных версий ядра Ubuntu 24.04 (6.11 OEM/HWE) с разными конфигурациями KASLR/KCFI/SLAB_QUARANTINE;
- запуск в KVM с заданным RAM/CPU и ssh-форвардингом;
- однокнопочный запуск PoC и сбор crash-дампов.
Инструмент позволил быстро перебирать стратегии перераспределения kmalloc-96, искать объекты-спрей, тестировать разные техники обхода защит и отлаживать эксплойт без ручной пересборки ядра.
Новый путь эксплуатации
Автор отказался от сложной цепочки @v4bel и @qwerty и применил упрощённую схему:
- Спрей
sendmsg()-controlled объектами размером 96 байт, чтобы перехватить освобождённыйvirtio_vsock_sock. - UAF-запись переписывает поле
sk_prot, указывая на поддельную структуруprotoв userspace-буфере. - При последующем вызове
close()ядро переходит по контролируемому указателю и исполняет ROP-цепочку, поднимая shell до root.
kernel-hack-drill сократил время от идеи до рабочего PoC с недель до нескольких часов.
Комментарии (34)
- Участники в восторге от глубокого и единоличного описания use-after-free, но признают, что текст местами труден для чтения из-за «роботизированной» подачи.
- Многие чувствуют себя «бесполезными» на таком низком уровне и восхищаются талантом исследователей уязвимостей.
- Поднимается вопрос о мотивации: исследователи редко чинят баги, потому что это требует других навыков и ломает их инсентивы.
- Обсуждается, поможет ли Rust в ядре Linux: write-after-free технически блокируется, но unsafe-области всё ещё оставляют риски.
QEMU 10.1.0
- Удалено: устаревшие устройства
sgaиxenfv; опция-no-user-config. - Новые пометки:
-machine dump-guest-core=on,query-cpus-fast,query-cpu-definitions– deprecated.
Архитектуры
- 68k: поддержка
q800иmacos9. - ARM: новые SoC
imx8mn,stm32h735,xlnx-zynqmp-ep108; машиныmps3-an547,raspi5; эмуляция FEAT_SVE2, FEAT_MTE2, FEAT_LSE2. - RISC-V: добавлены
zacas,sstc,svadu,smstateen; машиныspike-1.11,microchip-polarfire. - x86: AMD SEV-SNP, Intel AMX, AVX-VNNI; KVM-TCG совместимость.
Устройства
- ACPI: поддержка SRAT для NVDIMM.
- Audio: Intel HDA теперь 24-бит.
- Block: virtio-blk/SCSI –
discard=unmap,write-zeroes=unmap. - Graphics: virtio-gpu – 3D, virglrenderer 1.0.
- NVMe: CMB, PMR, ZNS.
- PCIe: SR-IOV, ARI, ATS, PASID.
- USB: xHCI – USB 3.2 SuperSpeed+.
Прочее
- Multi-process:
x-vhost-user-fsиvhost-user-vsockтеперь в отдельном процессе. - Сеть:
vhost-vdpa– offloading checksum/TCP.
Комментарии (38)
- QEMU восхищает пользователей: «просто работает», хорошо интегрируется и кажется «магией».
- Его применяют для dev-окружений, запуска ПО на других ОС, разработки новых ОС, а также в облаках.
- KVM ускоряет QEMU, предоставляя аппаратную виртуализацию через page-tables и trap-механизмы.
- Появилась экспериментальная сборка в WASM, что открывает онлайн-песочницы для разных архитектур.
- Поддерживается запуск Android-VM (Cuttlefish, официальный Android-emulator на базе QEMU).
- Утилиты вроде QuickEMU и UTM упрощают запуск ВМ, а пожертвования идут через Software Freedom Conservancy.
Looking back at my transition from Windows to Linux
Итоги моего ухода с Windows на Linux в эпоху анти-клиента
Профессионал с 25-летним стажем, я окончательно перешёл на Linux в 2023 г. и уже два года не возвращаюсь.
Windows 11 стал рекламной площадкой: Copilot, Recall, OneDrive навязываются и крадут данные без спроса.
Подписки вместо покупки, «облачные» файлы без согласия — всё это разрушает доверие.
Технически Linux сложнее, но свобода стоит усилий.
Европа (Digital Markets Act) и движения вроде StopKillingGames и RightToRepair дают надежду.
Ключевой вывод: контроль над купленным — основа личной свободы.
Комментарии (114)
- Пользователи массово переходят на Linux из-за разочарования Windows 10/11 и улучшений десктоп-опыта.
- В семьях и малых бизнесах Linux уже заменяет Windows на ноутбуках и POS-терминалах, несмотря на «налог Microsoft» за предустановку.
- Среди оставшихся препятствий: игры с античитом, Adobe Creative Suite, Citrix, управление питанием/тачпадом, «виснут» при нехватке RAM.
- На работе Linux-доступен по запросу, но Word/Excel/PowerPoint и их форматы всё ещё тормозят миграцию SMB.
- Сообщество делится лайфхаками: Bee-link-мини-ПК вместо dual-boot, earlyoom/OOM-kill, AMD-видеокарты для игр, KVM-переключатели.
Rethinking the Linux cloud stack for confidential VMs
Конфиденциальные ВМ требуют переработки стека Linux в облаке.
Публичное облако не гарантирует приватности: хост-провайдер может получить доступ к памяти гостя. Confidential computing решает это, шифруя память даже от гипервизора, но приходится балансировать между безопасностью и производительностью.
Изоляция и производительность
Аппаратные уровни привилегий, IOMMU, KVM, cgroups и namespaces обеспечивают изоляцию ВМ. Однако для скорости всё чаще используют прямой доступ к устройствам (DPDK, vDPA), что снижает контроль ОС и усиливает зависимость от железа и прошивок.
Решение: доверенные устройства
AMD SEV-TIO и стандарт TDISP позволяют гостю криптографически убедиться в подлинности устройства и разрешить ему прямой доступ к зашифрованной памяти, избегая медленных bounce-буферов. Реализуется через SR-IOV: физическое устройство создаёт множество виртуальных функций, каждая из которых может быть «доверенной» для конкретной конфиденциальной ВМ.
Комментарии (44)
- Критики считают, что Confidential Computing (CC) — это скорее маркетинговый трюк облачных провайдеров, чем реальная защита: аппаратная основа часто уязвима и не может быть исправлена.
- Даже при шифровании памяти вы всё равно работаете на чужом железе, которое теоретически могут модифицировать для сниффинга или извлечения данных.
- Для многих CC — способ «галочки» под GDPR, особенно в медицинских исследованиях, но реальная польза пока минимальна.
- Apple реализовала собственную версию CC качественно, но она закрыта и только для экосистемы Apple.
- Участники соглашаются: если ваша модель угроз не позволяет доверять провайдеру, используйте физические серверы; «доверие» в облаке всегда остаётся условным.
Booting 5000 Erlangs on Ampere One 192-core
Ampere One 192-ядерный сервер, 1 ТБ ОЗУ, цель — запустить максимум виртуальных IoT-устройств на Nerves.
Прошлый раз добрались до 500 экземпляров; теперь с KVM и новым загрузчиком little_loader от Frank Hunleth удалось 5000 одновременных виртуальных ARM64-машин.
little_loader — минимальный ARM64-бутлоадер, читающий переменные u-boot, загружающий ядро Linux и сохраняющий механизмы A/B-обновлений Nerves.
Что изменилось
- KVM/HVF ускоряет старт до 1-2 с и экономит ≈ 500 МБ ОЗУ на гость.
- EL1 вместо EL2: EL2 нужен для вложенной виртуализации, нам не требуется.
- Баг компиляции: release-сборка зависает, debug-версия работает (GCC 15, вероятно, чинит).
Команда запуска (упрощённый пример):
qemu-system-aarch64 \
-machine virt,accel=kvm \
-cpu host -smp 1 -m 150M \
-kernel little_loader.elf \
-netdev user,id=eth0 \
-device virtio-net-device,netdev=eth0 \
-drive if=none,file=disk.img,format=raw,id=vdisk \
-device virtio-blk-device,drive=vdisk \
-nographic
Итог: 5000 «эрлангов» на 192 ядрах, 1 ТБ ОЗУ, стартуют за секунды, потребляют по 150 МБ RAM.
Комментарии (38)
- Речь идёт о запуске 5000 узлов BEAM (Erlang-машин), а не процессов — каждая BEAM может держать миллионы лёгких процессов.
- Сервер с 192 Ampere-ядрами позиционируется как «облачный» или «edge» для телекомов; Hetzner предлагает 80-ядерный Ampere за ~200 $/мес.
- Пользователи сомневаются в полезности без тестов под нагрузкой и обсуждают, как масштабировать память и шину при таком числе ядер.
- Всплыли исторические примеры (Azul для Java) и шутки про «ручное ткачество» Erlang-потоков и «фермерский» байт-код.
Overengineering my homelab so I don't pay cloud providers 💬 Длинная дискуссия
- Цель: перенести все сервисы с VPS домой на Minisforum UM880 Plus (Ryzen 7 8840U, 32 ГБ ОЗУ).
- Задачи: безопасные эксперименты, изучение k3s → k8s/Talos, отказ от облаков.
- Угрозы: кража, выход железа, человеческий фактор.
- Меры: полное шифрование диска, автоматические бэкапы, восстановление по Ansible, Wake-on-LAN через KVM.
Подготовка хоста Proxmox
- Чистая установка Debian 12 с LVM-on-LUKS, отдельный
/bootна флешке. - Proxmox VE 8 ставится поверх Debian:
- добавить репу
pve-no-subscription; - после установки сломалась сеть — оказалось,
ifupdown2не ставится, надоifupdown+ ручной/etc/network/interfaces.
- добавить репу
- Bridge
vmbr0на основе enp3s0 для ВМ.
Автоматизация Ansible
- Плейбук
proxmox.yml:- ставит ключи, репу, пакеты, настраивает сеть, отключает подписку.
- Запуск:
ansible-playbook -i hosts.ini proxmox.yml -K
Итого: за час получаем переустанавливаемый, зашифрованный, готовый к ВМ кластер без облаков.
Комментарии (164)
- Участники обсуждают, стоит ли вообще строить домашний сервер: кто-то считает это дорогим хобби и источником постоянных проблем, кто-то — отличным способом учиться и сохранять контроль над данными.
- Главные минусы: высокая стоимость электричества в ряде регионов, отсутствие ECC-памяти у дешёвых железок, риск отключения питания и необходимость ручного восстановления.
- Часть людей экономит на VPS и облаке, собирая NAS из подержанных Dell Wyse 5070 или Minisforum-мини-ПК; другие предпочитают б/у серверные Xeon-ы за расширяемость.
- Безопасность и надёжность: кто-то ставит UPS и даже солнечные панели, кто-то сознательно принимает простои и использует WireGuard для удалённого включения.
- Подводный итог: если цель — учёба и полный контроль, хоумлаб «свой»; если нужен 100 % uptime и минимум времени — дешевле и проще взять облако или VPS.