Только что было объявлено о новой уязвимости во всех версиях ASP .NET вместе с срочным исправлением. Без исправления злоумышленник может расшифровать данные, отправленные клиентом.
Несколько часов назад (суббота, 18 сентября, 21:00 по восточноевропейскому времени) Microsoft выпустила рекомендации по безопасности об уязвимости безопасности в ASP.NET.
Эта уязвимость существует во всех версиях ASP.NET.
Эта уязвимость была публично раскрыта поздно вечером в пятницу на конференции по безопасности. Microsoft рекомендует всем клиентам немедленно применить обходной путь (описанный здесь), чтобы предотвратить использование злоумышленниками этой уязвимости против приложений ASP.NET. (Большая часть информации в этой новости взята из блога Скотта Гатри.)
Что дает уязвимость?
Злоумышленник, использующий эту уязвимость, может запрашивать и загружать файлы в приложении ASP.NET, например файл web.config (который часто содержит конфиденциальные данные).
Злоумышленник, использующий эту уязвимость, также может расшифровать данные, отправленные клиенту в зашифрованном состоянии (например, данные ViewState на странице).
Как работает уязвимость
Чтобы понять, как работает эта уязвимость, вам нужно знать о криптографических оракулах.
Оракул в контексте криптографии — это система, которая дает подсказки, когда вы задаете ему вопросы. В этом случае есть уязвимость в ASP.NET, которая действует как оракул заполнения. Это позволяет злоумышленнику отправить зашифрованный текст на веб-сервер и узнать, правильно ли он был расшифрован, изучив, какой код ошибки был возвращен веб-сервером.
Выполняя множество таких запросов (и наблюдая, какие ошибки возвращаются), злоумышленник может узнать достаточно, чтобы успешно расшифровать остальную часть зашифрованного текста.
Исправление
Обходной путь, который вы можете использовать для предотвращения этой уязвимости, — это включить функцию
Недостаточно просто включить CustomErrors или установить для него значение RemoteOnly. Вам также необходимо убедиться, что все ошибки настроены так, чтобы возвращать одну и ту же страницу ошибки. Для этого необходимо явно установить атрибут «defaultRedirect» в разделе