Onderzoekers publiceren code waarmee iPhone-reboot kan worden gespooft

Beveiligingsonderzoekers hebben proof-of-conceptcode van een iOS-spoof online gezet waarmee het rebootproces wordt verborgen. Dat maakt het moeilijker voor een gebruiker om een telefoon te rebooten, wat verspreiders in staat stelt malware op een toestel te houden.

De code is gemaakt door ZecOps, dat de proof-of-concept op GitHub heeft gezet. Het gaat om een trojan die de onderzoekers NoReboot noemen. Het gaat om een tool waarmee het heropstarten van een iPhone wordt verborgen. De onderzoekers zeggen dat dat interessant is voor malwareverspreiders, omdat daardoor persistence minder snel nodig is.

Veel soorten malware verdwijnen van een telefoon nadat die opnieuw opstart; persistent malware is veel moeilijker te maken en daarmee ook zeldzamer en waardevoller. De onderzoekers spoofen het rebootproces, waardoor het erop lijkt alsof een telefoon herstart of zelfs uitstaat maar in werkelijkheid blijft werken. Het gaat duidelijk om een spoof en niet om een manipulatie van het systeem. Daarom is het geen iOS-probleem dat Apple kan oplossen.

De onderzoekers zeggen dat ze code kunnen injecteren in drie daemons die worden gebruikt bij het herstarten. Dat zijn IncallService, SpringBoard en tot slot Backboardd. De eerste is de slider die gebruikers zien als ze een iPhone proberen te rebooten met de power- en volumeknop. Springboard is het proces voor de gebruikersinterface van iOS. Door daar code naartoe te sturen kan de trojan Springboard tijdelijk uitschakelen. Daardoor kunnen gebruikers geen input meer geven op het scherm.

iPhone NoReboot

Tot slot wordt Backboardd aangesproken. Dat laatste is niet per se nodig voor de spoof, maar wordt gebruikt zodat gebruikers eerder de powerknop loslaten. Als ze die te lang inhouden herstart de telefoon alsnog, en werkt het spoofen dus niet meer. Daarom manipuleren de onderzoekers Backboardd zodat het draaiende wieltje sneller aangeeft dat het rebootproces van start is gegaan. Tegelijkertijd kan Springboard worden herladen zodat het lijkt alsof alle processen opnieuw zijn opgestart.

De onderzoekers hebben een video gemaakt waarin te zien is hoe het proces werkt. Tijdens dat proces blijft de camera van een toestel gewoon werken. Gebruikers kunnen uiteraard ook op andere manieren hun telefoon blijven rebooten, dus is het geen waterdichte methode.

Door Tijs Hofmans

Nieuwscoördinator

06-01-2022 • 14:56

79

Submitter: Verwijderd

Reacties (79)

Sorteer op:

Weergave:

Het valt me wel op, dat faceid etc niet vergrendeld zijn na deze "fake" reboot. Ook wordt er niet om een SIM unlock gevraagd. Dat zouden, als je er op let, dus indicatoren kunnen zijn dat er iets mis is. Maar blijft een inventief stukje malware
Sim unlock hoeft overigens niet bij esim.
Sim unlock is bij een esim zeker wel aanwezig. Wanneer mijn iPhone opnieuw start dien ik gewoon mijn pincode in te geven.
Klopt. Ik heb zowel een nano-sim als een e-sim en moet twee keer een pincode ingeven na een reboot.
edit:
Herstel, dit gebeurt blijkbaar alleen bij een reboot na een software update.
Ik heb net mijn telefoon "geforceerd" gereboot door de volumeknoppen kort in te drukken en de rechterknop vast te houden totdat het Apple logo verschijnt.
Na een tijdje is de telefoon weer gestart en moet ik mijn toeganscode ingeven, maar vreemd genoeg wordt er niet om de pincodes van mijn simkaart en esim gevraagd.

[Reactie gewijzigd door Tranquility op 25 juli 2024 03:31]

Na een gewone reboot moet ik mijn SIM-pin invoeren, maar na de methode die jij beschrijft niet.
Hmm of mn iphone reboot nooit, of het hoeft nooit. Maar ook na upgrades en updates hoef ik hem nooit in te voeren (zit er wel een op?)

[Reactie gewijzigd door Deleon78 op 25 juli 2024 03:31]

