Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Nintendo verwijdert indiegame met verstopte Ruby-interpreter uit Switch eShop

Nintendo heeft indiegame A Dark Room uit de Switch eShop gehaald, nadat de ontwikkelaar liet weten dat in het spel een Ruby-interpreter benaderbaar was. De ontwikkelaar claimt dat hij mensen kennis wilde laten maken met coderen en er met de interpreter niet veel kon.

A Dark Room is een text-based-rpg die op 12 april uitkwam voor de Nintendo Switch. Op donderdag 25 april plaatste ontwikkelaar Amir Rajan een bericht op het sociale netwerk ruby.social, waarin hij over de Ruby-interpreter en code editor schrijft. Om van de easter eggs gebruik te kunnen maken, moesten gebruikers een usb-toetsenbord op de Switch aansluiten en op de ~-toets drukken. Rajan schrijft de functies te hebben ingebouwd om 'de magie van het coderen in haar puurste vorm' te kunnen brengen naar gebruikers.

Rond het weekend blijkt Nintendo het spel uit de eShop te hebben verwijderd, schrijft Eurogamer. Nintendo heeft nog niet gereageerd op het voorval, maar het lijkt alsof de twee functies daar de reden van zijn. Uitgever Circle Entertainment zegt tegen de site ervan bewust te zijn dat het spel op 26 april uit de digitale winkel is verwijderd, maar geeft geen verdere informatie over de problemen, omdat het bedrijf nog in gesprek is met Nintendo.

Tegen Eurogamer zegt Rajan spijt te hebben van zijn keuze. "Een simpele sandboxed omgeving is nu geframed tot een grote exploit. Ik wilde kinderen en volwassenen alleen kennis laten maken met de vreugde van het coderen." Volgens Rajan was het ook alleen mogelijk om met Ruby lijnen, vierkanten en labels te tekenen en geluiden van A Dark Room af te spelen. Ook kon de interpreter registreren wanneer een knop van de Joycon werd ingedrukt. Het was alleen mogelijk apps te bouwen die op basis van die lijnen, vierkantjes en labels werken, stelt Rajan.

Op Reddit schrijft een Switch-ontwikkelaar echter dat de gebruikte Ruby-interpreter kwetsbaarheden bevatte. Zo was het met de interpreter volgens de ontwikkelaar mogelijk om in userland code uit te voeren, een 'noodzakelijke en kritische stap om de bevoegdheden van de gebruiker binnen de Switch te verhogen'. Daardoor zou uiteindelijk de Switch-drm omzeild kunnen worden.

Nintendo is volgens de redditgebruiker huiverig voor gebruikers die de drm van de console kunnen omzeilen. Daarom zou het bedrijf mogelijk kwetsbaarheden binnen het besturingssysteem zo snel mogelijk verhelpen en om deze reden zou de Switch bijvoorbeeld geen eenvoudig benaderbare webbrowser hebben.

De Ruby-interpreter zoals deze door ruby.social-gebruiker Frinkel the Raccoon is geplaatst

Door Hayte Hugo

Stagiair nieuwsredactie

30-04-2019 • 15:22

52 Linkedin Google+

Submitter: RayNbow

Reacties (52)

Wijzig sortering
Het laat vooral zien dat het veel te makkelijk is om een editor naar binnen te sneaken.
Dit dus. En ook nog eens dat de Switch makkelijk te exploiten is. Waarom kan een sandboxed game code runnen in userland?
Waar anders? Ik zou het eerder raar vinden als een sandboxed game dingen kan draaien in kernelspace...
Waar anders? In de sandbox? Alleen daarin, niet erbuiten. Een sandboxed process kan normaliter niet aan andere processen of filesysteem. Userland kan wel aan andere processen en het hele filesysteem.

En de opmerking dat kernelspace nog erger zou zijn, nja.. Dat is natuurlijk wel zo, maar dat is toch geen argument?
Waar anders? In de sandbox? Alleen daarin, niet erbuiten. Een sandboxed process kan normaliter niet aan andere processen of filesysteem.
Tot zover de theorie.

In de praktijk kan er met een exploit(chain) uit de sandbox van de applicatie gebroken worden. Dat kwam al jaarlijks in het nieuws voorbijMet andere woorden: Je kan zoveel schilletjes toevoegen als je wil, maar waar de schil rot is, gaat de schil je niet helpen.
Ik denk dat het er vooral aan ligt wat voor een sandbox mag doorgaan, en op welke level je die toepast. Het meest waterdicht is een omleiding naar je eigen proces in de kernel main loop. Alleen is er geen smartphone-OS maker die dat beschikbaar gaat stellen omdat zijn eigen gebruikersomgeving erdoor overbodig kan raken, en dan met name het daarvoor aanschaffen van software tegen betaling en gedwongen reclame voorschotelen. :+

