W32.Stuxnet Présentation Clément Notin 4IF 2012
Malicious code analyst Cette présentation est entièrement basée sur le dossier «W32.Stuxnet» publié par Symantec disponible à l'adresse : http://www.symantec.com/content/en/us/enterprise/ media/security_response/whitepapers/w32_stuxnet_dossier.pdf
Reverse engineering
Team Nicolas Falliere : INSA Toulouse Illinois Institute of Technology Symantec Google Liam O Murchu : University College Dublin Eric Chien : University of California
Centrifugeuses
Industrial control systems
Programmable logic controllers
Composition Plusieurs 0day Windows Rootkit Windows Rootkit PLC AV evasion Process injection Process hooking Network infection Escalation of Privileges (EOP) P2P updates Command&Control interface USB keys Digitally signed drivers Step7 projects infection
Scénario PLC déconnectés Laptops déconnectés Obtenir des infos sur le matériel Reproduire l'environnement pour tester Estimation de l'équipe : 5-10 développeurs pendant 6 mois Vol de certificats de signature Entrer dans le LAN Propagation intra-lan Propagation LAN laptops
Timeline Date Événement 2008 1ère utilisation de la vuln LNK Avril 2009 1er article sur la vuln printer spooler Juin 2009 1er échantillon de Stuxnet Janvier 2010 Drivers signés Mars 2010 Utilisation de la vuln LNK 13 juillet 2010 Ajout à la base virale Symantec 16 juillet 2010 Advisory MS à propos de la faille LNK Certificat révoqué 17 juillet 2010 Changement du certificat de signature des drivers 19 juillet 2010 Siemens entre dans le jeu Symantec le baptise Stuxnet 20 juillet 2010 Symantec met sous surveillance le trafic C&C 22 juillet 2010 Nouveau certificat révoqué 2 août 2010 MS sort le patch de la vuln LNK 6 août 2010 Symantec publie des infos sur l'infection des PLC 14 septembre 2010 MS sort le patch de la vuln printer spooler MS communique sur les 2 0day de privilege escalation 30 septembre 2010 Article de Symantec pour Virus Bulletin
Propagation
Objectif : 5 organisations différentes avec toutes des localisations en Iran. 10 infections initiales => 12'000 au total
Organisation.dll Exports Infection des clés USB Update Désinstallation Vérification de la connexion à Internet Resources Drivers DLL Exploits Template files Rootkits
Antivirus bypassing Hooking Injection En fonction de 9 AV et des versions Possibilité de double inception!
Démarrage
Load point MrxCls.sys
Command and control Serveurs Test de connectivité www.windowsupdate.com www.msn.com C&C www[.]mypremierfutbol[.]com Malaysia www[.]todaysfutbol[.]com Denmark Informations envoyées OS + version Computer + domain names Adresses IP des interfaces Versions de Step7 et WinCC Cryptage : XOR avec 0xFF Via Internet Explorer ou le browser installé Retour Un exécutable
Windows Rootkit MrxNet.sys : protection des clés infectées Hook : directory control/query
Propagation LAN ou Disque amovible ou Projets Step 7
Propagation LAN P2P WinCC : hardcoded password Partages réseau MS Printer spooler 0day MS Windows Server Service vuln
P2P Windows RPC Conclusion : attention aux machines qui sont connectées à Internet et au LAN privé!
WinCC Hardcoded password
Partage réseau Pour chacune des machines du réseau Windows Pour chacun des comptes Windows du domaine Tentative de connexion Si ok : exécutable poussé Job réseau de Windows Management Instrumentation qui le lance 2 minutes plus tard avec les droits de explorer.exe
Print Spooler 0day vuln MS10-061
Windows Server Service vuln (MS08-067) Date < 1 janvier 2030 BDD virale des AV < 1 janvier 2009 Date des fichiers kernel32.dll et netapi32.dll < 12 octobre 2008 (patch)
Propagation par disques amovibles
LNK Vulnerability (CVE-2010-2568) Désinfection des clés ayant contaminé plus de 3 machines Utilisation des fichiers cachés par le rootkit Vérification Déjà au moins 3 fichiers > 5 Mo d'espace libre Infection < 21 jours Fichiers : Loader, pré-rootkit DLL Plusieurs.lnk
Autorun.inf Classique Mais 2 astuces... [AutoRun] OPEN=MYAPP.EXE ICON=MYAPP.EXE ACTION=Start my application <BINAIRE EXECUTABLE> [AutoRun] Menu\command=.\AUTORUN.INF Menu=@%windir%\system32\shell32.dll,-8496
Projets Step 7
Contamination d'un projet seulement si Pas trop vieux, < 3,5 ans Ce n'est pas un projet exemple
Injection dans les PLC s7otbxdx.dll DLL qui gère les échanges de blocs entre Step7 et le PLC Monitoring et manipulation des échanges rootkit Modification du code infection
Précision de l'attaque PLC de type 6ES7-315-2? Profibus? Devices? Convertisseur de fréquence KFC750V3 (fabriqué à Téhéran)? Autre convertisseur (finlandais)? Au moins 33 convertisseurs? Observation de la fréquence pendant 13 jours, comprise entre 807 Hz et 1210 Hz?
Destruction Passage à 1410 Hz pendant 27 jours. Passage rapide à 2 Hz Puis remontée à 1064 Hz Retour à la normale pendant 27 jours. Loop!
Discrétion 3ème mode d'attaque aléatoire Advanced Persistent Threat
Conclusion Attaque de longue haleine et entretenue : 3 variantes de Stuxnet Qui? Très coûteuse 4 failles 0day 2 certificats volés Premier rootkit dans un SCADA
«The real-world implications of Stuxnet are beyond any threat we have seen in the past. Despite the exciting challenge in reverse engineering Stuxnet and understanding its purpose, Stuxnet is the type of threat we hope to never see again.»