Информация об изменениях

Сообщение Re[9]: Запуск нейтивного ассемблера из C# на лету от 04.02.2022 14:40

Изменено 07.02.2022 12:59 VladD2

Re[9]: Запуск нейтивного ассемблера из C# на лету
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, _NN_, Вы писали:

_NN>>В Маке так и работает и ничего.
S>
_NN>>Если нет у приложения разрешения на JIT изначально то ему будет нельзя.
_NN>>То есть при подписи указываем в специальном файле, что будет у нас JIT и подписываем.
S>Но это же опять хрупко: смотрите, если гранулярность разрешения — приложение, то как мы отличим работу православного JIT от злоумышленного генератора в стиле топикстартера?

S>То есть мат ставится в три хода:

S>

    S>
  1. Пишем нормальное, добронравное приложение, которое пользуется JIT. Подписываем официальным сертификатом благонадёжного разработчика. В приложении имеется дырка в стиле log4j, которая позволяет исполнять сторонний код (а способов такое сделать — много; тут и плагины, и уязвимости сторонних библиотек)
    S>
  2. Засовываем через эту дырку сторонний код. Сам по себе этот код написан на IL, который обрабатывается всё ещё православным JIT.
    S>
  3. Засунутый сторонний код порождает нативный код, который уже не является безопасным, и делает всякие нехорошести с приложением и его окружением.
    S>

Хороший вопрос как различать.
Это надо как-то системе сообщать кто может менять страницу и дать права запуска кода.
И чувствуется, что и это можно обойти

Проще тогда просто запрещать JIT.
Re[9]: Запуск нейтивного ассемблера из C# на лету
Здравствуйте, Sinclair, Вы писали:

S>То есть мат ставится в три хода:

S>* Пишем нормальное, добронравное приложение, которое пользуется JIT. Подписываем официальным сертификатом благонадёжного разработчика. В приложении имеется дырка в стиле log4j, которая позволяет исполнять сторонний код (а способов такое сделать — много; тут и плагины, и уязвимости сторонних библиотек)
S>*Засовываем через эту дырку сторонний код. Сам по себе этот код написан на IL, который обрабатывается всё ещё православным JIT.
S>*Засунутый сторонний код порождает нативный код, который уже не является безопасным, и делает всякие нехорошести с приложением и его окружением.

Хороший вопрос как различать.
Это надо как-то системе сообщать кто может менять страницу и дать права запуска кода.
И чувствуется, что и это можно обойти

Проще тогда просто запрещать JIT.