LINUX.ORG.RU

История изменений

Исправление gns, (текущая версия) :

Реальный сценарий похож на аппрамор — есть куча правил типа путь - правило действия с ним. Аппармор только ограничивает, а мне еще с этим путем много чего сделать надо, включая послать размер и хеш нового содержимого файла, буде его кто-то из юзерспейса изменил.

Представь себе смесь аппармора и коммерческого монитора от tripware. Правила формируются в юзерспейсе и могут периодически меняться централизовано. Соответственно, их надо перегружать в ядро в произвольный момент времени. Сравнивать список правил с целевым путем долго и утомительно (длина пути помножить на сумму длин правил). Так вот я хочу, что бы они до регекс-автомата компилировались в юзерспейсе и в ядро грузился автомат разбора. Так делает аппармор и так делает selinux.

Статические генераторы регексов типа re2c, ragel, или lex не годятся. Можно, конечно, задействовать компилятор от bpf и грузить bpf-апплеты, но, боюсь, возни там будет больше. Или налетим на какие-то ограничения bpf-песочницы.

Исходная версия gns, :

Реальный сценарий похож на аппрамор — есть куча правил типа путь - правило действия с ним. Аппармор только ограничивает, а мне еще с этим путем много чего сделать надо, включая послать размер и хеш нового содержимого файла, буде его кто-то из юзерспейса изменил.

Представь себе смесь аппармора и коммерческого монитора от tripware. Правила формируются в юзерспейсе и могут периодически меняться централизовано. Соответственно, их надо перегружать в ядро в произвольный момент времени. Сравнивать список правил с целевым путем долго и утомительно (длина пути помножить на сумму длин правил). Так вот я хочу, что бы они до регекс-автомата компилировались в юзерспейсе и в ядро грузился автомат разбора. Так делает аппармор и так делает selinux.

Статические генераторы регексов типа re2c, ragel, или lex не годятся. Можно, конечно, задействовать компилятор от bpf, и грузить bpf-апплеты, но, боюсь, возни там будет больше. Или налетим на какие-то ограничения bpf-песочницы.