Как организовать изолированную среду выполнения собранного dotnet приложения?

Наша команда разработчиков пишет продукт для клиента на .NET, в результате после сборки конечных артефактов возникает большое количество .dll файлов, которые по хорошему должны запускаться на инфраструктуре клиента.

Мы заботимся о сохранении кода и защиты его от утечек. Dll файлы же никак не защищены. Подскажите пожалуйста, я уверен такая утилита есть, как организовать защищённый контейнер (на подобие докеров) только без возможности обратного инжиниринга.

Фактически при запуске этого контейнера, dotnet подтягивался бы в этой изолированной среде, а пробрасывались только порты, необходимые для взаимодействия через REST например. При этом нельзя было бы получить доступ к виртуальной файловой системе контейнера и как либо профилировать оперативную память.

Пожалуйста, не предлагайте обусцификаторы :)
Код скрываем мы по той причине, что приложение и его функционал очень актуальны в нашей занятой нише.
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 5
vabka
@vabka Куратор тега .NET
Токсичный шарпист
Кажется, что прощё сделать софт как SaaS, а хостинг на серверах заказчика сделать только для тех ситуаций, когда это заказчику действительно необходимо и за индивидуальный прайс.
Даже в случае утечки будет сразу ясно, кто это сделал и набутылить.

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

Никакие софтовые решения (обфускация, контейнеры, шифрованные виртуалки, передача критичного исполняемого кода по сети) не спасут от тех людей, которые хотят с вами конкурировать или осознанно хотят нарушить соглашения.
Ответ написан
@Voland69
ИМХО вариант только хостить у себя.
Всякая виртуалка в шифрованном томе не выход, т.к. чтобы оно запустилось, у клиента так или иначе должен быть ключ.
Ответ написан
Возможно вам подойте решение типа такого https://thales-sentinel.ru/protection/sentinel-env...
Ответ написан
Комментировать
Код скрываем мы по той причине, что приложение и его функционал очень актуальны в нашей занятой нише

В таком случае вы очень неудачно выбрали язык. NET прекрасно декомпиллируется практически до идеинтичных исходников бесплатными утилитами. Поэтому единственный выход = хостить у себя.
Ответ написан
Комментировать
Нугуглил один вариант, может, подойдет.
https://github.com/containerd/imgcrypt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы