VT2020-DevSecOps-Fiche

= L'approche DevSecOps =

DevOps, qu'est ce que c'est ?


La méthode DevOps, c'est une méthode en informatique qui vise à unifier le développement logiciel (Dev) et l'administration des infrastructures informatiques (Ops).

Cette approche est apparue en 2007, mais avec le boom des méthodes Agiles, elle est particulièrement appliquée dans les projets informatiques depuis quelques années seulement.

La méthode DevOps se caractérise principalement par l'automation et le suivi de toutes les étapes de création de logiciel : depuis le développement, l'intégration, les tests, la livraison jusqu'au déploiement, l'exploitation et la maintenance des infrastructures. Le but du DevOps est d'avoir des cycles de développement plus courts, une augmentation de la fréquence des déploiements et une livraison continue.


 * Intégration continue : intégration régulière des modifications de code à un référentiel centralisé
 * Livraison continue : changements de code automatiquement générés, testés et preparés pour être publiés dans un environnement de production
 * Microservices : diviser une application en un ensemble de petits services, chacun exécuté par leur propre processus et communiquant grâce à une API
 * Infrastructure as code : mise en service et la gestion de l’infrastructure à l’aide de code et de techniques de développement de logiciels
 * Communication et collaboration : principe de toute méthode Agile




 * Rapidité : accélérer le rythme des innovations pour les clients, améliorer la capacité d’adaptation au marché et gagner en efficacité et en croissance.
 * Livraison rapide : augmenter le rythme et la fréquence des publications
 * Fiabilité : assurer la qualité des mises à jour d’application et des changements d’infrastructure dans le but de livrer en toute confiance les produits à un rythme rapide
 * Évolutivité : gérer nos processus d’infrastructures et de développement à grande échelle et notamment si les systèmes eux-mêmes évoluent
 * Collaboration améliorée : DevOps repose sur une collaboration étroite entre les équipes de Développement et d’Opération, afin de limiter les pertes d’efficacité et de gagner du temps.

Et la sécurité dans tout ça ?
Dans un cycle de développement traditionnel (où la sécurité est peu prise en compte), on ajoute une étape de sécurité à la fin du cycle de développement. Mais en travaillant de cette manière, vous créerez une application non sécurisée. Vous allez, par exemple, construire une application pour laquelle on se connecte sans prendre en compte les exigences de conformité. De plus, aujourd’hui, la plupart des attaques qui réussissent s’appuient sur une complicité interne (hameçonnage par exemple). Donc même si l’on ajoute des firewall à la fin, cela ne suffira pas.

Alors certes, ajouter une étape sécurité à la fin d'un cycle de dévelopmment permet de régler la plupart des problèmes de sécurité d'une application, mais en faisant cela, vous réduirez à néant les avantages de la méthode DevOps : la méthode DevOps garantit des cycles de développement rapides et fréquents. Si l’on rajoute une étape de sécurité à la fin, ça réduirait à néant cet avantage là et une méthode DevOps ne servirait donc à rien.

Donc c'est pourquoi la méthode DevSecOps a été pensée.

DevSecOps


DevSecOps c’est ni plus ni moins qu’une approche DevOps dans laquelle la sécurité est prise en compte du début à la fin du projet. Et non pas comme dans les approches traditionnelles seulement à la fin du cycle. Le principe le plus important de cette approche c'est l'apprentissage et la généralisation du savoir : cela fonctionne en donnant les connaissances en sécurité aux différentes équipes (Dev et Ops) et s’assurer que la sécurité est prise en compte au bon endroit et au bon moment. C’est donc le fait de traiter la sécurité comme quelque chose de nécessaire dès le début pour ne pas avoir à y penser après coup.

DevSecOps exige certes un investissement de départ mais s’avère vite rentable car une application qui n’est pas sécurisée nécessite d’être réécrite et la réécriture d’une application est en effet très coûteuse.

DevSecops rime donc avec sécurité continue, déploiement continu et intégration continue.

= Les différents outils existants =



Ci-dessus, vous trouverez une liste non exhaustive d'outils qui permettent de nous aider dans l'approche DevSecOps.

Aide au Secure Coding
SAST (Static Application Security Testing) : Audit de code source automatisé Détecter et corriger les vulnérabilités pendant les phases de développement (et nous indique où elles sont).

DAST (Dynamic Application Security Testing) : Audit dynamique automatisé Intéragir avec l'application grâce à un scanner qui va permettre de détecter les failles lorsque l'on bombarde l'application avec un grand nombre de requêtes (vulnérabilités liées au serveur web notamment).

Test d'intrusion réalisé par un hacker éthique Les audits ne remplacent par l'intelligence humaine et ne peuvent exploiter plusieurs vulnérabilités en chaîne.

Pour avoir une application sécurisée, l'idéal est de réaliser les 3 types de test.

= Sources =

https://www.redhat.com/fr/topics/devops/what-is-devsecops

https://aws.amazon.com/fr/s3/

https://aws.amazon.com/fr/devops/what-is-devops/

https://fr.wikipedia.org/wiki/Devops

https://www.zdnet.fr/actualites/devsecops-place-a-la-securite-en-livraison-continue-39887295.htm

https://www.adikts.io/les-outils-de-securite-applicative/

https://www.advens.fr/fr/ressources/blog/le-devsecops-cest-quoi

= Veille Technologique 2020 =


 * Année : VT2020
 * Sujet : DevSecOps
 * Slides : [[Media:VT2020-DevSecOps-Presentation.pdf|Presentation]]
 * Présentation filmée : |Présentation Présentation filmée]
 * Démonstration : Démonstration
 * Démonstration filmée : [|DémoTest Démonstration filmée]
 * Auteur : Leila Michelard