Я отвечаю за разработку большого приложения Python/Windows/Excel, используемого финансовым учреждением, имеющим офисы по всему миру. Недавно правила в одной стране изменились, и в результате нам сказали, что нам нужно создать «заблокированную» версию нашего дистрибутива.Как создать заблокированную среду python?
После некоторых неприятных разговоров с моим зарубежным коллегой кажется, что они обеспокоены тем, что кто-то может злоупотреблять интерпретатором python на своем компьютере, чтобы создавать нестандартные приложения, которые могут использоваться для обхода безопасности.
Мое первоначальное предложение состояло в том, чтобы отнять права выполнения на python.exe и pythonw.exe: наше приложение работает как плагин Excel, который использует только Python DLL. Эти exe-файлы никогда не используются.
Мой коллега по-прежнему обеспокоен тем, что кто-то может совершать звонки с Python DLL - хакер может использовать функцию «exec», например, с другого языка программирования или виртуальной машины, способной вызывать функции в Windows DLL, например VBA.
Есть ли что-то, что мы можем сделать для предотвращения того, чтобы DLL, которую мы хотим установить, подвергались насилию? На данный момент у меня кончились идеи. Мне нужно найти способ гарантировать, что Python будет запускать только наши авторизованные программы.
Конечно, в этом вопросе есть элемент абсурда: поскольку на компьютерах все есть Excel и Word, у всех их есть VBA, который является хорошо известным языком сценариев, несколько эквивалентным возможности Python.
Очевидно, что нет смысла беспокоиться о python, когда VBA Excel широко открыта, однако это корпоративная политика, и именно моя команда предлагает использовать Python, поэтому нам нужно доказать, что наши вещи можно сделать разумно безопасно.
Хорошие пункты: на компьютерах есть JRE, поэтому теоретически любой может принести свои JAR-файлы и использовать Java VM. В этом случае не будет применена песочница Java. Возможно, одним из способов решения этой проблемы является количественная оценка риска относительно того, что уже существует в системах: риск - это язык, который понимают банкиры. –
Количественная оценка не поможет. Вам нужно «закончить», как мы говорим, и прочитать фактическое положение. Часто они довольно просты и довольно легко обобщаются. –