Taggat med: iOS

Så identifierar du spionprogramvaran Pegasus från NSO Group

I detta blogginlägg tänkte jag redogöra för en av flera metoder som kan användas för att identifiera spionprogramvaran Pegasus från ökända NSO Group.

Pegasus installeras via en eller flera sårbarheter som utnyttjas främst i iPhones. Och kräver att användaren öppnar en länk, SMS eller liknande. Dessa sårbarheter går under benämningarna Zero-Click, One-Click eller FCP som står för Full Chain with Persistence. Lite beroende på vilken typ av sårbarhet som utnyttjas.

Att vi känner till några av sårbarheterna som utnyttjas av Pegasus är för att Citizen Lab har analyserat mobiltelefonerna hos personer med kopplingar till Bahrain Center for Human Rights. Sårbarheterna åtgärdades i iOS version 14.8 som släpptes igår. Och sårbarheterna har CVE-2021-30860 som är enligt Apple:

Processing a maliciously crafted PDF may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited.

Samt CVE-2021-30858 som inrapporterats av en anonym person men som återfinnes i Webkit:

Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited.

Detektion

Tyvärr så finns det inget bra sätt att analysera innehållet på en iPhone om den inte är jailbreakad. Jag hoppas på att Apples Endpoint Security som finns till macOS även kommer att komma till iOS.

Har du inte möjlighet att jailbreaka så finns det några andra metoder att använda. Dels kan du via en MDM-lösning forcera ett VPN som gör det möjligt att titta på nätverkstrafik som går till och från en mobiltelefon och dels så kan du analysera backup-filer från iTunes. Även finns det möjlighet att installera en proxy som tittar på all kommunikation samt titta på eventuella loggfiler/krashloggar.

Men för detta blogginlägg tänkte jag testa MVT (Mobile Verification Toolkit) som är ett verktyg som släppts av Amnesty International. Det är ett öppet verktyg som är skrivet i Python och kan ge en fingervisning om en mobiltelefon blivit hackad.

Verktyget MVT hittar du på Github här samt Indicator of Compromise (IOC) hittar du här. Värt att nämna är att MVT även fungerar på Android-baserade mobiltelefoner.

Steg 1 är att skapa en backup av iOS-enheten via iTunes eller Finder. Du kan även skapa en krypterad backup, för mvt kan dekryptera denna med hjälp av ett lösenord:

När vi sedan har en backup så behöver vi eventuellt dekryptera denna först, det kan man göra på följande sätt:

$ mvt-ios decrypt-backup -p lösenord -d decrypted "/Users/kalle/Library/Application Support/MobileSync/Backup/00002040-00030A2313CB021A" 

Då har vi sedan en dekrypterad backup i katalogen decrypted. Då skriver vi nästa kommando som plockar ut artefakter:

$ mvt-ios check-backup --output mvt-output decrypted

Och som sista steg så laddar vi hem Pegasus IOC:er och kollar dessa mot mvt-output katalogen:

$ wget https://raw.githubusercontent.com/AmnestyTech/investigations/master/2021-07-18_nso/pegasus.stix2
$ mvt-ios check-iocs --iocs pegasus.stix2 mvt-output

Och om du ser något annat än en rad som börjar med INFO bör vidare undersökningar genomföras.

MVT pegasus malware scan

Efter detta rekommenderar jag att kontroller med andra verktyg såsom Loki, på följande sätt:

$ docker run -it --rm -v loki_signatures:/app/signature-base -v /Users/kalle/mvt-output/:/scan mablanco/loki --force --printall --intense --debug -p /scan

Även finns det mer IOC:er att kontrollera mot, bl.a här. Observera att denna metod först och främst kontollerar om mobiltelefonen kommunicerat med några av de kända ändpunkterna. Huruvida sårbarheten/sårbarheterna lyckats eller ej är svårare att avgöra med denna metodik.

Uppdatering: Erik från Netresec tipsade om denna enkla metod som kan användas. Obs denna kan ge en hel del false positives:

Bild av Sora Shimazaki från Pexels

Apple börjar söka igenom mobiltelefoner

Uppdatering: Det verkar som att även macOS omfattas av denna genomsökning och inte enbart mobiltelefoner. Även så har det nu skapats ett öppet brev till Apple som går att skriva under.

Apple kommer att från och med iOS 15 samt iPadOS 15 att söka igenom iCloud-bilder efter specifika signaturer. Detta kommer att göras direkt från enheten genom att en databas laddas upp med CSAM-hashar. CSAM står för Child Sexual Abuse Material och är således ett system för att söka igenom barnporr.

Systemet ser ut enligt följande på en övergripande nivå:

