Plan de vol pour : Analyse statique et dynamique automatisée de la sécurité des applications

Ce Propulseur a été créé et la documentation rédigée par Parabellyx

Les Propulseurs de l’ATIR sont des jeux structurés de ressources en nuage, documentation incluse, illustrant une technologie émergente. Offerts gratuitement, ils ont été conçus par des entreprises canadiennes d’expérience qui ont élaboré des produits ou des services au moyen de la technologie en question et ont accepté de partager leur savoir.

Prêt à décoller?

Voici ce que vous trouverez dans ce Plan de vol.

Aperçu

Qu’est-ce que Argus?

Argus est un cadriciel servant à tester la sécurité des applications. Grâce à lui, il est possible de déployer une plateforme pour effectuer des essais de sécurité qui s’intègre facilement au flux de tâches caractéristique associé au développement d’un logiciel. Argus repose sur l’infrastructure Kubernetes (K3s), laquelle autorise un déploiement rapide dans le nuage de l’ATIR et permet à l’entreprise d’amorcer des essais de sécurité statiques (SAST) ou dynamiques (DAST), plus avancés, sur les applications. Si le regroupement des outils nécessaires aux cadriciel d’essai en facilite et en accélère le déploiement, le sujet demeure néanmoins complexe et des compétences techniques sont nécessaires pour bien maîtriser la solution. Le projet se divise en deux. La première partie, plus simple, concerne la configuration de l’analyse SAST; la seconde (DAST) s’adresse à ceux qui aimeraient automatiser les essais sur leur application Web après son déploiement.

Quelle en est l’utilité pour mon entreprise?

Ajouter un système structuré pour vérifier la sécurité des applications au processus de développement des logiciels vous aidera à garantir que ces derniers n’ont pas de vulnérabilités et à rendre le codage plus homogène. En vérifiant la présence de vulnérabilités et en uniformisant le codage, vous rehausserez la qualité des logiciels et renforcerez la confiance de l’utilisateur en lui montrant qu’on a contrôlé la qualité de l’application sur le plan de la sécurité et que des mesures ont été prises en ce sens.

Analyse SAST

Argus recourt à une solution gratuite de source ouverte pour aider le développeur à se familiariser avec l’analyse par essais de sécurité statiques (SAST) et à saisir les problèmes de sécurité illustrés. Cette solution peut être installée dans le nuage de l’ATIR (ou sur les lieux, ou chez soi) aux fins d’apprentissage ou d’expérimentation. Vous n’aurez besoin pour cela que d’une machine virtuelle et d’un accès au code source de l’application.

Bien que des solutions SAST existent dans le commerce, certaines mises en garde s’imposent. Quelques-unes proposent un volet gratuit ou peu coûteux, mais exigent que le code de base soit versé dans un dépôt public. D’autres s’adressent aux développeurs qui désirent tester leur produit et pourraient ne pas donner accès aux fonctionnalités qui règleront les problèmes de sécurité soulevés par le code. Autre préoccupation : certaines solutions SAST n’indiquent pas de prix, ce qui vous obligera à consulter le personnel de vente pour le connaître.

Analyse DAST

Les applications DAST gratuites de qualité production sont peu nombreuses, problème auquel Argus tente de remédier en utilisant Zaproxy, outil de source ouverte populaire. En combinant Zaproxy aux pratiques exemplaires en usage dans la profession, on apprendra à intégrer une solution DAST au pipeline d’intégration et de diffusion (CI/CD) continues.

Pratiques exemplaires

Encryptage HTTPS

Nous préconisons vivement l’usage d’un certificat HTTPS valide afin que les communications entre client et serveur soient chiffrées. Veuillez lire la partie « Sécurité » de la solution type pour savoir comment utiliser les certificats TLS. L’organisation qui ne possède pas déjà de certificat SSL/TLS ni de domaine enregistré sur DNS pourra recourir à Let’s Encrypt, mais cette solution n’est pas celle qu’on privilégie dans un environnement de production.

Stratégie de rechange

Argus a été conçu pour être déployé sur K3s, version allégée de Kubernetes qu’on peut installer sur une seule machine virtuelle (MV). K3s simplifie le processus, si bien qu’il n’est pas nécessaire de maîtriser à la perfection Kubernetes ni de mettre en place tous ses composants pour l’utiliser. On peut donc sauvegarder la MV à l’aide d’instantanés puis la restaurer aisément. Tout le monde n’adoptera pas cette stratégie, mais elle permet d’essayer rapidement le projet Argus et de revenir à une copie antérieure sans recourir à des solutions plus onéreuses. L’organisation qui aimerait utiliser Argus dans un environnement Kubernetes intégral pourra accéder aux fichiers YAML dans le dépôt du code source et adapter celui-ci en fonction de leurs besoins (si elle souhaite se servir de modules comme FluxCD pour un flux de tâches plus axé sur le DevOps).