Het zou kunnen dat je de pincode van je esim uit hebt staan..
Staat standaard dan zo.
Maar het ging erom dat je daaraan zou kunnen herkennen dat er iets mis is. Gaat niet altijd op dus.
Wellicht wordt je reboot gespooft :+
Simpincode staat uit op mijn iPhone (Enkel esim), deze functionaliteit is dus aanwezig en ik meen dat dit standaard uit staat.
Het valt me wel op, dat faceid etc niet vergrendeld zijn na deze "fake" reboot. Ook wordt er niet om een SIM unlock gevraagd. Dat zouden, als je er op let, dus indicatoren kunnen zijn dat er iets mis is. Maar blijft een inventief stukje malware
Viel mij ook op, maar dacht dat ze dit voor het filmpje uit hadden gezet..
De volgende stap is dus de logins emuleren/spoofen zodat je die netjes af geeft aan de kwaadwillende en jij wel denkt dat je die dingen ingevoerd hebt ;)
Slim.

Overigens moet ik zeggen dat ik mijn telefoon niet vaak herstart (eens in de paar maanden) en dan juist doorgaans zo'n "o ja" momentje heb dat ik even mijn code moet intoetsen.

Sim unlock staat helemaal uit. Dat is ook het eerste waar vrienden en familie bij mij om hulp vragen als ze nieuwe SIM hebben...
Volgens mij moet je je code sowieso eens per week gebruiken om je finger print of face id weer te activeren.
https://support.apple.com/en-us/HT208108

Niet helemaal juist. (de 3e komt er zo ongeveer op neer)

To use Face ID, you must set up a passcode on your device. You must enter your passcode for additional security validation when:
*The device has just been turned on or restarted.
*The device hasn’t been unlocked for more than 48 hours.
*The passcode hasn’t been used to unlock the device in the last six and a half days and Face ID hasn't unlocked the device in the last 4 hours.
*The device has received a remote lock command.
*After five unsuccessful attempts to match a face.
*After initiating power off/Emergency SOS by pressing and holding either volume button and the side button simultaneously for 2 seconds.
Dan is dat toch praktisch nog steeds iedere week? Of staat je telefoon op je nachtkastje om ook 's nachts als je slaapt faceID te gebruiken om die 4 uur niet te overschrijden? :z :+
Met een kersverse baby haal je die 4 uur wel ;) :O
Dat zijn typisch van die dingen waar je overheen kijkt als je nietsvermoedend je telefoon herstart. Op het moment dat je vermoedt dat er iets niet pluis is op je telefoon ben je alert op dit soort signalen maar de overige 99,9% van de tijd niet en dus valt het je niet op. Hooguit dat je na het opstarten denkt: "hè, ik moet toch normaal gesproken unlocken, heb ik hem wel echt herstart?". Dus doe je het nog een keer en denk je bij jezelf: "O, zal wel niet dan, okee".

Dat zou mij in elk geval wel zo vergaan :X
Heb het net even geprobeerd: de SIM unlock melding kwam pas een halve minuut later, nadat ik al WhatsApp en nog het een had opgestart.
Dit komt omdat springboard alleen de grafische schil is van iOS. Vergelijkbaar dat je explorer.exe van Windows of de Finder van macOS refreshed.

Het is dus geen volledige OS reboot, maar alleen een refresh van de grafische schil. De iOS device heeft dus geen nieuwe FaceID refresh of SIM Code nodig.

