‫D'accord.
‫La prochaine étape, le balayage de repo de code.
‫Ce n'est même pas spécifique à Docker,
‫mais il existe des outils et Sneak est l'un
‫d'entre eux. Sneak, analysera
‫les dépendances de votre code dans les dépôts.
‫Si vous avez open source, si vous développez une open
‫source, ils feront beaucoup de ce travail gratuitement.
‫Ils analyseront votre rapport GitHub, votre rapport Bitbucket
‫et examineront les dépendances.
‫Toutes les semaines, je reçois des rapports d’eux sur mes dépôts de source
‫ouverte et les vulnérabilités qu’ils ont trouvées.
‫De nos jours, GitHub fait aussi beaucoup de choses elles-mêmes
‫gratuitement. Sneak existe
‫depuis plus longtemps et le fait plus longtemps,
‫alors j'ai les deux. J'ai GitHub qui m'envoie des
‫emails et j'ai Sneak. Vous pouvez payer Sneak pour analyser des choses.
‫Ils ont également plus de fonctionnalités maintenant où ils font des images et d'autres
‫choses, pas seulement du repos de code.
‫Mais, une ligne suffit pour analyser votre dépôt
‫au début du processus.
‫N'attendez pas que vous construisiez des images et que vous
‫ayez des éléments dans CI, vous savez, pour tester les endroits où
‫vous numérisez. Scannez le plus tôt possible.
‫C'est en quelque sorte l'un des principes de base de quelque
‫chose appelé la sécurité ShiftLeft.
‫Si vous imaginez un tableau kanban où tout votre travail est à gauche et
‫votre sortie à droite, le mouvement pour la
‫sécurité ShiftLeft, si vous recherchez simplement la sécurité ShiftLeft, consiste à déplacer
‫la responsabilité de la sécurité de plus en plus tôt
‫dans le monde. votre flux de
‫travail de développement.
‫Ainsi, une solution consiste à faire en sorte que ces analyseurs automatisés analysent
‫les dépendances de votre code dans vos dépôts git avant même
‫d’avoir la possibilité d’exécuter des tâches sur des serveurs,
‫à droite. Je ferais ça.
‫Pas spécifiquement un truc de Docker, mais je le ferais.
‫La prochaine étape est le balayage d’image lui-même, qui est
‫très similaire à celui-là. Mais nous avons plus de fonctionnalités ici.
‫Nous ne faisons pas que scanner vos dépendances de code.
‫Nous pouvons scanner le conteneur lui-même.
‫L'image, c'est ça. Nous pouvons
‫analyser toutes les dépendances qui ne
‫correspondent pas à vos packages npm ou
‫à vos packages Python. Vous analysez maintenant les packages
‫YUM et APK, ou apt, ou ce type de
‫gestionnaires de packages pour le système d'exploitation.
‫C’est ce que je veux dire par un scanner d’images, car
‫il peut les scanner ainsi que vos dépendances de code.
‫Donc, il y a beaucoup d'outils ici.
‫Un ensemble très populaire d’entre eux existe depuis un certain
‫temps, mais deux nouveaux sont apparus dont je
‫voudrais vous parler.
‫La première ici est Trivy, et je viens d’apprendre à ce
‫sujet ce mois-ci, en octobre.
‫Trivy est construit par Aqua Security, qui est la même
‫société que MicroScanner.
‫MicroScanner était l’un des outils,
‫avec beaucoup d’autres, comme Anchor, un autre populaire.
‫Ce sont tous des outils open source qui analysent votre image à
‫la recherche de vulnérabilités CVE.
‫Le CVE est cette base de données de toutes les vulnérabilités des
‫donateurs open source dont nous entendons tous parler dans les nouvelles.
‫Cela vient de Mitre, une entreprise qui gère cette base de données.
‫Ceci est une chose de la communauté, à droite.
‫Chaque fois que quelqu'un trouve une vulnérabilité dans un logiciel, il l'insère
‫et obtient un numéro CVE.
‫C'est une vulnérabilité et des exploits communs, quelque
‫chose comme ça.
‫Je ne me souviens pas exactement de ce que CVE signifie.
‫Je suis sûr que l'un de vous me dira en conversation.
‫Mais CVE obtient un numéro, d'accord.
‫Nous voyons un numéro attribué à ce
‫bogue connu dans la communauté. Un scanner CVE analysera vos images
‫pour cette vulnérabilité.
‫Une fois que vous avez commencé à les implémenter,
‫il y a toutes sortes de minuties, comme le scanner dont vous
‫avez besoin pour exécuter l'image Docker pendant la phase de construction.
‫Ou numérise-t-il une image déjà construite?
‫Ce scanner prend-il en charge votre
‫distribution de base? Est-ce qu'il supporte Red Hat?
‫Est-ce qu'il supporte Alpine?
‫Toutes les autres images de distribution que vous avez
‫choisies d’utiliser vont-elles les supporter?
‫Est-ce que cela supporte aussi votre gestionnaire de paquets pour votre application
‫comme npm ou
‫pip, ou l’une des autres douzaines de gestionnaires de
‫paquets là-bas, à droite. Est-ce que cela les soutient aussi?
‫MicroScanner n'a
‫pas fait tout cela. Il en a fait une
‫partie, mais comme beaucoup d'autres outils de l'écosystème, ils n'ont pas tout fait.
‫En ce moment, celui de Aqua Security appelé Trivy,
‫va
‫jusqu'au bout de cette chose.
‫Trivy affirme être le scanner gratuit
‫à code source ouvert le plus complet qui soit.
‫En bas, vous verrez ce qu'ils soutiennent.
‫Vous remarquerez qu'ils supportent toutes ces images basées.
‫Ensuite, si vous tombez en panne, une comparaison les
‫comparera à tous les autres outils, ou du
‫moins aux versions open source populaires de
‫ces outils. Il y a définitivement plus d'outils que cela.
‫Il y a beaucoup de choix que vous devez faire ici.
‫Un choix est où je veux numériser?
‫Est-ce que je veux que mon référentiel d'images les analyse lui-même, comme
‫le fait Docker Enterprise DTR?
‫Lorsque vous avez un registre contenant vos images et
‫que ce registre exécute des analyses sur les images du
‫registre lui-même en une fois.
‫Quay le fait aussi. Quay est un référentiel
‫d'images hébergeant un nuage et il effectuera également une analyse, non?
‫Chacun de ces scanners n’analyse pas toujours tous les types d’images et
‫toutes les dépendances de l’application.
‫Donc, c'est plutôt cool ici qu'ils montrent ... fondamentalement, le X signifie
‫qu'ils ne le font pas.
‫Le 0 ou le 0, le cercle, signifie qu'ils
‫le font. Ensuite, je
‫pense que le double OO ici signifie
‫le meilleur, et le triangle signifie qu'il y a
‫des problèmes, des préoccupations.
‫Donc, ils réclament en quelque sorte ce Trivy, qu'ils ont acheté cette année,
‫je crois.
‫Trivy fait tout. Il fait des paquets de système d'exploitation, dépendances d'application.
‫Ils prétendent que c'est facile à utiliser.
‫Ils prétendent que c'est plus précis. Si vous commencez à
‫lire ceci, vous vous rendrez compte que l'un des gros problèmes dont
‫je ne cesse de parler est que l'image de base d'Alpine ne fonctionne
‫pas avec presque tous ces scanners.
‫La base de données de vulnérabilités n'y est pas connectée
‫correctement. Par conséquent, lorsque vous exécutez ces scanners,
‫elle détecte les vulnérabilités dans Alpine.
‫Trivy prétend qu'ils ont résolu le problème
‫par une nouvelle méthode qu'ils implémentent, et nous verrons si
‫d'autres personnes l'appliquent également.
‫Ils prétendent être les plus complets.
‫Beaucoup de mes amis capitaine de Docker disent tous qu'ils l'utilisent et
‫le font très bien.
‫L'une des autres décisions, outre quel scanner, est où
‫allez-vous scanner?
‫J'aime numériser pendant la construction de l'image.
‫Je préférerais numériser lors de la génération
‫d'image automatisée CI plutôt que de la numériser plus tard, une fois l'image créée.
‫Ce n'est que moi.
‫Vous pouvez même avoir différents systèmes qui analysent à
‫des moments différents, juste pour être sûr, juste,
‫juste pour être certain. Certains systèmes peuvent analyser les
‫serveurs en production, en fonction de votre
‫environnement. Ce n'est pas très commun.
‫Toutefois, si vous souhaitez analyser des éléments en direct
‫sur un environnement extrêmement sécurisé, vous pouvez certainement le faire avec certains
‫de ces outils.
‫Une démo que je donne souvent
‫concerne MicroScanner. Pour l'essentiel, tout ce
‫que vous avez à faire dans MicroScanner, ainsi que cet
‫autre outil, est dans MicroScanner, vous pouvez l'ajouter à votre fichier Docker.
‫Je crois que l'application Tivey vous permet de numériser une
‫fois l'image créée.
‫Si vous êtes super paranoïaque, vous pouvez simplement
‫utiliser un MicroScanner dans votre image Docker.
‫Ensuite, vous pouvez exécuter quelque chose comme Tivey après coup sur
‫les images avant qu'elles ne soient envoyées
‫au registre, vous savez. Vous pouvez toujours les télécharger plus
‫tard, mais j'aime bien savoir que mon image ne contient aucune
‫vulnérabilité avant de l'envoyer.
‫Donc, c'est ce que vous pourriez faire là-bas. Maintenant.
‫Je veux juste vous dire un avertissement.
‫Vous n'allez probablement pas en avoir ... vous n'allez
‫probablement pas avoir d'images, ou peut-être juste quelques
‫images, qui n'ont aucune vulnérabilité à
‫tous les niveaux. C'est juste en raison
‫de la nature de l'open source. Généralement, si vous
‫numérisez une image, elle comporte
‫des vulnérabilités.
‫C'est à vous de travailler avec votre équipe de sécurité
‫sur ce qui est acceptable. Nous ne pourrons jamais avoir de vulnérabilités.
‫Parce que certaines vulnérabilités peuvent même ne pas s'appliquer à vous.
‫Ce n'est pas parce qu'ils sont à votre image
‫qu'ils vont automatiquement poser problème.
‫Vous allez devoir
‫travailler. Je pense que ce que je suggérerais,
‫c’est de les mettre en œuvre
‫maintenant, mais désactiver ce type d’échec et dire continuer sur
‫échec ici, c’est-à-dire que tout ce que je vais faire, c’est que je
‫vais vous avertir qu’il ya des vulnérabilités. Je ne vais pas arrêter la construction simplement
‫parce qu'il y a une vulnérabilité.
‫Ceci est essentiel car si vous
‫commencez à implémenter automatiquement tous ces outils, ils échoueront.
‫Ils échoueront dans votre CI ou dans vos builds,
‫si vous les allumez. Vous voulez vous
‫assurer que vous les avez dans une sorte de mode audit seulement où ils
‫ne manquent pas de trouver une vulnérabilité.
‫De cette façon, vous pourrez au moins connaître les vulnérabilités avant
‫de commencer, vous savez, avant de vous lancer dans le
‫hardcore, non? Avant de vous rendre hardcore.