Stuxnet Spöken i maskineriet Per Hellqvist Senior Security Specialist, Symantec Oktober 2011 1
Agenda 1 Tidslinje 2 Versioner vad ändrades? 3 Mål initiala och slutliga 4 Framgång och fall 5 Hur gick det till? Stuxnet 2
*Disclaimer: Jag är inte en SCADA-expert. Jag är säkerhetsspecialist. 3
Stuxnet i korthet Upptäckten publicerades i juli 2010 Attackerar industriella kontrollsystem. Slutmålet troligen en upparbetningsanläggning för uran i Iran Ändrar och döljer kod i Siemens PLCs kopplade till frekvenskonverterare med syfte att förstöra slutprodukten Innehåller 7(!) olika sätt att sprida sig, 4(!) zero day exploits, 1 känd exploit, 3 rootkits, 2 stulna certifikat, 2 Siemens säkerhetscertifikat. 3 versioner - juni 2009, mars 2010, april 2010 Extremt riktad attack Stuxnet 4
Stuxnet extremt riktad attack Infekterar i och för sig alla Windows-PC, men för att agera måste Step7-projekt finnas Exakta drivrutiner Exakt rätt nätverkskort Etc Attackeraren visste *allt* Leveranssedlar? Insiders? Presentation Identifier Goes Here 5
Stuxnets mål Slutliga målet S7-315 CPU CP-342-5 6 moduler... 31 Vacon eller Fararo Paya frekvenskonverterare per modul............ Totalt ca 186 motorer Stuxnet 6
Unique IPs Contact C&C Server (%) Stuxnets mål 70,00 Geografisk fördelning av infektioner Frekvenskonverterare 60,00 58,31 50,00 40,00 30,00 20,00 17,83 Fararo Paya Byggd i Iran 10,00 0,00 9,96 3,40 1,40 1,16 0,89 0,71 0,61 0,57 5,15 Stuxnet 7
Målet - Natanz? Stuxnet 8
Målet - Natanz? Stuxnet 9
Målet - Natanz? Stuxnet 10
Målet - Natanz? Stuxnet 11
Målet - Natanz? Stuxnet 12
Målet - Natanz? Stuxnet 13
Målet - Natanz? Presentation Identifier Goes Here 14
Målet - Natanz? Stuxnet 15
Målet - Natanz? Stuxnet 16
Första målen 5 organisationer i Iran Samtliga inom processindustrin Ingen av dem var Natanz Ingen direktaccess till upparbetningsanläggningen Infekterade någon nära anläggningen istället Piggy back-attack in i anläggningen när den personen besöker/interagerar med någon där inne En av organisationerna var måltavla för samtliga 3 versioner Stuxnet 17
Stuxnet - metodologi Ingen direkt access till målet Infektera organisationer som interagerar med målet Studera hur dessa organisationer interagerar Skaffa insider-information om anläggningen PLC-typ, hårdvara etc Skapa aggressiv mask med siktet inställt på: Förtroendebryggan mellan mål och offer Den fysiska layouten Stuxnet 18
Stuxnet - Tidslinje Juni 2008 Programmeringen börjar Januari 2009 Vissa komponenter är klara Infektioner sker i låg takt Januari 2010 Vissa komponenter i en ny variant är klara April 2010 Ny version av Stuxnet släpps 2008 Jun 2009 Jan Jun 2010 Mar Apr Jun 22 Juni 2009 Första versionen av Stuxnet kompileras. Den är redo att släppas lös. 22 Juni 2009 Första Stuxnetinfektionerna sker i Iran mindre än 24 timmar efter det att koden kompilerats Mars 2010 Ny version klar. Zero day för USB-infektion tillagd Mars 2010 Första infektionerna från denna version inträffar. Snabb spridning. Maj 2010 Infektioner från nya versionen börjar rapporteras Juni/Juli 2010 Stuxnet upptäcks Stuxnet - Tidslinje 19
Versioner Juni 2009 Låga infektionstal Mars 2010 Sprids mycket snabbt Tog bort gamla OS Lade till Zero-day för USB April 2010 Förlängd time to live Förlängd spridningstid för USB Stuxnet 20
Begränsad spridning? Attackerarna ville begränsa spridningen Ingen spridning via Internet USB exploit infekterade bara 3 PC USB exploit slutade efter 21 dagar Alla exploits har en deadline 70,00 60,00 50,00 58,31 Stor konfigurationsfil ~430 olika inställningar Varför spreds den så långt? 40,00 30,00 20,00 10,00 0,00 17,83 9,96 3,40 1,40 1,16 0,89 0,71 0,61 0,57 5,15 Stuxnet 21
Varför spreds den så långt? Zero.lnk sårbarheten var mer framgångsrik än de anade Infektionen av Step7 projekten fungerade mycket bra Underskattade hur konsulterna/underleverantörerna interagerar Underskattade hur sammankopplade företagen är Avsiktligt? Behövde den vara (onödigt) aggressiv för att fungera? Stuxnet 22
Hur Stuxnet attackerar Stuxnet använder 7 olika metoder för att sprida sig vidare! 1. USB enheter Zero Day 2. Print Spooler Vuln Zero Day 3. Ms08-067 - RCE i Server service, Conficker 4. Nätverksshares 5. P2P 6. Wincc hårdkodade lösenord 7. Step7 projekt Kontroll PC Stuxnet Nå fram till målet 23
Stuxnets stulna certifikat Stuxnet - Sabotaging Industrial Control Systems 24
Certifikaten lurar Windows, men inte oss 25
Attacken Internet Etc 1. Initial leverans Organisationens LAN 2. Nätverksattacker 3. Rapportering Uppdateringar 4. Överkomma luftbrygga 5. Leverera payload Luftbrygga Stuxnet Nå målet 26
Dataanalys Samples: Information om varje infekterad dator lagras i varje sample Filernas tidsstämplar berättar om när Stuxnet-projektet försiggick 51 % Fördelning av Stuxnets versioner 30 25 20 15 10 5 0 47 % 2 % June 22 2009 March 01 2010 April 13 2010 Stuxnet Days before Infection Statistik från C&C-servrarna Stuxnet OS Distribution Win2k 86 % 1 % 6 % 4 % 3 % WinXp WinXp 64bit Vista Win 7 Stuxnet 27
PLC koden 1. Frekvenskonverteraren måste köra mellan 807Hz och 1210Hz i minst 13 dagar 2. Ändrar frekvensen till 1410Hz i 15 minuter (hastighetsökningen kan ta ca > 16 minuter, på så sätt blir hastigheten max ~1381Hz) 3. Väntar i 27 dagar (om centrifugen arbetar mellan 807Hz och 1210Hz) 4. Ställer in frekvenskonverteraren till 2Hz i 50 minutes (inbromsningen tar ca 33 minuter) 5. Väntar i 27 days (om centrifugen arbetar mellan 807Hz och 1210Hz) 6. Repetera steg 2 (1410Hz i 15 minuter) - Spökar det tror ni? Stuxnet 28
Man-In-The-App Attack Byter ut7otbxdx.dll i Step 7/WinCC Övervakar PLC block som läses och skrivs till från PLC Skjuter in block och infekterar existerande block (OB1, OB35, och DP_RECV) Två PLC-kodsekvenser En riktar in sig på S7-315 CPU (två varianter) En annan riktar in sig på S7-417 CPU (avstängd) Stuxnet - Sabotaging Industrial Control Systems 29
Spridning Step 7 projektfiler MyProject.s7p ApiLog types homsave7 S7HK40AX s7hkimdb.dll S7HK41AX s7hkimdb.dll types: xutils links s7p00001.dbf (Stuxnets datafil) listen xr000000.mdx (Krypterad Stuxnet) s7000001.mdx (Stuxnets konfigurationsfil) DB +00 14 14 WORD 00 00 00 count 00 00 +02 BYTE[] 00 00 00 records 00 +00 WORD count +02 BYTE[] records s7hkimdb.dll %Step7%\S7BIN %SYSTEM32% %SYSTEM% %WINDIR% project's homsave7/* subdirectories Stuxnet 30
Ren eller infekterad Normal Infekterad Stuxnet 31
Framgång 1 år utan upptäckt släpptes först i juni 2009 4 zero days första gången något hot gjort detta Välkodad professionellt skriven kod PLC-koden verkar av allt att döma fungera Signerade drivrutiner stulna certifikat > 100,000 infekterade maskiner innan upptäckt, flest i Iran IAEA rapporterade att 1000 centrifuger togs ur bruk Kan det ha berott på Stuxnet? Stuxnet - Framgång 32
Misslyckanden Upptäcktes 3 månader efter USB zero day lades till Inga rapporter om cenrtifuger tagna ur bruk sedan mars Fick mycket uppmärksamhet i media Ingående analys utförd (fortgår fortfarande) Iranska myndighetern vet om den Spår lämnades i koden Stuxnet 33
Sofistikerad Första hot som riktar in sig på hårdvara Riktar in sig på upparbetning av uran Mycket kod Mycket konfigurerbar 4 zero days, flera stulna certifikat Lång rekognoseringsfas, insiders/spioner Behövde hårdvaran för att testa Stuxnet Riktar in sig på 95/98,Win2k,Winxp,Vista,Win7 3 Rootkits Kunskap om PLC programmering Stuxnet 34
Sofistikerad? Den upptäcktes Ingen avancerad kryptering C&C kunde enkelt plockas ned Information om tidigare infektioner lagrades Blåskärmar? (obekräftat) P2P skyddades inte Rootkitet var direkt osofistikerat Spreds utanför Iran Stuxnet 35
Nya versioner? Copycats? Inte enkelt att skapa en ny version Man kan inte bara lägga in nya zero days Specifik information om målet behövs Kunskap om PLC-programmering Hårdvara för testning Kunskap om exploits Iden bakom Stuxnet är att skapa äkta fara Men nu vet folk att det kan göras Andra aktörer kan börja skapa sina egna projekt när de vet att det är möjligt. Stuxnet 36
Säkra upp SCADA? Luftbryggor fungerar inte så länge datorer i närheten kan infekteras SCADA-system patchas sällan/aldrig SCADA-system behöver realtidsdata I SCADA-system är det AIC istället för CIA Antivirus kan sakta ned systemet SCADA-system är mottagliga för virus (Slammer, Stuxnet etc) Penetrationstestning på ett system i drift är en mardröm System i standby kan agera på oönskade sätt Data sänds okrypterat och utan autenticering Stuxnet 37
Lösningar och vad vi lärt oss Hotet från insiders och via underleverantörer är konkret IP är extremt värdefullt, skydda det till varje pris Övervaka system och nätverk Se upp för, och följ upp, alla varningstecken Inse att det inte är möjligt att separera nätverk skydda datorer på insidan av luftbryggan lika bra som de på utsidan White listing, beteendeblockering och ryktesbaserade lösningar kan minska risken Enhetsblockering USB, konsulternas laptops etc Vaksamhet är nyckeln Stuxnet 38
Det behövs....dedikerade resurser i förväg som snabbt kan byta fokus och svara på nya hot..tekniker som håller sig au jour med den senaste hotbilden..att ni kan agera snabbt kritisk infrastruktur kan vara i fara..partnerskap mellan den privata och publika sektorn Vi kommer förmodligen se fler hot av denna typ i framtiden. Vi måste förbereda oss på det. Stuxnet 39
Summering Stuxnet är den första kända elaka kod med avsikt att orsaka äkta skada Behövs resurser/godkännande på statsnivå Trots att Stuxnet i sig är extremt sofistikerad är det inte svårt att injicera kod i PLC Organisationer bör förutsätta att attackerare känner till hur systemen fungerar Stuxnet har förändrat hur vi arbetar på Symantec Vi förväntar oss fler hot av denna typ i framtiden Stuxnet 40
White Paper W32.Stuxnet Dossier finns här: http://www.symantec.com/content/en/us/enterprise/media/sec urity_response/whitepapers/w32_stuxnet_dossier.pdf (http://bit.ly/bxlmhg) Stuxnet 41
Tack för uppmärksamheten! Per Hellqvist Senior Security Specialist Stuxnet 42