De multiples risques ont été identifiés concernant le déploiement de GitHub Copilot ou de tout autre outil d'IA générative dans le cycle de vie du développement logiciel au sein d'une entreprise. Dans le même temps, les entreprises sont conscientes des nombreux avantages et opportunités qui peuvent découler de l'utilisation de ces outils du point de vue de la sécurité et de la qualité – et ce, sans même parler des gains de productivité pour les développeurs !
Dans cet article, nous allons explorer 3 domaines dans lesquels les organisations peuvent sécuriser les plateformes d'IA générative dans le cycle de vie du développement logiciel et commencer à exploiter leurs avantages en matière de sécurité, ainsi que leur contribution aux pratiques DevSecOps.
Utilisation des licences
Il existe deux formats de licence pour GitHub Copilot, l'un pour les particuliers, l'autre pour les entreprises. La licence individuelle permet d'utiliser vos données et vos résultats pour entraîner le modèle, tandis que la licence d'entreprise garantit que la base de code de votre organisation reste dans votre propre déploiement.Tout cela semble normal et il n'y a pas lieu de s'inquiéter. Cependant, les doubles licences sont beaucoup plus courantes que vous ne le pensez à première vue. Les ingénieurs en logiciel, en particulier ceux qui sont encouragés à contribuer à des projets open source, peuvent très bien avoir leur propre licence. Il existe donc un risque potentiel que le code produit à des fins professionnelles soit également utilisé pour la formation. L'impact de ce risque est très variable et dépend de la nature du code et de son volume.
La bonne nouvelle, c'est que ce risque peut être atténué par une bonne gestion du changement et une formation de vos équipes de développeurs, ainsi que par un programme de gouvernance et de conformité qui inclut le contrôle de l'utilisation des licences.
Le problème de la régurgitation
Il existe un certain nombre de procès en cours en matière de propriété intellectuelle, avec des arguments différents. L'un des points centraux est celui de la "régurgitation", où une plateforme d'IA générative reproduit les données sur lesquelles elle a été entraînée, dans leur forme exacte. C'est un problème lorsque l'on utilise des outils pour générer du code.Par exemple, GitHub Copilot utilise des données provenant de dépôts GitHub dans le cadre de ses données de formation, et le risque est donc que le code sous licence, y compris les licences open-source, se retrouve ensuite dans le code propriétaire, ce qui peut entraîner des problèmes juridiques par la suite.
Pour atténuer ce problème, les organisations qui utilisent GitHub Copilot peuvent commencer par activer un paramètre appelé « désactiver les suggestions », qui détectera et bloquera les références au code public dans toutes les licences d'entreprise d'une organisation. Encore une fois, cela n'atténue pas le besoin de formation et de gouvernance autour de l'utilisation d'outils d'IA générative dans le cycle de vie du développement logiciel, en particulier la façon dont les responsables du développement examinent les commits et les changements apportés à CI/CD. L'autre moyen d'atténuer ce problème, comme l'a validé OpenAI elle-même, est de mettre en place une ingénierie appropriée. Plus la formation est spécifique à votre propre scénario et à vos exigences, mieux c'est.
Test Q&A
L'exemple le plus évident de l'épée à double tranchant sur ce sujet est peut-être le rôle de l'IA générative dans l'assurance qualité et les tests, mais aussi le rôle des humains dans la boucle qui examinent les résultats de l'IA générative.Auparavant, le code produit par GitHub Copilot a été testé par rapport au CWE (Common Weakness Enumeration) de MITRE. MITRE CWE est une liste des principaux exploits actuellement observés dans la nature. Du point de vue de l'ingénierie de la qualité, il peut ou non inclure des éléments importants pour garantir la robustesse d'une application ou d'un script, tels que la limitation des formats de saisie des données.
L'atténuation de ces risques est peut-être le plus grand défi des trois évoqués. Cependant, ces mêmes mesures d'atténuation sont la clé pour tirer le meilleur parti de l’IA générative dans le cycle de vie du développement logiciel. Vos développeurs devraient être formés pour reconnaître un code de bonne qualité généré par GitHub Copilot ; des compétences professionnelles sont toujours nécessaires, par exemple, pour reconnaître un algorithme de haute qualité par rapport à un algorithme qui nécessitera des ressources supplémentaires pour être exécuté. Un code de bonne qualité peut avoir des significations différentes selon les organisations et peut-être spécifique à une application.
Deuxièmement, presque comme une condition préalable à l'utilisation de ces plateformes, vous devriez avoir adopté des pratiques DevOps/DevSecOps robustes parallèlement aux pipelines CI/CD. Il est également essentiel d'adapter ces processus à l'utilisation des plateformes d'IA générative, en commençant par une simple mention de l'utilisation de l'IA générative dans vos déclarations de livraison, jusqu'à des processus plus complexes, tels que l'amélioration de la modélisation des menaces et le maintien d'un contrôle étroit des dépendances, GitHub Copilot étant capable d'explorer et d'introduire de nouvelles bibliothèques dans votre base de code.
En conclusion, la prise en compte de ces actions vous permettra de vous préparer et de sécuriser les plateformes d'IA générative, telles que GitHub Copilot, dans le cadre de votre cycle de développement logiciel.
Par Frank Thiry, Applications & Infrastructure Lead chez Avanade