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

Broncode Samsung SmartThings en andere gevoelige data was toegankelijk

Een beveiligingsonderzoeker heeft ontdekt dat de broncode van interne Samsung-projecten waaronder SmartThings publiek toegankelijk was. Hij kon bij de data omdat er een GitLab-instance werd gebruikt waarbij de projecten op 'public' stonden.

Beveiligingsonderzoeker Mossab Hussein doet zijn verhaal tegenover TechCrunch. Hussein ontdekte dat ontwikkelaars die voor Samsung werken een GitLab-instance gebruikten op een domein dat in het bezit is van de Koreaanse fabrikant. De tientallen projecten die daar op stonden waren publiek toegankelijk en niet beschermd met een wachtwoord. Iedereen met de url kon de projecten bekijken en de broncode downloaden.

Volgens Hussein stonden er inloggegevens van het AWS-account in een van de projecten. Daarmee kon hij meer dan honderd S3-opslagbuckets inzien waar logs en analytische data in staan. Daarbij ging het onder andere om data voor Samsungs SmartThings-toepassingen en Bixby-diensten. Ook vond hij GitLab-tokens van verschillende medewerkers, die in platte tekst waren opgeslagen. Daarmee kreeg hij toegang tot in totaal 135 projecten.

Samsung zou Hussein gezegd hebben dat het om testbestanden ging, maar de beveiligingsonderzoeker zegt dat de SmartThings-broncode die hij op GitLab vond, overeen komt met de code van de Android-app die in de Google Play Store staat. Hussein zegt ook dat hij aanpassingen aan de code had kunnen maken met de rechten die hij had verkregen.

Ook had Hussein toegang tot certificaten voor de iOS- en Android-apps van SmartThings. Verder vond hij verschillende interne documenten en slideshows. De onderzoeker merkt op dat het mogelijk is dat iemand dergelijke toegang heeft gehad en zonder dat Samsung het weet aanpassingen in de broncode heeft gemaakt.

Op 10 april heeft Hussein Samsung ingelicht van zijn bevindingen. Daarop begon de fabrikant met het intrekken van de AWS-inloggegevens. Volgens Hussein duurde het tot 30 april voordat Samsung alle private keys die hem toegang gaven tot GitLab-projecten had ingetrokken.

In een reactie tegenover TechCrunch zegt Samsung dat het bedrijf snel alle sleutels en certificaten op het testplatform heeft teruggetrokken. Samsung zegt geen bewijs gevonden te hebben dat anderen toegang hebben gehad tot de data, maar dat wordt nog verder onderzocht.

Door Julian Huijbregts

Nieuwsredacteur

08-05-2019 • 20:52

32 Linkedin Google+

Reacties (32)

Wijzig sortering
Dat hele iot moet aan banden gelegd worden, zelfde geldt voor de haast ziekelijke drang om alles maar digitaal te moeten opslaan, papier wat in de eu gebruikt wordt is al jaren duurzaam, er is geen enorme noodzakelijkheid om allen digitaal te moeten doen. Zolang er geen goede manier(en) komen om onze gegevens (veilig) op te slaan kunnen we best normale dossiers aanhouden wbt medische en andere prive gegevens. Keer op keer blijkt alles lek als een mandje en gaan al onze gegevens naar t buitenland en andere misbruikers....
Waarom is die broncode 'gevoelig'? (Er staat immers "en andere gevoelige data").

Die term wordt meestal gebruikt voor dingen als persoonsgegevens of de middelen om deze te verkrijgen. Broncode behoort daar niet toe.

Als die code goed in elkaar zit dan is er niks gevoeligs aan. En zoniet dan moet die gewoon gefixt worden. Anders zou elk open-source project wel "gevoelig" zijn.

De andere dingen zoals die AWS inloggegevens zijn natuurlijk wel gevoelige data.

SmartThings was juist een stuk interessanter geweest als het wel open source was geweest.

[Reactie gewijzigd door GekkePrutser op 8 mei 2019 21:49]

De onderzoeker merkt op dat het mogelijk is dat iemand dergelijke toegang heeft gehad en zonder dat Samsung het weet aanpassingen in de broncode heeft gemaakt.
Zoals je wellicht gemist hebt kon de onderzoeker niet alleen lezen, maar ook schrijven/wijzigen.
Probleem is dus dat er dan geen controle is op de wijzigingen / toevoegingen. Ideaal trojaans paard, beetje dat wat meerdere leveranciers bestempelen als onmogelijk, onwaarschijnlijk en dus ongetwijfeld realiteit.
Vindt het een raar verhaal dat wijzigingen niet te zien zouden zijn...