[Reactie gewijzigd door blorf op 1 mei 2019 18:06]

Zoals ik het lees is het niet het programma dat in een sandbox draaide, enkel dat die programmeur zelf een sandbox had geschreven, en dat de gebruiker daar blijkbaar uit kon. Het probleem is, als ik die Reddit post goed lees, niet dat een game zelf in userland draait met code geschreven door de developer, maar dat het de gebruiker de optie gaf deze code te schrijven en in userland te draaien.
Maar er zullen heus andere games zijn waarbij exploits te gebruiken zijn om zo code uit te kunnen voeren. Op deze manier waren ook andere consoles te hacken. Eerst werd er een buffer overflow gevonden in een game, waarmee je code kon uitvoeren in de userspace die een kernelspace exploit misbruikt. Voila, je zit er in.

Ook kan via een userspace exploit makkelijker gezocht worden naar kernelspace exploits, omdat je trial & error hebt.

Nintendo vergeet dat ELKE game exploits heeft.

[Reactie gewijzigd door NotCYF op 1 mei 2019 00:47]

Nintendo vergeet dat ELKE game exploits heeft.
Nintendo vergeet niks. Het is niet voor niks zo dat save files (een bekende attack vector) alleen op interne storage gezet worden, waar je als normale user niet bij kunt en dat er geen general purpose web browser is (idem). Niks is perfect, getuige dat de Switch inmiddels wel redelijk gehackt is, maar dat is niet omdat ze 't niet geprobeerd hebben en 't heeft ook vrij lang geduurd voordat iemand eigen code kon draaien op 't apparaat.
Aha, zo had ik het niet gelezen inderdaad. Dan is de reactie van Nintendo wel begrijpelijk. Je kan niet aan de ene kant afschermen dat gebruikerrs custom code draaien, maar aan de andere kant games toelaten die aan gebruikers juist wel die mogelijkheid geeft.
dat de Switch makkelijk te exploiten is.

Dit geldt alleen voor Switches tot een bepaald serienummer. De nieuwere modellen zijn momenteel nog niet te exploiten.
bron: https://gbatemp.net/threa...-asking-questions.481215/
Staat hier volledig los van. Dat ie nog niet compleet kapot te hacken valt, betekent niet dat er geen exploit is. Als je met die Ruby interpreter bijvoorbeeld je avatar in het hoofdmenu kan aanpassen, of foto's kunt importeren van je SD, betekent het nog niet dat het mogelijk is unsigned programma's te draaien. Volgens de tekst kon het enkel dingen gebruiken waar de gebruiker ook direct toegang tot heeft. Blijft wel een exploit, want het zou niet moeten kunnen.
Volgens die logica is geen systeem veilig voor exploits. Wat in principe natuurlijk ook zo is.
Het zou wat zijn als geen enkel game of app tekst input mag hebben :)
Ik wilde kinderen en volwassenen alleen kennis laten maken met de vreugde van het coderen
Ja, dat doe je ook echt door een programma te verbergen achter het koppelen van een toetsenbord en daarna op ~ te drukken... Daar ga je echt interesse in programmeren mee wekken bij mensen die dat nooit gaan vinden.
Wel als je het bekend maakt.
Omdat iedereen snel een USB-C/USB-A adapter gaat kopen en met Switch in kickstand en toetsenbord eraan gaat lopen programmeren? De laptop erbij pakken is sneller en handiger.
Eh, elke Switch wordt geleverd met dock. Met USB poorten. Waar je nu al een toetsenbord op kunt aansluiten - dat wordt in bepaalde games zelfs expliciet ondersteund. Je doet net alsof het aansluiten van een tobo heel ingewikkeld is, maar dat kan gewoon out-of-the-box.
Ok. Dan moet ik dus, om met deze interpreter te gaan kloten, mijn dock, adapter, en alle andere zooi ontkoppelen, kast wegtrekken, Switch + alles bij de monitor in een andere kamer neerzetten, en vervolgens het hele riedeltje weer herhalen voor elke keer dat ik dat wil gaan doen. Of met toetsenbord op de grond voor de TV gaan zitten. Nee, bedankt. Dan kun je de middle man eruit snijden en gewoon met Ruby gaan kloten op je computer/laptop.

Genoeg sites die playful leren van programmeren aanleren, en het 10x beter doen:
https://www.helloruby.com
https://codecombat.com
https://www.tynker.com
https://codecademy.com

Etc. etc.

[Reactie gewijzigd door ItsNotRudy op 1 mei 2019 16:06]

