De IXrouter onder de loep

Geplaatst door

Contents

Abstract

IXON is een bouwer van Industrial IoT hardware, en specifiek Secure Remote Access op netwerk niveau.
Hiervoor wordt zowel de hardware als de software zelf ontwikkeld, met als paradepaardje de IXrouter.
We kregen de IXrouter3 in huis en voerden een aantal diepgaande tests uit met het oog op security.

Het ontvangen toestel is de IXrouter3 met firmware 3.4, de versie met enkel een Ethernet uplink. Hierbij werden een viertal onderdelen nader bekeken:

  • De portal website connect.ixon.co
  • Initiële setup van de router
  • Instellingsmogelijkheden
  • De hardware

Inleiding

De routers van IXON zijn zogenaamde “Cloud” routers. Dat kan veel betekenen, maar betekent in dit geval dat ze puur via het internet werken.

Dit is een keuze die veel voordelen biedt naar onderhoudbaarheid en veiligheid, maar het grootste nadeel is natuurlijk dat de IXrouters compleet onbruikbaar zijn op locaties waar nooit internet toegang mogelijk of wenselijk is. Configuratie is enkel mogelijk m.b.v. een internet verbinding, waarbij enkel een uitgaande HTTPS (TCP/443) verbinding volstaat.

Naast remote access kan de router ook uitgebreide vormen van monitoring aan: ophalen en opslaan van data (Modbus, OPC UA, S7comm en EtherNet/IP), diagnostics en doorsturen van diezelfde data. Zelfs het grafisch weergeven van die datapunten behoort tot de mogelijkheden.
Dit betekent meteen ook dat de router, met alles errond, veel belangrijke en private gegevens bevat en dus ook goed beveiligd moet worden. Zelfs los van het feit dat deze router ook dient als toegangsweg naar het bedrijfsnetwerk of toch een stuk daarvan.


De IXON IXrouter

De hardware is volledig door IXON zelf ontwikkeld, voor de software wordt echter beroep gedaan op het gekende open source pakket OpenWrt Chaos Calmer 15.05.1, gebaseerd op OpenBSD. Hierboven draait dan de IXagent die alle communicatie met de dataservices van IXON verzorgt en uiteraard de router instelt.

https://connect.ixon.co

Alles start bij de webpagina connect.ixon.co waar desgewenst een gratis account kan worden aangemaakt. Via deze pagina worden configuratiebestanden aangemaakt voor de initiële configuratie van de router en dienen alle verdere aanpassingen aan de routerinstellingen te worden uitgevoerd.

De bedoeling is dat een nieuwe gebruiker eerst wordt gekoppeld aan een bepaald bedrijf en dat IXON toestellen dan vervolgens ook gekoppeld worden aan bedrijven. Op die manier is het mogelijk om extra gebruikers uit te nodigen om deel uit te maken van een bedrijf. Dit kunnen ook bijv. installateurs, technici of medewerkers zijn.

Op deze website, die duidelijk grafische gelijkenissen vertoont met de Google Web Apps, zit dus alle beheer: routers, gebruikers, bedrijven, configuraties, uitnodigingen, wachtwoorden, certificaten …
Het is dus zeer belangrijk dat dit portaal veilig wordt opgebouwd, het is namelijk het meest zichtbare gedeelte bij het gebruik van de IXON toestellen.

De site zelf wordt gehost in Amsterdam, net zoals alle andere (web) services van IXON. Een belangrijk detail indien hier bepaalde bedrijfsgegevens worden uitgewisseld met het oog op Intellectual Property.

Connect.ixon.co werd gecontroleerd op zaken als SQL Injection, Cross-Site-Scripting, Cross-Site-Request-Forgery en diverse andere, typische web kwetsbaarheden en daarbij werd niks ernstigs gevonden. Er wordt met voldoende lange en willekeurige authenticatie headers en tokens gewerkt.

Naar performantie toe is er een nadeel doordat de website code volledig in de browser draait en dat hiervoor eerst één code bestand (js-bestand) van 4.6Megabyte moet worden gedownload bij elk bezoek van de website. Dat kan aandikken bij veel bezoeken via bijvoorbeeld 3G of Edge.

 De enige gevonden fout was dat het sessie token bij het manueel uitloggen (klikken op Log Out) niet wordt gewist op de server. Hierdoor kan iemand, die eerst het verkeer al moest onderscheppen, toch nog inloggen. Vooral een risico bij gebruik van de website op publieke computers.