Dit gebeurd inderdaad wel vaker als er iets met de iOS software mis is of deze de hardware niet goed aan kan sturen en daardoor de mist in gaat.
Uhm ja, dat staat ook in het artikel. Ik zocht alleen naar hoe geavanceerd deze implementatie was en of er ook verschillen zaten in een fake en echte reboot. Die zijn er, die zijn misschien ook wel weer te spoofen, maar er zijn dus indicatoren om dit gedrag te spotten, maar tja dan moet je er wel bedacht op zijn, wat je meestal niet bent.
Gebruikers kunnen uiteraard ook op andere manieren hun telefoon blijven rebooten, dus is het geen waterdichte methode.
Welke andere manieren zijn dat dan?
De bekendste manier is geforceerd rebooten via de volume/power knop. Dit kan sinds de allereerste iPhone (hoewel je pre-iPhone X de homeknop moest gebruiken (maar de home knop bestaat niet meer).

Dit is ook de manier om je iPhone te rebooten wanneer die is vastgelopen. De reguliere methode werkt dan uiteraard niet, omdat iOS dan vastloopt en je geen powerslider tevoorschijn kan roepen.
Vanaf de iPhone 7 serie is de home button niet meer van toepassing voor die combinatie.
Dit omdat de fysieke knop daar is vervangen door dezelfde techniek als bij de MacBook trackpads. Het is puur een stukje glas die pas functioneert als het apparaat aanstaat.
Klopt, staat ook in de link wat ik heb geplaatst.
Dat is ook de enige manier die ik ken om te "rebooten" :Y) Wat is de normale manier dan?
Is zeker niet enige manier, je kan ook via instellingen menu herstarten
Powerbutton vasthouden en de shutdown slider wegschuiven. En daarna het toestel weer aan zetten.
Echter is dit een minder harde shutdown dan met de side en volume buttons
Powerbutton *EN een volumneknop als je FaceID hebt. Anders krijg je alleen Siri
iPhone met Face ID: Houd de zijknop en een van de volumeknoppen tegelijkertijd ingedrukt totdat je de schuifknoppen op het scherm ziet en sleep vervolgens de schuifknop 'Zet uit'.
iPhone met een thuisknop: Houd de zijknop of de sluimerknop ingedrukt (afhankelijk van welk model je hebt) en sleep de schuifknop.


Dit is dus om de iPhone normaal uit te schakelen. Lukt dit niet vanwege een OS issue of freeze, dan kan je dus geforceerd de iPhone rebooten door volume/power ingedrukt te blijven houden zoals beschreven in de link.
Ik gebruik op mijn Face ID toestel een alternatief voor de door apple gesuggereerde methode.
Je kan namelijk ook de volgende combinatie gebruiken.

1x indrukken volume omhoog
1x indrukken volume omlaag
lang indrukken van power/zijknop

Hiermee word de SOS slider niet getoond
Een waterdichte telefoon is ook wel fijn.
En dat is onmogelijk als je de batterij er eenvoudig uit kunt halen? Je kunt in principe de gehele telefoon exclusief het batterij compartiment waterdicht maken en dan de connector van de batterij met de body van de telefoon waterdicht kunnen laten aansluiten. Het is slechts een technische ontwerp uitdaging geen onmogelijkheid.
Kan prima met een deksel met een seal die je dichtschroeft o.i.d. Net als bij horloges bijvoorbeeld. En zoals HerrPino hieronder schrijft, je kan het ook zodanig ontwerpen dat het batterijcompartiment wel nat mag worden, maar de rest van de telefoon nog steeds waterdicht.
Tot slot wordt Backboardd aangesproken. Dat laatste is niet perse nodig voor de spoof, maar wordt gebruikt zodat gebruikers eerder de powerknop loslaten. Als ze die te lang inhouden herstart de telefoon alsnog, en werkt het spoofen dus niet meer.
Het gaat duidelijk om een spoof en niet om een manipulatie van het systeem. Daarom is het geen iOS-probleem dat Apple kan oplossen.
De onderzoekers zeggen dat ze code kunnen injecteren in drie daemons die worden gebruikt bij het herstarten. Dat zijn IncallService, SpringBoard en tot slot Backboardd
Kan aan mij liggen, maar dat klinkt als iets dat Apple dus wel degelijk zou kunnen patchen?
Ja kan iemand dat uitleggen waarom Apple dit niet zou kunnen fixen?
Het concept is niet te fixen door Apple. Want het komt er op neer dat een app een scherm (toevallig het boot scherm van je iPhone) simuleert.
Wat Apple wel kan fixen is de kwetsbaarheid in Springboard, maar dat gaat dan vooral om het moment waarop deze simulatie getoond wordt
“Wat Apple wel kan fixen is de kwetsbaarheid in Springboard, maar dat gaat dan vooral om het moment waarop deze simulatie getoond wordt”

