Mise en place d'une solution AppScan Presence permettant d'examiner directement un référentiel GitHub.

Vous pouvez utiliser une solution AppScan Presence pour exécuter une analyse statique sur les référentiels GitHub Enterprise.

AppScan Presence inclut la prise en charge facultative de l'exécution d'une analyse statique sur les référentiels GitHub à partir d'un serveur GitHub Enterprise à l'aide d'une application GitHub. Le serveur GitHub n'a pas besoin d'être accessible au public ; cependant, l'utilisateur AppScan doit disposer d'un accès réseau au serveur GitHub et d'une autorisation pour accéder aux référentiels dans GitHub.

Une instance d'un AppScan Presence avec le balayage GitHub activé peut être associée à un serveur GitHub Enterprise à l'aide d'une application GitHub définie sur le serveur.

Pour utiliser un AppScan Presence de connexion et d'examen des référentiels GitHub Enterprise :
  1. Créez et installez un AppScan Presence dans un emplacement de dossier sur un réseau privé avec accès au serveur GitHub Enterprise.
    Remarque : Une présence unique connectée à un seul serveur GitHub permet à tous les utilisateurs de l'organisation d'analyser les référentiels sur ce serveur auquel ils ont accès.
  2. Créez une application GitHub sur le serveur GitHub Enterprise.
  3. Activez et configurez les paramètres spécifiques à GitHub dans le AppScan Presence.
  4. Créez l'examen.

Créer une application GitHub

Consultez les informations sur les applications GitHub avant de commencer.

Pour créer une application GitHub compatible avec le AppScan Presence :

  1. Connectez-vous à GitHub.
  2. Sélectionnez Paramètres > Paramètres développeur > Applications GitHub, puis cliquez sur Nouvelle application GitHub.
  3. Spécifiez les paramètres d'application suivants :
    Paramètre Valeur
    Nom de l'application GitHub Votre nom pour l'application.
    Description Description de l'application. Par exemple, « connecteur AppScan 360° au serveur de développement ».
    URL de page d'accueil L'URL HCL AppScan 360°. Par exemple, https://cloud.appscan.com.
    URL de rappel Votre URL AppScan Presence suivie de /signin-github. Par exemple, https://www.example.com/signin-github.
    Webhook Décochez Actif.
    Autorisations de référentiel Contenu et Métadonnées définis sur Lecture seule.
    Droits du compte Adresses e-mail défini sur Lecture seule.
    Où peut-on installer cette application GitHub ? N'importe quel compte.
  4. Cliquez sur Créer une application GitHub.
  5. Affichez les paramètres de l'application GitHub et notez les valeurs suivantes pour configurer le AppScan Presence.
    • AppID
    • AppUrl
    • ClientId
    • ClientSecret

Configurer et activer un AppScan Presence

  1. Créez une clé privée pour l'application GitHub :
    1. Dans GitHub Enterprise, sous la fenêtre de l'application GitHub, cliquez sur Générer une clé privée.
    2. Renommez le fichier téléchargé GitHubAppKey.pem et copiez-le dans le dossier d'installation de Presence.
  2. Dans le répertoire d'installation de Presence, localisez le fichier git_connect_settings.json et ouvrez-le pour le modifier.
  3. Dans la section GitConnectOptions de git_connect_settings.json, modifiez les paramètres comme suit :
    Paramètre Description Exemple
    GitServerName Nom du serveur GitHub. github01
    GitConnectUrl URL de l'application Web exposée par cette présence. https://my-host-fqsn:44
    GithubAppId AppID de l'application GitHub que vous avez créée pour cette connexion. 55
    GithubAppUrl URL d'installation de l'application GitHub. https://github01.example.com/github-apps/asoc
    ClientId ID client de l'application GitHub. <oauth client id>
    ClientSecret Secret client de l'application GitHub. <oauth client secret>
    GitPlatformDomain URL du serveur GitHub Enterprise. https://github01.example.com
    Proxy Si un proxy est nécessaire pour se connecter au serveur GitHub, supprimez le commentaire de cette ligne et fournissez les détails du proxy. 127.0.0.1:8888
    Active Activez ou désactivez la fonctionnalité de connexion GitHub dans le AppScan Presence. La valeur par défaut est false. true
  4. Nous vous recommandons vivement d'utiliser HTTPS. Si vous choisissez d'utiliser HTTP, le site est considéré comme non sécurisé et, par conséquent, vous devez ajuster les paramètres du navigateur pour autoriser le contenu non sécurisé.

    Pour vous assurer que vous utilisez HTTPS, dans la section Kestrel de git_connect_settings.json, modifiez les paramètres comme suit :

    Paramètre Description Exemple
    Http Protocole à utiliser par le AppScan Presence. Https
    URL Port à utiliser par le AppScan Presence. http://*:8080
    Remarque : AppScan Presence utilise Kestrel pour héberger son application Web. Kestrel est un serveur Web intégré qui peut être configuré à l'aide de la section Kestrel du fichier de configuration. Pour plus d'informations sur la structure de cette configuration de serveur, reportez-vous à la section Configurer des nœuds finaux pour le protocole Web ASP.NET Core Kestrel.
  5. Installez l'application GitHub sur le compte qui en est propriétaire :
    1. Ouvrez le lien public de l'application (GithubAppUrl) dans un navigateur.
    2. Installez l'application.
    Remarque : Il n'est pas nécessaire d'accorder l'accès aux référentiels privés pour cette installation, mais l'application doit être installée sur le compte qui en est propriétaire.

