Les applications web en entreprise sont de plus en plus répandues. En plus des classiques sites Internet qui proposent des contenus plus ou moins dynamiques, de plus en plus d’applications « métier » sont désormais accessibles via un simple navigateur Internet. Cela facilite le travail de l’utilisateur, mais soulève de nouveaux problèmes en termes de sécurité pour les infrastructures. Voici dix conseils simples pour protéger ses applications les plus critiques.

1. Mettre à jour les bases de signatures de menaces
Chaque constructeur spécialisé dans la sécurité d’application « webifiée » possède une base de signatures de menaces propriétaires orientées attaques web, qui repère les attaques les plus connues, et les plus récentes grâce à des mises à jour régulières. Avoir ce genre de solution et l’avoir intégrée correctement à un instant « t » n’est pas suffisant pour se protéger des hackers modernes. Ces bases de données doivent être misent à jour le plus régulièrement possible côté constructeur et côté client.

2. Gérer les certificats SSL
Utiliser une connexion chiffrée de type SSL est évident pour une application critique tout comme la gestion des certificats est primordiale, mais pas toujours adressée. Le certificat présenté au client par le serveur web doit être signé par une autorité de certification reconnue par les différents navigateurs. On peut mettre en place une authentification par certificat, en déployant un certificat client sur les postes autorisés à accéder à l’applicatif et vérifier la présence et la conformité de celui-ci lors de l’accès à l’application. Enfin, la taille des clés de chiffrement à utiliser est au minimum de 2048 bits pour offrir un service réellement sécurisé.

3. Maintenir la politique de son pare-feu applicatif à jour
Quand on parle application web, c’est la notion de WAF (Web Application Firewall) qui vient à l’esprit. Son implémentation est essentielle à la sécurité de l’application. A l’opposé de la sécurité négative qui agit en bloquant un trafic en lien avec une licence, la sécurité positive laisse passer une requête correspondant à un élément de sa configuration. La liste des paramètres utilisés par une application web est un composant de la sécurité positive. On parle de liste blanche de manière plus générique. Pour assurer une sécurité pertinente, il convient de renseigner au mieux cette sécurité positive. Elle se base sur des éléments variés allant d’une simple URI ou cookie jusqu’à un chemin à suivre pour accéder à une page, en passant par les types de fichiers utilisés. Ces entités sont dynamiques d’où une configuration du firewall applicatif plus délicate. Pour obtenir une sécurité positive digne de ce nom, l’utilisation des wildcards est inévitable et une bonne connaissance de l’application est indispensable. Une simple évolution dans le développement de celle-ci remet en cause l’ensemble de la sécurité. Les applications web sont rarement figées, il est obligatoire de revenir régulièrement sur la politique configurée.

4. Répartir la charge
Lors de la mise en production d’une application critique, baser son hébergement sur une seule et même machine physique est risqué. Un dysfonctionnement de l’équipement entraîne une indisponibilité du service pour une durée indéterminée. Plus simplement, le besoin d’augmentation du trafic client signifie le remplacement d’un serveur par un autre plus performant et donc une opération de maintenance. Les bonnes pratiques en termes d’architecture consistent à dédier plusieurs serveurs à l’hébergement de cette application en plaçant en amont un répartiteur de charge qui dirige les requêtes clientes vers un serveur ou un autre en fonction de l’algorithme de répartition choisi. Ces équipements surveillent l’état des serveurs en aval et assure une haute disponibilité du service. Celle-ci est à prévoir pour la partie serveur, mais également pour tous les éléments de la chaîne entre le client et l’application.

5. Maîtriser la population nomade
Mettre à disposition son application métier pour les utilisateurs en dehors des locaux de l’entreprise est très courant, notamment avec le télétravail. Cela nécessite une sécurité encore accrue pour ne pas être soumis à toutes les attaques possibles sur Internet. Les technologies de portails VPN-SSL proposent des fonctionnalités très avancées et simples d’utilisation pour sécuriser ce type d’accès.

6. Sécuriser la maintenance de l’application
Dans l’idéal, la maintenance de l’application doit se faire sur une interface physique différente de celle(s) réservée(s) à la production. Son accès est soumis à des règles de sécurité limitant l’accès à certains administrateurs uniquement. Les comptes d’accès basés sur un annuaire externe, compte de secours en local ou limitation par adresse IP source sont des exemples de critères à mettre en œuvre.

7. Optimiser sa politique de pare-feu « Next-Gen »
Il ne faut pas confondre pare-feu « Next-Gen » et pare-feu applicatif. Les deux technologies agissent au niveau applicatif du modèle OSI, mais n’apportent pas les mêmes sécurités et fonctionnalités. Un pare-feu applicatif se base sur l’application à surveiller et connaîtra son arborescence en totalité. Un pare-feu « Next-Gen » contrôle l’accès à une application reconnue depuis une zone donnée. Il reconnaît l’application grâce à des spécificités discriminantes situées au niveau 7 du modèle OSI, mais n’a pas une connaissance totale de l’application. Sa configuration n’est pas spécifique à une application. Dans le pare-feu « Next-Gen », il est important de configurer le plus finement possible les applications métier que l’on souhaite reconnaître pour maîtriser les flux désirés ou non dans les politiques et ainsi sécuriser les applications.

8. Effectuer des « scans » de l’application
Depuis quelques années, des éditeurs proposent de scanner les applications web pour reporter les failles qu’elles présentent. Il s’agit d’un moyen de savoir facilement si les politiques mises en place répondent à la sécurité souhaitée. Certaines technologies proposent même d’injecter directement les rapports générés dans les équipements de sécurité pour corriger automatiquement les configurations. Cette étape réalisée régulièrement permet d’appréhender facilement les modifications à apporter à la configuration.

9. Maîtriser les attaques ciblées (DDoS, Brute Force, Web Scraping, 0-Day)
En plus des attaques connues par les bases de signatures classiques, l’application peut être soumise à des attaques plus ciblées. Le Distributed Denial of Service (DDoS) est l’une des plus médiatisées du moment. Elle rend indisponible une application web en la surchargeant de requêtes bénignes depuis des postes répartis géographiquement. Le « Brute Force » consiste à trouver le mot de passe d’une personne en tentant de s’identifier à de multiples reprises. Le Web Scraping permet aux pirates du web de reproduire une application à l’identique pour tromper l’utilisateur final. Les 0-Day sont des attaques peu connues, mais qui peuvent être identifiées grâce à des analyses comportementales. Les attaques ciblées peuvent être évitées avec une configuration plus ou moins pointue des équipements de sécurité.

10. Auditer son application web
Il est essentiel de faire appel à une société tierce pour valider l’ensemble des configurations. Ces sociétés sont spécialisées et fournissent des conseils avisés concernant la mise en place de la configuration et sa pérennité.

 

___________
Johan Bourgeois est ingénieur Sécurité Réseaux chez Nomios