⇒ Dit is intussen, na rapportering, opgelost.

Het is ook sowieso aanbevolen om de aanwezige Two Factor Authentication optie in te schakelen.

Initiële setup van de router

Zoals vermeld is de IXrouter een “cloud” router en kan deze énkel en alleen geconfigureerd worden via internet. Hiervoor maakt de router een verbinding via HTTPS en OpenVPN tunnels met de services van IXON.

Bij het uitpakken van de router en na aansluiten in ons netwerk van demokoffers werd dan ook gecontroleerd of enige vorm van lokale configuratie mogelijk was. Volgende standaard instellingen werden gedetecteerd:

  • Hostname IXrouter3.lan met aan de WAN zijde een DHCP client
  • Aan de LAN kant (4 poorten) zit IP adres 192.168.27.1/24 met een werkende DHCP server
  • Routing op zich werkt wel, maar de firewall staat zo goed als volledig dicht. In de praktijk werkt internet aan de LAN kant dus NIET.
  • DNS werkt wel (enkel bij rechtstreeks gebruik van 192.168.27.1)
  • Langs WAN kant zijn alle poorten dicht
  • Langs LAN kant is een SSH poort gedetecteerd, naderhand zou blijken dat er hier een zeer lang root wachtwoord nodig is, wat wellicht bij elk toestel anders is

Die keuze vormt echter een uitdaging voor de allereerste setup: hoe configureer je een router, waar je lokaal niks op kunt instellen, om überhaupt te kunnen verbinden met de buitenwereld? Zeker als er moet gebruik gemaakt worden van Wi-Fi of 3G is toch een eerste vorm van configuratie nodig?

De oplossing: configuratie via USB stick

Via de reeds vermelde website connect.ixon.co is het mogelijk om een initieel configuratiebestand aan te maken, dat dan onder de naam “ixrouter.conf” (en énkel die naam) op een FAT32 USB stick moet worden geplaatst. Bij het inpluggen van die stick op de router, leest deze dan de configuratie in om vervolgens zichzelf van een initiële configuratie te voorzien.

Dit werkt niet als de router reeds een configuratie bevat.

Een zeer inventieve oplossing, maar met een paar security nadelen:

  • Het genoemde bestand “ixrouter.conf” is in feite een tekstbestand zonder encryptie. Dit bestand kan toch een aantal gevoelige zaken bevatten: Wi-Fi wachtwoorden, PIN codes van de SIM kaart, wachtwoord van de proxy, ID van het bedrijf, netwerkgegevens. Bovendien bevat de stick ná het gebruik ook een interessant log bestand van de interne werking van de router.
    • Hierdoor is het niet ondenkbaar dat dergelijke USB stick verloren gaat en dus ook de bijhorende gevoelige gegevens.
    • Eender welke vorm van encryptie (desnoods Base64) kan het risico al gevoelig verlagen. Uiteraard is het ook de taak van de eindgebruiker om veilig om te gaan met USB sticks.
  • Slechts één regel is minimaal nodig in dit bestand: de ID van het bedrijf waar het toestel zichzelf moet bij registreren.
    Deze regel kan er zo uit zien: ixrouter.wan.ixapi_account_id=3688-2654-8820-9876-1234
    Na het resetten van het toestel (5 seconden op de reset knop) kan dit toestel dan ook aan eender welke account worden gekoppeld.

    • Het is niet ondenkbaar dat een individu een USB stick heeft met een bestand “ixrouter.conf” dat bovenstaande regel bevat. Vervolgens op de reset knop drukt van de router en de stick in plugt om op die manier, vrij eenvoudig, permanent toegang te verkrijgen tot een bedrijfsnetwerk.
      Het is dus voor eindgebruikers aangeraden om ook de fysieke toegang tot het toestel nauwkeurig te beveiligen.
    • Een oplossing kan zijn om routers die reeds gekoppeld zijn aan een willekeurige bedrijfsaccount (ixapi_account_id) niet te laten koppelen aan een andere bedrijfsaccount tenzij deze eerst zijn verwijderd van de eerste account.

