Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 





















Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Laurent Besset, I-Tracing : Cyber-délinquance : Les applications et les bases de données sont des portes dérobées pour cambrioler l’entreprise en toute discrétion

janvier 2013 par Laurent Besset, Directeur Associé chez I-Tracing

Les données représentent un enjeu majeur pour les entreprises. Leur valeur les rend attrayantes aux yeux des pirates mais aussi des utilisateurs internes peu scrupuleux. Les différentes réglementations (Sarbanes-Oxley, PCI-DSS, CNIL…) obligent les firmes à mettre en place des dispositifs de protection et d’audit des données. La sécurité de l’information et le respect des bonnes pratiques s’avèrent d’autant plus indispensables que le système d’information s’ouvre et qu’Internet accroît les risques. La fuite de données a un impact sur tout l’écosystème de l’entreprise. Collaborateurs, clients, partenaires et fournisseurs se trouvent affectés. Un vol de données se traduit aussi par d’importantes pertes financières. Toute entreprise, quelle que soit sa taille, doit contrôler les conditions d’utilisation de ses données et mettre en œuvre une protection adaptée à ses systèmes d’information et aux nouveaux usages en entreprise afin de se défendre au mieux contre le pillage, le vol et les comportements malveillants internes.

Facilement accessibles, les applications web sont devenues les cibles favorites des cyber-voleurs qui les transforment en un point d’entrée pour accéder aux données sensibles. Les entreprises et les administrations, dont l’activité repose de plus en plus sur les technologies et les applications web, veulent protéger leur site internet contre les menaces environnantes, sans affecter les performances et la disponibilité des applications. Lutter contre une attaque par DDoS ou combattre une APT (Advance Persistent Threat, menace invisible mais permanente), commence par l’adoption des bonnes pratiques durant le développement et le cycle de vie des applications. C’est un élément capital de la maîtrise des risques.

Anticiper les failles applicatives

La sécurité applicative recouvre la sécurité des composantes transverses, c’est-à-dire du serveur web et du serveur d’applications qui permettent à l’application de fonctionner, mais recouvre aussi la sécurité des développements logiciels spécifiques, sans oublier les processus de création, de gestion des profils, les fonctions d’authentification, de gestion d’identités, etc.
Les serveurs possèdent leurs propres failles. Les pirates les exploitent pour prendre la main sur le système d’information. Mais le danger le plus grave peut provenir de failles directement ou indirectement liées aux négligences de sécurité dans le développement même de l’application. Un traitement dont les paramètres ne sont pas vérifiés produit obligatoirement des failles, permettant un passage aussi facile qu’une porte sans serrure. Par exemple, la légitimité des demandes de l’utilisateur doit être établie. Sinon, rien ne l’empêche d’outrepasser ses droits et d’accéder - directement ou non - à des données auxquelles il ne devrait pas accéder. Le Cross Site Scripting et tous les types d’injection (SQL, java script…) peuvent mettre en péril les données de l’entreprise. Les pirates savent très bien utiliser les failles d’injection pour dérober des données. C’est ce qu’il s’est passé, par exemple, lors de l’attaque du réseau PlayStation qui s’est terminée par un vol de données chez Sony. Les requêtes ont été directement envoyées à partir de l’application dans… la base de données ! Nombre d’applications web et d’applications sur mobile révèlent des vulnérabilités comme l’absence de contrôles ou la non-conformité avec la réglementation. La sécurité applicative est avant tout une affaire de bon sens. Le maillon faible reste une fois encore le facteur humain.

Détecter les comportements anormaux

Dans le monde web, la connexion au réseau n’est pas continue. Chaque page est transmise par une connexion séparée. Il est donc impossible que le serveur détecte si une séquence de requêtes provient du même client. Sur le plan applicatif, des éléments tiers comme les cookies sont utilisés dans les échanges entre le client et le serveur pour maintenir la session.
Tout utilisateur doit s’identifier. Et ce, afin d’éviter qu’un utilisateur "mal intentionné" accède à des données sensibles ou simplement… « plante » le système. Une bonne sécurité des accès prévient les usurpations d’identité et les attaques DoS et DDoS de l’infrastructure. Mais il existe aussi des risques liés aux dénis de service applicatifs comme en témoigne l’exemple suivant. Une compagnie d’assurance fournissant des devis en ligne pourrait se retrouver « noyée » sous le nombre de demandes, si l’application ne tient pas compte des éventuels comportements dangereux. Recevoir 50 ou 100 demandes de devis à la minute est tout à fait anormal ! Cette avalanche de requêtes ne peut provenir que de robots ! L’application doit reconnaître et bloquer les demandes de scanners et d’automates. En bref, une application doit prévoir tout ce qu’il faut autoriser et tout ce qu’il faut interdire ! En d’autres termes, lors de la conception de l’application, on doit projeter et anticiper les situations et les comportements anormaux qui pourraient se présenter et incorporer les outils pour les contrer.

Comment remédier aux failles ?

S’il s’agit de failles du serveur web ou du serveur d’applications, il est notamment indispensable d’exécuter chaque mise à jour. Les éditeurs fournissent des correctifs, quelques jours après la découverte d’une faille. Pour les failles applicatives, il convient de sensibiliser et former les développeurs afin qu’ils prennent toutes les précautions sécuritaires. Ils devront tenir compte des éventuels abus et des comportements anormaux possibles lorsqu’ils concevront l’application afin d’éviter les dénis de service applicatifs. Il est essentiel de mettre en place un cycle de développement sécurisé, d’auditer et tester le code puis de vérifier le fonctionnement de l’application.
Par ailleurs, une nouvelle génération de pare-feu, les Waf (Web Application Firewall) compensent les failles applicatives en bloquant les requêtes dangereuses des attaquants qui exploitent les vulnérabilités des applications pour voler des données par déni de service.
Ils sont complétés par des fonctions de type DAM (Database Activity Monitoring) de plus en plus nécessaires pour le monitoring et la sécurisation des bases de données.

