Вопросы безопасности визуализатора

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

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

Примечание.

Безопасность доступа к коду (CAS) устарела во всех версиях платформа .NET Framework и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.

Возможные вредоносные компоненты отлаживаемого объекта

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

Выполнение кода из отлаживаемой программы с полным доверием становится проблематичным, если отлаживаемый код не пользуется полным доверием. Если визуализатор пытается загрузить сборку с частичным доверием из отлаживаемого объекта в отладчик, Visual Studio завершит работу визуализатора.

Однако менее серьезные уязвимости все же остаются. Отлаживаемый объект может связать с отладчиком объекты, загруженные из другого источника (не из отлаживаемого кода). После этого отлаживаемый объект может послать доверенному отладчику команду на выполнение действий от своего имени. Например, если доверенный класс со стороны отладчика предоставляет механизм "удаления этого файла", отладочный объект с частичным доверием может запустить его, когда пользователь вызывает визуализатор.

Чтобы предотвратить эту угрозу, внимательно анализируйте интерфейсы, предоставляемые созданным визуализатором.