Могу ли я разрешить моей программе запускать скрипты? - PullRequest
0 голосов
/ 05 июля 2011

Некоторые пользователи предлагают, чтобы моя (C #) программа могла запускать скрипты после завершения своей работы.Это можно сделать через командную строку для ввода в моем диалоговом окне конфигурации.

Я не эксперт по безопасности, поэтому я не уверен, приемлемо ли это с точки зрения безопасности.Поскольку приложение работает с правами администратора (в Windows), не станет ли это серьезным риском для безопасности?Кто-то может просто изменить конфигурационные файлы моего приложения, чтобы они указывали на потенциально опасный сценарий, не так ли?

С другой стороны, множество приложений позволяют это, запрашивая привилегии администратора, так что я думаю, что это должновсе будет в порядке, но я подумал, что лучше обратиться за советом, прежде чем открывать широкие дыры в безопасности везде =)

Можно ли разрешить моему приложению, работающему с полными привилегиями, запускать указанные пользователем сценарии?

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

C #, безусловно, позволяет запускать пользовательский скрипт. System.Diagnostics.Process делает это действительно легко. Вопрос безопасности здесь является еще одной проблемой.

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

Корень этой проблемы в том, что ваши параметры (я предполагаю) основаны на тексте и легко редактируются. Лучше всего зашифровать ваш конфигурационный файл, чтобы предотвратить внешние изменения в нем. Обратите внимание, что это не мешает людям использовать ваше приложение, чтобы изменить ваши параметры, чтобы разрешить вредоносный скрипт, но для того, чтобы это сделать, им нужен доступ к экземпляру вашего приложения, а не просто доступ на чтение / запись к файлу.

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

Вот еще один вопрос о том, как зашифровать строки в C #.

0 голосов
/ 05 июля 2011

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

...