Information om en ny skadlig kod och verktyg

Information om en ny skadlig kod (och diverse därtill hörande verktyg), som är direkt inriktad på angrepp mot ICS-miljöer och närmare bestämt automation i elnät, har precis blivit publik genom rapporter som släppts av säkerhetsföretagen ESET och Dragos.

I detta långa blogginlägg skall vi gå igenom dessa rapporter och annan information som finns publik om dessa attackverktyg.  Vi kommer analysera och kommentera en del av deras analyser, resultat, slutsatser och redovisade fakta. Det bör redan såhär inledningsvis nämnas att ifall de har fel i sitt material, så kan analyser och kommentarer naturligtvis också bli felaktiga. Vi kommer också beröra information som släppts av leverantörer och som släppts från CERT för att bättre kunna belysa samband och bakgrund till de sårbarheter, produkter eller protokoll som förekommer.

Bakgrund
--------

Den skadliga koden som presenterades i dessa rapporter har enligt författarna varit del i den händelse som skedde i Kiev, Ukraina, i december 2016, då delar av staden gjordes strömlös[18]. Det som från början antogs vara ett fel kunde relativt snabbt istället konstateras vara en externt påverkad och obehörigt utförd styrning av elsystemet, se nedan utdrag[1]:

”Dragos, Inc. was notified by the Slovak anti-virus firm ESET of an ICS tailored malware on June 8th, 2017. The Dragos team was able to use this notification to find samples of the malware, identify new functionality and impact scenarios, and confirm that this was the malware employed in the December 17th, 2016 cyber-attack on the Kiev, Ukraine transmission substation which resulted in electric grid operations impact."

Det namn som ESET satt på den skadliga koden är Win32/Industroyer, medans andra även kallar det CRASHOVERRIDE, vilket kommer från företaget Dragos utredning.

 

Uppbyggnad
-----------

Till skillnad mot vanliga IT-attacker, eller de utpressningsprogram som numera florerar ofta i nyheterna, så skiljer det här programmet ut sig rejält, främst på grund av att det är anpassat att kunna interagera med elsystems-utrustning.

De olika varianter av den skadliga koden som företagen har analyserat har haft utökningsmoduler för följande protokoll som är vanligt förekommande inom den svenska elsektorn:
* IEC 60870-5-101[9] (i allmänt tal mer känt som IEC 101)
* IEC 60870-5-104[10] (i allmänt tal mer känt som IEC 104)
* IEC 61850[11]
* OLE for Process Control Data Access[12] (i allmänt tal mer känt som OPC DA)

Dessa typer av protokoll används för att bland annat kommunicera med RTU, PLC och IED-utrustningar i anläggningar. OPC DA används också som gränssnitt internt i ICS/SCADA-produkter, för kommunikation mellan ICS/SCADA-applikationer och utrustning som levererar data till applikationen samt för extern integration där ICS/SCADA-produkten skall kommunicera med andra system.

Att det nu existerar, för elbranschen, standardprotokoll i skadlig kod som hittats ute hos elbolag gör att det finns anledning till extra eftertanke när man beaktar hotbilder och risker.

Den skadliga koden innehåller också en modul med en fjärrstyrningskomponent, en så kallad remote access trojan[4][5], RAT, vilken kontaktar omvärlden och en så kallad command and control-server (populärt kallat C2-server eller C&C-server), vartifrån kommandon kan skickas till koden på den infekterade datorn.

Andra moduler som finns för de varianter av den skadliga koden och de verktygslådor som har hittats inkluderar:
* Modul: Datawiper-modul som förstör information på den infekterade datorn.
* Verktyg: Ett verktyg för s.k. denial-of-service (DoS) attacker mot reläskyddsprodukter av märket SIPROTEC från leverantören Siemens.
* Verktyg: Portscanningsverktyg för att kunna leta efter tjänster i nätverket.

Analys och kommentarer
----------------------

Vi skall börja med att konstatera att den information som publicerats inte kommer från det drabbade företaget i Ukraina, Ukrenergo, från företag som varit direkt inblandade i den själva IT-forensiska utredningen eller från myndigheter. Detta innebär att de kan ha en ofullständig bild av händelseförloppet, hur verktyg använts eller inte.

