{"id":31512,"date":"2022-05-09T10:51:21","date_gmt":"2022-05-09T14:51:21","guid":{"rendered":"https:\/\/www.canarie.ca\/?page_id=31512"},"modified":"2024-10-30T09:47:15","modified_gmt":"2024-10-30T13:47:15","slug":"solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast","status":"publish","type":"page","link":"https:\/\/www.canarie.ca\/fr\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/","title":{"rendered":"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST)"},"content":{"rendered":"\n<section class=\"section section--banner simple-fade light-blue alignfull\">\n  <div class=\"grid-container text-center\">\n  \t\t  \t\t  \t  <div class=\"large\"><p><span class=\"TextRun SCXW20856404 BCX0\" lang=\"EN-CA\" xml:lang=\"EN-CA\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW20856404 BCX0\">Bien que le programme ATIR <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">n\u2019accepte<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> plus les <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">demandes<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> pour les <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">ressources<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">en<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">nuage<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\">, <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">vous<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">avez<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">toujours<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">acc\u00e8s<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> aux <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">Propulseurs<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> et \u00e0 <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">leur<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> documentation, qui <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">seront<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">pr\u00e9serv\u00e9s<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> et <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">b\u00e9n\u00e9ficieront<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> d\u2019un <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">soutien<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">jusqu\u2019au<\/span><strong><span class=\"NormalTextRun SCXW20856404 BCX0\"> 17 <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">janvier<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> 2025.<\/span><\/strong><\/span><strong><span class=\"EOP SCXW20856404 BCX0\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/strong><\/p>\n<\/div>\n\t  \t  \t\t  <\/div>\n<\/section>\n\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Apr\u00e8s le 17 janvier 2025:\u00a0<\/h3>\n                    <ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les saisies d\u2019\u00e9cran devraient rester fid\u00e8les, mais au lieu de vous connecter \u00e0 votre compte ATIR dans AWS quand on vous le demande, vous devrez vous connecter \u00e0 un compte AWS personnel.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les liens vers les scripts CloudFormation d\u2019AWS permettant le d\u00e9ploiement automatique de l\u2019application type devraient rester les m\u00eames et \u00eatre fonctionnels.<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les liens vers les d\u00e9p\u00f4ts GitHub permettant de t\u00e9l\u00e9charger le code source du Propulseur resteront valables puisque c\u2019est le cr\u00e9ateur du Propulseur (celui qui a \u00e9labor\u00e9 les applications de source ouverte servant d\u2019exemple) qui en est le propri\u00e9taire et en assure le maintien.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n\n<section class=\"section section--text-with-image  alignfull full-width grey \">\n    <div class=\"grid-container simple-fade\">\n    <div class=\"grid-x grid-padding-x align-middle\">\n      <div class=\"cell large-6 medium-order-2\">\n\t\t  \t\t\t  <div class=\"full-width-img\" style=\"background-image: url(https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/08\/DAIR-Web-Graphics-3.png); background-size: cover; background-position: center center;\"><\/div>\n\t\t\t  <div class=\"image-mask\"><\/div>\n\t\t        <\/div>\n      <div class=\"cell large-6 medium-order-1 text-left text-cell light\">\n  \t\t                          <div class=\"fade-in-delay text-cell-text\"><h1 id=\"block-439a3dfd-632a-46be-9cdc-29fc06ab9ee4\" class=\"block-editor-rich-text__editable block-editor-block-list__block wp-block is-selected wp-block-heading rich-text\" tabindex=\"0\" role=\"document\" contenteditable=\"true\" aria-multiline=\"true\" aria-label=\"Block: Heading\" data-block=\"439a3dfd-632a-46be-9cdc-29fc06ab9ee4\" data-type=\"core\/heading\" data-title=\"Heading\">D\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST)<\/h1>\n<p>Voici ce que vous trouverez dans cet solution type :<\/p>\n<ul>\n<li><a href=\"#introduction\">Introduction<\/a><\/li>\n<li><a href=\"#samplesolution\">SAST \u2013 Solution type<\/a><\/li>\n<li><a href=\"#deploiement\">D\u00e9ploiement et configuration<\/a><\/li>\n<li><a href=\"#demonstration\">D\u00e9monstration de la technologie<\/a><\/li>\n<li><a href=\"#conclusion\">Conclusion<\/a><\/li>\n<li><a href=\"#considerations\">Consid\u00e9rations<\/a><\/li>\n<li><a href=\"#code\">Code de lancement<\/a><\/li>\n<li><a href=\"#glossaire\">Glossaire<\/a><\/li>\n<\/ul>\n<\/div>\n                      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n\n<div id=\"introduction\" class=\"anchor-link\"><\/div>\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Introduction<\/h3>\n                    <p>La solution type montre comment Parabellyx utilise Jenkins\/SonarQube avec Kubernetes pour d\u00e9celer les vuln\u00e9rabilit\u00e9s dans les logiciels de l\u2019organisation en int\u00e9grant des essais de s\u00e9curit\u00e9 statiques (SAST) ou dynamiques (DAST) \u00e0 son pipeline de d\u00e9veloppement. La solution est divis\u00e9e en deux\u00a0: la premi\u00e8re partie illustre comment configurer l\u2019analyse SAST et la seconde, comment configurer les essais dynamiques (DAST), plus complexes. L\u2019analyse DAST automatise les essais de s\u00e9curit\u00e9 sur une application Web apr\u00e8s son d\u00e9ploiement.<\/p>\n<h3>Probl\u00e9matique<\/h3>\n<p>Comme on peut le lire dans le Plan de vol, les vuln\u00e9rabilit\u00e9s d\u2019un logiciel peuvent rendre une infrastructure capitale inutilisable ou exposer des donn\u00e9es confidentielles ou personnelles. En adoptant des mesures pour d\u00e9tecter les vuln\u00e9rabilit\u00e9s quand d\u00e9bute le d\u00e9veloppement du logiciel, on att\u00e9nuera les risques tr\u00e8s co\u00fbteux associ\u00e9s au piratage d\u2019une application.<\/p>\n<p>Le projet Argus est un syst\u00e8me all\u00e9g\u00e9 qui cr\u00e9e rapidement les outils permettant d\u2019int\u00e9grer la v\u00e9rification du code source au moyen d\u2019essais statiques et les applications d\u00e9j\u00e0 \u00e9t\u00e9 d\u00e9ploy\u00e9es sur le Web au moyen d\u2019essais dynamiques. Gr\u00e2ce \u00e0 cette solution de source ouverte, l\u2019organisation apprendra comment int\u00e9grer l\u2019analyse SAST\/DAST \u00e0 son processus de d\u00e9veloppement sans avoir \u00e0 acheter une des solutions SAST\/DAST propos\u00e9es sur le march\u00e9. En raison de sa nature modulaire, le projet Argus laissera \u00e0 l\u2019organisation la libert\u00e9 de choisir la solution SAST\/DAST compl\u00e8te ou une partie de celle-ci.<\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<div id=\"samplesolution\" class=\"anchor-link\"><\/div>\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>SAST diagramme<\/h3>\n                    <p>Le sch\u00e9ma ci-dessous illustre la structure de la solution type.<\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"437\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png\" alt=\"\" class=\"wp-image-31515\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram-300x210.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><figcaption class=\"wp-element-caption\">Structure de la solution type SAST<\/figcaption><\/figure>\n<\/div>\n\n\n<p>La solution compl\u00e8te (analyses SAST et DAST) est d\u00e9ploy\u00e9e sur l\u2019instance d\u2019une machine virtuelle dans le nuage de l\u2019ATIR. Cette instance utilise K3s, version all\u00e9g\u00e9e de Kubernetes, pour g\u00e9rer les trois applications n\u00e9cessaires au fonctionnement de la solution SAST.<\/p>\n\n\n\n<ol class=\"wp-block-list\" style=\"list-style-type:1\">\n<li><em>Traefik<\/em> pour g\u00e9rer les entr\u00e9es.<em><\/em><\/li>\n\n\n\n<li><em>SonarQube<\/em> pour v\u00e9rifier si le code source dissimule des vuln\u00e9rabilit\u00e9s ou si le codage laisse \u00e0 d\u00e9sirer.<\/li>\n\n\n\n<li>&nbsp;<em>Jenkins<\/em> pour automatiser l\u2019extraction du code source, sa v\u00e9rification et la transmission des r\u00e9sultats \u00e0 <em>SonarQube<\/em>.<\/li>\n<\/ol>\n\n\n\n<p>The SAST La solution SAST sera configur\u00e9e pour v\u00e9rifier le code source de l\u2019application servant d\u2019exemple, gard\u00e9e dans un d\u00e9p\u00f4t (p.&nbsp;ex., Github, GitLab ou BitBucket).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"composant\">Composant<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes no-search align-top\"><table><thead><tr><th><strong>Composant<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Plateforme en nuage de l\u2019ATIR<\/strong><\/td><td>Elle sert d\u2019interface Web aux participants, en leur permettant d\u2019acc\u00e9der aux ressources gard\u00e9es dans le nuage et de les g\u00e9rer.<\/td><\/tr><tr><td><strong>K3s<\/strong><\/td><td>Version all\u00e9g\u00e9e de Kubernetes propos\u00e9e par la Cloud Native Computing Foundation (CNCF). K3s a les m\u00eames fonctionnalit\u00e9s que Kubernetes, mais se pr\u00eate mieux aux syst\u00e8mes dont les ressources sont limit\u00e9es.<\/td><\/tr><tr><td><strong>Gestionnaire de code source (GCS)<\/strong><\/td><td>Logiciel employ\u00e9 par les d\u00e9veloppeurs pour suivre les modifications apport\u00e9es au code source. Subversion et Git en sont des exemples populaires.<\/td><\/tr><tr><td><strong>Jenkins<\/strong><\/td><td>Outil d\u2019automatisation de source ouverte dont l\u2019organisation pourra se servir pour configurer l\u2019int\u00e9gration et le d\u00e9ploiement de ses logiciels en continu.<\/td><\/tr><tr><td><strong>SonarQube<\/strong><\/td><td>Outil de source ouverte v\u00e9rifiant le code source dans diff\u00e9rents langages de programmation afin d\u2019en d\u00e9celer les vuln\u00e9rabilit\u00e9s et d\u2019aider l\u2019organisation \u00e0 am\u00e9liorer ses m\u00e9thodes de d\u00e9veloppement.<\/td><\/tr><tr><td><strong>Zaproxy<\/strong><\/td><td>Produit DAST de source ouverte abondamment employ\u00e9 pour d\u00e9tecter les vuln\u00e9rabilit\u00e9s des applications Web en fonction des vuln\u00e9rabilit\u00e9s les plus fr\u00e9quentes recens\u00e9es par l\u2019Open Web Application Security Project (OWASP). &nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Ce que vous devriez avoir fait avant de d\u00e9ployer la solution type<\/h2>\n\n\n\n<ol class=\"wp-block-list\" style=\"list-style-type:1\">\n<li>Avoir cr\u00e9\u00e9 une <a href=\"https:\/\/docs.aws.amazon.com\/fr_fr\/AWSEC2\/latest\/UserGuide\/security-group-rules.html\">r\u00e8gle de groupe de s\u00e9curit\u00e9<\/a> vous permettant d\u2019acc\u00e9der aux machines virtuelles (MV) du Nuage de l\u2019ATIR \u00e0 partir de l\u2019adresse IP utilis\u00e9e, par le protocole SSH (port&nbsp;22 du protocole TCP).<\/li>\n\n\n\n<li>Avoir cr\u00e9\u00e9 la <a href=\"https:\/\/docs.aws.amazon.com\/fr_fr\/AWSEC2\/latest\/UserGuide\/create-key-pairs.html#having-ec2-create-your-key-pair\">paire de cl\u00e9s SSH<\/a> (bicl\u00e9) avec laquelle vous vous connecterez \u00e0 vos MV de l\u2019ATIR.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link has-light-grey-color has-cyan-background-color has-text-color has-background wp-element-button\" href=\"https:\/\/docs.aws.amazon.com\/fr_fr\/vpc\/latest\/userguide\/security-group-rules.html#adding-security-group-rules\"><strong>Ajouter des r\u00e8gles entrantes \u00e0 un groupe de s\u00e9curit\u00e9 dans AWS<\/strong><\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"deploiment\">D\u00e9ploiement et configuration<\/h3>\n\n\n\n<p>Pour d\u00e9ployer la solution type, les participants de l\u2019ATIR n\u2019ont qu\u2019\u00e0 suivre les \u00e9tapes d\u00e9crites ci-dessous.<\/p>\n\n\n\n<p>Pour d\u00e9ployer la solution type, les participants de l\u2019ATIR n\u2019ont qu\u2019\u00e0 suivre les \u00e9tapes d\u00e9crites ci-dessous.<\/p>\n\n\n\n<ol class=\"wp-block-list\" style=\"list-style-type:1\">\n<li>Connectez-vous \u00e0 votre compte AWS de l\u2019ATIR en suivant les instructions que vous a fournies l\u2019\u00e9quipe de l\u2019ATIR.<\/li>\n\n\n\n<li>Ouvrez une autre fen\u00eatre dans le navigateur et rendez-vous sur la page du <a href=\"https:\/\/www.canarie.ca\/fr\/nuage\/propulseurs\/\">Catalogue des Propulseurs de l\u2019ATIR<\/a> puis \u00e0 la section de Parabelllyx (Analyse statique et dynamique automatis\u00e9e de la s\u00e9curit\u00e9 des applications) et cliquez <strong>D\u00c9PLOYER<\/strong> pour lancer le Propulseur avec la pile AWS Cloudformation.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"431\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-19.png\" alt=\"\" class=\"wp-image-40298\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-19.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-19-300x133.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-19-768x339.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Remplir le formulaire de configuration<\/strong><\/p>\n\n\n\n<p>Cliquez <strong>Suivant <\/strong>pour passer \u00e0 la deuxi\u00e8me \u00e9tape de Cloudformation et remplissez le formulaire de configuration. Dans le champ <strong>InstanceName<\/strong>, donnez un nom unique \u00e0 l\u2019instance de votre serveur d\u2019application, puis compl\u00e9tez le formulaire avec les menus d\u00e9roulants. <\/p>\n\n\n\n<p>Veuillez noter que certains param\u00e8tres comme <strong>ApplicationImage<\/strong> et <strong>InstanceType<\/strong> sont d\u00e9j\u00e0 configur\u00e9s et ne peuvent \u00eatre modifi\u00e9s.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"945\" height=\"498\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-20.png\" alt=\"\" class=\"wp-image-40300\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-20.png 945w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-20-300x158.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-20-768x405.png 768w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/figure>\n<\/div>\n\n\n<p>Cliquez <strong>SUIVANT<\/strong> pour passer \u00e0 la troisi\u00e8me \u00e9tape de CloudFormation. Cette partie concerne la configuration d\u2019options avanc\u00e9es ou suppl\u00e9mentaires, inutiles dans le cas qui nous int\u00e9resse. Cliquez simplement <strong>Suivant<\/strong> au bas de la page pour sauter cette \u00e9tape et passer \u00e0 la quatri\u00e8me et derni\u00e8re de CloudFormation.<\/p>\n\n\n\n<p>La derni\u00e8re partie vous permet de v\u00e9rifier la configuration actuelle du Propulseur et d\u2019y apporter des modifications avec le bouton <strong>Modifier<\/strong>, si vous le d\u00e9sirez. Une fois que la configuration vous convient, cliquez <strong>Soumettre<\/strong>, au bas de la page, pour d\u00e9ployer le Propulseur.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"819\" height=\"507\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-21.png\" alt=\"\" class=\"wp-image-40302\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-21.png 819w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-21-300x186.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-21-768x475.png 768w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\" \/><\/figure>\n\n\n\n<p>Le d\u00e9ploiement commence par la cr\u00e9ation d\u2019une nouvelle instance. Le reste est automatique. Suivre le d\u00e9veloppement de l\u2019instance AWS n\u2019est possible qu\u2019avec les onglets <strong>\u00c9v\u00e9nements<\/strong> et <strong>Ressources<\/strong> de la console CloudFormation. Pour v\u00e9rifier l\u2019avancement du d\u00e9ploiement, vous devrez donc vous connecter au serveur de l\u2019application.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"342\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-22.png\" alt=\"\" class=\"wp-image-40304\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-22.png 750w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-22-300x137.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n<\/div>\n\n\n<p>Notez l\u2019adresse IP qui appara\u00eet sur l\u2019onglet <strong>Sorties <\/strong>de la page CloudFormation du Propulseur. Il s\u2019agit de l\u2019adresse IP externe de l\u2019instance qui vient d\u2019\u00eatre cr\u00e9\u00e9e. Vous en aurez besoin pour acc\u00e9der \u00e0 l\u2019interface web de l\u2019application ou vous connecter au serveur par le protocole SSH.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"287\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-23.png\" alt=\"\" class=\"wp-image-40306\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-23.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-23-300x88.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-23-768x226.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>Connectez-vous au serveur de l\u2019application \u00e0 partir d\u2019une coquille ou d\u2019un terminal utilisant le protocole SSH avec la commande suivante&nbsp;:<\/p>\n\n\n\n<p><kbd>ssh -i key_file.pem ubuntu@IP<\/kbd><\/p>\n\n\n\n<p>Remplacez \u00ab&nbsp;key_file&nbsp;\u00bb par la cl\u00e9 priv\u00e9e de la bicl\u00e9 SSH choisie sur le formulaire des param\u00e8tres de configuration de la console CloudFormation et remplacez \u00ab&nbsp;IP&nbsp;\u00bb par l\u2019adresse IP fournie, que vous avez pr\u00e9c\u00e9demment not\u00e9e.<\/p>\n\n\n\n<p>Une fois la connexion avec le serveur de l\u2019application \u00e9tablie, vous pourrez suivre le d\u00e9ploiement du script d\u2019automatisation avec les commandes que voici&nbsp;:<\/p>\n\n\n\n<p><kbd>source \/etc\/profile.d\/boosterpack.sh<\/kbd><\/p>\n\n\n\n<p><kbd>tail -f \/var\/log\/boosterpack.log<\/kbd><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"313\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-24.png\" alt=\"\" class=\"wp-image-40308\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-24.png 780w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-24-300x120.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/image-24-768x308.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/figure>\n<\/div>\n\n\n<p>Le d\u00e9ploiement dure en moyenne sept \u00e0 dix minutes.<\/p>\n\n\n\n<p>Pendant ce temps\u2026<\/p>\n\n\n\n<p>Allez \u00e0 la page de configuration des groupes de s\u00e9curit\u00e9 dans AWS afin d\u2019ajouter des r\u00e8gles entrantes au groupe de s\u00e9curit\u00e9 par d\u00e9faut s\u00e9lectionn\u00e9 lors du param\u00e9trage de la console CloudFormation.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.aws.amazon.com\/fr_fr\/vpc\/latest\/userguide\/security-group-rules.html#adding-security-group-rules\">Plus sur les groupes de s\u00e9curit\u00e9 d\u2019AWS.<\/a><\/p>\n\n\n\n<p>Assurez-vous que le groupe de s\u00e9curit\u00e9 choisi pour cette MV comprend des r\u00e8gles entrantes qui donneront acc\u00e8s au port&nbsp;22 (SSH), au port&nbsp;80 (HTTP) et au port 443 (HTTPS) \u00e0 partir de votre adresse IP externe, afin que vous seul puissiez acc\u00e9der \u00e0 la MV.<\/p>\n\n\n\n<p>Pour v\u00e9rifier si l\u2019orchestration s\u2019est bien d\u00e9roul\u00e9e, ex\u00e9cutez la commande qui suit pendant que vous \u00eates connect\u00e9 au serveur de l\u2019application&nbsp;:<\/p>\n\n\n\n<p><kbd>sudo kubectl get po -A<\/kbd><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuration et lancement de l\u2019application<\/h2>\n\n\n\n<p>Ouvrez une s\u00e9ance sur SonarQube pour cr\u00e9er un projet qui g\u00e8rera les m\u00e9thodes de codage et les vuln\u00e9rabilit\u00e9s.<\/p>\n\n\n\n<p>Ensuite, ouvrez une s\u00e9ance dans Jenkins pour cr\u00e9er le pipeline qui \u00e9tablira la communication avec le gestionnaire de code source et configurera Jenkins.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration de SonarQube<\/h3>\n\n\n\n<p>1. Acc\u00e9dez au tableau de bord de SonarQube en suivant le lien https:\/\/[adresse.ip.externe]\/sonar (<a href=\"https:\/\/3.97.188.167\/sonar\">https:\/\/3.97.188.167\/sonar<\/a> dans notre exemple).<\/p>\n\n\n\n<p><em>Si vous n\u2019avez pas de certificat HTTPS valide, un avertissement signalera l\u2019existence d\u2019un risque sur le plan de la s\u00e9curit\u00e9. Pour l\u2019instant, v\u00e9rifiez simplement que l\u2019URL est le bon et poursuivez en vous rendant sur la page Web.<\/em><br>2. Saisissez \u00ab&nbsp;admin&nbsp;\u00bb et \u00ab&nbsp;admin&nbsp;\u00bb comme identifiants pour SonarQube.<\/p>\n\n\n\n<p>3. Modifiez le mot de passe par d\u00e9faut.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"439\" height=\"456\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-102.png\" alt=\"\" class=\"wp-image-31984\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-102.png 439w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-102-289x300.png 289w\" sizes=\"auto, (max-width: 439px) 100vw, 439px\" \/><\/figure>\n<\/div>\n\n\n<p><br>4. Lorsque vous aurez actualis\u00e9 le mod de passe, vous verrez s\u2019afficher une page \u00e9num\u00e9rant les possibilit\u00e9s d\u2019int\u00e9gration pour la plateforme DevOps ou vous permettant de configurer le projet manuellement.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"492\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-103.png\" alt=\"\" class=\"wp-image-31986\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-103.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-103-300x151.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-103-768x388.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>Nous vous conseillons maintenant de cr\u00e9er un autre utilisateur que l\u2019administrateur.<\/p>\n\n\n\n<p>5. Cliquez <strong>Administration<\/strong> dans le menu sup\u00e9rieur, puis le menu d\u00e9roulant <strong>Security<\/strong> et s\u00e9lectionnez <strong>Users<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"258\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-104.png\" alt=\"\" class=\"wp-image-31988\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-104.png 706w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-104-300x110.png 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n<\/div>\n\n\n<p>6. Cliquez <strong>Create User<\/strong> dans le coin sup\u00e9rieur droit. Pour la solution type, nous baptiserons cet utilisateur \u00ab&nbsp;<em>developer1<\/em>&nbsp;\u00bb.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"433\" height=\"533\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-105.png\" alt=\"\" class=\"wp-image-31990\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-105.png 433w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-105-244x300.png 244w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/figure>\n<\/div>\n\n\n<p>Pour le reste, nous utiliserons le compte <em>developer1<\/em>. La configuration de Jenkins peut maintenant d\u00e9buter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration de Jenkins<\/h3>\n\n\n\n<p>1. Ouvrez un nouvel onglet dans le navigateur et rendez-vous \u00e0 https:\/\/[adresse.ip.externe]\/jenkins (remplacez [adresse.ip.externe] par l\u2019adresse IP externe de la MV d\u2019Argus not\u00e9e plus t\u00f4t).<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"465\" height=\"452\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-106.png\" alt=\"\" class=\"wp-image-31992\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-106.png 465w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-106-300x292.png 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/figure>\n<\/div>\n\n\n<p>2. Pour r\u00e9cup\u00e9rer le mot de passe Admin par d\u00e9faut de Jenkins, revenez \u00e0 la console de la MV Argus (s\u00e9ance SSH) et ex\u00e9cutez la commande suivante&nbsp;: <\/p>\n\n\n\n<p><kbd>sudo kubectl exec -it --namespace=appsec $(sudo kubectl get pods --namespace=appsec | awk '\/jenkins\/ {print $1}') -- cat \/var\/jenkins_home\/secrets\/initialAdminPassword<\/kbd><\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"71\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-107-1024x71.png\" alt=\"\" class=\"wp-image-31994\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-107-1024x71.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-107-300x21.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-107-768x54.png 768w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-107.png 1090w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><kbd>sudo kubectl exec -it --namespace=appsec $(sudo kubectl get pods --namespace=appsec | awk '\/jenkins\/ {print $1}') -- cat \/var\/jenkins_home\/secrets\/initialAdminPassword<\/kbd><\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"71\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-108-1024x71.png\" alt=\"\" class=\"wp-image-31996\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-108-1024x71.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-108-300x21.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-108-768x53.png 768w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-108.png 1094w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Dans notre exemple, le mot de passe commence par <em>9954f\u2026<\/em><\/p>\n\n\n\n<p>3. Copiez la s\u00e9quence et collez-la dans le champ du mot de passe de l\u2019administrateur. <\/p>\n\n\n\n<p>4. Cela fait, cliquez <strong>Install suggested plugins<\/strong>. Cette op\u00e9ration installera les modules d\u2019extension de base de Jenkins.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"428\" height=\"428\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-109.png\" alt=\"\" class=\"wp-image-31998\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-109.png 428w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-109-300x300.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-109-150x150.png 150w\" sizes=\"auto, (max-width: 428px) 100vw, 428px\" \/><\/figure>\n<\/div>\n\n\n<p>5. Ensuite, cr\u00e9ez un compte Admin.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"509\" height=\"521\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-110.png\" alt=\"\" class=\"wp-image-32000\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-110.png 509w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-110-293x300.png 293w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" \/><\/figure>\n<\/div>\n\n\n<p>6. Cliquez <strong>Save and Continue.<\/strong><\/p>\n\n\n\n<p><em>Nous pr\u00e9conisons d\u2019utiliser la valeur par d\u00e9faut pour configurer l\u2019instance. Assurez-vous que l\u2019URL de Jenkins comprend l\u2019adresse IP externe pr\u00e9cise de la MV.<\/em><\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"417\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-111.png\" alt=\"\" class=\"wp-image-32002\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-111.png 979w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-111-300x128.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-111-768x327.png 768w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/figure>\n<\/div>\n\n\n<p>7. Pour terminer la configuration, cliquez <strong>Start using Jenkins<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"206\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-112.png\" alt=\"\" class=\"wp-image-32004\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-112.png 627w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-112-300x99.png 300w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation d\u2019un compte utilisateur Jenkins<\/h3>\n\n\n\n<p>1. Cliquez <strong>Manage Jenkins<\/strong> dans le panneau de gauche, puis <strong>Manage Users <\/strong>sous la rubrique Security.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"477\" height=\"515\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-113.png\" alt=\"\" class=\"wp-image-32006\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-113.png 477w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-113-278x300.png 278w\" sizes=\"auto, (max-width: 477px) 100vw, 477px\" \/><\/figure>\n<\/div>\n\n\n<p>2. Cliquez <strong>Create User<\/strong> dans le panneau de gauche et remplissez les cases de saisie.<\/p>\n\n\n\n<p>Ici, nous cr\u00e9erons un compte pour <em>developer1<\/em>. Par la suite, la solution type se servira de <em>developer1<\/em> dans Jenkins.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"438\" height=\"332\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-114.png\" alt=\"\" class=\"wp-image-32008\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-114.png 438w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-114-300x227.png 300w\" sizes=\"auto, (max-width: 438px) 100vw, 438px\" \/><\/figure>\n<\/div>\n\n\n<p><mark style=\"background-color:#58C3D2\" class=\"has-inline-color\">La configuration de SonarQube et de Jenkins est termin\u00e9e.<\/mark><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"demonstration\">D\u00e9monstration de la technologie<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">Analyse SAST (essais statiques)<\/h3>\n\n\n\n<p>Cette partie montre comment fonctionnent les essais statiques (SAST) d\u2019Argus<em>. <\/em>La solution acc\u00e9l\u00e8re l\u2019int\u00e9gration de l\u2019analyse statique au flux de t\u00e2ches de l\u2019\u00e9quipe de d\u00e9veloppement. Parall\u00e8lement, elle s\u2019assure que l\u2019int\u00e9gration n\u2019entrave pas les op\u00e9rations en cours et qu\u2019on peut ais\u00e9ment revenir en arri\u00e8re.<\/p>\n\n\n\n<p>La solution type illustre l\u2019application des essais statiques \u00e0 un projet situ\u00e9 dans le d\u00e9p\u00f4t de codes sources de l\u2019organisation. Aux fins d\u2019illustration, nous utiliserons l\u2019application <em>Damn Vulnerable Web Application<\/em> (DVWA), une application d\u00e9fectueuse incluant de nombreuses vuln\u00e9rabilit\u00e9s. Son code se trouve dans un d\u00e9p\u00f4t public Github que vous devriez cloner dans votre propre d\u00e9p\u00f4t Git avec la commande suivante&nbsp;:<\/p>\n\n\n\n<p><kbd>git clone https:\/\/github.com\/digininja\/DVWA.git <\/kbd><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation d\u2019un jeton d\u2019acc\u00e8s personnel dans Github<\/h3>\n\n\n\n<p>Si vous avez publi\u00e9 le clone du d\u00e9p\u00f4t DVWA comme un d\u00e9p\u00f4t priv\u00e9 dans votre compte GitHub, Jenkins devra d\u2019abord s\u2019authentifier pour acc\u00e9der au code. Si le d\u00e9p\u00f4t DVWA a \u00e9t\u00e9 publi\u00e9 dans un d\u00e9p\u00f4t public de GitHub, sautez cette \u00e9tape et rendez-vous directement <a href=\"#_Create_SonarQube_project\">ici<\/a>.&nbsp;<\/p>\n\n\n\n<p>1. Cr\u00e9ez un jeton d\u2019acc\u00e8s personnel sur votre profil Github.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"175\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-115.png\" alt=\"\" class=\"wp-image-32010\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-115.png 779w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-115-300x67.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-115-768x173.png 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/figure>\n<\/div>\n\n\n<p>2. Dans Select scopes, cliquez la case \u00e0 c\u00f4t\u00e9 de repo, et parcourez la liste jusqu\u2019en bas puis cliquez <strong>Generate token<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"331\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-116.png\" alt=\"\" class=\"wp-image-32012\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-116.png 605w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-116-300x164.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n<\/div>\n\n\n<p>3. Sauvegardez le jeton en lieu s\u00fbr. Vous en aurez besoin plus tard pour la configuration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Create_SonarQube_project\"><\/a>Cr\u00e9ation d\u2019un projet SonarQube<\/h3>\n\n\n\n<p>1. Ouvrez une s\u00e9ance dans SonarQube avec le compte <em>developer1<\/em> et s\u00e9lectionnez <strong>Manually<\/strong> pour cr\u00e9er un nouveau projet.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"435\" height=\"325\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-117.png\" alt=\"\" class=\"wp-image-32014\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-117.png 435w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-117-300x224.png 300w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/><\/figure>\n<\/div>\n\n\n<p>2. Saisissez un nom \u00e9vocateur pour <strong>Project display name<\/strong> et <strong>Project key<\/strong>. Pour notre exemple, nous utiliserons <em>DVWA-dev<\/em>. Cliquez <strong>Set Up<\/strong> pour continuer.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"323\" height=\"308\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-118.png\" alt=\"\" class=\"wp-image-32016\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-118.png 323w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-118-300x286.png 300w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/figure>\n<\/div>\n\n\n<p>3. Bien qu\u2019une m\u00e9thode d\u2019int\u00e9gration soit propos\u00e9e pour la plupart des pipelines populaires, nous vous sugg\u00e9rons de choisir <strong>Locally<\/strong> pour garder la plus grande latitude possible et \u00e9viter les pipelines d\u00e9di\u00e9s. N\u00e9anmoins, n\u2019h\u00e9sitez pas \u00e0 explorer les pipelines CI, si vous le d\u00e9sirez.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"599\" height=\"274\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-119.png\" alt=\"\" class=\"wp-image-32018\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-119.png 599w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-119-300x137.png 300w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/figure>\n<\/div>\n\n\n<p>4. Saisissez une cha\u00eene quelconque pour produire un jeton et cliquez <strong>Generate<\/strong>. Lorsque vous aurez la cl\u00e9, cliquez <strong>Continue<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"633\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-120.png\" alt=\"\" class=\"wp-image-32020\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-120.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-120-300x195.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-120-768x499.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>5. DVWA \u00e9tant une application PHP, s\u00e9lectionnez <strong>Other<\/strong> pour le langage de programmation, puis <strong>Linux<\/strong>.<\/p>\n\n\n\n<p>Un encadr\u00e9 s\u2019affichera avec une commande sonar-scanner que l\u2019interpr\u00e9teur Linux ex\u00e9cutera sur le pipeline CI (Jenkins).<\/p>\n\n\n\n<p><strong>Attention&nbsp;: sauvegardez le contenu des commandes sonar-scanner dans un fichier-texte temporaire, car vous en aurez besoin plus tard.<\/strong><\/p>\n\n\n\n<p><mark style=\"background-color:#58C3D2\" class=\"has-inline-color has-dark-grey-color\">Ceci termine la configuration du projet dans SonarQube.<\/mark><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation d\u2019un pipeline Jenkins<\/h3>\n\n\n\n<p>1. Ouvrez une s\u00e9ance sur l\u2019application Web Jenkins sous le nom <em>developer1.<\/em><\/p>\n\n\n\n<p>2. Dans le menu principal, cliquez <strong>Create a job<\/strong> pour voir la page \u00e9num\u00e9rant les projets. Saisissez <em>dvwa-sast<\/em> comme <strong>Item name<\/strong> et s\u00e9lectionnez <strong>Freestyle project<\/strong>, puis cliquez <strong>OK<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"605\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-121.png\" alt=\"\" class=\"wp-image-32022\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-121.png 704w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-121-300x258.png 300w\" sizes=\"auto, (max-width: 704px) 100vw, 704px\" \/><\/figure>\n<\/div>\n\n\n<p>3. Dans <strong>Source Code Management<\/strong>, s\u00e9lectionnez <strong>Git<\/strong> et saisissez l\u2019URL du d\u00e9p\u00f4t.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"565\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-122.png\" alt=\"\" class=\"wp-image-32024\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-122.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-122-300x174.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-122-768x445.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>4. Si vous utilisez un d\u00e9p\u00f4t priv\u00e9, Jenkins ne pourra acc\u00e9der au code source sans jeton. Configurez l\u2019acc\u00e8s en cliquant <strong>Add<\/strong> directement sous <strong>Credentials<\/strong> puis en s\u00e9lectionnant <strong>Jenkins<\/strong>.<\/p>\n\n\n\n<p>5. Sur l\u2019\u00e9cran Credentials Provider de Jenkins, sous <strong>Kind<\/strong>, s\u00e9lectionnez <strong>Username with password <\/strong>dans le menu d\u00e9roulant.<br>6. Saisissez votre identifiant GitHub et le jeton que vous avez cr\u00e9\u00e9 plus t\u00f4t comme mot de passe. Ensuite, cliquez <strong>Add<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"486\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-123.png\" alt=\"\" class=\"wp-image-32026\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-123.png 785w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-123-300x186.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-123-768x475.png 768w\" sizes=\"auto, (max-width: 785px) 100vw, 785px\" \/><\/figure>\n<\/div>\n\n\n<p>7. Sous <strong>Credentials<\/strong>, s\u00e9lectionnez votre compte GitHub. Le message d\u2019authentification du d\u00e9p\u00f4t devrait dispara\u00eetre.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"430\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-124.png\" alt=\"\" class=\"wp-image-32028\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-124.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-124-300x132.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-124-768x339.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p><em>Remarque&nbsp;: il se peut que Jenkins aille \u00e0 l\u2019embranchement principal (\u2019master\u2019) par d\u00e9faut pour v\u00e9rifier le pipeline. Il arrive toutefois que des organisations troquent le terme \u2018master\u2019 pour \u2018main\u2019, donc assurez-vous de choisir le bon Branch Sp\u00e9cifier.<\/em><\/p>\n\n\n\n<p>8. Les <strong>Build Triggers<\/strong> facilitent l\u2019automatisation du pipeline au d\u00e9marrage. Pour la solution type cependant, nous lancerons le pipeline manuellement. Donc, ne cochez aucune case.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"153\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-125.png\" alt=\"\" class=\"wp-image-32030\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-125.png 761w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-125-300x60.png 300w\" sizes=\"auto, (max-width: 761px) 100vw, 761px\" \/><\/figure>\n<\/div>\n\n\n<p>9. Pour <strong>Build Environment<\/strong>, mieux vaut cocher <strong>Delete workspace before build starts<\/strong> afin d\u2019\u00e9liminer tous les \u00e9l\u00e9ments qui pourraient subsister des r\u00e9alisations ant\u00e9rieures. Ne cochez aucune autre option.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"258\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-126.png\" alt=\"\" class=\"wp-image-32032\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-126.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-126-300x79.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-126-768x203.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>10. Deux \u00e9tapes suppl\u00e9mentaires sont requises avant qu\u2019on puisse passer aux essais statiques. La premi\u00e8re consiste \u00e0 lancer <strong>Execute shell<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"291\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-127.png\" alt=\"\" class=\"wp-image-32034\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-127.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-127-300x90.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-127-768x229.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>11.&nbsp;Ins\u00e9rez le code suivant dans le champ \u2018Command\u2019&nbsp;: <\/p>\n\n\n\n<p><kbd># Download sonar-scanner <\/kbd><\/p>\n\n\n\n<p><kbd>mkdir -p $WORKSPACE_TMP <\/kbd><\/p>\n\n\n\n<p>c<kbd>url -o $WORKSPACE_TMP\/sonar-scanner-cli-4.6.2.2472-linux.zip https:\/\/binaries.sonarsource.com\/Distribution\/sonar-scanner-cli\/sonar-scanner-cli-4.6.2.2472-linux.zip <\/kbd><code>echo \"9411331814c1d002bd65d37758b872918b7602e7cf3ca5b83a3e19a729b2be05 $WORKSPACE_TMP\/sonar-scanner-cli-4.6.2.2472-linux.zip\" | sha256sum --check unzip -o $WORKSPACE_TMP\/sonar-scanner-cli-4.6.2.2472-linux.zip -d $WORKSPACE_TMP\/sonar-scanner<\/code><\/p>\n\n\n\n<p>Gr\u00e2ce \u00e0 lui, vous t\u00e9l\u00e9chargerez <em>sonar-scanner-cli<\/em> et pourrez v\u00e9rifier l\u2019int\u00e9grit\u00e9 du fichier. sonar-scanner effectue l\u2019analyse de s\u00e9curit\u00e9 et en transmet les r\u00e9sultats au serveur SonarQube que vous avez d\u00e9ploy\u00e9.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"301\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-128.png\" alt=\"\" class=\"wp-image-32036\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-128.png 873w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-128-300x103.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-128-768x265.png 768w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/figure>\n<\/div>\n\n\n<p>12. Ex\u00e9cutez une deuxi\u00e8me fois la commande <strong>Execute shell<\/strong> avec la version.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pour cela, copiez les deux premi\u00e8res lignes ci-dessous.<\/li>\n\n\n\n<li>Ensuite, collez la commande <em>sonar-scanner<\/em> (que vous avez sauvegard\u00e9e dans un fichier-texte \u00e0 la partie \u00ab&nbsp;Cr\u00e9ation d\u2019un projet SonarQube&nbsp;\u00bb) directement en-dessous, de la fa\u00e7on indiqu\u00e9e plus bas.<\/li>\n<\/ul>\n\n\n\n<p><em>Remarque&nbsp;: n\u2019utilisez PAS la commande sonar-scanner qui appara\u00eet dans l\u2019encadr\u00e9, car l\u2019adresse IP de votre <\/em><kbd>sonar.host.url<\/kbd><em> et les valeurs de <\/em><kbd>sonar.login<\/kbd><em> ne seront pas les m\u00eames.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><tbody><tr><td><kbd># Run scan export PATH=$WORKSPACE_TMP\/sonar-scanner\/sonar-scanner-4.6.2.2472-linux\/bin:$PATH<\/kbd><\/td><\/tr><tr><td><em># Ins\u00e9rez la commande sonar-scanner que vous avez sauvegard\u00e9e ici&#8230;<\/em><\/td><\/tr><tr><td><kbd>sonar-scanner \\ &nbsp; -Dsonar.projectKey=DVWA-dev \\ &nbsp; -Dsonar.sources=. \\ &nbsp; -Dsonar.host.url=http:\/\/3.97.188.167\/sonar \\ &nbsp; -Dsonar.login=ec435d2f7f35433aba183cb873a264c9e219aaa5<\/kbd><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Attention&nbsp;: utilisez <strong>http<\/strong>, <em>pas <\/em><strong>https<\/strong>, pour l\u2019argument <kbd>-Dsonar.host.url<\/kbd>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"296\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-129.png\" alt=\"\" class=\"wp-image-32038\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-129.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-129-300x91.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-129-768x233.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>13. Cliquez <strong>Save<\/strong>. Le navigateur reviendra \u00e0 l\u2019\u00e9cran du projet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Essai statique (SAST)<\/h2>\n\n\n\n<p>Maintenant que la configuration est termin\u00e9e, le moment est venu de v\u00e9rifier si tout fonctionne!<\/p>\n\n\n\n<p>1. Cliquez <strong>Build Now<\/strong> pour lancer le pipeline.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"583\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-130.png\" alt=\"\" class=\"wp-image-32040\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-130.png 580w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-130-298x300.png 298w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-130-150x150.png 150w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n<\/div>\n\n\n<p><em>L\u2019\u00e9tat de la version appara\u00eetra dans \u2018Build History.\u2019 Au d\u00e9but, nous avions commis une erreur de configuration dans Git qui renvoyait \u00e0 un embranchement inexistant. Pour en savoir plus sur ce probl\u00e8me, qui a entra\u00een\u00e9 l\u2019\u00e9chec de l\u2019application, cliquez la version num\u00e9rot\u00e9e \u00e0 c\u00f4t\u00e9 du x rouge.<\/em><\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"635\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-131.png\" alt=\"\" class=\"wp-image-32042\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-131.png 641w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-131-300x297.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-131-150x150.png 150w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/figure>\n<\/div>\n\n\n<p>2. Cliquez <strong>Console Output<\/strong> pour r\u00e9soudre le probl\u00e8me.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"773\" height=\"428\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-132.png\" alt=\"\" class=\"wp-image-32044\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-132.png 773w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-132-300x166.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-132-768x425.png 768w\" sizes=\"auto, (max-width: 773px) 100vw, 773px\" \/><\/figure>\n<\/div>\n\n\n<p><em>Le produit \u00ab&nbsp;Console Output&nbsp;\u00bb correspond au r\u00e9sultat obtenu apr\u00e8s l\u2019ex\u00e9cution des lignes de programmation dans le pipeline. Ici, on constate que Git a \u00e9t\u00e9 convoqu\u00e9 mais que l\u2019embranchement principal (\u2018master\u2019) n\u2019a pu \u00eatre d\u00e9couvert (\u00e9tape n\u00b0&nbsp;13). Continuez de r\u00e9viser la configuration du projet quand des erreurs surviennent. Relancez le processus \u2018Build now\u2019 jusqu\u2019\u00e0 ce que tout fonctionne.<\/em><\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"992\" height=\"490\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-133.png\" alt=\"\" class=\"wp-image-32046\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-133.png 992w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-133-300x148.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-133-768x379.png 768w\" sizes=\"auto, (max-width: 992px) 100vw, 992px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Une fois que la version fonctionne\u2026<\/strong><\/p>\n\n\n\n<p>3. Revenez au tableau de bord SonarQube (https:\/\/[adresse.ip.externe]\/sonar) et cliquez le projet. Vous devriez obtenir une liste de ce qui a \u00e9t\u00e9 d\u00e9couvert (illustration ci-dessous). <\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"864\" height=\"496\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-134.png\" alt=\"\" class=\"wp-image-32048\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-134.png 864w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-134-300x172.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-134-768x441.png 768w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><\/figure>\n<\/div>\n\n\n<p>4. Cliquez l\u2019onglet <strong>Security Hotspots<\/strong> pour savoir comment corriger l\u2019application.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Analyse des r\u00e9sultats<\/strong><\/h3>\n\n\n\n<p>1. Pour l\u2019application DVWA, d\u00e9veloppez la liste SQL Injection et choisissez la premi\u00e8re mention afin de l\u2019examiner.<\/p>\n\n\n\n<p>2. D\u00e9terminez la nature et la gravit\u00e9 de la vuln\u00e9rabilit\u00e9.<\/p>\n\n\n\n<p>3. \u00c9tudiez le fragment de code pour savoir s\u2019il s\u2019agit d\u2019un vrai positif ou d\u2019un faux n\u00e9gatif.<\/p>\n\n\n\n<p>4. Dans le premier cas, SonarQube propose trois onglets d\u2019information qui vous aideront \u00e0 comprendre la vuln\u00e9rabilit\u00e9 et \u00e0 savoir comment l\u2019att\u00e9nuer ou l\u2019\u00e9liminer.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"744\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-135.png\" alt=\"\" class=\"wp-image-32050\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-135.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-135-300x229.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-135-768x586.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"conclusion\">Conclusion<\/h3>\n\n\n\n<p>Sur l\u2019\u00e9cran <strong>Provisioning &gt; Instances<\/strong>, cochez la bo\u00eete \u00e0 c\u00f4t\u00e9 de <strong>Project-Argus VM<\/strong> et s\u00e9lectionnez <strong>Delete<\/strong> dans le menu d\u00e9roulant <strong>ACTIONS<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"809\" height=\"336\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-136.png\" alt=\"\" class=\"wp-image-32052\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-136.png 809w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-136-300x125.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/image-136-768x319.png 768w\" sizes=\"auto, (max-width: 809px) 100vw, 809px\" \/><\/figure>\n<\/div>\n\n\n<p>Quand l\u2019ordinateur le demande, cochez les options <strong>Force Delete<\/strong> et <strong>Release EIP<\/strong>. Cliquez <strong>Delete<\/strong> pour supprimer la machine virtuelle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"considerations\">Consid\u00e9rations<\/h3>\n\n\n\n<h2 class=\"wp-block-heading\">Autres possibilit\u00e9s de d\u00e9ploiement<\/h2>\n\n\n\n<p>Le projet Argus a \u00e9t\u00e9 \u00e9labor\u00e9 sur la plateforme Kubernetes, plus pr\u00e9cis\u00e9ment K3s. Les fichiers YAML n\u00e9cessaires \u00e0 son d\u00e9ploiement se trouvent dans le d\u00e9p\u00f4t Git du projet et \/opt\/Argus. Argus a \u00e9t\u00e9 con\u00e7u pour n\u2019\u00eatre d\u00e9ploy\u00e9 que sur une seule MV. Les participants de l\u2019ATIR pourront se servir des fichiers YAML pour d\u00e9ployer Kubernetes dans le nuage de l\u2019ATIR ou sur leur propre ordinateur. La solution type utilise Kustomize pour faciliter l\u2019adaptation de la solution.<\/p>\n\n\n\n<p>Pour l\u2019analyse dynamique (DAST), nous avons utilis\u00e9 la version Windows. Le d\u00e9p\u00f4t Git contient un script pour l\u2019interpr\u00e9teur Linux et un fichier Jenkins exploitable sur la plateforme Linux ou un processus CI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technologies de rechange<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Autres pipelines CI<\/h3>\n\n\n\n<p>Les \u00e9chantillons de code du pipeline ont \u00e9t\u00e9 r\u00e9dig\u00e9s dans un format adapt\u00e9 aux interpr\u00e9teurs. L\u2019organisation qui a son propre ex\u00e9cuteur de pipeline pourra r\u00e9utiliser les scripts de l\u2019interpr\u00e9teur. Assurez-vous d\u2019installer un certificat HTTPS valide avec la solution type pour que sonar-scanner puis se connecter au serveur SonarQube situ\u00e9 dans la grappe Kubernetes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Autres produits SAST<\/h2>\n\n\n\n<p>Nous avons examin\u00e9 d\u2019autres produits SAST proposant autant de fonctionnalit\u00e9s que la solution type. Bien que ces produits exigent l\u2019h\u00e9bergement du projet dans un d\u00e9p\u00f4t public ou la r\u00e9mun\u00e9ration du service, en voici quelques-uns dont on pourrait se servir sur-le-champ pour profiter de certaines fonctionnalit\u00e9s SAST<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Bandit<\/h4>\n\n\n\n<p>Bandit analyse le code python pour d\u00e9tecter les probl\u00e8mes de s\u00e9curit\u00e9 courants. On pourra l\u2019utiliser \u00e0 la place de SonarQube dans le pipeline Jenkins et le stocker gr\u00e2ce \u00e0 la fonction \u00ab&nbsp;artifacts&nbsp;\u00bb de Jenkins. Cet outil fonctionne aussi sur les plateformes de d\u00e9veloppement quand on ne souhaite pas centraliser la solution SAST.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Flawfinder<\/h4>\n\n\n\n<p>Flawfinder v\u00e9rifie le code source C\/C++ et signale les erreurs \u00e9ventuelles. \u00c0 l\u2019instar d\u2019autres outils similaires, Flawfinder fonctionne sur le pipeline Jenkins et ses r\u00e9sultats sont enregistr\u00e9s dans le r\u00e9pertoire \u00ab&nbsp;artifacts&nbsp;\u00bb pour examen ult\u00e9rieur.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">npm<\/h4>\n\n\n\n<p>Utiliser npm avec le signal \u00ab&nbsp;v\u00e9rification&nbsp;\u00bb fera ressortir les paquets pr\u00e9sentant des vuln\u00e9rabilit\u00e9s. Les r\u00e9sultats de la v\u00e9rification pourront ensuite \u00eatre export\u00e9s et sauvegard\u00e9s avec les fonctions \u00ab&nbsp;artifacts&nbsp;\u00bb de Jenkins lors des \u00e9tapes suivant la r\u00e9alisation de la version. Si vous pr\u00e9f\u00e9rez ne pas envoyer de code \u00e0 une solution SAST centrale, vous pouvez lancer npm sur votre ordinateur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"securitesection\"><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00e9curit\u00e9<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On devrait limiter l\u2019acc\u00e8s \u00e0 une plage d\u2019adresses IP pr\u00e9cise. Songez \u00e0 cr\u00e9er un groupe de s\u00e9curit\u00e9 &lt;lien vers la vid\u00e9o &gt; qui s\u2019appliquera \u00e0 cette solution. Ne devrait s\u2019y trouver que les adresses IP approuv\u00e9es.<\/li>\n\n\n\n<li>Assurez-vous que les mots de passe employ\u00e9s avec SonarQube, Jenkins et Keycloak respectent les pratiques exemplaires les plus r\u00e9centes de la profession. Ils devraient compter plus de 14&nbsp;caract\u00e8res et comprendre des majuscules, des caract\u00e8res sp\u00e9ciaux et des chiffres.<\/li>\n\n\n\n<li>Les donn\u00e9es des conteneurs PersistentVolumeClaims (PVC) de Kubernetes sont install\u00e9s sur \/var\/lib\/rancher\/K3s\/storage\/&lt;dynamic-value&gt;\/. Des donn\u00e9es non chiffr\u00e9es pourraient se retrouver le long de ce chemin, selon la m\u00e9thode employ\u00e9e par l\u2019application ou le conteneur. Appliquez la bonne liste ACL aux utilisateurs qui auront acc\u00e8s au compte afin que les fichiers du PVC ne puissent \u00eatre consult\u00e9s accidentellement. Utilisez toujours les fonctionnalit\u00e9s de chiffrement de l\u2019application, s\u2019il y en a.<\/li>\n\n\n\n<li>Le certificat HTTPS par d\u00e9faut fourni par Traefik dans la solution type entra\u00eenera l\u2019affichage d\u2019un avertissement du genre \u00ab&nbsp;la connexion n\u2019est pas priv\u00e9e&nbsp;\u00bb sur la majorit\u00e9 des navigateurs quand vous essayerez d\u2019acc\u00e9der aux applications h\u00e9berg\u00e9es sur l\u2019instance de l\u2019ATIR (\u00e0 savoir, Jenkins). Sur une plateforme de production, vous devriez d\u2019abord obtenir et installer un certificat HTTPS valide pour l\u2019application Web.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e9seautique<\/h2>\n\n\n\n<p>Utiliser Zaproxy dans le nuage en prenant pour cible une adresse IP publique engendrera du trafic sortant ou externe que pourrait couvrir la tranche gratuite de l\u2019entente conclue avec le fournisseur. Si ce n\u2019est pas le cas, des frais pourraient s\u2019ensuivre. V\u00e9rifiez l\u2019emplacement de l\u2019application Zaproxy d\u2019apr\u00e8s l\u2019application Web vis\u00e9e. Certain dispositifs de contr\u00f4le du r\u00e9seau pourraient consid\u00e9rer les activit\u00e9s de Zaproxy comme malveillantes. Les conseils usuels en mati\u00e8re de s\u00e9curit\u00e9 veulent qu\u2019on v\u00e9rifie la politique du fournisseur de services d\u2019infonuagique pour savoir s\u2019il autorise l\u2019analyse des applications avant d\u2019en effectuer une.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c9volution<\/h2>\n\n\n\n<p>La solution type utilise la MV la plus l\u00e9g\u00e8re possible. Si on analyse de nombreux projets, la dur\u00e9e des essais SAST pourrait s\u2019allonger. Commencez par une mise \u00e0 l\u2019\u00e9chelle verticale en ajoutant des c\u0153urs de processeur et de la m\u00e9moire. S\u2019il y a engorgement, envisagez une expansion horizontale comme la d\u00e9finit K3s.<\/p>\n\n\n\n<p>Une expansion horizontale de K3s suppose l\u2019am\u00e9nagement d\u2019un nouveau n\u0153ud et sa connexion \u00e0 la grappe. Modifiez les fichiers de d\u00e9ploiement YAML pour accro\u00eetre le nombre de r\u00e9pliques. N\u2019oubliez pas que chaque application a sa propre m\u00e9thode de mise en grappe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Disponibilit\u00e9<\/h2>\n\n\n\n<p>Lisez la partie sur l\u2019expansion horizontale ci-dessus. Un probl\u00e8me pourrait survenir si les charges sont \u00e9quilibr\u00e9es dans un n\u0153ud. Il se pourrait qu\u2019on doive d\u00e9placer l\u2019\u00e9quilibreur dans un autre syst\u00e8me.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">API<\/h2>\n\n\n\n<p>Les technologies employ\u00e9es par la solution type renferment toutes un Webhook ou une API REST. Assurez-vous qu\u2019un groupe de s\u00e9curit\u00e9 emp\u00eache les utilisateurs non autoris\u00e9s d\u2019acc\u00e9der \u00e0 ces API durant le d\u00e9ploiement.<\/p>\n\n\n\n<p>On peut se servir des API REST pour cr\u00e9er un tableau de bord central qui am\u00e9liorera les rapports dans l\u2019organisation et permettra de voir tous les r\u00e9sultats relatifs \u00e0 la s\u00e9curit\u00e9 des projets sur une seule page.<\/p>\n\n\n\n<p>L\u2019API de Zaproxy a de nombreuses fonctionnalit\u00e9s qui vous permettront d\u2019effectuer la plupart des t\u00e2ches de l\u2019interface utilisateur en passant par elle. Plus d\u2019information \u00e0 ce sujet sur&nbsp;: <a href=\"https:\/\/www.zaproxy.org\/docs\/api\/\">https:\/\/www.zaproxy.org\/docs\/api\/<\/a> .<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Licences d\u2019exploitation<\/h2>\n\n\n\n<p>Le tableau ci-dessous indique les licences d\u2019exploitation des applications utilis\u00e9es par la solution type.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes no-search align-top\"><table><tbody><tr><td><strong>Produit<\/strong><\/td><td><strong>Licence<\/strong><\/td><\/tr><tr><td><strong>K3s<\/strong><strong><\/strong><\/td><td>Apache License 2.0<\/td><\/tr><tr><td><strong>Jenkins<\/strong><strong><\/strong><\/td><td>MIT License<\/td><\/tr><tr><td><strong>SonarQube<\/strong><strong><\/strong><\/td><td>GNU Lesser General Public License c3.0<\/td><\/tr><tr><td><strong>Zaproxy<\/strong><strong><\/strong><\/td><td>Apache License 2.0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"code\">Codes de lancement<\/h3>\n\n\n\n<p>Les fichiers YAML servant \u00e0 d\u00e9ployer le projet Argus se trouvent dans notre d\u00e9p\u00f4t GitHub&nbsp;: <a href=\"https:\/\/github.com\/parabellyx\/iris-infra\">https:\/\/github.com\/parabellyx\/Argus-infra<\/a><\/p>\n\n\n\n<p>On trouvera le conteneur Jenkins modifi\u00e9 renfermant Zaproxy ici&nbsp;:<br><a href=\"https:\/\/github.com\/parabellyx\/docker-jenkins\">https:\/\/github.com\/parabellyx\/docker-jenkins<\/a><\/p>\n\n\n\n<p>Le code source de l\u2019analyse dynamique (DAST) et ses solutions se trouvent dans le d\u00e9p\u00f4t GitHub&nbsp;:<br><a href=\"https:\/\/github.com\/parabellyx\/dast-nocode\">https:\/\/github.com\/parabellyx\/dast-nocode<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"glossaire\">Glossaire<\/h3>\n\n\n\n<p>Voici une liste des abr\u00e9viations qu\u2019on retrouve dans le document et leur d\u00e9finition.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes no-search align-top\"><table><tbody><tr><td><strong>Abr\u00e9viation<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td><strong>API<\/strong><strong><\/strong><\/td><td>Interface de protocole d\u2019application<\/td><\/tr><tr><td><strong>DAST<\/strong><strong><\/strong><\/td><td>Analyse dynamique de la s\u00e9curit\u00e9 d\u2019une application<\/td><\/tr><tr><td><strong>REST<\/strong><\/td><td>Transfert d\u2019\u00e9tat repr\u00e9sentationnel<\/td><\/tr><tr><td><strong>SAST<\/strong><\/td><td>Analyse statique de la s\u00e9curit\u00e9 d\u2019une application<\/td><\/tr><tr><td><strong>YAML<\/strong><\/td><td><em>Yet Another Markup Language <\/em>(encore un autre langage de balisage)<\/td><\/tr><tr><td><strong>UAT<\/strong><\/td><td>Essais d\u2019acceptation par l\u2019utilisateur<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading has-cyan-color has-text-color\">Solution DAST<\/h4>\n\n\n\n<p>Pour en savoir plus sur l\u2019analyse dynamique de la s\u00e9curit\u00e9 d\u2019une application (DAST), lire la deuxi\u00e8me partie de la solution&nbsp;:<em> <\/em><strong><a href=\"https:\/\/www.canarie.ca\/fr\/solution-type-deploiement-rapide-de-lanalyse-dynamique-de-la-securite-des-applications-dast\/\" target=\"_blank\" rel=\"noreferrer noopener\">Solution type&nbsp;: d\u00e9ploiement rapide de l\u2019analyse dynamique de la s\u00e9curit\u00e9 des applications (DAST)<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La solution compl\u00e8te (analyses SAST et DAST) est d\u00e9ploy\u00e9e sur l\u2019instance d\u2019une machine virtuelle dans le nuage de l\u2019ATIR. Cette [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":31486,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-31512","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST) - CANARIE<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST) - CANARIE\" \/>\n<meta property=\"og:description\" content=\"La solution compl\u00e8te (analyses SAST et DAST) est d\u00e9ploy\u00e9e sur l\u2019instance d\u2019une machine virtuelle dans le nuage de l\u2019ATIR. Cette [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/\" \/>\n<meta property=\"og:site_name\" content=\"CANARIE\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-30T13:47:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/\",\"name\":\"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST) - CANARIE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/Parabellyx-diagram.png\",\"datePublished\":\"2022-05-09T14:51:21+00:00\",\"dateModified\":\"2024-10-30T13:47:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/Parabellyx-diagram.png\",\"contentUrl\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/Parabellyx-diagram.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le nuage de l&#8217;ATIR\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/?page_id=44361\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Catalogue des Propulseurs de l\u2019ATIR\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/?page_id=6557\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Plan de vol pour : Analyse statique et dynamique automatis\u00e9e de la s\u00e9curit\u00e9 des applications\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-projet-argus\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/\",\"name\":\"CANARIE\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.canarie.ca\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST) - CANARIE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/","og_locale":"fr_FR","og_type":"article","og_title":"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST) - CANARIE","og_description":"La solution compl\u00e8te (analyses SAST et DAST) est d\u00e9ploy\u00e9e sur l\u2019instance d\u2019une machine virtuelle dans le nuage de l\u2019ATIR. Cette [&hellip;]","og_url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/","og_site_name":"CANARIE","article_modified_time":"2024-10-30T13:47:15+00:00","og_image":[{"url":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/","url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/","name":"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST) - CANARIE","isPartOf":{"@id":"https:\/\/www.canarie.ca\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/#primaryimage"},"image":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/#primaryimage"},"thumbnailUrl":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png","datePublished":"2022-05-09T14:51:21+00:00","dateModified":"2024-10-30T13:47:15+00:00","breadcrumb":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/#primaryimage","url":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png","contentUrl":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2022\/05\/Parabellyx-diagram.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/solution-type-deploiement-rapide-de-lanalyse-statique-de-la-securite-des-applications-sast\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.canarie.ca\/fr\/"},{"@type":"ListItem","position":2,"name":"Le nuage de l&#8217;ATIR","item":"https:\/\/www.canarie.ca\/fr\/?page_id=44361"},{"@type":"ListItem","position":3,"name":"Catalogue des Propulseurs de l\u2019ATIR","item":"https:\/\/www.canarie.ca\/fr\/?page_id=6557"},{"@type":"ListItem","position":4,"name":"Plan de vol pour : Analyse statique et dynamique automatis\u00e9e de la s\u00e9curit\u00e9 des applications","item":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-projet-argus\/"},{"@type":"ListItem","position":5,"name":"Solution type : d\u00e9ploiement rapide de l\u2019analyse statique de la s\u00e9curit\u00e9 des applications (SAST)"}]},{"@type":"WebSite","@id":"https:\/\/www.canarie.ca\/#website","url":"https:\/\/www.canarie.ca\/","name":"CANARIE","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.canarie.ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"_links":{"self":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/31512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/comments?post=31512"}],"version-history":[{"count":3,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/31512\/revisions"}],"predecessor-version":[{"id":44497,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/31512\/revisions\/44497"}],"up":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/31486"}],"wp:attachment":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/media?parent=31512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}