Philips Hue-lampen eenvoudig te hacken

21 reacties

Eind vorig jaar kwam Philips op de markt met Hue, een systeem van gekleurde LED-lampen die aangestuurd worden via een iOS-app. Je leest op OneMoreThing.nl regelmatig nieuws over deze slimme lampen van Philips. Ze werd er recent een API gelanceerd en hebben de lampen binnenkort Ambilight-integratie.

Naast de positieve ontwikkelingen, zijn er een negatieve ontwikkelingen te melden. Webwereld meldt dat de slimme lampen eenvoudig te kraken zijn. Door gebruik van een Java-exploit in combinatie met een zwak authenticatiesysteem in de lampen blijkt het eenvoudig om de besturing van het licht over te nemen en een ‘blackout’ te veroorzaken.

Beveiligingsonderzoeker Nitesh Dhanjani beschrijft in een whitepaper hoe de hack werkt. De authenticatie van de lampen blijkt op basis van het MAC-adres van de computer die de lampen wil bedienen te gaan. Dit adres wordt omgezet naar een MD5-hash. Via een Java-lek kan eenvoudig het MAC-adres van een computer worden achterhaald. Het is vervolgens kinderspel om via de API, die onder andere in de iPhone-app gebruikt wordt om buitenshuis de verlichting te bedienen, commando’s naar de lampen te sturen. De onderzoeker maakte een script dat de lamp oneindig ‘uit’-commando’s geeft.

Ondanks dat de hack gezien het schaarse gebruik van de lampen geen groot probleem is, waarschuwt Dhanjani in een blogpost voor een toekomst vol ‘connected’ apparaten in huis met soortgelijke bugs.

Reacties