En viktig första kommentar är att majoriteten av det som aktualiseras av attackverktyget Industroyer/CRASHOVERRIDE, och de tillhörande verktygen som hittats, inte är sårbarheter. De är därmed inte heller så kallade 0-dagarshål, vilket innebär att hålen är okända av leverantör eller allmänhet. Den enstaka sårbarhet rapporterna nämner att Industroyer/CRASHOVERRIDE kan nyttja är känd sedan flera år och det finns programuppdateringar sedan två år tillbaka som skyddar mot attacken. Med andra ord så bygger Industroyer/CRASHOVERRIDE på normal funktionalitet som förekommer i ICS/SCADA-miljöer, inte sårbarheter. Attackerna uppstår genom obehörig användning samt missbruk av protokoll och gränssnitt. Därmed så kan inte problemen som den påvisar hanteras med exempelvis patchning och programuppdatering. Istället så bygger skydd mot Industroyer/CRASHOVERRIDE på sådant som:
* Bra grundskydd i system
* Att säkerhetsfunktioner används i de applikationer som används, se nedan om åtkomstkontroll för OPC DA
* Bra IT-säkerhetsarkitektur som försvårar att en infekterad dator kan användas, kanske för att "från sidan", kunna skicka styrkommandon in mot ICS/SCADA-utrustning.

Ur ett hot- och riskperspektiv kan vi konstatera att händelsen, och den numera kända Industroyer/CRASHOVERRIDE-verktyget och dess moduler och tilläggsprogram, rör upp en del damm och att den borde påverka bedömningar som gjorts rörande hot- och risker. Nyheten om att det sannolikt var en antagonistisk attack och inte ett fel, som ledde till Ukrainahändelsen 2016, är inte en nyhet utan känt sedan gammalt. Däremot så innebär offentliggörandet den 12 juni 2017 att många elbolag och organisationer, som använder sig av dessa protokoll, blev tagna på sängen. Ur ett hot- och riskperspektiv är samlingen funktionalitet i Industroyer/CRASHOVERRIDE också intressant. Scenariot att någon antagonist först slår ut skyddsutrustning, såsom reläskydd, och sedan manipulerar styrutrustning i en anläggning skulle kunna innebära att elenergiutrustning, exempelvis transformatorer, skulle kunna skadas permanent. Dessa scenarion leder till hotbilder som många aktörer inom elbranschen inte gärna vill se, och därmed inte heller tagit höjd för i olika analyser. Förekomsten av dessa typer av verktyg påvisar att vi nu gått från teoretiska risker till konstaterade, realistiska hot.

Det skall särskilt noteras att det i en del av rapporteringen understryks att den funna Industroyer/CRASHOVERRIDE, till skillnad mot den tidigare skadliga koden Stuxnet, lätt kan användas/återanvändas i andra miljöer än den miljö i vilken den ursprungliga kopian hittades. Flera av modulerna styrs av konfigurationsfiler, vilket gör att man kan ställa in vilka mål-ip-adresser, vilka tjänster, etc som skall nyttjas när man använder en viss funktion.

En annan viktig kommentar är att förekomsten av ICS/SCADA-protokoll i Industroyer/CRASHOVERRIDE inte är helt unik, utan det finns exempel på annan skadlig kod där exempelvis OPC implementerats såsom för varianter av den skadliga koden Havex[19]. Det finns i dagsläget inga indikationer i publicerat material på att det är samma kod för OPC i Havex eller Industroyer. Andra angrepp mot industriella kontrollsystem med skadlig kod som har ICS-specifik funktionalitet inkluderar Stuxnet och Black Energy 2.

Om man läser Dragos tekniska rapport[2][3] noggrant så ser man att de fått tag i, och analyserat, ett antal kopior av huvudprogrammet, vilket dessutom varit annorlunda bestyckat än den kopia som ESET analyserat. Utifrån detta kan man även dra slutsatser att det, förutom angreppet mot Ukraina, finns andra idag angripna organisationer:

"The Dragos team has been busy over the last 96 hours reproducing and verifying ESET’s analysis, hunting and analyzing new samples of the malware, identifying additional infections, notifying appropriate companies, and informing our customers."

