XcodeGhost
XcodeGhost (och variant XcodeGhost S) är modifierade versioner av Apples Xcode- utvecklingsmiljö som anses vara skadlig programvara . Programvaran fick först stor uppmärksamhet i september 2015, när ett antal appar som härrörde från Kina hade den skadliga koden. Det ansågs vara den "första storskaliga attacken mot Apples App Store", enligt BBC. Problemen identifierades först av forskare vid Alibaba , ett ledande e-handelsföretag i Kina. Över 4000 appar är infekterade, enligt FireEye, mycket fler än de 25 som ursprungligen erkändes av Apple, inklusive appar från författare utanför Kina.
Säkerhetsföretaget Palo Alto Networks förmodade att eftersom nätverkshastigheterna var långsammare i Kina, letade utvecklare i landet efter lokala kopior av Apple Xcodes utvecklingsmiljö och stötte på ändrade versioner som hade lagts ut på inhemska webbplatser. Detta öppnade dörren för skadlig programvara att infogas i högprofilerade appar som används på iOS-enheter.
Även två månader efter de första rapporterna rapporterade säkerhetsföretaget FireEye att hundratals företag fortfarande använde infekterade appar och att XcodeGhost förblev "en ihållande säkerhetsrisk". Företaget identifierade också en ny variant av skadlig programvara och kallade den XcodeGhost S; bland apparna som infekterades var den populära meddelandeappen WeChat och en Netease- app Music 163.
Upptäckt
Den 16 september 2015 nämnde en kinesisk iOS-utvecklare på det sociala nätverket Sina Weibo att en skadlig kod i Xcode injicerar tredjepartskod i appar som kompilerats med den.
Alibaba- forskare publicerade sedan detaljerad information om skadlig programvara och kallade den XcodeGhost.
Den 17 september 2015 publicerade Palo Alto Networks flera rapporter om skadlig programvara.
Drift
Fortplantning
På grund av den långsamma nedladdningshastigheten från Apples servrar skulle kinesiska iOS-utvecklare ladda ner Xcode från tredjepartswebbplatser, som Baidu Yun (nu kallad Baidu WangPan), en molnlagringstjänst som Baidu är värd för, eller få kopior från kollegor. Angripare utnyttjade denna situation genom att distribuera komprometterade versioner på sådana filvärdwebbplatser.
Palo Alto Networks misstänker att skadlig programvara var tillgänglig i mars 2015.
Attackvektor
Ursprung
Angriparen använde en kompilator-bakdörrsattack . Det nya med denna attack är modifieringen av Xcode-kompilatorn. Enligt dokument som läckt ut av Edward Snowden hävdade dock CIA-säkerhetsforskare från Sandia National Laboratories att de "hade skapat en modifierad version av Apples egenutvecklade mjukvaruutvecklingsverktyg, Xcode, som kunde smyga in övervakningsbakdörrar i alla appar eller program som skapats med hjälp av verktyget. "
Ändrade filer
Kända versioner av XcodeGhost lägger till extra filer till den ursprungliga Xcode-applikationen:
- Kärntjänstramverk på iOS, iOS-simulator och OS X-plattformar
- IDEBundleInjection-ramverket lagt till på iOS, iOS-simulator och OS X-plattformar
XcodeGhost modifierade också länken för att länka de skadliga filerna till den kompilerade appen. Detta steg rapporteras på kompileringsloggen men inte på Xcode IDE .
Både iOS- och OS X-appar är sårbara för XcodeGhost.
Spridning
XcodeGhost äventyrade CoreServices-lagret, som innehåller mycket använda funktioner och ramverk som används av appen. När en utvecklare kompilerar sin applikation med en komprometterad version av Xcode, integreras de skadliga CoreServices automatiskt i appen utan utvecklarens vetskap.
Då kommer de skadliga filerna att lägga till extra kod i klassen UIWindow och klassen UIDevice. UIWindow-klassen är "ett objekt som hanterar och koordinerar vyerna som en app visar på en enhetsskärm".
Klassen UIDevice tillhandahåller en singleton- instans som representerar den aktuella enheten. Från den här instansen kan angriparen få information om enheten såsom tilldelat namn, enhetsmodell och operativsystemets namn och version.
Beteende på infekterade enheter
Säkerhetsrisker med fjärrkontroll
XcodeGhost kan fjärrstyras via kommandon som skickas av en angripare från en kommando- och kontrollserver via HTTP. Dessa data krypteras med DES - algoritmen i ECB - läge . Inte bara är detta krypteringsläge känt för att vara svagt, krypteringsnycklarna kan också hittas med omvänd ingenjörskonst. En angripare kan utföra en man i mittenattack och överföra falsk HTTP-trafik till enheten (för att till exempel öppna en dialogruta eller öppna specifik app).
Stjäla användarenhetsinformation
När den infekterade appen startas, antingen genom att använda en iPhone eller simulatorn inuti Xcode, kommer XcodeGhost automatiskt att samla in enhetsinformation som:
- Aktuell tid
- Aktuellt infekterad appnamn
- Appens paketidentifierare
- Aktuell enhets namn och typ
- Det nuvarande systemets språk och land
- Aktuell enhets UUID
- Nätverkstyp
Då kommer skadlig programvara att kryptera dessa data och skicka dem till en kommando- och kontrollserver . Servern skiljer sig från version till version av XcodeGhost; Palo Alto Networks kunde hitta tre serverwebbadresser:
- http://init.crash-analytics.com
- http://init.icloud-diagnostics.com
- http://init.icloud-analysis.com
Den sista domänen användes också i iOS malware KeyRaider .
Läs och skriv från urklipp
XcodeGhost kan också, varje gång en infekterad app startas, lagra data som skrivits i iOS urklipp. Skadlig programvara kan också ändra denna data. Detta kan vara särskilt farligt om användaren använder en lösenordshanteringsapp.
Kapa öppningsspecifika webbadresser
XcodeGhost kan också öppna specifika webbadresser när den infekterade appen startas. Eftersom Apple iOS och OS X fungerar med URL-mekanism för kommunikation mellan appar (t.ex. "whatsapp://", "Facebook://", "iTunes://"), kan angriparen öppna alla appar som är installerade på den utsatta telefonen eller dator, i fallet med ett infekterat macOS-program. En sådan mekanism kan vara skadlig med appar för lösenordshantering eller till och med på nätfiskewebbplatser.
Meddelande varningsdialogruta
I sin nuvarande kända version kan XcodeGhost inte skicka varningsdialoger på användarenheten. Det kräver dock bara mindre ändringar.
Genom att använda en UIAlertView-klass med egenskapen UIAlertViewStyleLoginAndPasswordInput kan den infekterade appen visa en falsk varningsdialogruta som ser ut som en vanlig Apple ID-användarkontroll och skicka indata till kommando- och kontrollservern.
Infekterade appar
Bland alla kinesiska appar infekterades IM-appar, bankappar, mobiloperatörsappar, kartor, aktiehandelsappar, SNS-appar och spel. Populära appar som används över hela världen infekterades också som WeChat , en populär snabbmeddelandeapp, CamScanner , en app för att skanna dokument med smartphonekameran eller WinZip .
Pangu Team hävdade att de räknade 3 418 infekterade appar.
Fox-it, ett nederländskt säkerhetsföretag rapporterar att de hittat tusentals skadlig trafik utanför Kina.
Borttagning
Neutralisering av kommando- och kontrollservrar och komprometterade versioner av Xcode
Sedan artikeln från Alibaba och Palo Alto Networks tog Amazon ner alla servrar som användes av XcodeGhost . Baidu tog också bort alla skadliga Xcode-installatörer från sin molnlagringstjänst.
Ta bort skadliga appar från App Store
Den 18 september 2015 erkände Apple förekomsten av skadlig programvara och började be alla utvecklare med komprometterade appar att kompilera sina appar med en ren version av Xcode innan de skickade in dem för granskning igen.
Pangu Team släppte ett verktyg för att upptäcka infekterade appar på en enhet, men som andra antivirusappar kommer det inte att köras på en enhet som inte har varit jailbreakad . Apple tillåter inte antivirusappar i iOS App Store.
Kontrollerar Xcode-versionen
Apple råder Xcode-utvecklare att verifiera sin version av Xcode och att alltid ha Gatekeeper aktiverad på sin maskin.