Une fois la configuration établie, l'instance Presence peut être démarrée (ou redémarrée) et le balayage peut commencer. Les journaux sont écrits sur la console et dans les fichiers journaux situés dans le dossier journaux.

Flux de balayage GitHub de AppScan Presence

La figure suivante illustre le flux de balayage d'un référentiel à partir d'un serveur GitHub Enterprise à l'aide d'un AppScan Presence :

  1. L'utilisateur se connecte à AppScan 360°. (1.2)
  2. A partir de AppScan 360°, une liste des instances Presence configurées et activées avec les serveurs connectés est renvoyée. L'utilisateur choisit ensuite le serveur GitHub à utiliser pour l'examen. AppScan 360° renvoie l'URL d'accès au serveur AppScan Presence et l'URL du serveur GitHub
  3. Lorsque l'utilisateur clique sur Connexion à GitHub, AppScan 360° ouvre un nouvel onglet de navigateur pointant vers AppScan Presence (3) qui démarre le flux de code d'autorisation oAuth. L'utilisateur est ensuite redirigé vers le serveur GitHub Ent (4), se connecte, autorise AppScan Presence à accéder au compte GitHub, puis est ramené à AppScan Presence avec le code d'autorisation
  4. AppScan Presence obtient le jeton d'accès utilisateur à partir du serveur GitHub Ent (5) et le renvoie à l'utilisateur (3) avec un script qui envoie le jeton à AppScan 360° à l'aide de window.postMessage.
  5. AppScan 360° utilise le jeton d'accès GitHub (4) pour obtenir une liste des référentiels accessibles par l'utilisateur et à l'application GitHub utilisée par AppScan Presence. L'utilisateur peut alors choisir un référentiel à examiner.
  6. Avant de créer un examen pour le référentiel sélectionné, AppScan 360° vérifie que celui-ci est accessible par l'utilisateur. La fonction API (3) RepoSignature de AppScan Presence crée une signature pour les détails du référentiel (propriétaire et nom du référentiel). Dès que l'accès est vérifié, les informations sur le référentiel sont signées à l'aide d'une clé privée spécifique à l'instance AppScan Presence. La signature est renvoyée par l'appel d'API à AppScan 360°.
  7. AppScan 360° crée un examen à l'aide de UsersAPI (2) en fournissant l'ID Presence (Git Connect), les détails du référentiel et la signature. UserAPI vérifie la signature à l'aide d'une clé publique associée à l'instance AppScan Presence fournie. Si la validation réussit, un examen est créé pour le référentiel.
  8. Le service Presence, qui interroge l'API Web Presence (6) pour obtenir des tâches, reçoit une nouvelle tâche pour récupérer le référentiel examiné. L'instance Presence se connecte au serveur GitHub Ent (7) à l'aide de la clé privée de l'application GitHub associée, récupère le référentiel sous forme de fichier zip et le transmet à l'API Web Presence (UploadRepo)
  9. Le fichier zip du référentiel est stocké dans AppScan 360° et peut être examiné. Une fois l'examen terminé, les résultats sont affichés et analysés dans AppScan 360°. Les résultats comprennent des liens vers le serveur GitHub Ent, qui référence les lignes correspondantes du code à des fins de tri et de résolution. AppScan 360° peut ouvrir un nouvel onglet avec le code correspondant.