Dit zijn uiteraard secundaire issues, die slechts in randgevallen een rol spelen. Verder werd uiteraard bekeken hoe de router de verbinding opbouwt met de IXON, zowel bij de initiële configuratie als erna. Er wordt ten allen tijde enkel via HTTPS verbonden, waarbij de certificaten worden gecontroleerd. Ook valt op dat, hoewel het configuratiebestand een URL bevat, het toestel deze URL negeert en dus énkel verbinding maakt met één hard gecodeerde URL. Dit verkleint ook de kans op misbruiken en veiligheidsissues, weliswaar ten koste van flexibiliteit en High Availability.


Links, de standaard opbouw met standaard certificaten,
rechts met aangepaste certificaten waarbij de router bewust de communicatie stopt.

Instellingsmogelijkheden


Elke IXrouter heeft (minstens) drie interfaces, waarbij met ‘WAN’ het gewone bedrijfsnetwerk wordt bedoeld. Al kan dit uiteraard ook rechtstreeks het internet zijn.

Basis instellingen

Zelfs na de initiële configuratie van de router m.b.v. de USB stick wijzigt er in eerste instantie niks aan de functionaliteit van de router: internet of zelfs toegang van LAN tot WAN werkt nog steeds niet. Er zijn een aantal basis instellingen mogelijk:

  • WAN naar LAN verkeer slaat dus op de mogelijkheid om verkeer toe te laten vanop het bedrijfsnetwerk naar het interne LAN netwerk. Hier is het niet mogelijk om volledige toestellen open te stellen (soms gekend als “DNAT” of “RNAT”), enkel port forwards zijn hier mogelijk.
  • LAN naar WAN verkeer heeft twee opties:
    • verkeer kan toegelaten worden énkel naar het bedrijfsnetwerk (WAN) zonder daarbij internet te voorzien
    • verkeer kan toegelaten worden énkel naar het internet zonder daarbij toegang tot het bedrijfsnetwerk (WAN) toe te laten
    • Beide werken onafhankelijk, maar de veiligheid hangt bij deze uiteraard af van de rest van het bedrijfsnetwerk.
      Bijv. als er een open proxy aanwezig is in het bedrijfsnetwerk, kan het toch mogelijk zijn om internet toegang te bekomen, ook al is dit niet zo geconfigureerd in de IXrouter. Dit is echter een issue van het bedrijfsnetwerk en niet van de router.
  • Tot slot kunnen ook extra VPN services worden geconfigureerd. Dit zijn in essentie Port Forwards van VPN naar LAN.
    • Deze port forwards zijn echter niet als dusdanig configureerbaar, de poorten aan VPN kant starten vanaf TCP/2000.
    • Speciaal is echter dat hierbij kan meegegeven worden over welk type verkeer het gaat: RDP, HTTP(S), VNC of WebSockets. Daardoor is het mogelijk om zelfs zonder het opbouwen van een speciale VPN verbinding, het toestel rechtstreeks via de web pagina te beheren. Ook dit gebeurt via HTTPS en is dus veilig.

VPN naar LAN verkeer is geen Firewall instelling, maar is standaard echter wel mogelijk zonder restricties. Dit is echter normaal gedrag; als iemand via VPN een verbinding opbouwt dan verwacht deze uiteraard toegang tot het LAN netwerk. Al kan het nuttig zijn om dit te kunnen configureren (eventueel per gebruiker).

 Daarnaast is echter ook alle verkeer van LAN naar VPN mogelijk, m.a.w. een toestel aan de LAN zijde kan open en vrij communiceren met eender welke VPN client. Hoewel nuttig voor een aantal opstellingen is dit niet altijd nodig of wenselijk en kan het aanbevolen worden dit configureerbaar te maken.
Het is niet ondenkbaar dat een individu aanwezig is op het LAN netwerk van de router en bij het security scannen terecht komt op het VPN netwerk om er zodoende toegang te krijgen tot toestellen die, weliswaar bewust, via VPN verbonden zijn.

VPN naar WAN (dus de rest van het bedrijfsnetwerk) is niet mogelijk bij deze versie van de software. Zelfs niet indien nodig of gewenst.