Flera indikationer på att Dragos och ESET analyserat olika samples är att i Dragosrapporten står det på flera ställen "This module was unavailable to Dragos at the time of publication". Detta gäller bland annat i referenser till IEC 101 och IEC 61850-modulerna.

Intressanta frågor relaterat till användningen av de ICS-specifika protokollstackarna är bland annat huruvida angriparna har:
* implementerat protokollen helt och hållet själva
* använt befintliga implementationer som släppts som öppen källkod
* använt befintliga implementationer som varit del av leverantörslösningar

Baserat på svaren på ovanstående frågor så kan vi förstå hur avancerade angriparna är. Om de bara återanvänder stulna moduler för att skicka kommandon, så har de mindre förståelse än om de själva behövt läsa specifikationer för protokollstandarderna och sedan göra implementationer själva.

Vad det gäller just implementationen av ICS/SCADA-specifika protokoll, så säger ESET följande[29] i sin rapport när de gör en jämförelse med den tidigare attacken mot Ukraina i vilken BlackEnergy användes:

" The capabilities of this malware are significant. When compared to the toolset used by threat actors in the 2015 attacks against the Ukrainian power grid which culminated in a black out on December 23, 2015 (BlackEnergy, KillDisk, and other components, including legitimate remote access software) the gang behind Industroyer are more advanced, since they went to great lengths to create malware capable of directly controlling switches and circuit breakers"

Trots förekomsten av dessa typer av specialprotokoll, så finns dock fortfarande obesvarade frågor exakt hur mycket kunskap och förståelse om elsystem och svagheter i elsystemskomponenter som angriparna har.

Dragos pekar i sin rapport[30] på att verktyget kan användas för att kapa en befintlig dator som används för IEC 104-kommunikation:

"* ‘Kills’ legitimate the master process on the victim host
 * Masquerades as the new master"

Detta beteende kan försvåra för såväl framtagande av skydd (tex brandväggsfilter) som för detektering (tex IDS-signaturer som vitlistar nättrafik).

Enligt ESETs rapport[32] så är det en implementationen av IEC 101 som använder seriell kommunikation via till datorn direktanslutna serieportar.

Implementationen av IEC 61850 innehåller bara en delmängd av protokollet samt förefaller stödja mappning mot meddelandeformatet Manufacturing Message Specification[33], MMS. Den implementerar inte mappning mot GOOSE.

Frågor relaterade till så kallad attribution[21], där man för ett intrång eller angrepp försöker hitta inblandade personer, är alltid svåra att besvara. Detta beror inte minst beroende på att möjligheten för angripare att kunna manipulera IT-miljöer och sina verktyg så att digitala spår blir falska eller felaktiga. Bra bakgrundsinformation som sammanfattar problemen med attribution finns publicerad på Robert M Lees blogg[24] och på en av de underlag han har till artikeln[25].

Följande stycke[26] finns i rapporten från Dragos vad gäller viss typ av attribution:

"Dragos, Inc. tracks the adversary group behind CRASHOVERRIDE as ELECTRUM and assesses with high confidence through confidential sources that ELECTRUM has direct ties to the Sandworm team."

Dragos använder namnet ELECTRUM på någon eller några som är en så kallad APT[22], advanced persisent threat och länkar på någon nivå samman den med APT-gruppen Sandworm team[23]. Den gruppen har under många år följts av säkerhetsanalysföretag som iSIGHT och Mandiant/Fireeye. Sandworm anses ha kopplingar till Ryssland.  Dragos pekar således inte direkt ut ett land, utan säger att ELECTRUM har kopplingar till en annan grupp, vilket andra analytiker gör bedömningar har kopplingar till Ryssland.

Dragos använder begreppet "assess with high confidence", vilket skall tolkas såsom begreppet används i underrättelsesammanhang vilket betyder att man gör en trovärdig bedömning där man i det närmaste är säker på sitt uttalande. Det skall också noteras att bedömningen görs på annat underlag än det man fått fram utifrån de kopior av verktygen som man analyserat, utan via information som delgivits från trovärdiga källor.

