Intelligence Artificielle : Puissant avantage pour la Cybersécurité

1502053569103

Les fondamentaux de l’intelligence artificielle

L’intelligence artificielle

L’apprentissage automatique (ou apprentissage machine, machine learning en anglais)

L’apprentissage profond” (deep learning)

Suivez ce lien pour les comprendre.

Quels coûts pour l’IA pour l’Afrique ?

L’IA a végété plusieurs années à plusieurs reprises notamment dans les années 1970 et 1990 ; car elle a été longtemps limitée par les coûts et performances des machines (vitesse, capacité mémoire, capacité de stockage) qui ont miné les espérances qui y avaient été placées, engendrant frustrations et reculs des investissements par les industriels.

Aujourd'hui les supercalculateurs, les clouds et la virtualisation ont aboli ces frontières et nous assistons à un éclatement de ses possibilités qui semblent incalculables au point de faire peur.

Amazon AWS, les grappes de serveurs OVH et Google cloud accessibles avec le budget d'un particulier vont permettre avec des budgets raisonnables d’investir dans ce domaine.

Nous pouvons désormais lancer des calculs complexes et analyser des milliards de données pour des coûts désormais accessibles à une PME africaine. Cet état de fait va booster la recherche et permettra la création d’une véritable industrie de l’IA sur notre continent.

Des domaines jadis réservés aux armées, aux grandes entreprises et aux pays riches comme la reconnaissance vocale, la reconnaissance visuelle/faciale sont devenues accessible pour un particulier, un développeur ou une startup africaine.

Intelligence artificielle et Cybersécurité

Les spécialistes de la cybersécurité perdent 40 heures par mois à cause de dispositifs de protection inefficaces. C’est le constat d’une étude publiée par LogRhythm, une entreprise américaine spécialisée dans l’Intelligence artificielle et la cybersécurité. Cette perte de temps a des conséquences non seulement sur l’ensemble du processus de découverte et la gestion des failles mais surtout sur le cout global de la cybersécurité.

La notion d'intelligence artificielle en cybersécurité fait l’objet de beaucoup de publications depuis plusieurs années.

La question qui taraude les spécialistes est de savoir comment se prémunir contre un système d’attaques intelligent quand nous savons toutes les difficultés que nous avons à nous protéger contre les attaques classiques. Classique ici fait référence à un système n’intégrant pas d’IA.

Pour répondre à cette problématique je propose de revenir aux fondamentaux. En compartimentant le problème. Pour disposer donc d’un système de défense contre une cyberattaque potentielle de l'IA nous devons maintenir une posture de sécurité fondamentale intégrant une surveillance continue, la formation des utilisateurs, une gestion rigoureuse des correctifs et des contrôles de configuration de base pour corriger les vulnérabilités. Nous allons dans cette publication explorer chacune de ces quatre composantes et les analyser pour comprendre comment nous pouvons les exploiter de façons plus efficaces et comprendre comment elles peuvent contribuer à lutter contre les mutations de la cybersécurité version IA ou non.

La surveillance continu ou comment repérer les comportements répétitifs ?

L'IA et l'apprentissage automatique sont tous des modèles. Les pirates, par exemple, recherchent des modèles dans les configurations de serveurs et de pare-feu, l'utilisation de systèmes d'exploitation obsolètes, les actions des utilisateurs et les tactiques de réponse, etc. Ces modèles leur fournissent des informations sur les vulnérabilités réseau qu'ils peuvent exploiter. Les administrateurs réseau recherchent également des modèles. En plus de rechercher des tendances dans la façon dont les pirates tentent de s’introduire dans un système, ils tentent d'identifier les anomalies potentielles comme les pics de trafic réseau, les types de trafic réseau irréguliers, les connexions utilisateur non autorisées et autres signaux d'alarme. Pour identifier un modèle, les responsables informatiques doivent d'abord établir une référence. À l'instar des personnes qui surveillent leur fréquence cardiaque au repos pour déterminer leur état de santé général, ce n'est qu'en établissant une base de référence que les administrateurs seront en mesure de détecter la survenance d'un événement inhabituel. En collectant des données et en surveillant l'état de leur réseau dans des conditions normales d'exploitation, les administrateurs peuvent configurer leurs systèmes pour détecter automatiquement les événements inhabituels, par exemple, une connexion réseau suspecte ou un accès via une mauvaise adresse IP connue. Cette approche de sécurité fondamentale a parfaitement fonctionné pour prévenir les types d'attaques plus traditionnels, tels que les logiciels malveillants ou le phishing. Il peut également être utilisé très efficacement pour dissuader les menaces activées par l'IA.

