Проблема безопасности с JBoss на внешнем интерфейсе - безопасность OWASP по незаметности - PullRequest
2 голосов
/ 18 мая 2011

Я планирую развернуть приложение EAR на JBoss 6 на Amazon, доступное в общедоступной сети.Мне потребуется более одного экземпляра, но мне не нужна кластеризация, и ELB может выполнить свою работу в моем случае.Рекомендации по безопасности OWASP были учтены при разработке приложения.Тем не менее, у меня есть проблема с одним принципом OWASP: безопасность по неизвестности.

Как я могу скрыть тот факт, что я использую JBoss?У меня есть пользовательские страницы ошибок, и ELB разрешает доступ только к контекстному пути моего приложения, однако я беспокоюсь, если JBoss обнаружит какие-либо заголовки, специфичные для JBoss.Разве безопаснее иметь Apache перед JBoss в каждом случае, используя mod_jk или mod_proxy_ajp просто для пересылки запросов (это то, чего я хочу избежать, если не нужно)?

Ответы [ 3 ]

2 голосов
/ 18 мая 2011

Принцип безопасности от неясности не означает, что вы должны пытаться что-то скрыть.На самом деле это означает как раз наоборот.Пожалуйста, не полагайтесь на сокрытие конфиденциальной информации, так как это не сильно замедляет злоумышленников и создает ложное чувство безопасности.

Огромная поверхность атаки типичной установки JBoss означает, что злоумышленникочень вероятно, чтобы выяснить, что вы бежите.За прошедшие годы появилось несколько «продуктов», целью которых было скрыть идентичность технологий, которые вы используете, используя такие методы, как скрытие заголовков.Тем не менее, обычно злоумышленнику нужно всего лишь удалить несколько параметров в URL-адресе, чтобы получить полную трассировку стека, которая предоставляет достаточно сведений для определения продуктов, библиотек, версий и т. Д. *

слабые автоматические сканеры с этой техникой, но не те, кто действительно нацеливается на вас.Принципы хороши, но они чрезвычайно открыты для интерпретации и часто противоречивы.Лучше сосредоточиться на проверке вашего приложения на соответствие стандарту проверки безопасности приложений (ASVS) OWASP.

1 голос
/ 18 мая 2011

Я нашел решение.

Эта ссылка объясняет, как удалить определенный заголовок JBoss.

Можно также удалить заголовки, специфичные для Tomcat, как объяснено здесь и здесь .

С уважением

1 голос
/ 18 мая 2011

Как я могу скрыть тот факт, что я использую 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");
        }
    }
...