Er staan 423 draadloze toetsenbordjes in de pricewatch die niet op BT, maar gewoon een RF transmitter werken en dus geen drivers vereisen. De goedkoopste voor twaalf euro en een dubbeltje. Ontvanger in je dock, toetsenbord wherever, klaar.

Niet dat ik het niet met je eens ben dat je programmeren beter op een PC kunt doen, maar je maakt het veel moeilijker dan nodig is.
Het is imo veel effectiever om interesse in coding te wekken in het spel en dan te linken naar, of vertellen over, de mogelijkheden die iedereen op z'n computer kan uitzoeken.

Zeker als het om een zo beperkte interpreter gaat als in dit geval. Zijn uitspraak is gewoon een slap excuus, een verhaaltje om Nintendo schuld aan te praten want "het was voor de kinderen! Haten jullie kinderen ofzo?"
Wat een gehaat in deze thread over een easter egg......
Zie dat wil zitten, lekker primair experimenteel wat programmeren op de Switch.
Zie dat wil zitten, lekker primair experimenteel wat programmeren op de Switch.
Petit Computer / SmileBASIC zou deze lente voor de Switch uit moeten komen (tenzij het weer wordt vertraagd).
Bovendien hebben we daar Labo toch voor 😜
Daarnaast komt Fuze4 in "Q2" uit, en die is gewoon in EU te krijgen. Petit Computer zal dat noet direct zijn (en zal vermoedelijk zelfs in japan nog wel een keer uitgesteld worden).
Dit had hij echt gewoon van mijlen ver kunnen zien aankomen. Dit doe je toch gewoon niet.

Je bouwt stiekem een interpreter in je software die je langs Nintendo probeert te sneaken en dan raar op kijken als je mogelijke exploit er voor zorgt dat er flink wat problemen komen. Hoe lang denkt hij dat het duurt voor dat iemand hier mee een mogelijkheid heeft gevonden om meer dan alleen lijntjes te tekenen en er backups mee te kunnen starten?
"I acted alone and stupidly. It was a last second 'spark of inspiration' and I snuck it in assuming that plugging in a USB keyboard and pressing the "~" key wasn't part of the test plan.
Dat klinkt als extreem goed getest...

Het hele verhaal op Eurogamer doet mij ook niet vermoeden dat hij het idee heeft wat hij Circle heeft aangedaan en dat dit ook niet de beste manier is om er mee weg te komen. Ik bedoel, als je de mensen die beslissen wat de gevolgen hier van zijn de "suits in charge" noemt koop je niet veel bonus punten.
Ach, als je het systeem ermee in de war kan schoppen, dan klopt de implementatie van de switch niet....
Natuurlijk gaat Nintendo het spel meteen van de EShop afhalen. Het is absurd dat iemand dacht dat het een goed idee was om dit te doen.

Easter eggs zijn ok, maar een volledige Ruby interpreter? Wtf?
Excel 97 Flight Simulator Easter Egg. (https://en.wikipedia.org/...ggs_in_Microsoft_products)
Ietsje uitgebreider dan een simpele Ruby interpreter...
Niet vergelijkbaar. Met die flight simulator kun je geen willekeurige code uitvoeren.
Maar het was wel undocumented code waardoor je mogelijk exploits introduceert doordat de code niet goed getest en gereviewd is. Daardoor moesten alle eastereggs uiteindelijk ook verwijderd worden uit de Microsoft producten omwille van de veiligheid van de software.
Microsoft is er niet voor niets mee gestopt.
Het is al meer dan wat je zou verwachten dat in een spreadsheetprogramma zou zitten. Het was een easter egg, geen key feature. Natuurlijk is het dan minder uitgebreid en gedetailleerd dan <insert flight simulator>.
Beter kunnen is uploaden :)
Who cares dat er een ruby interperter in zat?
Nintendo? Die het spel van de EShop hebben gehaald?
Is dit een echte vraag?
Maar verder? Leuk toch een beetje ruby kunnen uitvoeren. Als nintendo zijn console niet eens op orde kan krijgen...
Er zijn een aantal beveiligings risico's hier.

Ten eerste wist Nintendo er niks van af (het is last-minute er nog in gezet) en ze hebben het dus niet kunnen testen.
Ten tweede is het volgens het artikel niet veilig en kan het worden gebruikt om de DRM te omzeilen en zo illegaal gedownloade games te spelen.

Dat Nintendo dit niet op de EShop wilt hebben is vanzelfsprekend. Ik ben eigenlijk verrast dat er iemand is die denkt dat dit acceptabel is. Dit zou je bij Sony en Microsoft ook niet kunnen.