Wat wel zo’n beetje het belangrijkste is van ‘t hele proces, dat men o.a. een fake slider toont én de complete UI van de iPhone om zeep kan helpen. :P Zonder die functies is de emulatie nutteloos/wordt niet aangeroepen bij poging tot reboot. Als ze dit nep reboot proces enkel kunnen aanroepen en tonen als de malware-app openstaat en/of ze kunnen niet meer net doen alsof springboard ermee kapt, dan gelooft geen hond nog dat die iPhone aan het rebooten is en ruikt men, hopelijk, stront aan de knikker of neemt contact op met Apple omdat de telefoon “raar doet”. :P

Kijk, dat een animatie “spoof” niet gefixt kan worden is logisch; dat is even logisch dat een fullscreen youtube filmpje net zou doen of de telefoon spontaan herstart ofzo. Doe je niets tegen. Maar dit gaat wel een behoorlijk aantal stappen verder, en waar het wat mij betreft mee valt en staat vereist wel degelijk een lek in iOS. En dat kan Apple imho prima patchen. :)
Vraag me af of dit ook werkt als je een iPhone probeert uit te zetten via het settings menu. Het lijkt er op dat dan dezelfde UI naar voren komt, dus ik verwacht van wel.
Toch benieuwd of dat op de achtergrond anders van elkaar werkt.
Is de crux in dit verhaal niet de fake shutdown? Je denkt je telefoon uitgezet te hebben, maar ondertussen kan je camera en microfoon nog steeds gebruikt worden om af te luisteren.
Mooi werk. Als ik het probleem goed begrijp wordt het dus veroorzaakt doordat code te injecteren is in de processen die worden aangeroepen in het normale shutdown/reboot proces. Dat lijkt me toch wel oplosbaar door Apple.
Accu leeg = malware weg dan?
Yes. En daadwerkelijk rebooten ook.
Ik hoop (en denk) dat de meeste mensen wel weten dat een iPhone niet zo snel opnieuw opgestart is en dat er een essentieel onderdeel (het Apple logo) mist in de cyclus.

[edit]
Ik zie dat ik een stukje in de uitlegvideo gemist heb :X Maar dan nog, na een reload moet men altijd zijn unlockcode en pincode ingeven, dat je dat nu niet hoeft geeft aan dat er iets niet pluis is en dat je de telefoon dan maar met de bekende toetsencombo moet herstarten.

[Reactie gewijzigd door Beaves op 25 juli 2024 03:31]

... en dat er een essentieel onderdeel (het Apple logo) mist in de cyclus.
In het filmpje is te zien dat het Apple logo aanwezig is :)
Tweakers wel maar gemiddelde consument? Als de helft daar over nadenkt is het imo al veel!
Ik heb dit (toetsencombo) net gedaan om te testen en tot mijn verbazing hoef ik GEEN pincodes voor mijn simkaarten in te geven.
Elke telefoon (en eigenlijk zelfs elk elektronisch apparaat) zou uitgezet moeten kunnen worden door de power knop ingedrukt te houden zonder enige interactie met het scherm. Als dit niet het geval is is het naar mijn mening niet eens geschikt voor gebruik. Het lijkt er dan ook op dat dit bij een iPhone niet het geval is waardoor dit soort onzin gemaakt wordt.

edit: blijkbaar kan dit wel, zie reactie hcQd

[Reactie gewijzigd door broodplank op 25 juli 2024 03:31]

Tot slot wordt Backboardd aangesproken. Dat laatste is niet perse nodig voor de spoof, maar wordt gebruikt zodat gebruikers eerder de powerknop loslaten. Als ze die te lang inhouden herstart de telefoon alsnog, en werkt het spoofen dus niet meer.
Blijkbaar gaat de telefoon wel uit als je de powerknop lang genoeg vast houdt, maar worden mensen aangemoedigd deze eerder los te laten.
Nee dat lees je verkeerd, dat gaat om de context van dit verhaal:
A user can perform a “force restart” by clicking rapidly on “Volume Up”, then “Volume Down”, then long press on the power button until the Apple logo appears.

