Проблема с Checkmarx XSRF

Checkmarx жалуется на проблему с XSRF в нашем веб-приложении. Мы используем веб-формы ASP.NET с фреймворком 4.0 (не MVC).

Checkmarx сказал: Метод btnSubmit_Click в строке 1760 файла \ABC.aspx.vb получает параметр из URL-адреса запроса пользователя из текста элемента. Это значение параметра проходит через код и в конечном итоге используется для изменения содержимого базы данных. Приложение не требует повторной аутентификации пользователя для запроса. Это может привести к подделке межсайтовых запросов (XSRF).

Любая идея о том, как предотвратить XSRF из приложения веб-формы ASP.NET?

Мы перепробовали множество решений, но ни одно из них не прошло проверку Checkmarx. Вот некоторые вещи, которые мы пробовали:
https://software-security.sans.org/developer-how-to/developer-guide.-csrf
или

http://willseitz-code.blogspot.com/2013/06/cross-site-request-forgery-for-web-forms.html?m=1
или

https://security.stackexchange.com/questions/187740/two-solutions-for-csrf-on-owasp-for-asp-net-webforms

Я думаю, что приведенные выше решения должны работать и защищать/предотвращать нашу веб-форму от рисков CSRF/XSRF, но почему Checkmarx не может ее обнаружить? Это ложное срабатывание?


person Long Dang    schedule 06.03.2019    source источник
comment
На этот вопрос нельзя ответить, не видя кода.   -  person yaloner    schedule 07.03.2019
comment
взгляните на 3 ссылки, приведенные выше. Это то, что я пробовал   -  person Long Dang    schedule 07.03.2019
comment
Вы спрашиваете, является ли это ложным срабатыванием. Нам нужно увидеть ваш код, чтобы определить это.   -  person yaloner    schedule 09.03.2019
comment
у нас есть решение?   -  person Sushant    schedule 31.07.2020


Ответы (1)


Рекомендуется проверить запросы CxQL на портале Checkmarx (Настройки/Настройки сканирования/Просмотр запросов), чтобы понять, как Checkmarx находит уязвимость, в том числе, какой тип защиты может обнаружить Checkmarx.

В вашем случае проверьте логику в CSharp/Cx/CSharp_Medium_Threat/XSRF.

Для приложений веб-форм запрос CSharp/Cx/General/Find_XSRF_Sanitize используется для определения того, сделали ли вы какую-либо защиту в своем приложении.

Как сказано в комментарии Find_XSRF_Sanitize:

Для веб-форм ASP основным решением для предотвращения атак XSRF является назначение уникального маркера свойству ViewStateUserKey страницы.

Также

AntiXsrfTokenKey

также считается защитой.

Если вы используете ViewStateUserKey или AntiXsrfTokenKey, все интерактивные http-запросы, определенные тем же методом, что и ViewStateUserKey или AntiXsrfTokenKey strong> будет рассматриваться как обработанный запрос и будет удален из списка потенциально испорченных запросов.

Обратите внимание, что в дереве CxDOM ViewStateUserKey и очищенный запрос имеют общего предка, которым является объявление метода.

person Happy Young    schedule 07.06.2021