Как обеспечить безопасность Apache Tomcat

Как обеспечить безопасность Apache Tomcat

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Apache Tomcat – это бесплатный сервер приложений Java с открытым исходным кодом, который поставляется с невероятной функциональностью из коробки. 

И хотя безопасность Apache Tomcat значительно улучшилась за прошедшие годы, это не означает, что ее нельзя улучшить. 

В этом руководстве мы рассмотрим различные способы защиты сервера Apache Tomcat. 

Методы, обсуждаемые в этом руководстве, лучше всего подходят для продакшена, так как во время разработки они могут вам понадобиться, а могут и не понадобиться.

1 – Уберем информации о сервере 

Простым способом повышения безопасности сервера Apache Tomcat является удаление баннера сервера из HTTP-ответа. 

Если флаг будет раскрыт, он может выдать версию Tomcat, которую вы используете, что облегчает сбор информации о сервере и известных эксплойтах. 

В последних версиях Tomcat (Tomcat 8 и выше) баннер сервера отключен по умолчанию. 

Однако если вы используете более старую версию Tomcat, вам, возможно, придется сделать это вручную. 

Отредактируйте файл server.xml в директории conf каталога установки Tomcat. 

Найдите блок Connector Port и удалите запись server 

До: 

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
            server="<value>"
               redirectPort="8443" /> 

После: 

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> 

Сохраните файл и перезапустите службу Apache Tomcat. 

2 – Включите SSL/TLS 

SSL позволяет передавать данные между сервером и клиентом по протоколу HTTPS.

Чтобы использовать SSL в Tomcat, тем самым повышая безопасность, отредактируйте файл server.xml и директиву SSLEnabled в Connector port таким образом: 

   <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            SSLEnabled="true" scheme="https" keystoreFile="conf/key.jks" keystorePass="password" clientAuth="false" sslProtocol="TLS"
               redirectPort="8443" /> 

Приведенная выше запись предполагает, что у вас есть Keystore с SSL-сертификатом. 

3 – Не запускайте Tomcat от имени пользователя Root 

Никогда не запускайте Tomcat от имени привилегированного пользователя. 

Это позволит вам защитить систему в случае взлома службы Tomcat. 

Создайте пользователя для запуска службы Tomcat. 

sudo useradd -m -U -d /home/tomcat -s $(which false) tomcat

Наконец, измените право собственности на созданного пользователя tomcat.

chown -R tomcat:tomcat /home/tomcat 

4 – Используйте Security Manager 

Хорошей практикой является запускать сервер Apache Tomcat с помощью security manager. 

Это предотвращает запуск недоверенных апплетов в браузере. 

./startup.sh -security 

Ниже приведен пример вывода: 

To do this, use the catalina script with the –security flag.
Using CATALINA_BASE:   /home/debian/apache-tomcat-10.0.10
Using CATALINA_HOME:   /home/debian/apache-tomcat-10.0.10
Using CATALINA_TMPDIR: /home/debian/apache-tomcat-10.0.10/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/debian/apache-tomcat-10.0.10/bin/bootstrap.jar:/home/debian/apache-tomcat-10.0.10/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Using Security Manager
Tomcat started. 

5 – Удалите нежелательные приложения

Apache Tomcat поставляется с эксплуатируемыми вариантами приложений по умолчанию.

Лучшая мера по митигации рисков – удалить их из каталога webapps.

Вы можете удалить такие приложения, как:

  • ROOT – страница Tomcat по умолчанию
  • Docs – документация Tomcat
  • Examples – Сервлеты для тестирования

6 – Изменение процедуры выключения Tomcat

Еще одним способом защиты Tomcat является изменение процедуры выключения.

Это поможет предотвратить отключение служб Tomcat злоумышленниками.

Tomcat можно выключить, используя порт 8005 через telnet и отправив команду shutdown:

$ telnet localhost 8005
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
shutdown
Connection closed by foreign host.

Чтобы исправить это, отредактируйте файл server.xml и удалите следующий блок.

<Server port=“8005” shutdown=“SHUTDOWN”> 

Если вы хотите сохранить команду shutdown, измените порт и команду по умолчанию. 

Например: 

<Server port="5800" shutdown="KILLME"> 

7 – Добавьте флаги Secure и HttpOnly

Злоумышленники также могут манипулировать cookies и сессиями установленных приложений.

Чтобы решить эту проблему, отредактируйте файл web.xml и добавьте следующие записи в блок session-config.<cookie-config>

<http-only>true</http-only>
<secure>true</secure>
</cookie-config> 

Заключение 

В этой статье были описаны некоторые необходимые настройки, которые вы можете внести в Apache Tomcat для повышения безопасности. 

Обратите внимание, что рассмотренные методы являются лишь некоторыми из множества мер, которые вы можете предпринять для защиты Tomcat.

Источник


Report Page