Mots de passe de l’administrateur

La solution type vient avec de solides mots de passe par défaut pour l’administrateur. On évitera de conserver ces mots de passe dans le dépôt du code source et utilisera plutôt la fonctionnalité « secrets » qui accompagne les outils du pipeline CI/CD ou on les dissimulera cachera de façon sécuritaire dans un nuage.

Trucs et hics

Truc

Problème entre le certificat HTTPS et SonarScanner

Si vous avez installé un certificat HTTPS valide avec Let’s Encrypt et que le SonarScanner a du mal à se connecter à l’analyseur SonarQube, il se peut que vous découvriez un certificat non valide dans le journal des erreurs. Pour déterminer si le certificat HTTPS est valide ou pas, exécutez la commande ci-dessous sur une plateforme Linux (où [server] correspond au nom de domaine complet – FQDN – ou à l’adresse IP publique).

openssl s_client -connect [server]:443

Examinez le résultat pour savoir s’il y a des erreurs de communication. Parfois, le nom de l’émetteur peut manquer sur le certificat. L’organisation qui utilise Terraform lira les instructions du fournisseur de la plateforme ACME concernant la création de certificats HTTPS avec Let’s Encrypt https://registry.terraform.io/providers/vancluever/acme/latest/docs/resources/certificate#certificate_pem.

Oubli du mot de passe par défaut

Connectez-vous au serveur Argus et allez à /opt/argus/argus-infra-dair/secrets. Parcourez les fichiers avec le postfixe .secret pour retrouver le mot de passe.

Panne totale d’Argus

Si vous devez relancer Argus avec les valeurs par défaut d’origine, ouvrez une séance sur le serveur Argus par SSH et allez au répertoire /opt/argus/argus-infra-dair.

Ensuite, exécutez les commandes que voici :

kubectl kustomization | kubectl delete -f -
kubectl kustomization | kubectl apply -f -

Attendez dix minutes que les conteneurs soient chargés et configurez les applications. Une autre méthode consisterait à l’instance que vous avez créée dans l’ATIR et de redéployer le Propulseur de Parabellyx.

Hics

Il arrive, mais rarement, que l’analyse DAST démolisse une application Web. Il vaut mieux bâtir l’application avec des technologies utilisant les pratiques CI/CD adéquates. Si l’application ne fonctionne plus après l’analyse, redéployez-la simplement (l’automatisation du pipeline CI/CD vous épargnera un temps considérable).

Ressources

Consultez les tutoriels et la documentation énumérés ci-dessous pour en savoir plus sur cette technologie et son utilisation.

Voici une liste partielle des tutoriels que nous jugeons les plus utiles.

ContenuRésumé
10 formidables vidéos sur ZapSimon Bennetts a accompli un travail fantastique en offrant à ceux qui recourent aux sources ouvertes un outil auparavant inexistant, mais désormais facilement accessible. Ce lien mène à dix vidéos qui vous aideront à comprendre comment utiliser Zaproxy.
Site officiel de KubernetesLe site de Kubernetes contient de l’information facile à lire expliquant comment fonctionne le logiciel. Beaucoup de leçons présentées sur le site s’appliquent à K3s.
Documentation de SonarQubeLe site officiel de SonarQube donne une foule de détails sur l’usage et l’extension du logiciel selon les circonstances. Si vous avez vos propres pipelines d’intégration continue (CI), ce site vous procurera des instructions détaillées sur la façon de l’intégrer à SonarQube.

Documentation

Le tableau ci-dessous propose un jeu de documents utiles sur l’Argus.

DocumentRésumé
Dépôt et documentation sur GitHubVous le trouverez ici.

Soutien

À titre de membre de l’ATIR, vous avez accès au soutien dispensé pour ce Propulseur. Si vous avez des questions, posez-les sur le canal Slack de l’ATIR (c’est le moyen le plus rapide pour obtenir une réponse). Sinon, envoyez-les à DAIR.Admin@canarie.ca.

Compris? Maintenant laissez-nous vous montrer comme nous avons déployé HLF dans le nuage de l’ATIR…

Solution type du projet Argus

Pour les petites équipes de développement qui aimeraient vérifier la sécurité de leur logiciel, la solution type illustre comment analyser la sécurité du code source et détecter les vulnérabilités éventuelles sur les applications qui ont été déployées. Contrairement aux solutions commerciales, la solution type vous permettra d’installer rapidement une solution SAST/DAST complète que vous pourrez modifier afin de commencer à rechercher les vulnérabilités dans le code de l’application ou dans celle-ci, si elle a déjà été déployée sur le Web.

Lisez la page Solution type : déploiement rapide de l’analyse statique de la sécurité des applications (SAST) pour en apprendre davantage sur le fonctionnement de la solution type.

La solution type recourt aux technologies Jenkins, SonarQube, Zaproxy sur K3s, dont on trouvera la description dans les parties subséquentes.