Category Archives: Open Source Software

The Disaster of Things

Een sterk opkomende trend is The Internet of Things (IoT). Het betreft het op internet beschikbaar maken of, het verbinden van allerlei huishoudelijke apparatuur met internet. Dit biedt tal van nieuwe functionaliteit, zoals bestanden van thuis kunnen raadplegen, verlichting instellen of de thermostaat bedienen.

One network to rule them all..

Er is natuurlijk veel te zeggen om allerlei huishoudelijke apparatuur met internet te verbinden. Steeds meer huishoudelijke apparaten kunnen bedient worden middels bijvoorbeeld een smart phone. Via internet kan bijvoorbeeld thuis een kijkje genomen worden via een webcam die met internet is verbonden, of kan de temperatuur thuis ingesteld worden en dat alles via één netwerk. Dit zijn bijvoorbeeld handige zaken voor mensen die ver van huis zijn. Deze ontwikkeling heeft feitelijk betrekking op alle apparaten is huis zoals tv’s, geluidsinstallaties, computers en printers. Alles is “internet connected”. Een van de handige aspecten hiervan is dat hetzelfde netwerk (internet / thuisnetwerk) voor allerlei toepassingen gebruikt wordt. Het “computer netwerk” is eindelijk universeel toepasbaar.

Geen keuze

Natuurlijk zijn er mensen die dit geweldig vinden en er geld voor over hebben om aan deze trend mee te doen. Maar inmiddels zijn het mogelijkheden die gewoon aanwezig zijn – of je er nu voor betaald of niet. Als je een nieuw apparaat koopt zit het er gewoon in. Feitelijk hebben consumenten geen keuze meer en het gevolg is dat IoT niet meer te stuiten is, het gaat er gewoon komen als het er al niet is.

Updates

Met de grote hoeveelheid apparaten in huis die verbonden zijn met internet komt de verantwoordelijkheid deze regelmatig van updates te voorzien. Voor mensen die werkzaam zijn binnen de ICT is dit een redelijk normale gang van zaken, maar ik zie mijn tante haar ADSL router nog niet updaten laat staan haar tv of koelkast. Het gevolg is dat deze devices verouderde software hebben met tal van (inmiddels bekende) exploits (achterdeurtjes). Ook al zou je alle devices regelmatig van updates voorzien (zoals ik dat zelf doe), dan is nog steeds de vraag of fabrikanten wel tijdig updates beschikbaar stellen. Deze updates worden veelal zonder kosten ter beschikking gesteld, dus wie garandeert mij dat de betreffende fabrikant daar überhaupt nog energie in wil steken? Verwacht mag dus worden dat consumenten thuis legio apparaten hebben die wagenwijd open staan voor een ieder die er maar misbruik van wil maken.

Geheime diensten

Nou en die zijn er. Voor met name geheime diensten is dit natuurlijk geweldig. Moest je vroeger iemand schaduwen, of gericht afluisteren, dat is nu niet meer nodig. Het is zelfs niet meer nodig afluisterapparatuur te hebben. Mensen dragen vrijwillig allerlei apparaten mee die voorzien zijn van microfoons, camera’s, temperatuursensors, bewegingssensors en GPS. Bovendien zijn die apparaten voorzien van verouderde software met de nodigde exploits. Je hoeft ze alleen maar te gebruiken… Wauw, that’s a dream come true..

 Feiten

Lezers van mijn blog en artikelen weten dat ik vaak overs security schrijf, maar willen misschien ook weten of ik e.e.a. kan staven met feiten? Daarom een klein voorbeeld.

De site die u nu leest draait op een server waarop ik de nodige security maatregelen neem. Logisch, als je over security schrijft dan ben je vanzelf een keer aan de beurt, ik maak me daar geen illusies over. Zo laat ik een script iedere dag logfiles doorlopen op zoek naar inlog pogingen die niet geslaagd zijn. Dat is best interessant. Soms zie ik IP adressen veelvuldig langs komen. Het lijkt dan wel of er gericht ingebroken wordt. Bijvoorbeeld:

Dec 17 10:52:40 luna sshd[13598]: Did not receive identification string from xx.xxx.xxx.xx
Dec 17 10:58:20 luna sshd[13783]: Bad protocol version identification 'root' from xx.xxx.xx.xx port 60991
Dec 17 11:01:33 luna sshd[13799]: Did not receive identification string from xx.xxx.xx.xx
Dec 17 11:12:56 luna sshd[13852]: Did not receive identification string from xx.xxx.xx.xxx