Je kan ze over het hoofd zien maar het hele idee van git is dat die wijzigingen juist wel gelogd zijn?
Wilde ik ook al zeggen, maar als er automatische builds gemaakt worden dan wordt het misschien over het hoofd gezien. En ook zonder automatische builds is het mogelijk dat een wijziging wellicht geen argwaan trekt. Ik kan me voorstellen dat ze de git vertrouwen, want de wijziging zou onder de naam staan van een daadwerkelijke medewerker die het recht heeft om zo'n commit te maken. "Oh, Roos heeft het gemaakt en het staat al op master dus het zal wel goed zijn."
Sowieso lijkt het me logisch voor zo'n groot bedrijf om projecten die niet Open Source zijn op een eigen gehoste GIT te zetten. Dan heb je ook dit risico niet en lachen mensen je niet uit omdat je inloggegevens in je GIT bewaard.
Als je de wijziging maakt met een account dat al eerder wijzigingen heeft doorgevoerd, dan vallen deze waarschijnlijk niet echt op. Je gaat ook niet elke wijziging die een dev maakt controleren, je gaat er vanuit dat die nodig was.
dit is waarschijnlijk de realiteit, daarom zijn code reviews (al dan niet via pull requests) toch wel heel handig en belangerijk.
Er staat ook niet dat ze de wijzigingen niet gezien hebben maar niet konden zien...

Als het klopt wat @mocean zegt hieronder dan is dat een goede verklaring van het statement. Maar iets over het hoofd zien staat bij niet gelijk aan het niet kunnen zien.
Je kan met voldoende rechten changes maken die niet in de commit history komen, of later iets wijzigen:
https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
Wat ik extra storend vind is dat de SmartThings community best open en actief was in het maken van customizations in de vorm van apps en ondersteuning van nieuwe hardware die de gebruikers zelf konden bouwen en delen. Totdat samsung de boel overnam en het met alle geweld in een nieuwe app wilde repackagen als standaard product op hun telefoons en andere apparatuur om de concurrentie met homekit aan te gaan; development kwaliteit holde achteruit en als bijdrager van code moest je maar zorgen dat jouw code werd overgezet naar de nieuwe app van samsung. Tot op de dag van vandaag kan dat nog steeds niet 100% omdat het nieuwe platform niet zo open is als de dev community zou willen. En dan wel weer op deze manier blunderen. Ik kan me voorstellen dat de sfeer bij het smartthings dev team al niet meer zo goed was, het zal mede bijgedragen hebben aan de desinteresse voor het gebeuren.

[Reactie gewijzigd door CopyCatz op 8 mei 2019 22:36]

Omdat in dit geval de login voor AWS in de broncode staat?
Zou goed zijn als de code publiek was, dan kon je je IOT apparaat nog een beetje vertrouwen - open code zorgt vaak dat developers betere code schrijven, omdat ze weten dat mensen er naar kijken. Nog afgezien van het vinden en rapporteren van issues door derden natuurlijk. Maar om je login data in je publieke repo te zetten, tja, niet handig.
Gebruik nu een jaar Home Assistant en dat is toch echt dé software die je wilt als je in to home automation bent.

Volledig open source en ook nog eens compatible met smartthings wat wil je nog meer?
En een dag later vragen om een transscript van alle gesprekken rondom de Home Assistant.
Home Assistant is geen spraakassistent maar home automation software: https://www.home-assistant.io/ ik gebruik het thuis ook tot volle tevredenheid. Ik heb een paar van onze touchscreens (https://www.dptechnics.com/en/products/touchscreen-7.html) hangen met de HA interface er op. Works like a charm.
Home Assistent is leuk, maar ik vindt het erg jammer dat het in Python geschreven is.

Het is nogal een vreemd eentje, alleen al qua formatting en declaraties.
Ik ben python recentelijk juist gaan waarderen, het is iets anders maar dat went snel.
het is een zeer effectieve scripting taal. Een stuk leesbaarder dan enkele anderen.
Wat is er mis met python? leesbaar, fatsoenlijk te debuggen en een fijne community.
Wat had je anders willen hebben? PHP?, Perl? Javascript? Cobol wellicht?
Ik denk dat het project een stuk minder toegankelijk geweest zou zijn
Nu is het grootste probleem dat ik Python niet veel gebruik, ik had Home-Assistent liever gehad in een taal die ik veel programmeer.

