Si les grandes entreprises du cloud peuvent effectuer des milliers de déploiements par jour et des centaines de milliers de modifications de code, la présence de centaines de développeurs peut rendre le suivi d'activités compliqué. Les processus impliquant l'inspection et le test de chaque code avant son déploiement par l'équipe de sécurité sont donc impossible pour ce rythme et ce volume d'opérations.Il est donc nécessaire d’entrer dès maintenant dans l'ère du DevSecOps. Avec cette approche, les équipes de sécurité permettent aux développeurs de construire un code sur des bases sûres et des environnements cloud configurés de manière sécurisée.
L’approche DevSecOps nécessite du travail supplémentaire, surtout lorsqu’on sait que seulement 20 % du code d'une application en cloud classique est propre à l’application même, le reste étant constitué de fichiers du système d'exploitation Linux, de bibliothèques open source, de leurs dépendances et d'autres composants hérités. Les développeurs ont besoin d'aide pour identifier les vulnérabilités des applications, de leur base de code plus large et de leurs configurations. Les outils de sécurité sophistiqués doivent donc être assistés par l'automatisation.
Des retours d'expérience variés en automatisation de la sécurité
Le choix du processus de la mise en œuvre de l’automatisation va dépendre de l’entreprise qui l’intègre. La première étape de cette mise en œuvre consiste à s'assurer que l'application et ses composants sont analysés automatiquement à intervalles réguliers pour détecter les vulnérabilités. : « L'automatisation est la clé de la sécurité à grande échelle, car elle élimine l'erreur humaine. Quand on automatise, on détecte plus de vulnérabilités », indique à ce sujet Vlad Perelmuter, ingénieur principal en sécurité de Twilio. Les équipes doivent constamment scanner et vérifier les failles de sécurité. Cela représente un point de faiblesse potentiel en cas d’oubli et un travail supplémentaire qui n'aurait pas besoin d’être fait si l'automatisation était en place.
Chez la plateforme de communication cloud Twilio, l'automatisation va encore plus loin. L'entreprise a créé une application sur GitHub permettant de surveiller les modifications et les pull-requests dans la branche principale du code. Ainsi, quand une pull request est intégrée à la branche principale, le projet est automatiquement scanné pour indiquer aux développeurs toute vulnérabilité potentielle. De plus, l’application réagit également quand les projets sont créés, supprimés ou renommés, et déclenche les actions de sécurité appropriées.
Du côté de Skyscanner, la visibilité des vulnérabilités non corrigées était une grande préoccupation. L'entreprise présentait les symptômes d’un développement rapide à grande échelle et se devait donc de créer une assistance automatisée. « L’examen manuel du code et des configurations à cette échelle aurait été un véritable cauchemar pour nous », indique Olivier Crawford, ingénieur logiciel chez Skyscanner. En construisant sa propre application de tableau de bord, le comparateur de vols offre désormais à ses développeurs la visibilité nécessaire pour mieux comprendre les besoins en matière de sécurité de l'ensemble des projets.
Autre cas, celui du média Red Ventures dont le besoin d'assistance pour le flux de pipeline les a conduit à créer leur propre application interne, Flare. Cette dernière détecte les nouvelles images de containers via Cloudtrail puis les analyse pour identifier les vulnérabilités. Une fois les résultats obtenus, elle crée automatiquement des tickets Jira pour les équipes et les développeurs concernés. Alfonso Cabrera, directeur de l'ingénierie des plateformes de Red Ventures, explique que son entreprise travaille avec des milliers d'images de containers et jusqu'à 7 000 projets de code. Grâce à l’automatisation du flux de travail, les risques sont systématiquement repérés et adressés.
L'automatisation sans difficultés
Lorsque les entreprises ont recours à l’automatisation, elles doivent se concentrer sur deux principaux points. Tout d'abord l'adaptabilité des outils qu’elles souhaitent automatiser, ce qui détermine ensuite le choix des outils de sécurité. Une API puissante et bien documentée permet de créer des outils d'automatisation de la sécurité adaptés à l’entreprise. Pour les petites équipes, le recours à un kit de développement logiciel (SDK) natif du langage de programmation est nécessaire.
Et deuxièmement le fait d'examiner attentivement les résultats de l'automatisation. Si une analyse peut détecter des milliers de vulnérabilités, la création de tickets pour chacune d'entre elles peut rapidement créer un embouteillage de tâches de faible valeur ajoutée. Pour éviter cela, le système d’automatisation filtre les vulnérabilités qui ne peuvent pas être corrigées ou exploitées, et hiérarchise les tâches en fonction de l'impact qu'elles auront sur la sécurité de l'application. Le système facilite également le travail des développeurs en les informant de la disponibilité des correctifs ainsi que des liens vers la documentation décrivant la nature de la vulnérabilité.
L’objectif des projets d'automatisation est de faciliter le travail des équipes. Créer de nouveaux processus et de nouveaux outils à utiliser peut constituer un frein à cet objectif. Il est donc préférable d’avoir recours à des outils avec lesquels les développeurs travaillent déjà, que ce soit par le biais de leur Environnement de Développement Intégré (IDE), de leurs projets ou de leurs systèmes de tickets. Ainsi, l’automatisation permet d'assurer la sécurité sans accroître la friction.
Commentaire