Il existe de nombreuses techniques pour créer des algorithmes capables d'apprendre et de s'adapter au fil du temps. D'une manière générale, nous pouvons classer ces algorithmes dans l'une des trois catégories suivantes : l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage par renforcement.
L'apprentissage supervisé se réfère à des situations dans lesquelles chaque instance de données d'entrée est accompagnée d'une valeur souhaitée ou cible pour cette entrée. Lorsque les valeurs cibles sont un ensemble de catégories discrètes finies, la tâche d'apprentissage est souvent appelée problème de classification. Lorsque les cibles sont une ou plusieurs variables continues, la tâche est appelée régression.
Par exemple, les tâches de classification peuvent consister à prédire si un courriel donné est un spam ou un ham (c'est-à-dire un non-spam) ou dans laquelle des N familles de malware un fichier binaire donné doit être classé. Une tâche de régression peut consister à essayer de prédire le nombre d'incidents de sécurité qu'un hôte sur un réseau va provoquer au cours d'une période donnée. Dans les deux cas, l'objectif de l'apprentissage supervisé est d'apprendre une correspondance fonctionnelle entre l'espace d'entrée dont les données sont tirées et un espace désiré ou cible qui décrit les données.
En revanche, l'apprentissage non supervisé fait référence à des scénarios dans lesquels un algorithme ou un agent doit apprendre à partir de données brutes uniquement, sans aucun retour d'information ou supervision sous la forme de valeurs cibles. Il s'agit souvent d'apprendre à regrouper des exemples similaires dans les données - une tâche connue sous le nom de clustering - ou d'apprendre quelque chose sur les distributions sous-jacentes dans l'espace d'entrée à partir duquel les données sont tirées.
Par exemple, le clustering peut être utilisé pour déterminer des groupes de machines similaires dans un réseau sur la base de caractéristiques telles que le nombre d'hôtes internes par rapport aux hôtes externes avec lesquels ils établissent des connexions et le nombre d'hôtes qui établissent des connexions avec eux.
Les méthodes non supervisées peuvent également être utilisées pour la détection d'anomalies en apprenant les propriétés et les statistiques du trafic normal sur un réseau, de sorte que les connexions réseau qui s'écartent trop de la norme peuvent être qualifiées d'anormales. Bien qu'il soit difficile d'énumérer tous les cas d'utilisation possibles, l'objectif de l'apprentissage non supervisé est d'apprendre quelque chose sur les données sous-jacentes sans utiliser d'étiquettes prédéterminées pour les décrire.
L'un des développements historiques qui a donné lieu à la popularité de l'apprentissage profond est le préapprentissage non supervisé. Il était utilisé pour apprendre un ensemble initial de poids dans un réseau neuronal avant d'utiliser des méthodes supervisées pour affiner l'apprentissage pour les classes d'images que le réseau essayait de catégoriser. Le modèle de néocognitron de Fukushima (1975) et la machine profonde de Botlzmann de Hinton et Salukhutdinov sont de bons exemples de préapprentissage non supervisé.
Enfin, l'apprentissage par renforcement fait référence aux paradigmes d'apprentissage dans lesquels un agent, interagissant avec un environnement, entreprend une séquence d'actions. Chaque action peut modifier l'état de l'environnement et, au lieu de recevoir un retour d'information explicite sur l'action correcte à entreprendre à chaque étape, il ne reçoit que des signaux de récompense généraux sur la qualité de ses performances.
Aujourd'hui, les exemples prototypiques d'apprentissage par renforcement se trouvent dans les jeux vidéo, où un agent observe l'état de l'environnement. Aux échecs, il peut s'agir de l'état de l'échiquier ou, dans un jeu Nintendo, de l'ensemble des pixels à l'écran. À chaque pas de temps, l'agent décide d'une action appropriée, par exemple quelle pièce doit être déplacée ou s'il faut se déplacer à gauche, à droite, en haut ou en bas, ou appuyer sur a/b.
L'agent ne reçoit pas d'informations explicites sur la meilleure action à entreprendre à chaque étape. Au lieu de cela, il reçoit un retour d'information sous la forme d'un signal de récompense qui intervient potentiellement assez longtemps après que l'action a été entreprise. Par exemple, il peut s'agir d'une récompense positive pour avoir gagné une partie d'échecs ou battu un niveau, ou encore d'une récompense négative pour chaque point marqué par un adversaire dans un jeu tel que Pong.
En utilisant uniquement le signal de récompense, l'agent devrait essayer d'augmenter la probabilité d'entreprendre des actions qui conduisent à des récompenses positives et de diminuer la probabilité d'entreprendre des actions qui conduisent à des récompenses négatives ou punitives. L'apprentissage par renforcement est susceptible de devenir un aspect de plus en plus important des tests d'intrusion automatisés et de la détection des intrusions. Mais il reste relativement embryonnaire dans le domaine de la cybersécurité et il est peu probable qu'il donne de bons résultats dans des scénarios de production.
Cela dit, l'équipe IA de Vectra a déjà commencé à rechercher et à développer des algorithmes d'apprentissage par renforcement pour créer des agents qui apprennent les comportements d'attaque susceptibles d'échapper aux systèmes IDS, permettant ainsi la création automatisée de données à partir desquelles un système IDS peut apprendre.