前端 JBoss 的安全问题 - OWASP 安全性的模糊性
我计划在公共网络上提供的 Amazon JBoss 6 上部署 EAR 应用程序。我将需要多个实例,但我不需要集群,并且 ELB 可以在我的情况下完成其工作。在应用程序的开发过程中已考虑了 OWASP 安全准则。然而,我对 OWASP 的一项原则有疑问:隐匿性安全。
如何隐藏我正在使用 JBoss 的事实?我有自定义错误页面,并且 ELB 只允许访问我的应用程序的上下文路径,但是,我担心 JBoss 是否会显示任何 JBoss 特定的标头。在每个实例中使用 mod_jk 或 mod_proxy_ajp 将 Apache 放在 JBoss 前面来转发请求是否更安全(如果不必要的话,这是我想避免的)?
问候
I am planning on deploying an EAR application on JBoss 6 on Amazon available on the public web. I will need more than one instance but I do not need clustering and the ELB can do its job in my case. The OWASP security guidelines have been considered during development of the application. However, I have an issue with one OWASP principle: security by obscurity.
How can I conceal the fact that I am using JBoss? I have custom error pages and the ELB allows access only to the context path of my application, however, I am worried if JBoss reveals any Headers that are JBoss specific. Is it any safer to have Apache in front of JBoss in each instance using mod_jk or mod_proxy_ajp just to forward the requests (this is something I want to avoid if unnecessary)?
Regards
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
隐匿安全原则并不意味着您应该尝试隐藏某些内容。事实上,它的意思恰恰相反。请不要依赖隐藏敏感信息,因为它并不能真正减缓攻击者的速度,而且会产生一种错误的安全感。
典型 JBoss 安装的巨大攻击面意味着攻击者很可能知道您正在运行什么。多年来,有许多“产品”声称使用隐藏标头等技术来隐藏您正在使用的技术的身份。然而,攻击者通常要做的就是删除 URL 上的一些参数,以获得完整的堆栈跟踪,该跟踪提供了足够的详细信息来确定产品、库、版本等...
您可能会用此方法甩掉一些较弱的自动扫描程序技术,但不是真正针对你的人。原则固然很好,但它们的解释非常开放,而且经常发生冲突。最好专注于根据 OWASP 应用程序安全验证标准 (ASVS) 验证您的应用程序。
The principle of security by obscurity doesn't mean that you should try to hide things. Actually, it means just the opposite. Please don't rely on hiding sensitive information, as it doesn't really slow down attackers very much and it creates a false sense of security.
The huge attack surface of a typical JBoss installation means that an attacker is very likely to figure out what you're running. There have been a number of "products" over the years that purport to hide the identity of the technologies you are using using techniques like hiding headers. Yet all an attacker typically has to do is delete a few parameters on the URL to get a full stacktrace that provides enough details to determine products, libraries, versions, etc...
You might throw off a few of the weaker automated scanners with this technique, but not anyone who really targets you. Principles are nice, but they're extremely open to interpretationa and often conflicting. Better to focus on verifying your application against the OWASP Application Security Verification Standard (ASVS).
我找到了解决方案。
此链接解释如何删除 JBoss 特定标头。
也可以按照此处的说明删除 Tomcat 特定标头这里。
问候
I found the solution.
This link explains how to remove the JBoss specific header.
Tomcat specific headers can also be removed as explained here and here.
Regards
假设 JBoss 发送类似
Server: JBoss v1.2.3.4
的响应标头,您可以编写Filter
映射到所有请求,这些请求会使用您选择的任意文本覆盖此值,例如:Assuming that JBoss sends a response header something like
Server: JBoss v1.2.3.4
, you could write aFilter
that you map to all requests which overwrites this value with some arbitrary text of your choosing, for example: