Назад | Перейти на главную страницу

Как защитить код Ruby on Rails на внешнем сервере?

Мне нужно развернуть приложения Ruby on Rails на клиентском сервере, и я не хочу, чтобы они могли просматривать или изменять исходный код. Как бы вы защитили код технически?

Я думал о создании виртуальной машины на базе Linux с зашифрованной файловой системой, в которой находится код приложения. У клиента нет корневого доступа или прямого доступа к системе. Все службы запускаются автоматически, и приложение готово к использованию.

Что ты предлагаешь?

Вы также можете использовать Bestcrypt для шифрования «контейнера внутри контейнера». Пусть ваше приложение автоматически смонтирует скрытый контейнер и добавит сценарий bash, чтобы любой пользователь, входящий в систему, кроме определенного «скрытого» пользователя, записывал что-то в контейнер верхнего уровня. Это разрушит внутренний контейнер и заберет с собой ваше защищенное приложение. (автоматическое уничтожение шифрования)

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

Есть даже способ сделать скрытый контейнер доступным только для приложения и пользователей, подключающихся через приложение. Даже тот, у кого есть root-доступ на сервере и физический логин, не может просмотреть скрытый контейнер. Вам нужно будет решить, как это сделать для себя, я беру деньги за то, чтобы настроить его для клиентов, и считаю его несвободным, хотя приличный компьютерный фанат Linux может понять это со временем и терпением.

Похоже, вы это прикрыли. По сути, вы развертываете устройство на их сайте.

  • Зашифрованная FS, поэтому они не могут загрузиться с live cd - проверьте
  • Нет доступа пользователя - проверьте
  • Нет прямого доступа - проверьте

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

Однако пара вопросов: вы предоставляете оборудование или оно есть?

Есть ли у них инфраструктура VMware? Если они это сделают, вы можете дать им виртуальное устройство вместо физической коробки.

Также убедитесь, что SNMP включен и настраивается ими, чтобы они могли отслеживать его с помощью любого имеющегося у них решения.