2

パブリックWebで入手可能なAmazonのJBoss6にEARアプリケーションをデプロイすることを計画しています。複数のインスタンスが必要になりますが、クラスタリングは必要ありません。私の場合、ELBがその役割を果たします。OWASPセキュリティガイドラインは、アプリケーションの開発中に考慮されました。ただし、OWASPの1つの原則、つまり隠すことによるセキュリティに問題があります。

JBossを使用しているという事実を隠すにはどうすればよいですか?カスタムエラーページがあり、ELBはアプリケーションのコンテキストパスへのアクセスのみを許可しますが、JBossがJBoss固有のヘッダーを表示するかどうか心配しています。リクエストを転送するためだけにmod_jkまたはmod_proxy_ajpを使用して各インスタンスでJBossの前にApacheを配置する方が安全ですか(これは不要な場合は避けたいものです)。

よろしく

4

3 に答える 3

2

隠すことによるセキュリティの原則は、物事を隠そうとする必要があるという意味ではありません。実際には、それは正反対を意味します。機密情報を隠すことに頼らないでください。それは攻撃者をそれほど遅くすることはなく、誤った安心感を生み出すからです。

典型的なJBossインストールの巨大な攻撃対象領域は、攻撃者があなたが実行しているものを理解する可能性が非常に高いことを意味します。ヘッダーを非表示にするなどの手法を使用して、使用しているテクノロジーのIDを非表示にすることを目的とした「製品」が何年にもわたって存在しています。ただし、攻撃者が通常行う必要があるのは、URLのいくつかのパラメータを削除して、製品、ライブラリ、バージョンなどを判別するのに十分な詳細を提供する完全なスタックトレースを取得することです。

この手法を使用すると、弱い自動スキャナーのいくつかを捨てることができますが、実際にあなたをターゲットにしている人は誰もいません。原則は素晴らしいですが、それらは解釈に対して非常にオープンであり、しばしば矛盾します。OWASPアプリケーションセキュリティ検証標準(ASVS)に対するアプリケーションの検証に集中することをお勧めします。

于 2011-05-18T01:05:20.823 に答える
2

私は解決策を見つけました。

このリンクは、JBoss固有のヘッダーを削除する方法を説明しています。

ここここで説明されているように、Tomcat固有のヘッダーも削除できます。

よろしく

于 2011-05-18T09:19:42.783 に答える
1

JBossを使用しているという事実を隠すにはどうすればよいですか?

JBossがのような応答ヘッダーを送信すると仮定すると、すべてのリクエストにマップするをServer: JBoss v1.2.3.4記述して、Filterこの値を選択した任意のテキストで上書きできます。たとえば、次のようになります。

public class StripHeaderFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        // process the rest of the chain first
        filter.doFilter(request, response);
        if (response instanceof HttpServletResponse) {
            ((HttpServletResponse) response).setHeader("Server", "It's a secret");
        }
    }
于 2011-05-18T00:32:55.160 に答える