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

Dmitry V. Levin ldv на altlinux.org
Пт Авг 16 04:48:18 MSK 2019


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.

Вопрос, зачем может быть нужно регистрировать интерпретаторы для всех
поддерживаемых архитектур сразу?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20190816/92c579f3/attachment-0001.bin>


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