Безопасность отладчика
Возможность отладки других процессов предоставляет очень широкие возможности, которые отсутствуют при обычной работе. В особенности это относится к удаленной отладке. Злонамеренный отладчик способен причинить масштабные повреждения отлаживаемой машине. Поэтому существуют ограничения на то, кому предоставляется право на отладку. Дополнительные сведения см. в разделе Разрешения удаленной отладки.
Тем не менее, многие разработчики не осознают, что угроза безопасности может также распространяться и в обратном направлении. Вредоносный код в отлаживаемом процессе может подвергнуть опасности компьютер, на котором выполняется отладчик: есть ряд способов использования слабых мест защиты, против которых необходимо принимать меры.
Рекомендации по безопасности
Между отлаживаемым кодом и отладчиком существуют неявные доверительные отношения. Если требуется отладить какой-либо код, то и его выполнение так или иначе должно быть разрешено. В конечном счете, необходимо иметь возможность доверять тому, что требуется отлаживать. Если доверия к процессу нет, то не следует его отлаживать, или же отлаживать его нужно с того компьютера, с которого можно позволить себе рисковать, причем в изолированной среде.
Чтобы снизить потенциальный ущерб от атак, отладка на рабочих компьютерах должна быть отключена. По этой же причине отладку никогда не следует включать на неопределенный срок.
Безопасность при отладке управляемого кода
Вот некоторые общие рекомендации, применимые к отладке любого управляемого кода.
Будьте бдительны, присоединяясь к пользовательскому процессу, не заслуживающему доверия: присоединение означает, что вы ему доверяете. При попытке присоединения к такому процессу появится диалоговое окно предупреждения безопасности с запросом о том, действительно ли вы хотите его присоединить. " К "доверенным пользователям" относится учетная запись текущего пользователя и ряд стандартных учетных записей пользователей, обычно определяемых на компьютерах, где установлена платформа .NET Framework, например ASPNET, LocalSystem, NetworkService и LocalService. Дополнительные сведения см. в разделе Предупреждение системы безопасности: присоединение к процессу пользователя, не являющегося доверенным, может быть опасным. Если приведенные ниже сведения не вызывают доверия, то не следует присоединяться к процессу.
Будьте внимательны при загрузке проектов из Интернета и их открытии в Visual Studio. Это рискованно даже без всякой отладки. Этим вы предполагаете, что проект и содержащийся в нем код заслуживают доверия.
Дополнительные сведения см. в разделе Отладка управляемого кода.
Безопасность при удаленной отладке
Локальная отладка обычно более безопасна, чем удаленная. Удаленная отладка увеличивает общую контактную зону, безопасность которой в общем случае гарантировать нельзя.
Для удаленной отладки используется Монитор удаленной отладки Visual Studio (msvsmon.exe); можно дать несколько рекомендаций по безопасности, касающихся его конфигурирования. Предпочтительной конфигурационной настройкой является выбор режима проверки подлинности Windows, так как режим без проверки подлинности небезопасен. Используя режим проверки подлинности Windows, следует иметь в виду, что предоставление ненадежному пользователю разрешения на соединение с msvsmon опасно — о чем и предупредит соответствующее диалоговое окно.
Не отлаживайте неизвестные вам процессы на удаленном компьютере: существование потенциальной уязвимости может привести к ущербу для компьютера, на котором запущен отладчик, или к нарушению работы msvsmon.exe — Монитора удаленной отладки Visual Studio. Если совершенно необходимо отладить неизвестный процесс, попробуйте отладить его локально, и используйте брандмауэр, чтобы локализовать любые потенциальные угрозы.
Дополнительные сведения см. в разделе Настройка удаленной отладки.
Безопасность при отладке веб-служб
Локальная отладка безопаснее, но поскольку на веб-сервере скорее всего нет Visual Studio, локальная отладка может быть нецелесообразной. Как правило, отладка веб-служб, за исключением отладки во время разработки, выполняется удаленно, поэтому рекомендации по безопасности удаленной отладки также применимы к отладке веб-служб. Ниже приведены дополнительные практические рекомендации. Дополнительные сведения см. в разделе Debugging XML Web Services.
Не запускайте отладку на веб-сервере, который подвергался угрозе.
Убедитесь в безопасности веб-сервера, прежде чем вести на нем отладку. Если вы не уверены в его безопасности, не начинайте отладку.
Будьте особенно осторожны при отладке веб-служб, к которым открыт Интернет-доступ.
Внешние компоненты
Следите за статусом доверия для внешних компонентов, с которыми взаимодействует ваша программа, особенно если автором кода являетесь не вы. Кроме того, принимайте во внимание компоненты, которые могут использоваться Visual Studio или отладчиком.
Символы и исходный код
Два средства Visual Studio, для которых необходим анализ безопасности:
Сервер исходного кода, который предоставляет версии исходного кода из репозитория исходного кода. Он полезен, если у вас нет текущей версии исходного кода программы. Дополнительные сведения см. в разделах Практическое руководство. Получение исходного кода с помощью сервера исходного кода и Предупреждение системы безопасности. Отладчик должен выполнить команду без доверия.
Сервер символов, который служит для передачи символов, необходимых при отладке после сбоя системного вызова. Дополнительные сведения см. в разделах Практическое руководство. Указание мест расположения символов и поведения загрузки и Практическое руководство. Использование сервера символов.
См. также
Ссылки
Предупреждение системы безопасности. Отладчик должен выполнить команду без доверия