Algoritmen för att skapa hashar heter NeuralHash och medger att Apple kan få larm om eventuella matchningar. Men det är förenat med ett stort intrång i integriteten eftersom nu genomsöks en del i det som går under benämningen end-to-end kryptering. I framtiden kanske även andra appar genomsöks såsom Signal, Wire och Telegram. Om användaren inte använder sig av iCloud kommer ingen genomsökning att genomföras.

Apple har dock uppgett tidigare att de genomsöker bilder som ”laddas upp” samt så gör både Google och Facebook genomsökning av bilder sedan tidigare. Även så ändrade Apple användarvillkoren redan 2019 att inkludera en text om att uppladdat material ska genomsökas:

We may also use your personal information for account and network security purposes, including in order to protect our services for the benefit of all our users, and pre-screening or scanning uploaded content for potentially illegal content, including child sexual exploitation material.

Och den gången pratades det om ett system vid namn PhotoDNA som är utvecklat av Microsoft.

En annan nyhet som också Apple har gått ut med är att barn under 13 år som får ett meddelande via iMessage som innehåller naket innehåll så kommer föräldrar att erhålla en varning samt att bilden kommer automatiskt att bli blurrad. Detta har dock troligtvis inget med CSAM att göra.

I denna pdf kan du läsa mer om hur CSAM fungerar: CSAM_Detection_Technical_Summary.pdf

Google släpper nytt krypto-bibliotek: Tink

Tanken med Tink är att underlätta vardagliga programmeringsuppgifter som omfattar kryptering inom Google. Eftersom det är lätt att göra fel så ville man skapa ett bibliotek som minimerar risken för misstag samt göra det möjligt att använda biblioteket med flertalet programmeringsspråk och plattformar. Tink används redan i dagsläget i produktion inom Google i produkter såsom AdMob, Google Pay, Google Assistant, Firebase,  Android sök-App.

Google släppte för några veckor sedan version 1.2.0 som även stödjer iOS (Obj-C) och C++. Även finns numera stöd för Cloud KMS som är Googles nyckelhanteringstjänst.

För granskning av säkerheten i Tink har bl.a. Wycheproof används, ett verktyg utvecklat av Google för att identifiera kryptografiska brister i bibliotek.

Exempel på hur tink kan användas i Java med authenticated encryption with associated data (AEAD)

    import com.google.crypto.tink.Aead;
    import com.google.crypto.tink.KeysetHandle;
    import com.google.crypto.tink.aead.AeadFactory;
    import com.google.crypto.tink.aead.AeadKeyTemplates;

    // 1. Generate the key material.
    KeysetHandle keysetHandle = KeysetHandle.generateNew(
        AeadKeyTemplates.AES128_GCM);

    // 2. Get the primitive.
    Aead aead = AeadFactory.getPrimitive(keysetHandle);

    // 3. Use the primitive.
    byte[] ciphertext = aead.encrypt(plaintext, aad);

Vore mycket trevligt om du stödjer mitt bloggande via Patreon, från 9kr/månad. 

Apple inför USB Restricted Mode på iOS-enheter

Apple kommer snart att genomföra en intressant säkerhetshöjande åtgärd. Denna nya åtgärd kallas för USB Restricted Mode och innebär att ingen datakommunikation tillåts via lightning-kontakten om kontakten inte varit upplåst inom 7 dagar. Med upplåst menas att en PIN-kod skrivits in på iPhonen eller iPaden. Att ladda mobiltelefonen kommer fortfarande att fungera.

Stöd Kryptera.se via Patreon. Från 1$/månad ➜ 

De som körde 11.3 beta av iOS hade denna funktion och därför antogs det att den skulle komma i iOS version 11.4 som släpptes förra veckan, men så blev det inte. Istället kommer funktionen att komma i 11.4.1 som är nästa version (oklart när denna släpps?).

Anledningen till att denna funktion kommer att införas är för att försvåra för forensiska verktyg som säljs av företag såsom Cellebrite och GrayShift. När Elcomsoft genomförde tester så gick det inte att utläsa något via lightning-anslutningen så fort USB Restricted Mode blev aktivt.

Givetvis finns det sätt att ta sig förbi även detta. Såsom att du kan återansluta mobiltelefonen till en betrodd enhet om och om igen och då få längre tid på dig att försöka ta dig in i telefonen.

Skärmdump som visar på USB-låst iPhone:

Inställning som indikerar på att det även går att förkorta tiden ner till 1h, se inställningen längst ner:

Säkerhetsuppdateringar från Apple

Apple släppte igår en stor mängd säkerhetsuppdateringar till iOS, macOS, watchOS samt tvOS. En eller flera av dessa åtgärdar säkerhetsbrister som gör att en angripare kan exekvera kod över nätverket.

