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.
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.
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.
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é.
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.
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.
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.