Мне нужно развернуть приложения Ruby on Rails на клиентском сервере, и я не хочу, чтобы они могли просматривать или изменять исходный код. Как бы вы защитили код технически?
Я думал о создании виртуальной машины на базе Linux с зашифрованной файловой системой, в которой находится код приложения. У клиента нет корневого доступа или прямого доступа к системе. Все службы запускаются автоматически, и приложение готово к использованию.
Что ты предлагаешь?
Вы также можете использовать Bestcrypt для шифрования «контейнера внутри контейнера». Пусть ваше приложение автоматически смонтирует скрытый контейнер и добавит сценарий bash, чтобы любой пользователь, входящий в систему, кроме определенного «скрытого» пользователя, записывал что-то в контейнер верхнего уровня. Это разрушит внутренний контейнер и заберет с собой ваше защищенное приложение. (автоматическое уничтожение шифрования)
Вы можете работать настолько гладко, насколько хотите, настроить сценарий, который использует блокировку портов для безопасного отключения контейнера перед входом в систему и т. Д.
Есть даже способ сделать скрытый контейнер доступным только для приложения и пользователей, подключающихся через приложение. Даже тот, у кого есть root-доступ на сервере и физический логин, не может просмотреть скрытый контейнер. Вам нужно будет решить, как это сделать для себя, я беру деньги за то, чтобы настроить его для клиентов, и считаю его несвободным, хотя приличный компьютерный фанат Linux может понять это со временем и терпением.
Похоже, вы это прикрыли. По сути, вы развертываете устройство на их сайте.
Единственное, в чем я хотел бы убедиться, это то, что вы отключите все ненужные службы, чтобы хитрый администратор не смог воспользоваться дырой в безопасности, чтобы войти.
Однако пара вопросов: вы предоставляете оборудование или оно есть?
Есть ли у них инфраструктура VMware? Если они это сделают, вы можете дать им виртуальное устройство вместо физической коробки.
Также убедитесь, что SNMP включен и настраивается ими, чтобы они могли отслеживать его с помощью любого имеющегося у них решения.