Även så åtgärdas tre kryptobuggar där två av dessa är relaterade till S/MIME (e-postkryptering):

  • A S/MIME encrypted email may be inadvertently sent unencrypted if the receiver’s S/MIME certificate is not installed
  • An encryption issue existed with S/MIME credetials. The issue was addressed with additional checks and user control.
  • OpenSSL X.509 IPAddressFamily parsing

Hela listan med säkerhetsåtgärder följer nedan:

apache

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: Processing a maliciously crafted Apache configuration directive may result in the disclosure of process memory

Description: Multiple issues were addressed by updating to version 2.4.28.

CVE-2017-9798

curl

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: Malicious FTP servers may be able to cause the client to read out-of-bounds memory

Description: An out-of-bounds read issue existed in the FTP PWD response parsing. This issue was addressed with improved bounds checking.

CVE-2017-1000254: Max Dymond

Directory Utility

Available for: macOS High Sierra 10.13 and macOS High Sierra 10.13.1

Not impacted: macOS Sierra 10.12.6 and earlier

Impact: An attacker may be able to bypass administrator authentication without supplying the administrator’s password

Description: A logic error existed in the validation of credentials. This was addressed with improved credential validation.

CVE-2017-13872

Intel Graphics Driver

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13883: an anonymous researcher

Intel Graphics Driver

Available for: macOS High Sierra 10.13.1

Impact: A local user may be able to cause unexpected system termination or read kernel memory

Description: An out-of-bounds read issue existed that led to the disclosure of kernel memory. This was addressed through improved input validation.

CVE-2017-13878: Ian Beer of Google Project Zero

Intel Graphics Driver

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with system privileges

Description: An out-of-bounds read was addressed through improved bounds checking.

CVE-2017-13875: Ian Beer of Google Project Zero

IOAcceleratorFamily

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to execute arbitrary code with system privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13844: found by IMF developed by HyungSeok Han (daramg.gift) of SoftSec, KAIST (softsec.kaist.ac.kr)

IOKit

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with system privileges

Description: An input validation issue existed in the kernel. This issue was addressed through improved input validation.

CVE-2017-13848: Alex Plaskett of MWR InfoSecurity

CVE-2017-13858: an anonymous researcher

IOKit

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to execute arbitrary code with system privileges

Description: Multiple memory corruption issues were addressed through improved state management.

CVE-2017-13847: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13862: Apple

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: An out-of-bounds read was addressed with improved bounds checking.

CVE-2017-13833: Brandon Azad

Kernel

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13876: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: A type confusion issue was addressed with improved memory handling.

CVE-2017-13855: Jann Horn of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: A malicious application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13867: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to read restricted memory

Description: A validation issue was addressed with improved input sanitization.

CVE-2017-13865: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: A validation issue was addressed with improved input sanitization.

CVE-2017-13868: Brandon Azad

CVE-2017-13869: Jann Horn of Google Project Zero

Mail

Available for: macOS High Sierra 10.13.1

Impact: A S/MIME encrypted email may be inadvertently sent unencrypted if the receiver’s S/MIME certificate is not installed

Description: An inconsistent user interface issue was addressed with improved state management.

CVE-2017-13871: an anonymous researcher

Mail Drafts

Available for: macOS High Sierra 10.13.1

Impact: An attacker with a privileged network position may be able to intercept mail

Description: An encryption issue existed with S/MIME credetials. The issue was addressed with additional checks and user control.

CVE-2017-13860: Michael Weishaar of INNEO Solutions GmbH

OpenSSL

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: An out-of-bounds read issue existed in X.509 IPAddressFamily parsing. This issue was addressed with improved bounds checking.

CVE-2017-3735: found by OSS-Fuzz

Screen Sharing Server

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6

Impact: A user with screen sharing access may be able to access any file readable by root

Description: A permissions issue existed in the handling of screen sharing sessions. This issue was addressed with improved permissions handling.

CVE-2017-13826: Trevor Jacques of Toronto

Ny trådlös attack som använder Bluetooth: BlueBorne

BlueBorne är samlingsnamnet på en ny uppsjö av säkerhetsbuggar som identifierats i den trådlösa standarden Bluetooth och kan potentiellt drabba 5.3 miljarder enheter världen över.

Säkerhetsbuggarna har identifierats av företaget Armis som jobbar just med IoT-säkerhet. Att säkerhetsbuggarna kan drabba så pass många enheter beror på att flertalet sårbarheter har identifierats i många av de mjukvaror som implementerar Bluetooth-standarden.

