Optimisation d'IBM HTTP Server (IHS) pour l'environnement de production

HTTP Server by IBM est souvent utilisé en combinaison avec IBM Serveur d'applications WebSphere. Certains sites populaires utilisant IBM HTTP Server sont:

  • Airtel.fr
  • Marriott.com
  • Hsbc.fr
  • Mercedes-benz.com.eg
  • Argos.fr

Cependant, IHS est basé sur Apache HTTP Server, modifié par IBM pour prendre en charge les applications d'entreprise et le support de maintenance. Ça tient beaucoup moins part de marché dans le monde des serveurs Web mais encore largement utilisé avec WebSphere Application Server.

part de marché ihs

La configuration IHS par défaut fournit de nombreuses informations sensibles, ce qui peut aider les pirates à se préparer à une attaque et à interrompre les opérations commerciales. En tant qu'administrateur, vous devez être conscient du durcissement de la configuration IHS pour sécuriser les applications web.

Dans cet article, je vais expliquer comment créer un environnement prêt pour la production IHS pour assurer la sécurité et sécurisé.

Quelques choses: -

  • Vous avez IHS installé sur l'environnement Linux sinon, vous pouvez vous référer guide d'installation ici.
  • Il est conseillé de faire une sauvegarde d'un fichier de configuration.
  • Vous avez un en-tête HTTP extensions dans un navigateur ou vous pouvez utiliser Vérificateur d'en-tête outil en ligne.
  • En raison de la longueur de l'article, je parlerai de la configuration SSL dans le prochain article.

Masquer la bannière du serveur et les informations sur le produit dans l'en-tête HTTP

L'une des premières tâches à effectuer lors de la configuration de l'environnement de production est probablement de masquer la version IHS et la bannière du serveur dans un en-tête. Ce n'est pas critique mais considéré à faible risque en tant que vulnérabilité de fuite d'informations et doit faire pour une application conforme à la norme PCI DSS.

Jetons un coup d'œil à la façon dont la réponse à la demande non-exist (404) dans la configuration par défaut.

réponse-ihs-nonexist

Oh non, cela révèle que j'utilise IBM HTTP Server avec l'adresse IP du serveur et le numéro de port, ce qui est moche. Cachons-les.

Solution: -

  • Ajoutez les trois directives suivantes dans le fichier httpd.conf de votre IHS.
AddServerHeader Off ServerTokens Prod ServerSignature Off
  • Enregistrez le fichier et redémarrez l'IHS

Vérifions en accédant à un fichier inexistant. Vous pouvez également utiliser Outil d'en-tête HTTP pour vérifier la réponse.

ihs-nonexist-response-fixe

Beaucoup mieux! Maintenant, il ne donne pas d'informations sur le produit, le serveur et le port.

Désactiver Etag

L'en-tête Etag peut révéler informations d'inode et peut aider le pirate à exécuter des attaques NFS. Par défaut, IHS révèle l'etag et voici comment vous pouvez corriger cette vulnérabilité.

ihs-etag

Solution: -

  • Ajoutez la directive suivante dans un répertoire racine.
FileETag aucun

Par exemple:

Options FollowSymLinks AllowOverride Aucun
   FileETag aucun
  • Redémarrez le serveur IHS pour prendre effet.

ihs-etag

Exécutez IHS avec un compte non root

La configuration par défaut exécute un serveur Web avec un utilisateur root et personne, ce qui n'est pas conseillé car l'exécution d'un compte privilégié peut avoir un impact sur l'ensemble du serveur en cas de faille de sécurité. Pour limiter le risque, vous pouvez créer un utilisateur dédié pour exécuter les instances IHS.

Solution: -

  • Créer un utilisateur et un groupe appelés ihsadmin
groupadd ihsadmin useradd –g ihsadmin ihsadmin

De nos jours,, modifiez la propriété du dossier IHS en ihsadmin afin que l'utilisateur nouvellement créé dispose de l'autorisation complète. En supposant que vous avez installé sur l'emplacement par défaut - / opt / IBM / HTTPServer

chown –R ihsadmin: ihsadmin / opt / IBM / HTTPServer

Changeons la valeur User & Group dans httpd.conf

Utilisateur ihsadmin Group ihsadmin

Enregistrez le httpd.conf et redémarrez le serveur IHS. Cela aidera IHS à démarrer en tant qu'utilisateur ihsadmin.

Implémenter l'indicateur HttpOnly et Secure dans le cookie

Avoir cookie sécurisé et http uniquement vous aidera à réduire le risque d'attaques XSS.

Solution: -

Afin de mettre en œuvre cela, vous devez vous assurer mod_headers.so est activé dans httpd.conf.

Sinon, décommentez la ligne ci-dessous dans httpd.conf

LoadModule headers_module modules / mod_headers.so

Et ajoutez ci-dessous le paramètre d'en-tête

Modifier l'en-tête Set-Cookie ^ (. *) $ $ 1; HttpOnly; Secure

Enregistrez le fichier de configuration et redémarrez le serveur Web.

Atténuer l'attaque Clickjacking

Le clickjacking est bien connue où un attaquant peut tromper les utilisateurs pour qu'ils cliquent sur un lien et exécuter du code embarqué à l'insu de l'utilisateur.

Solution: -

  • Assurez-vous que mod_headers.so est activé et ajoutez le paramètre d'en-tête ci-dessous dans le fichier httpd.conf
L'en-tête ajoute toujours X-Frame-Options SAMEORIGIN
  • Enregistrez le fichier et redémarrez le serveur.

Vérifions en accédant à l'URL, il devrait avoir X-Frame-Options comme indiqué ci-dessous.

clickjacking-attaque-ihs

Configurer la directive d'écoute

Ceci est applicable si vous avez plusieurs interfaces Ethernet / IP sur le serveur. Il est conseillé de configurer l'adresse IP absolue et le port dans la directive Listen pour éviter que les requêtes DNS ne soient transférées. Ceci est souvent vu dans un environnement partagé.

Solution: -

  • Ajoutez l'adresse IP et le port voulus dans httpd.conf sous la directive Listen. Ex:-
Liste 10.0.0.9: 80

Ajouter X-XSS-Protection

Vous pouvez appliquer la protection Cross for Site Scripting (XSS) en implémentant l'en-tête suivant s'il est désactivé dans le navigateur par l'utilisateur.

Jeu d'en-tête X-XSS-Protection "1; mode = block"

Désactiver la requête HTTP de trace

L'activation de la méthode Trace sur le serveur Web peut permettre une attaque de traçage intersite et il est possible de voler des informations sur les cookies. Par défaut, cela est activé et vous pouvez les désactiver avec le paramètre ci-dessous.

Solution: -

  • Modifiez le fichier httpd.con et ajoutez la ligne ci-dessous
TraceEnable off
  • Enregistrez le fichier et redémarrez l'instance IHS pour prendre effet.

J'espère que les conseils ci-dessus vous aideront à renforcer le serveur HTTP IBM pour un environnement de production.