Daarnaast, vindt ik Python gewoon raar en heb ik vooralsnog altijd een alternatief gehad (welke vaak beter toepasbaar was.

Webdev lukt mij prima met NodeJS/JavaScript.
Embedded of high-performance gaat prima in C/C++.
En een applicatie die relatief cross-plarform is en makkelijk te schrijven is kan in Java.

Mijn punt is dat JavaScript, Java, C++/C, C#, swift (en een hele kloot aan andere talen) een heel ander (meer standaard) format heeft met accolades etc. En een veel duidelijkere functie/noodzaak.
Python heeft mijn inziens een heel andere opzet waardoor het wisselen tussen Python en andere talen irritant is.

Ik heb een stukje Python opgezocht om mijn geheugen op te frissen, maar zag dat daar een hele lijst aan "elif" (is toch gewoon een "else if"?) in stond, daar was een switch-case mooier. Toen kwam ik er achter dat zoiets niet echt bestaat in Python (https://jaxenter.com/impl...ment-python-138315.html)?

Daarnaast is "__init__" gewoon een rare naam voor een constructor?

Overigens is Python dan puur je backend?
Dan ben je je front-end alsnog in JavaScript aan het maken?

----

Het is dus enigszins waar je zelf van houdt. Maar ik snap niet waarom ik Python zou willen programmeren, ik denk dat er betere alternatieven zijn welke qua syntax en ingebouwde functies meer op elkaar lijken.
gelukkig heeft ieder zijn eigen voorkeur, en dat mag ook. Ik deel je mening zeker wat betreft C++ en embedded. Java heb ik dan persoonlijk weer een afkeer tegen. over switch/case vs if/elif/else zijn al hele blogs vol geschreven

Mooiste compliment dat ik kreeg over Python (2005, python was minder mainstream) van een Perl/C++ ontwikkelaar was tijdens een workshop waar ik een concept algoritme probeerde uit te leggen aan de hand van een (werkende) python implementatie:

ontwikkelaar: "nice concept, when will you have a working implementation ready?"
Divvid: "The 'concept code' is a copy and paste from the working python implementation.

Je had z'n gezicht moeten zien.
Java ben ik ook niet zo'n fan van.
Ik heb het idee dat het tegenwoordig wel minder populair wordt ook, wellicht maakt het inderdaad ruimte voor Python.

Mogelijk dat ik mij toch eens in HA ga verdiepen, het is daarbij juist een interessant project om in Python te verdiepen.
Wat "modules" schrijven voor communicatie met randapparatuur o.i.d.

Maar we zijn het naar mijn idee wel eens dat Python wat 'apart' is qua syntax, het is inderdaad maar net wat je daar van vindt en wat je gewend bent.
waar kan je die kopen?
Ik ben fan geworden van Mozilla's nieuwe WebThings Gateway. Veel gebruiksvriendelijker voor normale stervelingen die niet in textbestandjes willen frutten.

http://iot.mozilla.org/
Ah jah, ik weet niet of t eventjes geleden is dat je Home Assistant geprobeerd hebt, maar tegenwoordig is enorm veel te doen via de UI (en dus niet meer die textbestandjes). Uiteraard kan dat nog steeds (en behoeft mijn persoonlijke voorkeur) maar ik snap best dat dat niet voor iedereen weggelegd is.

Maar hier kun je een aantal voorbeelden vinden, onderaan staan screens van mijn huidige setup, bovenaan mijn vorige:
https://community.home-as...tible/109099/23?u=jimz011

Maar om eerlijk te zijn ken ik maar weinig Software die zo uitgebreid zijn als Home Assistant, enige wat ik me kan bedenken wat er in de buurt komt is OpenHAB. En natuurlijk heb je ook Domoticz, Smartthings, Homey, Homebridge etc, maar die zijn naar mijn mening toch echt inferieur aan Home Assistant. Home Assistant heeft zo ontzettend veel integraties dat er eigenlijk maar weinig alternatieven over blijven, tenzij je uiteraard 1 soort product wilt, of producten koopt die compatible zijn met bijv Homey of Homekit van Apple.

Een goed voorbeeld: IKEA heeft tradfri stopcontacten (slimme stopcontacten). Deze zouden Homekit compatible zijn, maar wel pas na een update. Die update is er inmiddels, maar daar hebben mensen wel 4 a 5 maanden op mogen wachten. Met Home Assistant was dit geen probleem en had ik dus 5 maanden geleden al tradfri stopcontacten in Homekit staan (overigens gebruik ik Homekit niet meer behalve voor spraak/scenes activeren).
Of bijv. mijn pc’s zijn allemaal met Home Assistant te bedienen, aan of uitzetten? No problem, en bij het uitzetten logt ie me gewoon netjes uit net als dat je m fysiek uit zou zetten. En met een mqtt sensortje kan ik zelfs alle details uitlezen van mijn pc via Home Assistant zoals cpu gebruik, vrije RAM, schijfruimte, huidig netwerkverbruik etc etc.

En zo zijn er talloze andere zaken (en ja ongetwijfeld zal andere software het ook kunnen, maar ik ken weinig dat zo veel kan én ook nog eens 2 verschillende ios apps heeft)

Als t lang geleden is dat je Home Assistant geprobeerd hebt adviseer ik je er weer eens naar te kijken, mits je er wel tijd in wilt steken, want hoe je t ook wend of keert, het blijft een “beta” project en ondanks dat het steeds beter wordt en steeds meer via de UI kan zul je ongetwijfeld nog geregeld wat onenigheid ermee krijgen.
Met wemos bordjes + tasmota, of omgeflashte sonoff devices met tasmota en een mqtt broker als mosquitto + node red kun je prima compleet open source IoT toepassen. Ben blij dat ik van die closed source zwave apparaten en protocollen af ben. Stuk betrouwbaarder ook.
Same, ik gebruik zigbee hubs (xiaomi en ikea) en een berg sonoffs/magichome leds met Tasmota. Flashen was super simpel en dat voor een onhandige als ik.

Je vraagt je wellicht af waarom ik die hubs nog gebruik, en het antwoord daarop is simpel, als Home Assistant voor wat voor reden dan ook niet werkt, dan kan ik terugvallen op de hubs (in een jaar tijd 1x meegemaakt, maar dat kwam door mijzelf helaas).
Geen bedankje voor Hussein? Dit zijn toch de eerste dingen die je test en vreemd dat je alles maar in zo'n repo gooit. Iemand kan zo ook een commit pushen die de veiligheid niet echt ten goede komt lijkt me?
En dit soort partijen bouwen dus software waar je gevoelige informatie aan prijsgeeft.
In de Google cache kan je nog rondkijken in een aantal pagina's van de repository:

https://www.google.com/se...https://git.vandevlab.com
Volgens Hussein stonden er inloggegevens van het AWS-account in een van de projecten. Daarmee kon hij meer dan honderd S3-opslagbuckets inzien waar logs en analytische data in staan.
Hierop kan ik maar één ding zeggen: credentials horen niet in een repo te staan, of ze nou voor testing, review, production of whatever zijn. Gewoon niet.

Misschien ben in ik wat naïef met deze verwachtingen: maar ik had meer verwacht van code review, quality assurance en security bij een bedrijf als Samsung. Hopelijk gebruiken weldenkende dev-teams environment variables, te beheren door de juiste personen.
Het is inderdaad nogal amateuristisch om beveiligingsgegevens in source control te zetten. Terecht dat je verwacht dat een groot bedrijf als Samsung dit soort zaakjes beter op orde heeft. Niet echt naïef in mijn optiek.

[Reactie gewijzigd door da Burp op 9 mei 2019 12:42]

Ik was al vrij argwanend tegenover al die massa stockage van data door grote logge firma's, maar ik heb de indruk dat dergelijke voorvallen eerder een puntje van de ijsberg is als het aankomt op hoe dat grote bedrijven met onze data veiligheid omgaan. Dit zijn werkelijk slordige praktijken en geven niet echt blijk van professionaliteit en meer nog verantwoordelijkheid... Er zou dringend een wetgeving moeten komen dat elke fabrikant absoluut niets mag stockeren zowel lokaal als in de cloud. Dat je hiervoor kiest brengt uiteraard functionele gevolgen, maar het is niet aan de fabrikant om te bepalen wat wel en niet kan met onze gegevens (zeker niet als we voor iets betalen).

In ieder geval zal ik vanaf nu heel goed kijken dat ik geen software van hun in huis haal, dit voorval is werkelijk te belachelijk voor woorden...

[Reactie gewijzigd door junkchaser op 8 mei 2019 23:23]


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 Laptops

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