Eliminer les attaques automatisées

Pour éviter les demandes piégées, des composants complémentaires s’intègrent et s’ajoutent aux firewalls, garantissant que la requête n’est pas exécutée par un robot depuis un poste piraté, mais émane d’un internaute. Imaginons qu’un pirate cherche à pénétrer dans une banque via une application. Sans mot de passe qui lui permettrait de s’identifier, il va exploiter une faille applicative pour accéder aux données. Il essaie - c’est ce qu’on appelle une APT (Advanced Persistent Threat) - à partir du poste de Monsieur X et à son insu, d’atteindre l’application. Parce que le poste de Monsieur X est compromis par un virus ou un backdoor, il accède directement à l’application en récupérant les éléments voulus. Pour éviter cette situation, l’intégration de composants complémentaires comme Captcha s’il s’agit, par exemple, d’un formulaire à remplir, est nécessaire dans l’application. Ces composants permettent d’assurer que les demandes faites à partir du poste de Monsieur X proviennent bien d’une personne, en l’occurrence de Monsieur X.

Réputation des adresses IP

La localisation des adresses IP source est possible. Une cartographie existe. Prenons l’exemple d’une billetterie qui reçoit des demandes de réservation pour un concert qui a lieu le soir même à Paris. Plusieurs demandes de réservation émanent du Japon. De toute évidence, ces requêtes paraissent suspectes ! Comment se rendre aussi rapidement d’un pays à l’autre ?
Les adresses IP des postes zombies sont connues. A l’origine de spams, de phishing…, elles sont répertoriées. Grâce à la gestion dynamique des adresses IP, les demandes émanant de pays à risques peuvent être éliminées. Il suffit de le prévoir lors de la conception de l’application.

Protection des données des bases de données

La sécurité de la base de données commence par une réflexion sur les usages, les utilisateurs et la manière dont s’effectuent les accès. Les bases de données sont souvent critiques pour l’entreprise. L’ouverture du système d’information accroît les risques. Respecter les bonnes pratiques s’avère indispensable. Suivre les patches évite que les failles du serveur de bases de données soient exploitées par un cybercriminel qui cherche à prendre la main sur le système.
La sécurité des données de la base de données repose sur la sécurité du serveur de bases de données (Oracle, SQL Server…). Les données sensibles, les informations financières, les fichiers des ressources humaines et les données personnelles des clients se trouvent dans les bases de données de l’entreprise. Il faut donc s’assurer de la légitimité des requêtes et des accès des applications pour éviter qu’une attaque cible l’entreprise, affectant son activité, la déstabilisant, dégradant son image et mettant en cause la responsabilité de son dirigeant. La valeur des données contenues dans la base de données la transforme en une proie évidente. D’où l’importance, encore une fois de la sécurité applicative. Cependant, des applications différentes accèdent à un même serveur de base de données. Au niveau du serveur d’applications, l’accès aux données de la base est global.

Outre la protection contre les attaques, la sécurité de la base de données inclut la traçabilité, l’intégrité et la confidentialité des données. Chiffrer les données sensibles est impératif. Or celles-ci apparaissent souvent en clair dans la base de données ; ce qui représente un risque important car toute personne qui accède à la base de données, peut les lire ! Afin d’éviter tout accès illicite de l’administrateur (qui possède un compte à privilèges lui donnant un droit d’accès à toutes les données de la base de données), il existe plusieurs solutions comme les firewalls de base de données et les audits de traçabilité des comptes à privilèges. Le firewalling de la base de données - global ou spécifique - s’applique à l’ensemble des accès des administrateurs qui sont tracés et loggés. La vérification des requêtes est alors effectuée.

Détecter les données sensibles de la base de données

Certaines solutions permettent d’inventorier les données sensibles. Leur emplacement et leur type (n° SS, n° carte bancaire…) sont repérés en scannant la base de données. Une des règles fondamentales de sécurité exige de n’utiliser aucune donnée réelle de production lors du développement, de la validation ou de l’homologation. Les données employées doivent être anonymes ou totalement imaginées. L’observation de cette consigne élimine le risque d’utiliser des données personnelles.

En résumé, la sécurité doit être conçue pour l’ensemble des éléments du système d’information. Une base de données fait partie d’un projet global. Elle doit être protégée. Mais, si l’outil utilisé pour s’y connecter est vulnérable, il ouvre la porte du système d’information. La sécurité de la base de données repose d’abord sur celle du serveur de base de données. Mais, il faut aussi prévoir une sécurité applicative, regroupant la sécurité de toutes les composantes qui permettent à l’application de fonctionner, c’est-à-dire la sécurité du serveur web, des serveurs d’applications et des développements spécifiques. Par ailleurs, les serveurs peuvent avoir leurs propres failles. Certains se sont illustrés de manière célèbre. Un exploit lié à une faille du serveur web peut potentiellement permettre de prendre la main sur le serveur.
La solution retenue devra évaluer les risques inhérents à l’utilisation des données, vérifier leur conformité et permettre la mise en place d’une politique de sécurité appropriée.


Voir les articles précédents

    

Voir les articles suivants