Impliquer les utilisateurs

Une entreprise pourrait avoir les meilleurs systèmes de surveillance, mais le travail qu'elle fait peut être biaisé par un seul employé qui clique sur le mauvais courriel, le mauvais fichier mp3 ou la mauvaise vidéo. L'ingénierie sociale continue d'être un grand défi pour la cybersécurité pour parce que les employés peuvent facilement être amenés à cliquer sur des pièces jointes, des courriels et des liens suspects. En effet, les employés sont considérés, à raison, comme les maillons les plus faibles de la chaîne de cybersécurité. Inclure les utilisateurs dans le dispositif de cybersécurité est fondamentale. Ils doivent impérativement savoir ce qu'il ne faut pas faire et cela est tout aussi important que de mettre en place des mesures de cybersécurité sophistiqués. Par exemple une entreprise peut organiser comme les pompiers des exercices grandeurs nature pour renforcer les réflexes, la compréhension des risques et les capacités de résilience. Les entreprises doivent également développer des plans qui exigent que tous les employés comprennent leurs rôles individuels dans le dispositif de cybersécurité. Et n'oubliez pas un plan de réponse et de récupération, afin que tout le monde sache quoi faire et attendre lorsqu'une violation se produit. Testez ces plans à intervalle de temps régulier pour améliorer leur efficacité. Cela permettra de ne pas attendre d’être attaqué pour réagir. Utilisez vos employés pour anticiper la découverte des failles.

Corriger les failles de sécurité

Malgré la réactivité des éditeurs commerciaux ou open source, force est de constater que les correctifs sont très souvent mal utilisés. Il arrive parfois de trouver lors de tests de vulnérabilités des failles dont les correctifs existent depuis plusieurs semaines voir plusieurs mois. L’IA peut rendre cette phase de découverte de failles non corrigées par les hackers extrêmement rapide et efficace. Nous pouvons imaginer un mécanisme permettant non seulement de les identifier (les failles) mais aussi de les corriger temporairement et les rétablir ensuite. Maintenant ainsi à votre insu un système vulnérable alors que les tests de vulnérabilités diront le contraire.

Vérification des commandes

Le Centre for Internet Security a publié un ensemble de contrôles conçus pour fournir aux agences une liste de contrôle pour de meilleures implémentations de sécurité. Bien qu'il y ait au total 20 actions, implémenter au moins les cinq premiers inventaires de périphériques, le suivi logiciel, les configurations de sécurité, les évaluations de vulnérabilités et le contrôle des privilèges administratifs, peut éliminer environ 85% des vulnérabilités d'une organisation. Toutes ces pratiques - surveillance, éducation des utilisateurs, gestion des correctifs et respect des contrôles de SIC - peuvent aider les organismes à se protéger contre les attaques d'IA les plus sophistiquées.

Atteindre la "cible parfaite"

Certes, les attaques d'IA deviendront plus sophistiquées avec le temps. Les machines continueront à rechercher des faiblesses et apprendront, en fonction des modèles, ce qui fonctionne ou non. Au fur et à mesure que les machines apprendront, les attaques deviendront plus difficiles à prévoir et à empêcher.
Heureusement, les organismes gouvernementaux peuvent atteindre ce que l'on appelle la «cible de rêve». Grâce à des outils sophistiqués de gestion et de configuration du réseau, les organismes sont déjà en mesure d'automatiser les protocoles de réponse aux attaques et d'effectuer des corrections en temps réel. Cela les place en tête du peloton et constitue une base solide pour prévenir les cyberattaques d'IA actuelles et futures, ainsi que pour répondre aux contre-mesures appropriées basées sur l'IA.

En anticipant et en préparant cet avenir, nous devons nous calmer, prendre de profondes respirations et travailler à l'élaboration de principes de sécurité solides aujourd'hui. Cela peut ne pas être aussi impressionnant que l'ascension proverbiale des machines, mais il peut toujours être très efficace.

Les avantages de l’intelligence artificielle sont a priori clairs : créer de la valeur en automatisant les processus de traitement de l’information. Pour que cela fonctionne, il faut que l’information soit de bonne qualité. Et que vous sachiez comment l’analyser et quoi faire de l’information traitée. Vous aurez donc besoin de deux types de compétences : d’un côté, un Data Scientist. De l’autre, des experts métiers à même de comprendre les processus de l’entreprise.