PS: Nintendo heeft dit natuurlijk verwijderd uit voorzorg. Zou ik ook doen als iemand zei dat een product wat ze op mijn EShop hostte een verborgen easter-egg had in de vorm van een interpreter.

[Reactie gewijzigd door Parrotmaster op 1 mei 2019 16:30]

Uiteindelijk zou een applicatie natuurlijk gewoon goed in de perken moeten gehouden worden door de OS. Want je kan dus ook gewoon code verstoppen die het jailbreaked...
Je wilt juist niet de applicatie te veel beperken. De kracht van consoles/handhelds is dat de software het maximale uit de hardware kan halen zonder limitaties. Je voorkomt dit soort problemen door controles en natuurlijk door het gewoon te melden als ontwikkelaar.
Dat zou vereisen dat alle games met de source aangeleverd moeten worden naar nintendo, en dat nintendo mensen inzet om dat volledig door te ploegen. Klinkt niet als ideaal, en niet als wat je wilt hebben. 1 oversight van een nintendo en dev kan desastreus eindigen voor een console...
Klinkt niet als ideaal, en niet als wat je wilt hebben.
Dat is al wat gebeurt, en waarom zou je dat niet willen hebben? Het zorgt er voor dat de kwaliteit beter wordt. Het vereist niet veel mensen en zorgt er voor dat de meeste problemen opgelost worden.

https://nintendotoday.com/nintendo-switch-quality-control/
1 oversight van een nintendo en dev kan desastreus eindigen voor een console...
En daarom is het spel direct van de EShop gehaald.
Amir Rajan heeft na het succes van A Dark Room naar mijn idee een enorme opgeblazen ego gekregen. Hij heeft de game niet eens ontworpen. Hij heeft alleen de open source code geport naar iOS en Android. De echte maker is Michael Townsend. Op Reddit deed hij zich altijd voor als een soort van indie game dev guru, hij had altijd blog posts over zijn succes en hoe andere indies hetzelfde succes als hem kunnen halen. Terwijl als je naar het traject van de release van A Dark Room kijkt dan heeft hij vooral veel geluk gehad die hij vooral te danken heeft aan Townsend. Dus het verbaast me niet echt dat hij dacht hiermee weg te kunnen komen.

[Reactie gewijzigd door ashwin911 op 30 april 2019 15:47]

Je zou dit spel maar uitgegeven hebben, dan zit je toch flink in de problemen door zo'n domme actie. Ik hoop dat CIRCLE entertainment en Nintendo er samen uitkomen. CIRCLE Entertainment heeft namelijk best wat leuke spellen.
Als hij dat zo graag wilde, dan had hij dat als basisfunctie van het spel moeten maken en niet stiekem verstoppen. Begrijp dus wel goed waarom Nintendo dit spel heeft verwijderd.
Ja, vooral veel beschermen. Alles lekker dichttimmeren. Dus bij je aparte VLAN voor iOT ook maar de Switch, Wii, PSxx toevoegen. Straks ben je nog onderdeel van het PS4/Wii/Switch-botnet dat remote ge-Rubied wordt :) :) :)
(De ZX Spectrum ook maar meenemen - wie weet wat JSW wel niet bevat aan remote exploits }:O )
zoiets ik al lang van plan, appart wifi netwerk dat geen internet access heeft voor m'n smarthome setup, {wordt volledig DIY, waardoor ik geen server afhankelijk smarthome heb van bedrijven} {maar alles via een esp8266/arduino/sonoff/wemos-D1}

dan kunnen hackers niet veel als ze op dat internet zijn ingelogt.
{en al zeker niet als ik een fake login page heb, die mensen een .bat bestand laat openen ongeacht welk wachtwoord ze invoeren, die weer een bat-bestand creert in de startup-folder die shutdown,exe runt na 5 seconden} {werkt alleen voor de idiote hackers die windows gebruiken}

[Reactie gewijzigd door darknessblade op 30 april 2019 18:11]

Nou idd, maak ook meteen een honeypot-VM. Met XP of straks Win7. Voor de indiers die bellen van Microsoft-support India. Wordt het toch nog een Indie-game :)
Haha heb ik al.

cmd: /tree commando duurt namelijk al 30 minuten {1 uur als ik echt een hekel aan ze heb}
Een beetje ervaren 'hacker' opent niet zomaar de BAT file lijkt me, maar deze kijkt wat er in staat en heeft dit dus snel door. :+


Om te kunnen reageren moet je ingelogd zijn


OnePlus 7 Pro (8GB intern) Microsoft Xbox One S All-Digital Edition LG OLED C9 Google Pixel 3a XL FIFA 19 Samsung Galaxy S10 Sony PlayStation 5 Huawei P30 Pro

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True