Attacken mot Siemens reläskydd är känd sedan tidigare och har fått ett så kallat CVE-nummer tilldelat, CVE-2015-5374[15], och finns beskrivet i en säkerhetsvarning[16] publicerad av ICS-CERT 21 juli 2015 och via säkerhetsvarningen SSA-732541[17] från leverantören Siemens. Denna attack är oroväckande i att det är ett angrepp mot en skyddskomponent. Likaså är det anmärkningsvärt i det att Siemens säger att utrustningen måste manuellt startas om. Om effekten inte bara påverkar nätverksdelen av komponenten utan kan störa ut skyddsfunktionen så är det mycket allvarligt. Ingenstans i den tidigare publicerade informationen från Siemens eller ICS-CERT eller i de senare publicerade informationen rörande attackerna så står det något om ifall skyddsfunktionen även störs ut.

I de rapporter som vi refererat till i denna text står det ingenting om de föregående infektions- eller intrångsstegen. Det står inte heller något om hur utredningarna på plats har gått till. Inte heller om det finns andra indikatorer, metadata, loggar eller digitala bevis som på annat sätt kunnat användas för att utreda eller förstå de olika händelserna. I andra sammanhang, exempelvis på konferenser i IT-säkerhet, så har personer som på olika sätt haft insyn i händelseutvecklingen i Ukraina vid den andra attacken nämnt att angreppsmetoder varit liknande den som var vid första angreppet 2015. De har hävdat att det initiala intrånget var baserat på så kallad spearphishing, vilket är riktad e-post med skadliga delar som gör att den som följer instruktionerna i eposten blir smittad och blir en infektionsvektor. Vi väntar på att det i framtiden kommer mer information om själva händelsen i Ukraina, vilket gör att helhetsbilden och sammanhang blir klarare.

I såväl Dragos[6] och i ESETs[7] rapporter omnämns ICS/SCADA-leverantören ABB i flera fall. Informationen om att ABB-plattformar är ett mål för verktygen i verktygslådan bygger bland annat på indicier som de funnit i koden, där det finns referenser till filnamnsändelser som används av ABB-produkter samt referenser till OPC processobjekt som förekommer i ABB-produkter. ABB har också släppt en säkerhetsvarning[13] som relaterar till ABB MicroSCADA och CRASHOVERRIDE. ABB säger att det inte finns några specifika sårbarheter i produkten, men att de ändå rekommenderar alla kunder som använder ABB MicroSCADA Pro att uppdatera till senaste versionen, 9.4, av produkten. Av de säkerhetsfunktioner som ABB listar så kan man särskilt notera möjligheten att ha åtkomstkontroll till OPC-serverinterfacet[14].

En sidokommentar till händelsen är att det är värt att notera att myndighetsvarningarna rörande Industroyer/CRASHOVERRIDE kommer från US-CERT, inte från ICS-CERT, vilket hade varit den naturliga utgivaren av sådan information.

Skydd och upptäckt
-----------------

Detta stycke beskriver hur elföretag kan skapa skydd och hur de bör agera för att upptäcka händelser liknande den i Ukrainaattacken 2016.

I såväl ESET-materialet som i Dragos rapport så finns det så kallade Indicators of Compromise[8], IoC, listade. Dessa inkluderar IP-adresser, kryptografiska checksummor på filer, filnamn, strängar vilka kan identifieras i nätverkstrafik, namn på körande processer, namn på windows registry-nycklar, med mera. Utifrån dessa publicerade IoC går det att göra olika typer av egenkontroller, för att kontrollera ifall andra IT- och ICS-miljöer blivit drabbade av liknande typ angrepp där dessa verktyg har använts. Det bör noteras att det finns ett klipp-och-klistrafel för en av IP-adresserna i Dragos rapport, där IP-adressen anges som 95.16.88.6 istället för 195.16.88.6.

