Stéphane de Saint Albin – Développement d’applications sécurisées : pas de panacée universelle, mais besoin d’une stratégie

Les stratégies visant à sécuriser applications et services web étaient au coeur des échanges avec de nombreux RSSI lors des dernières Assises de la Sécurité.

Stéphane de Saint Albin, Directeur Commercial et Marketing de DenyAll

Les stratégies visant à sécuriser applications et services web étaient au cœur des échanges avec de nombreux RSSI lors des dernières Assises de la Sécurité.
Tous s’accordent pour dire que la protection des applications modernes est loin d’être une question triviale, d’une part, et qu’aucun outil ou processus ne saurait sécuriser les applications « une fois pour toute », d’autre part.

Le débat ancestral sur la primauté de la formation des développeurs par rapport aux contrôles de sécurité n’est plus d’actualité.
Par contre, toute stratégie doit partir d’une analyse des risques encourus et définir des priorités d’investissement, en fonction de leur efficacité prévisible à limiter l’impact des attaques
.

 
Les défis à relever pour opérer le tournant de la sécurisation applicative

Une étude Forrester commissionnée par DenyAll en Mars 2013 a mis en avant les principaux défis auxquels les entreprises européennes font face pour développer et mettre en oeuvre des applications sécurisées :

                        – Le premier défi est le manque d’expertise en sécurité applicative, qui se traduit par une pression forte pour les équipes en charge de l’IT et de la sécurité, face à des métiers qui ne cessent de déployer des applications Web et mobiles, nouveaux vecteurs privilégiés des attaques ciblant le système d’information ;

                        – Le deuxième défi est celui de la scalabilité : l’expertise en sécurité applicative étant rare, les entreprises peinent à déployer les compétences qu’elles possèdent sur l’ensemble de leurs projets applicatifs ;

                        – Le troisième défi concerne la sécurisation des applications métiers anciennes : mobiliser les ressources nécessaires pour modifier le code d’une application sur laquelle une vulnérabilité a été découverte peut prendre des mois, voire même s’avérer impossible, pour peu que l’entreprise n’ait pas accès au code source. Pendant ce temps, comment éviter que ces vulnérabilités ne soit exploitées ?

Même en disposant de toute la compétence requise et en faisant abstraction de la pression du business, il n’y a pas d’absolu en matière de sécurité applicative, comme en sécurité en général. Quand bien même le code des applications serait exempt de toute faille à un instant donné, cet état ne saurait qu’être temporaire. En effet, les applications et services web évoluent très vite, au rythme des besoins des métiers. Et la complexité des infrastructures applicatives est telle que de nouvelles vulnérabilités ne tarderont pas à être identifiées, quelque part dans la pile.

 

Les solutions stratégiques pour garantir une sécurisation optimale

Si le risque zéro n’existe pas, une stratégie efficace peut cependant être mise en place, qui s’appuie sur la formation des équipes de développement, et l’intégration dans le cycle de développement logiciel des technologies visant à identifier les vulnérabilités et à rendre leur exploitation plus difficile :

                        – Les outils de détection statique des vulnérabilités (SAST), permettent aux développeurs d’identifier dans leur code les failles de sécurité qui seront potentiellement exploitables par des hackers, une fois l’application mise en production ;

                        – Les outils de détection dynamique des vulnérabilités (DAST), permettent d’automatiser l’identification des vulnérabilités identifiables dans l’application tout au long du cycle, du développement à la mise en production ;

                        – Les parefeux applicatifs Web (WAF), fournissent une protection efficace, extensible facilement à l’ensemble du parc pour les logiciels standards du marché, les progiciels et applications d’entreprise développées en interne comme par des tiers ;

                        – Le patching virtuel, résultat de l’intégration des deux technologies précédentes (DAST et WAF), permet de réduire la période de temps pendant laquelle les données sensibles sont exposées aux attaques, et d’ajuster la politique de sécurité applicative à l’évolution des menaces.

