Sécurité des applications Web - Menaces et contre-mesures

Auteur: Mohamed CHINY Durée necessaire pour le cours de Sécurité des applications Web - Menaces et contre-mesures Niveau recommandé pour le cours de Sécurité des applications Web - Menaces et contre-mesures Supports vidéo non disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Page 1: Introduction à la sécurité applicative

Toutes les pages

La sécurité informatique c'est quoi?

L'histoire en bref

Depuis les débuts de l'informatique, les utilisateurs s'intéressaient principalement à comment exploiter au mieux la puissance de cet outil magique. Une course effrénée fut alors menée au développement de programmes de plus en plus performants et de plus en plus complexes. Ce qui importait le plus c'était l'exactitude et la précision des calculs et opérations. Cependant, plus les programmes devenaient conséquents, plus ils étaient truffés de bugs et de dysfonctionnements qui compromettaient les résultats retournés.

Bien que ces bugs furent généralement l'oeuvre du hasard ou de légers oublis de la part des développeurs ou de testeurs de logiciels, dans l'ombre naquit un groupe d'utilisateurs qui avaient comme intention de porter atteinte aux réalisations informatiques d'une manière délibérée afin de détourner leur usage. Ce groupe de personnes se furent fait appeler des pirates.

Au fil des années, les pirates devenaient de plus en plus actifs et déterminés à causer davantage de dégâts aux systèmes informatiques, en détruisant les données, espionnant les informations confidentielles ou condamnant des systèmes entiers en les empêchant de fonctionner normalement ou en les faisant systématiquement "crasher".

Il existe plein d'articles sur Internet qui parlent des multiples exploits mythiques menés par des pirates au cours des 30 dernières années, dont les victimes étaient les systèmes de grandes entreprises opérants dans les domaines financiers, commerciaux, des services...

La sécurité informatique devenue une nécessité

Depuis pas mal de temps, la sécurité est devenue une branche incontournable dans le domaine de l'informatique. Elle évolue sans cesse pour être en mesure de déjouer les subterfuges des pirates qui ne tardent pas à toujours nous sortir de nouvelles techniques et de découvrir de nouvelles vulnérabilités. Un défi qui devient de plus en plus coriace à soulever surtout dans le monde où tous les équipements de toute sorte sont connectés.

Mais pourquoi les vulnérabilités existent-elles?

Une vulnérabilité est une faille (ou défaut de conception ou de réalisation) qui peut être présente dans un système informatique. Certaines vulnérabilités sont découvertes au moments des tests avant la sortie officielle d'un logiciel informatique par exemple. Cependant, les vulnérabilités les plus dangereuses restent à l'abri des regards jusqu'à ce qu'elles soient trouvées accidentellement par les utilisateurs, ou détraquées délibérément par des pirates qui passent au peigne fin tout ce qui se présente sous leurs mains.

En général, les vulnérabilités sont toujours là, dans chaque systèmes, chaque réseau, chaque logiciel et on ne peut pas les éliminer à 100% car tout simplement on ignore leur existence. Mais le jour où elle font surface, les éditeurs de logiciels ne tardent pas à sortir des correctifs pour les combler.

La sécurité applicative dans tout ça

En général, quand on parle de la sécurité, on spécifie sur quel niveau elle est implantée. Pour faire simple je vais énumérer les 3 niveaux les plus connus:
  • Sécurité réseau: dans ce cas, on cherche à instaurer la sécurité au niveau d'un réseau (ou sous-réseau) entier de telle sorte à empêcher toute atteinte à n'importe quel élément faisant partie de ce réseau là. Les firewalls et les NIPS (Network-based Intrusion Prevention System) sont des solutions souvent envisagées dans cette situation.
  • Sécurité système: dans ce cas de figure, le système et les services tournés sur un ordinateur (serveur, station de travail, terminal...) est ciblé par la sécurité. Les antivirus constituent une solution très populaire, mais aussi les HIPS (Host-based Intrusion Prevention System) ou HIDS (Host-based Intrusion Detection System).
  • Sécurité applicative: Ici ce n'est ni le réseau ni le système entier d'un ordinateur qui nous intéresse, mais un logiciel ou une application en particulier (site, application web...). Dans ce cas de figure on peut utiliser des correctifs, des filtres, des IPS applicatifs, des WAF (Web Application Firewall)...

Dans ce cours, je vais plutôt me concentrer sur la sécurité applicative afin de pouvoir mieux sécuriser notre application ou site Web, surtout que la grande majorité des attaques relevant du cybercrime est d'ordre applicatif.

Objectif du cours et prérequis

L'objectif de ce cours est de vous parler des attaques applicatives les plus potentielles qui peuvent compromettre vos projets Web d'une part, et de comment s'en prémunir en adoptant la pratique du codage sécurisé (secure coding), et en modifiant certains paramètres des fichiers de configuration du serveurs Web et du moteur PHP en d'autre part.

Il convient de mentionner qu'il existe une référence internationale des attaques applicatives Web connue sous ne nom Top 10 OWASP qui consiste à une liste de 10 attaques Web les plus marquantes publiées de temps à autre et qui aident les développeurs et auditeurs sécurité à focaliser leurs efforts sur ces 10 attaques au lieux de se lâcher sur toutes les vulnérabilités existantes ce qui sera plus difficile à combler. Mais, comme c'est nous qui codons notre solution alors nous ferons en sorte de combler toutes les failles que nous connaissons et nous ne nous limiterons pas qu'à celles énumérées par OWASP (Open Web Application Security Project).

Pour ce qui est de prérequis, il me semble évident que si vous étiez initiés en développement Web et que vous pouviez manipuler du codes (principalement le PHP), alors ça vous serait d'une grande utilité. Cependant, si vous êtes un administrateur réseau ou système et que vous n'avez pas eu l'occasion de développer sur le Web auparavant, ce cours pourrait quand même vous être utile.

C'est parti!