De bovenstaande output (geanonimiseerd) is een deel van het log dat ik laat genereren. Soms doe ik een poortscan om uit te vinden wie deze inlogpogingen onderneemt. Dit brengt me op de vreemdste plaatsten. Eens kwam ik eens op een campus server van een Chinese universiteit, maar meestal betreft het ADSL routers in Rusland. Ik heb niet het idee dat de eigenaren van deze apparaten achter deze inlogpogingen zitten, maar wel heb ik het idee dat deze apparaten gekaapt zijn en door iemand anders misbruikt worden. Onderstaand is (geanonimiseerde) een portscan te zien. Bijvoorbeeld:

 

root@luna:/var/log# nmap -A -T4 xxx.xxx.xxx.xxx
Starting Nmap 6.40 ( http://nmap.org ) at 2014-12-17 11:00 CET
Nmap scan report for xx.xxx.xxx.xxx.adsl.xs4all.nl (xx.xxx.xxx.xxx)
Host is up (0.059s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD
8080/tcp open http Apache httpd
|_http-methods: No Allow or Public header in OPTIONS response (status code 501)
|_http-open-proxy: Proxy might be redirecting requests
| http-robots.txt: 2 disallowed entries 
|_/cgi-bin/ /*.html$
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
8089/tcp open http-proxy sslstrip
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: storage-misc|general purpose|specialized|WAP|media device
Running (JUST GUESSING): HP embedded (91%), Linux 2.6.X|3.X (88%), Crestron 2-Series (85%), Netgear embedded (85%), Western Digital embedded (85%)
OS CPE: cpe:/h:hp:p2000_g3 cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3 cpe:/o:crestron:2_series cpe:/h:netgear:dg834g cpe:/o:westerndigital:wd_tv
Aggressive OS guesses: HP P2000 G3 NAS device (91%), Linux 2.6.32 - 3.9 (88%), Linux 3.0 - 3.9 (88%), Linux 3.6 (87%), Linux 2.6.32 - 2.6.39 (86%), Linux 2.6.38 (86%), Crestron XPanel control system (85%), Netgear DG834G WAP or Western Digital WD TV media player (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 3 hops
TRACEROUTE (using port 21/tcp)
HOP RTT ADDRESS
1 2.85 ms xxx.xxx.xxx.xxx
2 21.15 ms xxx.xxx.xxx.xxx.xs4all.net (xxx.xxx.xxx.xxx)
3 56.19 ms axx.xxx.xxx.xxx.adsl.xs4all.nl (xxx.xxx.xxx.xxx)

In dit geval is te zien dat het een klant van mijn eigen provider is. Er staat een webpoort open (poort 8080). Als dit adres in een browser ingevuld (met toevoeging van poort 8080) levert een inlogpagina op een Qnap device bij iemand thuis naar ik aanneem. Vermoed kan worden dat de inlogpogingen bij deze Qnap vandaan komen*.

*Dat is natuurlijk niet zeker, het ADSL router kan ook nog een ander apparaat port-forwarden dat de daadwerkelijk aanval uitvoert. In dat geval voert alleen poort 8080 naar de Qnap.

qnap_screenshot

Interessant is te zien dat het inderdaad gewone apparaten zijn die deze aanvallen uitvoeren. Hier stopt voor mij het onderzoek, ik doe geen pogingen op de betreffende Qnap in te loggen. Naast Qnap kwam ik ook al pagina’s van bedienbare verlichting tegen en ADSl routers.

Disaster of Things

Het bovenstaande voorbeeld toont naar mijn idee aan dat IoT al bestaat en dat het inderdaad apparaten betreft die verouderde software hebben. Nu weet ik niet hoeveel mensen wel de software up to date houden, maar ik vermoed dat naar mate we meer apparaten in huis krijgen die “internet connected” zijn, dat het steeds lastiger wordt om ze up to date te houden – ervan uitgaande dat fabrikanten hun software al van updates voorzien. Verwacht mag worden dat dit een onhoudbare situatie is. We worden nu en in de toekomst omgeven van apparaten die niet veilig zijn en die oren en ogen hebben. Succes! The Disaster of Things is realiteit geworden.

update 21 januari 2015:

Mark Shuttleworth (Canonical) doet een interessante aankondiging in dit kader..

 

Gepubliceerd op 17 december 2014

Security zal ons “worst” zijn

Indien u mijn artikels leest of mijn Twitter tweets volgt, dan is u duidelijk dat (ICT) security mijn interesse heeft. Dat is overigens al jaren het geval. Jaren geleden beheerde ik een bedrijfsnetwerk met een 6 tal (Linux) firewalls met 8 fysieke netwerkinterfaces ieder, en met talloze subnetten en tientallen VPN verbindingen elk. Toen was ik er verantwoordelijk voor.

Inmiddels doe ik geen technisch inhoudelijk werk en komt IPTABLES alleen nog aan bod in de (Linux) training die ik geef. De interesse voor met name netwerk-security is gebleven en dan vooral het idee dat iemand op afstand een machine van je “over neemt” en daar informatie af kan halen of voor diens eigen doelen kan inzetten.

“Van mij en alleen van mij”

Op mijn eigen machines (webservers, latptops en desktops) neem ik dan ook uitgebreide maatregelen om misbruik te voorkomen. Zo maak ik gebruik van IPTABLES firewall, inloggen met SSH keys only, Fail2ban, scripts die logfiles “doorspitten” etc. Ik maak me geen enkele illusie, mijn maatregelen zijn niet voldoende. Mijn punt is, dat ik alle maatregelen tref die ik (in alle redelijkheid en binnen mijn kennis) kan treffen.

“Van jou of van mij?”

De maatregelen die ik tref maken me natuurlijk nieuwsgierig naar hoe anderen dit doen. Als ik met collega-vakbroeders praat die verstand hebben van beveiliging dan stel ik ze altijd dezelfde vraag. “Hoe weet je zeker dan jouw systeem echt van jouw alleen is?” Steevast krijg ik hetzelfde onbevredigende antwoord, “dat weet je niet”. Soms voegt men daar nog aan toe dat het meest verstandige wat je kan doe is de netwerkkabel los te trekken. Hoewel dat een machine volstrekt nutteloos maakt, kan zelfs deze maatregel in twijfel worden getrokken. Zo verscheen er een paar maanden geleden een artikel over een security specialist die meent malware (BadBIOS) te hebben gevonden dat een “air gap” kon overbruggen omdat het geluid gebruikte om te communiceren.

Deze zaken blijven knagen bij me.

 Edward Snowden

Het afgelopen jaar zijn we “verrast” door de onthullingen van Edward Snowden. Deze waren voor mij dan ook buitengewoon interessant. Van alle akelige dingen die ik me eerder kon voorstellen is inmiddels aangeven dat die ook daadwerkelijk plaats vinden. Bij elke onthulling dacht ik dan ook, “het verbaast me eigenlijk niets”. Ik zou er bijna cynisch van worden, maar ik sta nu op het standpunt, dat je dus inderdaad van het ergste uit moet gaan. Niet alleen criminelen proberen rottigheid uit te halen, maar onze eigen overheid en “bevriende” overheden ook.

Koude drukte

Zoals eerder gesteld, de onthullingen hebben me dus niet echt verbaast, maar hebben mijn ergste vermoedens bevestigd. Maar wat mij wel bevreemd is de gelatenheid van mijn ICT collega’s. Zo wordt netwerk apparatuur uit USA voorzien van standaard hardware waarmee de NSA zich toegang kan verschaffen. Als netwerkspecialist zou mij dat mateloos irriteren. Als ik verantwoordelijk ben voor een netwerk (van mijzelf of van een betalende klant), dan zou ik zeker willen weten dat de NSA – of wie dan ook – daar niet binnen kan komen. Ik zou alle maatregelen treffen die ik binnen redelijke grenzen kan realiseren. Ik bemerk echter een gelatenheid bij mijn collega’s. Ze reageren vaak met, “Tja wat kan je eraan doen?”, of “Ik heb toch niets te verbergen”.

Wake up call

Naar mijn idee kan – en moet – je er juist heel veel aan doen. Neem alle maatregelen die je kan treffen, ga altijd van het slechtste scenario uit (zie Snowden) en gebruik zoveel mogelijk Open Source Software. Natuurlijk zit ook in deze software fouten en exploits, maar het is de beste garantie dat fouten gevonden, en snel gefixed worden. Wees achterdochtig en controleer zaken, gaat het zoals ik verwacht of zie ik bijvoorbeeld netwerk verkeer dat ik niet kan verklaren? Maar bovenal, leg je er niet bij neer. Een “Big Brother” maatschappij laat je zelf gebeuren of niet..

Open Source Software tussen wal en schip bij Architectuur denken

Het is voor bedrijven noodzakelijk om de snelle veranderingen in onze maatschappij te volgen. Consequentie  hiervan is dat zij hun ICT voorzieningen snel aan moeten kunnen passen zonder daarmee consessies te doen aan de beschikbaarheid en veiligheid van systemen en gegevens. Om dit te bereiken worden er afspraken gemaakt over waaraan dergelijke veranderingen moeten voldoen of onder welke condities deze uitgevoerd mogen worden. Deze afspraken, of wel principes, worden architectuur genoemd. Het architectuur denken is heel gebruikelijk bij grote bedrijven en organisaties omdat niemand alleen in staat is deze complexiteit te overzien. De interne IT organisatie, externe leveranciers en dienstverleners hebben zich allen te conformeren aan deze (enterprise) architectuur, het zogenaamde: werken onder architectuur.

Architectuur als middel
Voor wat betreft de (infrastructurele) architectuur kunnen dit afspraken zijn over, gegevens, informatie beveiliging, applicaties, interfaces en de infrastructuur zelf. Zo kunnen bijvoorbeeld het aantal operating systemen of databases beperkt worden. Met dergelijke beperkingen wordt de infrastructuur beter te overzien en de organisatie is daardoor beter in staat het beheer uit te voeren. Ook consequenties van wijzigingen zijn zo beter te overzien. Architectuur is daarmee geen doel op zich, maar heeft tot doel een consistente en veilige ICT te realiseren waarop efficiënt wijzigingen doorgevoerd kunnen worden. De architectuur ontwikkelt zich ook in de tijd en zal kan niet statisch zijn. Enterprise architecten zijn verantwoordelijk voor het naleven van de bestaande architectuur en het ontwikkelen daarvan.

Enterprise architecten
Veel enterprise architecten zijn echter onbekend met Open Source Software en de (detail) mogelijkheden die dit biedt voor de architectuur. Als Linux al een platform binnen de architectuur is (en dat komt steeds vaker voor) dan is het een uitzondering op verschillende vlakken. De meeste organisaties hebben bijvoorbeeld centraal gebruiker beheer ingericht op basis van Microsoft Active Directory. Linux servers worden veelal niet gekoppeld (maar kunnen dat overigens wel). Linux gebruikers worden of lokaal aangelegd, of er wordt een LDAP gebaseerde structuur naast Microsoft Active Directory gebouwd. Deze Linux systemen worden dan meestal gebruikt voor web sites of content management systemen zodat er geen noodzaak is voor eindgebruikers daarop in te loggen. Het wordt als platform toegestaan, maar het is wel een uitzondering. Je zou kunnen stellen dat het geïsoleerd ingezet wordt.

Gemiste kansen
Naar mijn idee past Open Source Software juist heel goed binnen het architectuur denken. Er zijn talloze tools die het naleven van afspraken juist veel makkelijker maken. Er zijn tools waarmee het management van Linux systemen gestandaardiseerd en geautomatiseerd kunnen worden zoals bijvoorbeeld, Red Hat Satelite voor deployment en Puppet voor management. Standaard biedt Linux talloze bouwblokken om systemen te hardenen zoals bijvoorbeeld Secure Shell (SSH) dat encrypted toegang tot systemen kan geven, of Secure Copy (SCP) waarmee bestanden encryped tussen Linux systemen gekopieerd kunnen worden. SSH en SCP kunnen eenvoudig verder beveiligd worden door root acces te weigeren en gebruikers alleen met een RSA of DSA key te laten inloggen. Beiden maken standaard deel uit van ieder Linux installatie. Verder kunnen middels het SUDO mechanisme (sudoers file) root rechten aan users gegeven worden op specifieke commando’s. Wanneer men echt hecht aan sucurity (en dat doen enterprise architecten) dan mogen zeker Security Enhanced Linux (SELinux) en AppArmour niet vergeten worden. Op basis hiervan kunnen de rechten van processen op systemen verder beperkt worden. Als laatste zou ik de CIS Benchmark voor Red Hat systemen willen noemen. Dit is een uitgebreide beschrijving van (mogelijk) te nemen maatregelen die een Red Hat Linux systeem veiliger maken. Van iedere maatregel is beschreven hoe deze geïmplementeerd moet worden, waarom het systeem veiliger wordt en bovenal hoe het gecontroleerd (audit) kan worden.

Een veiliger infrastructuur
De beschreven mogelijkheden zijn maar een greep uit de mogelijkheden die Open Source Software biedt om een IT omgeving veilig en beheersbaar te houden. Bedrijven die al bekend zijn met Linux en Open Source Software kennen deze mogelijkheden ongetwijfeld. Ik zou daarom graag een pleidooi willen houden voor Linux en Open Source Software bij enterprise architecten. Verdiep U in de mogelijkheden en probeer ze toe te (laten) passen. Maak ze in al haar mogelijkheden onderdeel van de (enterprise) architectuur. De organisatie waarvoor u werkt zal u dankbaar zijn.

Dit artikel is ook gepubliceerd op de Computable site op d.d. 29 november 2013