Som de personer som gått Svenska kraftnäts IT- och cybersäkerhetskurs vet, så är det viktigt att programvaror måste hållas uppdaterade samt att ha en god säkerhetsövervakning av sina processkontrollsystem och därtill hörande kommunikationslösningar. Med hjälp av säkerhetsövervakning så kan intrångsförsök, avvikelser från användningsmönster, nätverksanomalier eller liknande upptäckas. Med hjälp av det publicerade IoC-datat kan man kontrollera i såväl realtid men framförallt i historiskt material, dvs sparade loggar från brandväggar, proxyservers och annat, ifall det finns indikationer på att ett intrång skett eller att obehörig aktivitet förekommer. 

De som använder SvK:s FOSS-verktyg eller andra Snort-baserade intrångsdetekteringsverktyg kan använda sig av regler för att upptäcka vissa av attackerna. Exempelvis så finns det publicerade IDS-regler för CVE-2015-5374[20], men man kan också använda regler[34] för att detektera ifall oanvända protokoll förekommer i nätverket (tex IEC 104 kommunikation förekommer i en IEC 61850-miljö).

Förutom att utföra kontroller i sina säkerhetssystem mot publicerad IoC-information så är en viktig aktivitet att ha god kunskap om sin ICS/SCADA-miljö, så att man kan kontrollera:
* vilken utrustning som skall kommunicera på vilket sätt
   - hur är OPC uppsatt?
* vilka dataflöden som normalt skall finnas
   - Vad är slav, vad är master. Alternativt vad är klient och vad är server?
* vilka trafikmängder förekommer under normala förhållanden
   - finns det statistik och datainsamling som kan användas för att definiera normaldrift respektive avvikelser?
* finns det skydd som kontrollerar att enbart ovanstående trafik kan förekomma?
   - hur är brandväggar konfigurerade?
   - hur är åtkomstkontroll uppsatt?
* finns det övervakning som skulle upptäcka om onormala händelser inträffar?
   - att andra system börjar kommunicera via ICS/SCADA-protokoll?
   - att vissa ovanliga funktioner eller kommandon används i ICS/SCADA-protokollen (tex förfrågningar och uppräkningar av objekt)
   - kända sårbarheter (tex CVE-2015-5374)

Siemens har uppdaterade versioner av programvaran för Siemens SIPROTEC som löser sårbarheten med DoS-attacken. ABB rekommenderar att användare har den senaste versionen av ABB MicroSCADA, inte för att den löser sårbarheter då dessa enligt deras analys inte finns, utan för att den tillhandahåller nya säkerhetsfunktioner som begränsar fjärråtkomst till de känsliga gränssnitten.

Generellt så kan man peka på de säkerhetsstrategier som ges i Svenska Kraftnäts IT‑säkerhetsarkitektur[27]. Mer specifikt kan man även följa de råd och riktlinjer som ICS-CERT har publicerat[28].

Slutsatser
--------

Industroyer/CRASHOVERRIDE visar att mer tillämpade attacker mot automationsutrustning förekommer och inte bara är fantasifoster hos säkerhetsspecialiser och datorkonsulter. Till skillnad mot Stuxnet, Havex och BlackEnergy så är Industroyer/CRASHOVERRIDE fokuserad mot elbolag och mer specifikt för att kontrollera elnätskomponenter och därmed elnät. Verktyget är moduluppbyggt vilket gör det anpassningsbart samt att det har inbyggda fjärrstyrningsdelar. Verktyget möjliggör såväl styrning och kontroll, såväl som att det har inbyggda destruktiva funktioner (lokalt på den infekterade datorn, på distans mot exempelvis reläskydd). Allt detta gör Industroyer/CRASHOVERRIDE till ett potent IT-vapen med möjligheter att kunna ställa till med stor skada hos en drabbad organisation.

Framtida varianter av liknande skadlig kod, där man via protokoll såsom 61850 programmässigt enumererar enheter i, och automatiserar förståelse av, den angripna miljön skulle kunna leda till allvarliga konsekvenser.

Samma verktyg, eller verktyg med liknande funktionalitet, skulle kunna användas mot aktörer i Sverige och på andra ställen i Europa. Det är därför viktigt att elföretag ser över sitt skydd och sin löpande säkerhetsövervakning för att kunna stå emot samt upptäcka försök till manipulation eller lyckade intrång i industriella kontrollsystem. Svenska kraftnät har i risk- och sårbarhetsanalysen för svenska elsektorn 2016[31] påpekat att det finns risker för sabotage och elektronisk spionage mot svenska elbolag.

