[devel] hsh-qemu-binfmt - register qemu for aarch64/ppc64le hasher

Alexey Shabalin a.shabalin на gmail.com
Пт Авг 16 05:00:09 MSK 2019


пт, 16 авг. 2019 г. в 04:48, Dmitry V. Levin <ldv на altlinux.org>:
>
> On Fri, Aug 16, 2019 at 02:39:47AM +0300, Alexey Shabalin wrote:
> > пт, 9 авг. 2019 г. в 18:48, Igor Vlasenko <vlasenko на imath.kiev.ua>:
> > >
> > > On Fri, Aug 09, 2019 at 05:23:59PM +0300, Sergey Bolshakov wrote:
> > > > Вовсе необязательно (обращаю внимание на flags):
> > > >
> > > > $ cat /proc/sys/fs/binfmt_misc/aarch64
> > > > enabled
> > > > interpreter /usr/bin/qemu-aarch64.static
> > > > flags: F
> > > > offset 0
> > > > magic 7f454c460201010000000000000000000200b700
> > > > mask ffffffffffffff00fffffffffffffffffeffffff
> >
> > Я подготовил сборку qemu-user-static-binfmt с добавлением флага F.
> > Но у меня возникли сомнения:
> >
> > 1) Что именно делает этот флаг "F"? загружает этот бинарник в
> > пространство ядра?
>
> Нет, только открывает этот файл и помечает его таким образом,
> что при попытке записи в него возникает ошибка ETXTBSY.
>
> > когда он это делает, при регистрации или в момент
> > обращения к бинарному файлу другой архитектуры?
>
> При регистрации.
>
> > Дело в том, что в этом пакете находятся конфиги для всех возможных
> > архитектур, и мне бы не хотелось при загрузке компьютера принудительно
> > загружать в память все эти бинарники qemu-*static.
>
> Загрузка этих бинарников в память будет происходить не при регистрации,
> а каждый раз при запуске, как и без "F".  Но файл, из которого будет
> производиться загрузка, не будет открываться каждый раз заново.
> В частности, при обновлении qemu без явной перерегистрации будут
> использоваться старые интерпретаторы, зарегистрированные ранее.
>
> > Зачастую компьютер разработчика используется и для повседневной работы
> > с Интернет, почтой и т.п.
>
> Неизвестно, что на самом деле опаснее, интернет с почтой в хост-системе
> или произвольный код в чруте.
>
> > 2) Насколько это безопасно? Понятно, что этот пакет нужен
> > разработчикам, работающим со сторонними архитектурами. Этот пакет не
> > входит в установку по-умолчанию, кто его устанавливает, тот знает
> > зачем. Хотелось бы удобства - установил, и работает везде, хоть в
> > системе, хоть в контейнере. НО не получит ли разработчик на aarch64
> > сервере работающие вредоносные программы для x86_64?
>
> Получит.  "F" даёт именно такой эффект - бинарники от других архитектур
> будут запускаться и в контейнерах, где нет qemu.  Если зарегистрировать
> интерпретаторы для всех поддерживаемых архитектур с "F", то можно будет
> исполнять бинарники подо все эти архитектуры в контейнерах, где нет qemu.
>
> Вопрос, зачем может быть нужно регистрировать интерпретаторы для всех
> поддерживаемых архитектур сразу?

Может и не зачем, но сейчас устроенно именно так, все static файлы в
одном пакете, все конфиги для регистрации в другом пакете, при
установке которого отрабатывает filetrigger и регистрирует все
архитектуры. Если сделать множество отдельных пакетов, на спек qemu
будет смотреть еще больнее.
Основной вопрос, добавлять ли еще флаг "F"?

-- 
Alexey Shabalin


Подробная информация о списке рассылки Devel