Рекомендации по безопасности визуализатора

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

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

Замечание

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

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

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

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

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

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