De VPN tunnel

De VPN tunnel wordt opgebouwd m.b.v. de OpenVPN software, die mee geïnstalleerd wordt indien men de IXclient download en installeert van de connect.ixon.co website. De IXclient wordt aangesproken via een eigen URI, startend met ixclient:// wat een vrij gangbare manier van werken is.

Deze URI ziet er als volgt uit (fictief voorbeeld):
ixclient://access-token/diuF38sJrSceZdTUQqOF3ncXH3ijk0MK/command/connect/controller/111d9c3b-ce66-463c-b471-c3e21afbdd47/reference/1ddf9845-986a-4909-fb54-449a82c5c6b9/agent/OWiJIJ101kZP0u/company/3688-2654-8820-9876-1234/

Naast deze URI is echter geen extra authenticatie meer nodig voor het opbouwen van de VPN verbinding waardoor deze ook als confidentieel moet worden beschouwd. Gelukkig wordt ook deze uitgewisseld via HTTPS en laat deze verder geen rechtstreekse sporen na.

Een spoor dat echter wel te vinden is op de harde schijf is het opgebouwde OpenVPN configuratie bestand (ook wel ovpn bestand genoemd). Na elke VPN verbinding wordt een dergelijk bestand aangemaakt in de Windows Temp folder (C:\Windows\Temp), waardoor iemand op deze locatie een lijst van bestanden kan terugvinden die overeenkomen met de VPN verbindingen.

 Daarenboven is het mogelijk om deze bestanden te kopiëren en te hernoemen naar ‘vpn.ovpn’ om vervolgens m.b.v. de gratis OpenVPN software manueel en zonder extra authenticatie, een VPN verbinding op te bouwen met het toestel. Door daarna ook een manuele route toe te voegen in het besturingssysteem is vervolgens toegang mogelijk tot elk toestel aan de LAN zijde van de router.
⇒ Dit is intussen, na rapportering, opgelost.


Elk bestand van 9KB komt overeen met een OpenVPN configuratie die kan hergebruikt worden.

De hardware

Tot slot werd ook de hardware van naderbij bekeken, zeker doordat deze door IXON werd ontworpen.


De binnenkant van de IXrouter 3

Een aantal componenten zijn meteen detecteerbaar: de 4 LAN poorten zijn in feite één switch. We zien een aantal open ruimtes die vermoedelijk gereserveerd zijn voor de Wi-Fi chip, Wi-Fi antenne (centraal en naast de stroom aansluiting) en we zien ook reservaties voor het SIM kaart slot en 3G antenne (boven de Wi-Fi antenne).

Aan de andere kant zien we ook een (lege!) Micro SD kaart, deze dient enkel om monitoring en diagnostische data tijdelijk op te slaan bij verlies van de internet verbinding.

De SoC is een MediaTek MT7621AT CPU, met een Nanya NT5CC128M16IP-DI DRAM chip.
De belangrijkste component in dit onderzoek is uiteraard de Winbond 25Q128FVSG Flash EEPROM chip. Deze is 16MB groot en bevat alle data van het toestel. Het is niet geëncrypteerd en kan uitgelezen worden via SPI/QPI.

Hieruit is opgevallen dat er zoveel mogelijk is overgenomen van de standaard OpenWRT MIPS installatie, enkel de toevoeging van een paar services en de IXagent vallen op. Uit de hashes blijkt dat het root wachtwoord voldoende lang en dus veilig is en na navraag bleek dit ook te verschillen op elk toestel.

Conclusie

Security is altijd een gevecht met bruikbaarheid: het meest veilige toestel is onbruikbaar en het meest bruikbare toestel is onveilig.
Out of the box en zonder configuratie is de IXrouter letterlijk onbruikbaar en dit is by design. Hieruit valt meteen op dat het van de grond af aan is ontwikkeld met het oog op veiligheid. Iets wat zelden terug komt in de Industriële wereld.

Op een paar details na, staat of valt de security van dit toestel uiteraard met de manier van omgang door de eindgebruiker. Maar ook dit is één van de vuistregels van security. Als cloud router die dus te allen tijde verbonden is met het internet is dit alvast een goede keuze.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.