2010-12-12 3 views
9

Существует множество причин, по которым приложения не должны запускаться в режиме отладки = «истинный» (good rundown from Scott Gu), но есть ли какие-либо атаки, подверженные этой практике? Речь не идет о «если вы или не должны», это ясно, это вопрос о том, вводит ли он какие-либо конкретные уязвимости.Есть ли риск безопасности веб-приложений в debug = "true"?

Я склонен думать, что способность remotely detect it в сочетании с известными проблемами производительности может привести к эксплойту против доступности сервиса, но я бы хотел кое-что более определенно. Кто-нибудь знает о конкретной атаке, которая может быть организована против приложения, работающего debug = "true"?

+1

Почему бы не спросить об этом на [SecuritySE] (http://security.stackexchange.com/)? – AviD

+0

Хорошо, я не поместил его изначально, так как думал, что получу здесь ответ. Я отправил копию: http://security.stackexchange.com/questions/1180/is-there-a-security-risk-running-web-apps-in-debug-true –

+0

Я видел FULL строки подключения (включая пароли), которые были показаны в прошлом, когда приложение выполнялось в режиме отладки, пользовательские ошибки были отключены, а соединение завершилось неудачно - в этом случае не из-за проблемы с сервером базы данных, а когда другой сервер, выступающий в качестве единственного DNS-сервера для хозяин был выведен из эксплуатации. Включение режима отладки значительно увеличивает риск раскрытия конфиденциальной внутренней информации о приложении, но тогда вы уже это знали. Мне нравится аналогия с авариями, которые не вызваны одним событием, а серия, которая объединяет, чтобы дать (часто трагический) результат. – pwdst

ответ

5

У меня была интересная обратная связь по этому вопросу, особенно на Security Stack Exchange. Было много ответов, связанных с трассировкой стека (проблема с ошибками, а не проблема с отладкой) и производительность (а не [непосредственно] проблема безопасности).

Самый неотразимый ответ заключается в том, что условные константы компиляции (#if DEBUG ...) могут вызывать неожиданное поведение, но это опять-таки скорее представляет собой функциональный риск (непреднамеренный код, выполняемый в живой среде), чем риск для безопасности ,

Я подозреваю, что режим отладки может открыть некоторые пути для других эксплойтов, основанные на служебных данных производительности, которые он накладывает на приложение, и возможность удаленного обнаружения (возможно, риск непрерывности службы). Я написал свои выводы как часть OWASP Top 10 for .NET developers part 6: Security Misconfiguration.

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

3

Это зависит от того, какой код там окружен условными компиляторами DEBUG.

У вас есть какой-либо отладочный код, который может быть использован? Нередко можно найти разрешения администратора «carte blanche», заданные в режиме отладки ...

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

Вопрос несколько спорный, если ваше приложение имеет хорошее (настраиваемое по уровню) протоколирование, например log4Net.

+0

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

+0

@Troy Hunt: Правда, но они идут рука об руку. Я предполагаю, что это станет частью любого обзора кода ... –

0

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

Смежные вопросы