21 reacties
  • Profielfoto
    Anon Ymous

    Waarom zou je zoiets hacken? Wat bereik je dan? ~.~

  • Profielfoto
    MvdM

    Is leuk. Alle lampen van je buurvrouw rood maken.

  • Profielfoto
    Koning Frank

    @Cees Jol: Ongeveer hetzelfde als met een universele afstandsbediening voor de deur van een ander

  • Profielfoto
    fredmatrack

    Toch ook niet te begrijpen dat men nog md5 hashes gebruikt in beveiligingen. Dat is toch echt om problemen te vragen, los van exploits in Java.

  • Profielfoto
    marco.nl

    Potdorie!! Er zit één Hacker in mijn lampen!!! Ik Zak morgen ochtend aangifte doen!!!

  • Profielfoto
    onemorenic1

    @Cees Jol:
    stel je voor, koopavond, winkels vol, licht uit, paniek, 5 min later licht aan, winkel(schappen) leeg.

  • Profielfoto
    onemorenic1

    Nog een voorbeeld:
    Burgemeester wil redlight district weg hebben;
    Even alle rode lampjes switchen naar blauw zwaailicht en leeg is het gebied. Klaar

  • Profielfoto
    defores

    Zo te zien moet je toegang tot de computer hebben en voert de hacker de hack lokaal uit. Als het nu via internet ging was ik meer overtuigd geweest.

  • Profielfoto
    csteelooper

    @Defores: da’s in principe niet eens écht moeilijk. Maar gelukkig houden de meeste firewalls MAC-level traversal tegen (met andere woorden: zaken die op het MAC-level worden geregeld komen niet door de meeste firewalls heen, tenzij voor zoiets een poort wordt meegegeven die open staat).

    Tel daarbij op dat IPv4 nog wijdverbreid gebruikt wordt en daardoor de ‘beveiliging’ van NAT (uh… ik weet dat NAT géén beveiliging is — dat je het als zodanig kunt gebruiken is puur een bijkomstigheid die wordt veroorzaakt door de manier waarop NAT werkt) daardoor nog net zo wijdverbreid is, en je hebt nog een extra reden om je niet ál te ongerust te maken. Waar ik in dezen wel benieuwd naar ben is hoe men zich gaat beveiligen als IPv6 echt actief gaat worden; dan hebben we de pseudo-beveiliging van NAT immers niet meer om ons handje vast te houden…

  • Profielfoto
    Domtoren

    “Via een Java-lek kan eenvoudig het MAC-adres van een computer worden achterhaald”

    In het originele white paper lees ik dat het java lek gebruikt om een bash script te installeren op een computer op het lokale netwerk waar de hue bridge op zit. De eigenaar van de hue lampen moet dus java geïinstalleerd hebben en een kwaadaardige website bezoeken om dat bash script op zijn computer te krijgen (en een computer hebben waar Bash iets op doet).

    Nog een goede reden om geen Java op je computer te hebben of althans de internet plugin uit te schakelen.

    Het achterhalen van MAC adressen is vervolgens kinderlijk simpel, Zodra je op een netwerk (draadloos of bedraad) zit zijn er volop tools die een lijst tonen van alle MAC adressen op dat netwerk. Daar maak je een MD5 hash van en met elk van die hashes probeer je de lampen uit te zetten.

    Als je op een andere manier toegang krijgt tot het netwerk waarop de hue bridge zit (slecht beveiligde VPN, zwak wifi wachtwoord, kabeltje insteken in een openbare ruimte, enz) is het uitzetten van de lampen kinderspel.

    Slechte beurt van Philips om MAC adres als beveiliging te gebruiken.

  • Profielfoto
    maconly

    syphillips

  • Profielfoto
    defores

    @domtoren

    Als je Mac adres door een hash beveiligd wordt, dan is het niet zo dat als je weer het Mac-adres door een hash heen haalt dat je toegang klopt. Je hebt de originele hash nodig om een compare te maken. MD5 is wel inmiddels gedateerd maar zo eenvoudig als jij het omschrijft klopt is nou ook weer niet het geval.

  • Profielfoto
    Domtoren

    @defores

    Heb je het whitepaper van Nitesh Dhanjani bekeken? En de broncode van het bash script wat daar in de bijlage staat?

    Zo eenvoudig is het namelijk wel. Het bash script haalt alle MAC adressen van het lokale netwerk, maakt daar een MD5 hash van en probeert die als login.

    En als je iets van MD5 weet: elke keer dat je hetzelfde MAC adres met MD5 bewerkt krijg je dezelfde hash. Er is geen “originele” hash.

    Zie hieronder het relevante stukje van het bash script.

     
    mac_addresses=( $(arp -a | awk '{print toupper($4)}') )
           # Cycle through the list
           for m in "${mac_addresses[@]}"
           do
                 # Pad it so 0:4:5a:fd:83:f9 becomes 00:04:5a:fd:83:f9 (thanks
                 # http://code.google.com/p/plazes/wiki/FindingMACAddress)
                 padded_m=`echo $m | \
                               sed "s/^\(.\):/0\1:/" | \
                               sed "s/:\(.\):/:0\1:/g" | \
                               sed "s/:\(.\):/:0\1:/g" | \
                               sed "s/:\(.\)$/:0\1/"`
                 # Ignore broadcase entries in the ARP table
                 if [ $padded_m != "FF:FF:FF:FF:FF:FF" ]
                 then
                        # Compute MD5 hash of the MAC address
                        bridge_username=( $(md5 -q -s $padded_m))
                        # Use the hash to attempt to instruct the bridge to turn all
                        # lights off
                        # See the Hue API for reference at
                        #http://developers.meethue.com/2_groupsapi.html#25_set_group_state
                        turn_it_off=($(curl --connect-timeout 5 -s -X PUT http://
    $bridge_ip/api/$bridge_username/groups/0/action -d {\"on\":false} | grep success))
     
  • Profielfoto
    MichMich

    Ontwikkelaars kunnen er zelf voor kiezen met welke gebruikersnaam ze zich aanmelden tijdens de pushlink. Wanner dit dus niet op basis is van het MAC-adres, gaat bovenstaande actie niet werken. Het is dus prima op te lossen door een nieuwe iPhone app uit te brengen, en de oude pushlink entries te verwijderen.

    Misschien heb ik iets over het hoofd gezien, maar het is natuurlijk wel zo dat iemand toegang moet hebben tot je netwerk voordat ze bovenstaand trukje gaat werken. In alle eerlijkheid: als iemand met dit soort ‘kwade’ intenties toegang heeft tot mijn netwerk, dan is het uitschakelen van mijn lampen wel mijn laatste zorg.

  • Profielfoto
    defores

    Je hebt gelijk (bij PHP is dat ook het geval), zelf gebruik ik voor ontwikkeling geen MD5 en ging er vanuit dat je elke keer wel een nieuwe hash zou krijgen. (overigens wordt het ook sterk afgeraden bij PHP om MD5 nog toe te passen).

    Op zich is het dan geen bug in java maar een ontwerp fout van Philips zelf.

  • Profielfoto
    Domtoren

    In feite is de bug in Java het ernstige probleem. Bezoek je een kwaadwillende website dan kan een hacker een script op jouw computer plaatsen en dat uitvoeren.

    Ik kan me daarbij boosaardiger toepassingen voorstellen dan het uit doen van het licht.

    Daarom nogmaals: tenzij je de Java internet plugin per se nodig hebt kun je die beter verwijderen.

  • Profielfoto
    Hypertallih

    Het is voor mij wel erg. Maar ik ga nooit van die dure hue lampen kopen en helemaal niet die philips tv’s.

    Zoals altijd die ambilight zit nog in zijn kinderschoenen wel briljant die hack verduistering.

  • Profielfoto
    maconly

    syphilips

  • Profielfoto
    TLM

    Uit het artikel

    Ondanks dat de hack gezien het schaarse gebruik van de lampen geen groot probleem is, waarschuwt Dhanjani in een blogpost voor een toekomst vol ‘connected’ apparaten in huis met soortgelijke bugs.

    Inderdaad:grin:

  • Profielfoto
    dj bazzie wazzie

    Boeien, er zijn meer mensen met een klik-aan-klik-uit stopcontact en deze IR protocollen kan iedereen hacken. Je ziet toch ook niemand dit massaal hacken. Je hoeft niet alles super goed te beveiligen. Anders maak een dmz en niemand kan er meer bij:)

  • Profielfoto
    Joda2

    Mijn AppLampjes waren niet goed genoeg voor de Philips Fan Boys vanwege beveiliging:P ??
    High price big bubble; Nice price, less trouble.