We have not found an easy way to hijack the force restart event. This event is implemented at a much lower level. According to the post below, it is done at a hardware level. Following a brief search in the iOS kernel, we can confirm that we didn’t see what triggers the force-restart event. The good news is that it’s harder for malicious actors to disable force restart events, but at the same time end-users face a risk of data loss as the system does not have enough time to securely write data to disk in case of force-restart events.
....
Nevertheless, It is entirely possible for malicious actors to observe the user’s attempt to perform a force-restart (via backboardd) and deliberately make the Apple logo appear a few seconds earlier, deceiving the user into releasing the button earlier than they were supposed to. Meaning that in this case, the end-user did not successfully trigger a force-restart. We will leave this as an exercise for the reader.
Dus als je deze malware op je telefoon zou hebben, dan kan je voor nu dit uitvoeren:
A user can perform a “force restart” by clicking rapidly on “Volume Up”, then “Volume Down”, then long press on the power button until the Apple logo appears.
Totdat ze dat ook hebben uitgevogeld.

Dit gaat vooralsnog om een PoC.
ter aanvulling: voor nieuwere iPhones (die zonder home-button) moet je deze toetsen doen (na elkaar:)
volume +, dan volume -, dan powerbutton blijven inhouden.
eerst krijg je een scherm te zien met die slider, maar als je blijft inhouden gaat hij uit

dit verschilt met de genoemde manier van "volume+ en powerbutton tesamen inhouden", want daar krijg je het scherm te zien met die slider, en extra "medical ID" en "Emergency SOS"
als je op deze laatste manier de 2 knoppen blijft inhouden, gaat je iPhone naar Emergency SOS ipv uit te schakelen
Oke dit wist ik niet, ik zal mijn comment aanpassen
Maar ik ben wel benieuwd waarom het niet geschikt is voor gebruik (los van het feit dat vrijwel iedere apparaat uit te schakelen is met een knop, behalve draadloze oordopjes (maarja, alles draadloos en overal een batterij in dus daar moet je wat voor opofferen, in dit geval een uit-knop en het milieu)
Omdat wanneer een apparaat crashed of in een bootloop zit en de batterij er niet uit kan. Dat je zult moeten wachten tot de batterij op is als het apparaat niet uit kan met de power knop
Wat doet interactie met het scherm ertoe? Je kunt toch ook het signaal van de powerknop onderscheppen en vervolgens een shutdown spoofen?
Dus het beste de accu leeg laten loopt toch ? (Minstens 1 x per week. :?
Dan reboot die toch echt wel of niet ?? O-)
Of gewoon force reboot (volume buttons en dan power, dan vraagt ie niet om power slider, maar gaat ie direct uit)
Is dat ook niet te faken zo’n force reboot dan ?? :?
Nee, dat is op bootloader niveau, een harde reboot. Is bedoelt voor problemen waar het OS bijvoorbeeld niet meer reageert en gewoon uitzetten niet meer werkt.
Ja ik bedoel dat je ook zo’n filmpje/gifje afspeelt die het hele schermgebeuren dus nadoet/faked net als bij een hardreset. :?
Een slimme trojan als deze kan ook de telefoon fake afsluiten onder 8% ofzo en een batterij leeg schermje laten zien :)
Maar na zeg 24 uur met maar bijvoorbeeld 5% zonder opladen weet je zejer dst die een keer uit was, toch ?? 8-)
als je 24 uur zonder mobiel kan, kan je hem ook wel helemaal wegdoen heb je 100% zekerheid :p
Ik leer me net aan om zondag zo min mogelijk mijn telefoon te gebruiken.
Zondag is rustdag. En volgens de schermstatistieken lukt dat aardig resp. steeds meer. _/-\o_

Bovendien heb ik nog mijn Ipad Pro 12” (2019) & mijn surface pro 6(met mijn whatsapp desktop) erop. O-)

Iemand zonder backup/alternatief ;(communicatie-)apparaat of - apps/-vormen zou Ik niet eens een tweaker willen noemen. 8)7

Mijn familie en goede vrienden weten me altijd via menige manieren te bereiken maar weten ook dat ik “zondagsrust” houdt.

[Reactie gewijzigd door DoctorBazinga op 25 juli 2024 03:31]

Je weet dat nachtrust ook belangrijk is hè? dan zou ik niet om 2:25 nog op tweakers zitten.
Overigens vind ik het ook wel knap dat je een niet-bestaande iPad Pro hebt uit een jaar waarin geen iPad Pro is uitgekomen (12.9" in 2018 of 2020, maar geen 12" of 2019)
Ik had hem in 2019 nieuw bij de MM gekocht en wist niet meer wanneer die was gereleased. 8)7

Op dit item kan niet meer gereageerd worden.