Les Rencontres de la Sécurité

Les Rencontres de la Sécurité

Ces 29 et 30 septembre se sont tenus “Les rencontres de la sécurité“, organisées par Excellium. Retour sur la table ronde “Comment marier agilité, DevOps et sécurité des applications” avec Sylvain, Olivier et Pierre-Antoine.

DevOps, la continuité de l’agilité

Depuis 2 ans, l’agilité est bien implémentée au Luxembourg dans les services IT. Le changement de rythme des développeurs nécessite un changement de rythme pour l’infrastructure. C’est ainsi que le mouvement DevOps commence à émerger, soit initié par le management ou une politique du groupe, soit à l’initiative d’une équipe, ou via l’intervention d’acteurs locaux ayant plus de maturité dans le domaine.

Les bénéfices de DevOps se font ressentir sur :

  • La qualité du code: ce qui est livré est de meilleure qualité grâce à des feedbacks rapides,
  • La fluidification du cycle de vie des applications: collaboration, process, automatisation,
  • Le B2C : le client reçoit plus souvent les améliorations (le nombre de release dépend du secteur d’activité et du rythme désiré).

Infrastructure VS développement?

La mise en place d’un processus DevOps a un impact dans les 2 domaines, c’est un changement culturel global. Les développeurs ont pris l’habitude de découper leurs activités en tâches réalisables pendant les sprints. Potentiellement, les applications pourraient être déployées plus souvent dans l’infrastructure. Les contraintes d’infrastructures changent pour permettre des déploiements plus fréquent et non plus trimestriels / semestriels / annuels. 

Les jeunes diplômés ont déjà intégré ces éléments d’agilité dans leur technique de travail. Il faut donc trouver la bonne mesure pour implémenter DevOps dans les équipes actuelles.

DevOps = culture + pratiques

Aujourd’hui, DevOps n’est plus un mouvement pour les aficionados. Ces pratiques qui furent d’abord adoptées par les grands du web tels que Amazon, Facebook, Netflix … ou les startups qui n’ont pas de “legacy” à gérer, font maintenant leur entrée dans les entreprises. Ceci grâce à une normalisation de l’outillage et des pratiques d’une part, et aussi à une base de connaissance riches qui voit ces mêmes pratiques maintenant nommées et explicites (comme par exemple l’A/B testing: tester 2 types de fonctionnalité simultanément sur des ensembles d’utilisateurs distincts et bénéficier du feedback rapide pour faire un choix sur l’une des deux).

Problématique dans les équipes d’infrastructure et de développement

Les modèles organisationnels traditionnels favorisent, pour des raisons historiques ou réglementaires souvent valables mais datées, les silos entre les intervenants. Cela peut devenir un frein au changement car les régulations établies à l’intérieur d’un silo sont focalisées sur les besoins du silo, parfois au détriment du silo voisin. DevOps vise à favoriser les échanges, la collaboration, la compréhension des besoins et des contraintes, ainsi que les techniques (process et outils) permettant d’améliorer et de fluidifier la chaine de valeur (besoins > développements > validations > utilisations business). Les échanges et les actions ne se limitent plus aux différents intervenants dans chaque silo identifié, mais nécessitent une collaboration transverse efficace et optimale (ça n’implique pas une dissolution de la ségrégation des responsabilités!).

La sécurité est statique, DevOps est agilité

Ce paradigme doit changer: la sécurité valide ou invalide la future release, elle a un droit de véto final qui pourrait éventuellement remettre en cause une projection business. DevOps vise tous les acteurs de la chaine de valeur: la sécurité est partie intégrante de cette chaine. Elle devrait de fait intervenir de manière judicieuse et adaptée pendant le cycle de vie des applications: analyse de code statique, analyse passive lors des validations en QA, analyse dynamique, analyse des environnements, etc … De facto, la sécurité devrait être intégrée au cycle de vie des applications. Le périmètre des intervenants dans le domaine de la sécurité s’élargit: les développeurs se forment pour écrire du code sécurisé, les sysadmins se forment pour patcher les systèmes en fonction des failles de sécurités détectées, développeurs et infra collaborent pour sécuriser les échanges de données, …

Environnement test = environnement de prod?

Sur ce terrain, DevOps fait la part belle à l’automatisation pour réduire aux maximum les erreurs humaines. Un facteur de sécurité: la connaissance de l’état de l’infrastructure, auditabilité simplifiée, la répétabilité … Pour ne citer qu’un exemple, Docker et la technologie des conteneurs apportent un contrôle très fin car un conteneur embarque les spécificités de l’environnement, le stack applicatif et l’application. L’avantage de cette technologie: les changements sur le stack applicatif, l’application, le patching de l’environnement pour améliorer la sécurité, les changement de versions, … n’ont aucun impact sur l’hôte qui exécute le conteneur.

Conclusion

Les équipes de developement demandent de plus en plus d’informations pour sécuriser leur code. Les équipes infra on besoin de plus de flexibilité opérationnelle pour assurer la sécurité des environnements et leurs évolutions. Les équipes de qualité veulent l’assurance que les tests ne sont pas influencés par des facteurs non contrôlés (en particulier pour les tests de performance/sécurité). Les équipes de sécurité ont de nombreuses suggestions d’améliorations qui s’opèrent ailleurs qu’en fin de course.

La sécurité dans une approche DevOps doit être considérée tout au long du cycle de vie d’une application: le fameux “fail fast” s’applique également à la sécurité. Implémenter DevOps n’est pas un objectif, c’est un moyen pour répondre aux besoins.

Annabelle Buffart

Web geek

No Comments

Post a Comment

Comment
Name
Email
Website