Недавно у нас было сканирование безопасности (IBM AppScan) в одном из наших приложений ASP.NET, в котором сообщалось о средней уязвимости следующим образом.
Идентификатор сеанса не обновлен
Серьезность: Средний
Риск: можно украсть или изменить сеанс клиента и файлы cookie, который может использоваться для олицетворения законного пользователя, позволяя хакеру просматривать или изменять записи пользователей и выполнять транзакции от имени этого пользователя.
Причины: небезопасное программирование или конфигурация веб-приложения.
И предлагаемое средство исправления для ASP.NET:
Для платформ, таких как ASP, которые не генерируют новые значения для файлов cookie с идентификатором сеанса, используйте дополнительный файл cookie. В этом подходе установите вторичный файл cookie в браузере пользователя на случайное значение и установите то же значение для переменной сеанса. Если переменная сеанса и значение cookie не совпадают, сделайте сеанс недействительным и заставьте пользователя снова войти в систему.
У нас установлены сертификаты SSL для нашего приложения и мы убедились, что все файлы cookie (сеанс, аутентификация и AntiForgeryToken) защищены (RequireSSL = "True") - HttpOnly, а также реализованы Рекомендации Microsoft по снижению уязвимости CSRF, как указано в Microsoft CSRF Fix.
Мой вопрос здесь в том, что даже с сертификатами SSL и трафиком через Https все еще возможно захватить сеанс? и поскольку я уже использую вторичный файл cookie Secure-Httponly (AntiForgeryToken), что еще мне нужно сделать, чтобы сделать приложение более безопасным?