Comme le souligne le rapport de Forrester, la formation continue des équipes de développement demeure un composant essentiel de toute stratégie de sécurité applicative. Il est important que les développeurs acquièrent une bonne culture des vulnérabilités, des attaques qui les exploitent et des bonnes pratiques de codage. Une majorité des professionnels de la sécurité applicative qui ont participé à cette étude (60%), pensent cependant que la formation des développeurs a un impact limité, ou que cet investissement n’est pas suffisant en lui-même.

Revenons maintenant sur l’utilisation de certains des contrôles de sécurité applicative mentionnés plus haut, au sein d’un processus de développement d’applications sécurisées.

 

                        1) Le parefeu applicatif Web (ou WAF)
Le WAF résout le problème de la scalabilité identifié par Forrester. L’utilisation d’un WAF pendant le cycle de développement et la phase de pré-production fait partie des bonnes pratiques mises en oeuvre par les organisations les plus en avance dans ce domaine. Intuitivement, on pourrait penser que les équipes de développement risquent de trop s’appuyer sur le WAF plutôt que d’améliorer la qualité de leur code. Cependant, les entreprises qui intègrent le WAF dans leur cycle de développement applicatif profitent de deux avantages conséquents :

                        – L’effet miroir, car un WAF peut refléter certaines erreurs de codage : les logs du WAF sont une source d’informations pour les développeurs soucieux de connaitre les attaques ciblant leurs applications ;

                        – Une ligne de défense efficace, car les vulnérabilités sont inévitables dans tout logiciel. Au-delà du code applicatif, les vulnérabilités existent dans d’autres parties de la pile technologique, au niveau du middleware ou du système d’exploitation, par exemple.

Utiliser un WAF lors du cycle de développement et pendant les phases de pré-production permet également de garantir un cycle de développement transparent, sans risque de rupture en termes de sécurité. Pendant la phase des tests fonctionnels, les équipes en charge du développement et de la sécurité applicative peuvent coopérer afin d’optimiser la politique de sécurité dédiée à l’application. Cela inclut l’identification et la réduction des faux positifs, via des exceptions dans la politique de sécurité.

 

                        2) Les outils de détection dynamique des vulnérabilités (ou DAST)
Les scanneurs de vulnérabilités qui entrent dans la catégorie « DAST » sont de plus en plus utilisés par les équipes de développement soucieuses de la sécurité de leurs applications. Ces outils permettent d’automatiser l’identification des failles de sécurité, et d’éviter ainsi de publier des applications vulnérables aux principales attaques, de type « injections » ou « cross-site scripting ». Les tests de ce genre devraient faire partie intégrante des cycles de développement applicatifs.

Les scanneurs modernes ne nécessitent pas de configuration complexe ou de compétences spécifiques en sécurité applicative. Les tests peuvent être programmés facilement. Il n’y a pas vraiment d’inconvénients ou de limitations à l’intégration de ces scans dans le processus standard des cycles de tests et de modifications des applications.

Les équipes qui utilisent les outils DAST pendant le cycle de développement, les phases de pré-production et de production peuvent créer un environnement évolutif, rapide et déjà sécurisé pour leurs futures applications. Combinés avec les capacités du patching virtuel, ces scans peuvent aider les développeurs à produire des applications sécurisées.

 

                        3) Le patching virtuel
L’intégration entre WAF et DAST permet de développer des solutions de qualité en un minimum de temps, tout en réduisant la surface d’attaque exploitable par les pirates. C’est une méthode innovante qui permet d’améliorer l’efficacité de la politique de sécurité applicative.

Equipes de développement et responsables sécurité peuvent coopérer en créant des patchs virtuels visant à rendre inexploitables par des attaquants les vulnérabilités qui ne peuvent pas être résolues dans le code de l’application dans le délai prévu initialement. Le patching virtuel représente un gain d’efficacité et de temps pour déployer de nouvelles applications sans sacrifier les impératifs de sécurité. Ce qui est particulièrement vrai pour des équipes de développement pour lesquelles les modifications incrémentales et les cycles de développement accélérés sont la règle.