Le learning centre Centosis a offert, la semaine passée, un cours portant sur la Web Application Security. Le Mauricien a rencontré Kishin Fatnani, expert indien en informatique.
À Maurice, lorsqu’on parle de sécurité informatique, on pense avant tout au piratage, au « hacking » – des termes mis à toutes les sauces, phénomène qui ne rend pas le cyber-espace plus sûr. Entre terminologie et technicité, l’amalgame est facile. Et le profane y cède souvent.
Car il existe plusieurs types de piratage : les attaques sur les protocoles réseau, les systèmes d’exploitation, les bases de données, les serveurs web et applications, et la liste s’étend. Kishin Fatnani, de la société indienne K-Secure, et dont les services avaient été requis par Centosis, offre un éclairage sur la sécurisation des applications web.
Une application web, nous apprend-il, est une application fonctionnant sur un serveur web et dont l’accès est permis par un browser faisant office de client. L’app – comme on l’appelle dans le jargon informatique – peut être aussi simple que complexe. Une app, c’est tant un tableau de messagerie, un sign-in book sur un site web, qu’un portail de net-banking ou de travel.
Qu’en est-il du client ? Dans un environnement client-serveur, le client est le programme que l’on utilise pour accéder au serveur. C’est la composante permettant d’entrer et de récupérer les informations, tandis que le serveur contient et travaille les données.
L’app soulage le développeur de la responsabilité de créer un client pour chaque type d’ordinateur ou de système d’exploitation. Pour ce qui est de l’aspect technique, les applications web utilisent une combinaison de server-side scripts (ASP, PHP, entre autres) et de client-side scripts (Javascript ou VBscript).
Les apps existent depuis bien avant que le web ne gagne en popularité. Larry Wall, par exemple, développait déjà Perl – un server-side scripting language – en 1987, soit sept années avant que l’internet ne s’évade des cercles académiques et n’envahisse le monde. Aujourd’hui, des millions d’Américains (et nombre de Mauriciens) utilisent des applications web pour file leurs fiches d’impôts sur le web.
Attaques
Parler d’infiltration, d’attaques, c’est évoquer la vulnérabilité. Comme l’indique M. Fatnani, « les failles peuvent exister dans n’importe quel code, qu’il s’agisse d’un système d’exploitation ou d’une application web. Lorsque ces failles sont découvertes, elles sont rapidement corrigées par leurs fournisseurs respectifs […] ce qui ne laisse qu’une petite fenêtre d’opération pour les pirates. Par conséquent, ces derniers reportent leur savoir davantage sur les applications web. Elles sont d’ordinaire plus facilement accessibles et construites selon les exigences de chaque organisation (ndlr, sans standardisation). Les méthodes d’attaque pour les applications web sont également relativement simples par rapport à toute autre forme de piratage. Par exemple, une page “login” vulnérable requérant username et password peut être exploitée en tapant ‹ anyuser’ or 1 = 1 ;– ›. Et voilà que le pirate accède à la page, probablement grâce aux credentials d’un utilisateur interne ».
Les exemples pleuvent. Mais la meilleure mesure de la vulnérabilité reste l’étendue des dommages. « Vous avez besoin de réserver un billet en ligne. Vous téléchargez vos coordonnées : adresse, nom, coordonnées bancaires et même numéro de carte de crédit. Si la demande de réservation n’est pas bien protégée, vous pouvez deviner ce qui se passe ensuite… »
Les risques, dès lors, sont nombreux. L’on peut se payer « votre » Ferrari à Oklahoma City. Mais ce serait là la tactique du plus bête des cyber-criminels. Un autre, plus intelligent, pourrait lisser ses revenus dans le temps : élaborer une opération de microcrédit afin de s’assurer une retraite en Floride.
Et bien sûr, les vols d’identité sont communs. Cette fois encore, la liste des “etc.” est non-exhaustive. Un élément à garder en tête : si un cyber-criminel est assez fort pour craquer les codes, il devrait être assez astucieux pour ce qui est de monétiser ses compétences. La sécurité des applications web ne concerne pas que le cyber-criminel de masse qui ferme les serveurs ou sites web en quête de reconnaissance geek-esque (ndlr : geek est un terme péjoratif désignant binoclards passionnés d’ordinateurs au comportement marginal). Car le diable est dans le détail. Et flairer le détail n’est pas chose ardue.
En effet, les outils sont disponibles. Ils sont : malwares, trojans, kits en tout genre, bot codes, « tous faciles d’accès sur le web ». Se procurer les contact details : pas si compliqué. Par exemple, un bot code sujet à de subtiles modifications peut aisément compiler les données sur un serveur. Le spamming en est le résultat habituel.
Toutefois, plus de maîtrise est requise pour les opérations chirurgicales telles que segmentation des listes de contacts, élaboration des profils de victimes, entre autres. Et une fois de plus, la liste des “etc.” est non-exhaustive.
Prévention
Afin de garantir la sécurité des applications web, une première étape relève du « développement efficient du logiciel ». Et d’inclure le firewall (pare-feu) approprié. Un firewall est un système permettant de protéger un ordinateur ou un réseau d’ordinateurs des intrusions provenant d’un réseau tiers tel internet. Le pare-feu est un système permettant de filtrer les paquets de données échangés avec le réseau, il s’agit ainsi d’une passerelle filtrante comportant au minimum les interfaces réseau suivantes : 1) une interface pour le réseau à protéger (réseau interne) ; 2) une interface pour le réseau externe. Un système pare-feu contient un ensemble de règles prédéfinies permettant : 1) d’autoriser la connexion (allow), 2) de bloquer la connexion (deny) et 3) de rejeter la demande de connexion sans avertir l’émetteur (drop).
Il ne reste donc plus qu’à investir dans le meilleur pare-feu. Mais les limites existent. M. Fatnani met en garde : « Un pare-feu pour réseau est utile […] Cependant, si vous avez une application web, vous voulez que les gens puissent y accéder et vous configurez votre pare-feu pour permettre accès. Mais un pare-feu réseau n’est pas vraiment capable de comprendre les attaques contre l’application web. Vous avez besoin d’un autre type de pare-feu soit un Web Application Firewall (WAF). Encore une fois obtenir le meilleur WAF n’est pas une fin en soi. Il doit être configuré afin de protéger l’environnement spécifique. Les paramètres de configuration ont besoin d’une surveillance constante et de fine tuning ».
Quid de l’utilisateur ? Il serait sage qu’il se munisse également de pare-feu et d’antivirus efficaces et convenablement configurés, qu’il renonce aux logiciels piratés. Et surtout : garder en tête qu’un design reluisant n’implique pas un bon niveau de sécurité. Le piratage ne requiert pas des compétences de phD.