Avslutning
---------

Avslutningsvis så kan vi säga att det med största sannolikhet kommer komma fram mer information om såväl nya offer, modus operandi, andra plugin-moduler, mer teknisk analys, med mera. Det kommer bli intressant att se pusslet växa fram bit för bit. Om sådan ny information framkommer, så kommer vi att följa upp denna bloggartikel med ny analys och nya kommentarer.

 

Fotnoter:

[1] sid 3 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf
[2] "Dragos analysts were able to obtain two samples" sid 12 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf
[3] "Dragos obtained four samples which all featured similar functionality" sid 13 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf

[4] https://en.wikipedia.org/wiki/Remote_administration_tool#RAT_trojan_horses

[5] "Access to the ICS network flows through a backdoor module." sid 13 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf

[6] sid 16-17 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf
[7] sid 12-14 i https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf
[8] https://en.wikipedia.org/wiki/Indicator_of_compromise
[9] https://en.wikipedia.org/wiki/IEC_60870-5#IEC_60870-5-101
[10] https://en.wikipedia.org/wiki/IEC_60870-5#IEC_60870-5-104
[11] https://en.wikipedia.org/wiki/IEC_61850
[12] https://en.wikipedia.org/wiki/OPC_Data_Access
[13] "ABB Cyber Security Notification - MicroSCADA Pro SYS600 and CRASHOVERRIDE" - https://library.e.abb.com/public/b14f12750b7c4202b9dc5fb3bc89580b/Customer_Cyber_Security_Notification_CrashOverride_MicroSCADA_Pro.pdf
[14] sid 3 i "ABB Cyber Security Notification - MicroSCADA Pro SYS600 and CRASHOVERRIDE"
[15] CVE-2015-5374
[16] https://ics-cert.us-cert.gov/advisories/ICSA-15-202-01
[17] https://www.siemens.com/cert/pool/cert/siemens_security_advisory_ssa-732541.pdf
[18] http://www.reuters.com/article/us-ukraine-crisis-cyber-attacks-idUSKBN1491ZF
[19] OPC-användningen av Havex beskrivs här https://ics-cert.us-cert.gov/alerts/ICS-ALERT-14-176-02A
[20] http://docs.emergingthreats.net/bin/view/Main/2024376
[21] att kunna identifiera bakomvarande personer eller organisationer, att koppla ihop olika händelser, att kunna härleda intrång till antagonister.
[22] Sandworm team finns definierade här https://attack.mitre.org/wiki/Group/G0034
[23] http://www.reuters.com/article/us-ukraine-cybersecurity-sandworm-idUSKBN0UM00N20160108
[24] http://www.robertmlee.org/the-problems-with-seeking-and-avoiding-true-attribution-to-cyber-attacks/
[25] https://www.fbiic.gov/public/2012/mar/National_Responsibility_for_CyberAttacks,_2012.pdf
[26] sid 4 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf

[27] http://www.svk.se/siteassets/aktorsportalen/sakerhetsskydd/dokument/vagledning-it-sakerhetsarkitektur-final.pdf
[28] https://ics-cert.us-cert.gov/tips/ICS-TIP-12-146-01B
[29] sid 2 i https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf
[30] sid 17 i https://dragos.com/blog/crashoverride/CrashOverride-01.pdf
[31] sid 20-21 i http://www.svk.se/siteassets/om-oss/rapporter/161031-rsa----rapport.pdf
[32] sid 6 i https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf
[33] https://en.wikipedia.org/wiki/Manufacturing_Message_Specification
[34] https://blogs.cisco.com/security/talos/iec-104-protocol-detection-rules

Referenser:

* https://www.welivesecurity.com/2017/06/12/industroyer-biggest-threat-industrial-control-systems-since-stuxnet/
* https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf
* https://dragos.com/blog/crashoverride/
* https://dragos.com/blog/crashoverride/CrashOverride-01.pdf
* https://www.us-cert.gov/ncas/alerts/TA17-163A
* https://github.com/eset/malware-ioc/tree/master/industroyer
* https://github.com/dragosinc/crashoverride