L’implémentation d’algorithmes de Machine Learning ne va pas remplacer l’homme par une machine. Au contraire, cela va créer de nouveaux besoins pour de nouvelles compétences. Tandis que les tâches les moins spécialisées et les moins qualifiées seront remplacées par des logiciels, des automates ou des robots.

Vous avez déjà mis en place toutes les défenses classiques pour protéger vos infrastructures. En quoi l’intelligence artificielle peut vous être utile ?

L’équation que les experts en cyber sécurité ont à résoudre en permanence est de devoir attendre que les failles soient découvertes, que les correctifs soient disponibles pour pouvoir agir. Il est évident que tant que ces deux variables ne sont pas atteintes, les systèmes sont à la merci des hackers. Il existe certes des outils en charge de la prédiction des futures attaques. Mais elles fonctionnent sur le principe d’analyse des anciennes attaques pour anticiper avec une marge d’erreur élevée les matrices des prochaines attaques. Problème : Même si ces systèmes arrivent à imaginer à quoi pourrait ressembler une nouvelle attaque, il reste à prévoir comment réagir. Sachant que les hackers changent en permanence leurs modes de fonctionnement. Cela revient à résoudre une équation fondamentalement chronophage et gourmande en ressources sans certitudes d’arriver à un résultat satisfaisant. Comment faire réagir un système face à une attaque qu’il ne connait pas ?

La réponse se trouve dans l’intelligence artificielle. Pour faire simple, cela reviendrait à permettre à un système de cyber défense de se comporter comme le système immunitaire. Etre en mesure de faire face à des menaces inconnues, apprendre, et développer les réponses adéquates en temps réel.

Nous devons avoir conscience que l’intelligence artificielle pourrait être aussi utilisée par des cybercriminels. Elle pourrait permettre de créer des logiciels malveillants doués d’une capacité à déjouer la surveillance des programmes de sécurité…

Conception d’un modèle d’application pour détecter les programmes malicieux (malware detection)

Il existe deux approches pour réduire les impacts des malwares. La première consiste à détecter le fichier infecté avant son exécution et la seconde méthode consiste à identifier les programmes et stations infectées.

Le problème avec ces approches c’est qu’elles reposent sur les signatures ou les comportements. Ce qui complexifie la détection de malwares inconnues.

Nous allons aborder le problème avec les réseaux de neurones conventionnels. Il ne s’agit pas ici de se focaliser sur l’aspect programmation (contactez-moi si cela vous intéresse) mais de donner une idée sur comment bâtir une démarche pour cette problématique spécifique. Par ailleurs il existe sur Google plusieurs implémentations avec des approches très diverses. Je vous invite à les explorer pour ceux qui voudraient aller plus loin.

Neuf fois sur dix, quand vous entendez parler des barrières scientifiques qui ont été repoussées grâce à l’application de techniques d’Apprentissage profond (ou Deep Learning en anglais), les réseaux de neurones à convolution sont impliqués. Aussi appelés CNN ou ConvNets, ils constituent les fers de lance de l’Apprentissage profond.

Ils sont désormais capable d’apprendre à trier des images par catégorie avec dans certains cas, de meilleurs résultats qu’après un triage manuel.

Ce qui est essentiellement enthousiasmant avec les CNNs, c’est qu’ils sont relativement faciles à comprendre donc à implémenter pour un développeur.

Voici notre workflow :

  1. Collecter des fichiers de référence plusieurs milliers de préférence pour constituer notre base de connaissance
  2. Extraire des caractéristiques communes (taille, appels systèmes, protocoles, droits etc…)
  3. Construire votre dataset sur la base de l’étape 2
  4. Identifier les métriques qui détermineront la pertinence de votre algorithme

Exemples de codes

Ressources

Le Berkley Artificial Intelligence Research qui propose une panoplie de ressources logicielles inclus pour évoluer dans cet univers.

Il n’est pas le seul mais c’est l’un de mes préférés.

http://bair.berkeley.edu/software.html

https://github.com/jivoi/awesome-ml-for-cybersecurity

Quelques start-ups utilisant efficacement l’intelligence artificielle en cyber sécurité

http://blog.ventureradar.com/2016/03/11/10-hot-startups-using-artificial-intelligence-in-cyber-security/

Des livres gratuits pour apprendre

http://bigdata-madesimple.com/20-free-books-to-get-started-with-artificial-intelligence/