Lors de la conception de l'architecture informatique, en
l'espèce, du logiciel d'intelligence artificielle, il est
impératif de se pencher sur les mécanismes de
sécurité.
L'ensemble de cette réflexion doit être
documentée. Cette documentation inclut l'écriture du code ainsi
que l'architecture et doit être régulièrement mise à
jour362. Ces mécanismes ne doivent pas reposer sur une seule
ligne de défense, mais intégrer des modules de défense
périphériques. Il peut s'agir par exemple, d'avoir une politique
de mot de passe sécurisé en accord avec la
délibération363 de la CNIL. Les risques incluent
également la sécurité des serveurs informatiques, dont il
est conseillé d'effectuer une veille sur l'état des attaques
informatiques364, et d'utiliser des outils de détection des
vulnérabilités365. Une analyse périodique de
ces risques doit être effectuée et une personne doit être
désignée pour les corriger366.
La sécurisation des données passe
également par le choix des outils et des pratiques. Les normes de
programmation doivent intégrer ces normes de sécurité,
tels que les standards C++367. La rédaction même du
code doit faire l'objet d'une attention particulière. Il est possible de
se référer à des standards existants368. Des
outils de contrôle de la qualité du code sont
recommandés369. Par ailleurs, il est impératif
d'utiliser systématiquement les dernières versions des briques
technologiques. Une attention particulière doit avoir lieu en cas
d'utilisation de logiciels SaaS et d'outils collaboratifs dans le
cloud370. Lorsque le développeur utilise des kits de
développement écrits par des tiers appelés aussi «
Software Developpent Kits » (SDK), il
convient de prendre garde à évaluer l'intérêt de
l'ajout de chaque dépendance et de choisir une
361 CNIL, «Préparer son
développement», 27 janvier 2020
362 CNIL « Veiller à la qualité de votre
code et sa documentation», 27 janvier 2020
363 CNIL, Délib. n° 2017-012 « portant
adoption d'une recommandation relative aux mots de passe », janvier
2017
364 Veille accessible sur les bulletins d'actualité du
CERT-FR
365 CNIL, «Sécuriser vos sites web vos
applications et vos serveurs », 27 janvier 2020
366 CNIL, « Sécuriser son environnement de
développement », 27 janvier 2020
367 CERT Secure Coding, «The SEI CERT C++ Coding
Standard», 2016
368 GitHub, « Awesome Guidelines », 4 janvier
2020 dernière modification
369 CNIL « Veiller à la qualité de votre
code et sa documentation», 27 janvier 2020
370 CNIL, « Sécuriser son environnement de
développement », 27 janvier 2020
- 64 -
Le régime de lege lata
bibliothèque qui prend en compte la question de la vie
privée, et auditer les bibliothèques et SDK371.
La sécurité inclut aussi l'environnement de
développement du code. Pour cela, la CNIL conseille de mettre en oeuvre
une procédure homogène sur tous les postes de travail, et de
centraliser cette procédure sur un document commun explicatif. Par
ailleurs, il est important de superviser la gestion des accès et la
traçabilité des opérations. Par exemple, en documentant la
gestion des clés SSH conformément aux
recommandations372 de l'ANSSI373.
La sécurité passe également par la
protection de l'environnement physique. La mise en place d'alarmes
anti-intrusions, d'un contrôle d'accès pour les zones à
risques et des contrôles d'accès sont
recommandés374. La sécurisation des postes de travail
doit aussi faire l'objet de précautions375.
Une fois que les environnements physiques et
numériques sont définis, le programmeur doit définir le
parcours des données tout au long de leur cycle de vie et le choix du
support correspondant au besoin du traitement376. Il faut en
parallèle permettre de supprimer les données à tout moment
et de sécuriser tous ces environnements. Si le traitement
nécessite le recours à un hébergeur, des
précautions supplémentaires doivent être adoptées
étant donné que les données sont transférées
à un sous-traitant : clause de confidentialité, connaitre la
localisation géographique des serveurs. Les bases de données
accessibles sur internet peuvent être protégées par une
restriction des adresses IP377 et une procédure de changement
des mots de passe utilisateurs378.