我刚刚在网上读到一篇关于ASP中新发现的安全漏洞的文章.网You can read the details here.
问题在于
这有点含糊,但这里有一个更可怕的部分:
攻击的第一阶段需要 几千个请求,但一旦 如果成功,攻击者将获得 秘密 keys ,这完全是秘密的. 需要的密码知识是 非常基础.
总而言之,我对安全/密码主题还不够熟悉,不知道这是否真的那么严重.
那么,所有的ASP.NET开发人员都应该害怕这项技术吗?
此问题对普通ASP.NET开发人员有何影响?这对我们有影响吗? 在现实生活中,这种漏洞的后果是什么?最后:是否有一些解决方法可以防止此漏洞?
感谢您的回答!
编辑:让我总结一下我得到的回复
所以,这基本上是一种"填充甲骨文"类型的攻击.@Sri很好地解释了这种攻击的含义.Here is a shocking video about the issue!
关于这种脆弱性的严重性:是的,它确实很严重.It lets the attacker to get to know the machine key of an application.因此,他可以做大约very件不想要的事情.
- 在应用程序的机器密钥中,攻击者可以解密身份验证cookie.
- 更糟糕的是,他可以用任何用户的名字写generate authentication cookies.因此,他可以以任何人的身份出现在网站上.该应用程序无法区分您和为自己生成带有您名字的身份验证cookie的黑客.
- 它还允许他解密(并生成)session cookies,尽管这并不像前一个那样危险.
- 没那么严重:他可以解密页面的加密视图状态.(如果使用ViewState存储机密数据,无论如何都不应该这样做!)
- Quite unexpected:在知道机器密钥的情况下,攻击者可以从您的web应用程序中删除任意文件,即使是那些通常无法下载的文件!(包括Web.Config等)
下面是我得到的一些优秀实践,它们don't个解决了这个问题,但有助于提高Web应用程序的总体安全性.
现在,让我们关注这个问题.
- Scott Guthrie published an entry about it on his blog
- ScottGu's FAQ blog post about the vulnerability个
- ScottGu's update on the vulnerability
- Microsoft has a security advisory about it个
- Understanding the vulnerability
- Additional information about the vulnerability
解决方案
- 启用customErrors并创建all errors重定向到的单个错误页面.是的,even 404s.(ScottGu表示,区分404和500对这次攻击至关重要.)另外,在你的
Application_Error
或Error.aspx
中加入一些随机延迟的代码.(生成一个随机数,然后使用Thread.SeptHibernate 这么长时间.)这将使攻击者无法确定您的服务器上到底发生了什么. - 有人建议改用3DES.从理论上讲,如果不使用AES,就不会遇到AES实现中的安全弱点.结果是,这是not recommended at all美元.
还有其他一些 idea
感谢所有回答我问题的人.我不仅学到了这个问题,还学到了网络安全的一般知识.我将@Mikael的答案标记为已接受,但其他答案也非常有用.