Följande sårbarheter har identifierats i plattformarna Android, Windows, Linux och iOS:

  • Linux kernel RCE vulnerability – CVE-2017-1000251
  • Linux Bluetooth stack (BlueZ) information leak vulnerability – CVE-2017-1000250
  • Android information leak vulnerability – CVE-2017-0785
  • Android RCE vulnerabilities CVE-2017-0781 & CVE-2017-0782
  • The Bluetooth Pineapple in Android – Logical Flaw CVE-2017-0783
  • The Bluetooth Pineapple in Windows – Logical Flaw CVE-2017-8628
  • Apple Low Energy Audio Protocol RCE vulnerability – CVE-2017-14315

Den enhet som attackeras behöver inte ställas i synligt-läge och några behörigheter behöver inte användas för att nyttja någon av ovan attacker enligt Armis.

Demonstration av attacken finner du här:

Här kan du ladda hem ett tekniskt papper i PDF-format:

Inbyggd lösenordshanterare i nya Apple iOS 11

Det nya operativsystemet till Apples mobiltelefoner iPhone och iPads som heter iOS 11 kommer att skeppas med en inbyggd lösenordshanterare. Denna lösenordshanterare kommer att fungera med webbsidor samt appar där du skriver in ett lösenord. Tidigare har det funnits möjlighet att spara lösenord via Safari och webbsidor i iOS.

Just nu är iOS ute i en beta-version men kommer i en skarp version om några veckor. Du kan även välja att skydda dina lösenord med fingeravtryck.

Denna skärmdump visar på hur inloggningsrutan i Facebook-appen ser ut i iOS 11 med val för lösenord direkt ovanför tangentbordet:

Tyvärr så hjälper denna inbyggda lösenordshanterare inte användare att skapa bättre lösenord ännu, dvs det finns ingen inbyggd generator. Även om funktionaliteten är basal så spår jag att företag såsom 1Password kommer att få svårare att sälja sina relativt dyrbara produkter.

Apple släpper säkerhetsuppdateringar 🔒

AppleIgår så släppte Apple en stor mängd med säkerhetsuppdateringar. Vissa av dessa uppdateringar åtgärder sårbarheter som innebär att en antagonist kan exekvera kod över nätverket, eller ”An attacker in a privileged network position” som Apple skriver.

Även en mängd lokala attacker såsom utbrytning ur Apples sandlåda.

Nätverksattackerna gäller:

  • Captive Network Assistant – Exekvera kod
  • CFNetwork Proxies – Dataläckage
  • MapKit – Dataläckage

Uppdateringarna gäller följande operativsystem och applikationer:

  • tvOS 9.2.1 for Apple TV (4th generation)
  • iOS 9.3.2 for iPhone 4s and later, iPod touch (5th generation) and later, and iPad 2 and later
  • watchOS 2.2.1 for Apple Watch Sport, Apple Watch, Apple Watch Edition, and Apple Watch Hermes
  • OS X El Capitan v10.11.5 and Security Update 2016-003 for OS X El Capitan v10.11and later
  • Safari 9.1.1 for OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, and OS X El Capitan v10.11.5
  • iTunes 12.4 for Windows 7 and later

SSL sårbarhet i iOS (iPhone/iPad etc)

Apple-SSL-#fail

Ny information. Läs mer här!

Apple släppte i går en uppdatering till operativsystemet iOS som återfinnes i bl.a. iPhone och iPad. Felet som åtgärdas med denna uppdatering är att det genomförs en bristfällig kontroll av värdnamnet i certifikatet stämmer överrens med det värdnamn dit anslutningen upprättas.

Detta kan illustreras genom följande exempel där vi först testar med curl  i Ubuntu Linux som misslyckas:

Linux

Och sedan på en Macbook Pro med Mac OS X version 10.9.1 (Mavericks) där anslutningen lyckas:

Mac OS X

IP-adressen 74.125.143.94 är www.google.se.

Rolig kommentar från Twitter av Christopher Soghoian:

 

Denna sårbarhet möjliggör för en angripare att exempelvis genomföra MITM attacker.

Uppdatering: För att förtydliga. Curl använder sig av Secure Transport (aka darwin-ssl) som genomför bristfällig kontroll av värdnamnet. Från Apples länk nedan:

Secure Transport failed to validate the authenticity of the connection. This issue was addressed by restoring missing validation steps.

Felet verkar enbart uppträda när ett IP-nummer används istället för värdnamn samt så påverkar även denna bugg Mac OS X.

Detta gäller således enbart anslutningar där IP-nummer används istället för värdnamn. Det är svårt att gissa hur många SSL-anslutningar som använder IP-nummer istället för värdnamn.

Exempel 2 gällande Apples bristfälliga SSL-validering

Du ansluter till https://1.2.3.4 men ett annat SSL-certifikat än för 1.2.3.4 returneras. Allt fungerar fortfarande bra. Oklart om det gäller självsignerade certifikat eller om hela certifikat-kedjan ändå verifieras.

Läs mer hos Apple här: