Category Archives: Internet of Things

Open Source Software, zuiver eigenbelang

Gratis software, developers die software weggeven en die software voor mij onderhouden? Een economie van het delen, altruïsme? Ik geloof er niets van. Alles kost geld, ook software. Developers moeten toch ook kunnen leven?  Overal moet voor betaald worden, alleen de zon gaat voor niets op.

Al jaren staat de software industrie gelijk aan het snelle verdienen, het grote geld. Waarom zou iemand software weggeven en er niets voor terug vragen? Waarom zou ik dergelijke software willen gebruiken? Waarom werken grote bedrijven als HP, IBM, Intel en Red Hat daaraan mee? Vast niet om er slechter van te worden. Deze bedrijven willen immers geld verdienen. Er is vast een catch.

De catch

foksuk_rrs_scriptKlopt, er is een catch. De motivatie om aan open source software te werken is zuiver eigenbelang. Bedrijven doen dat om geld te verdienen. Developers hebben de software zelf nodig of willen bekendheid te verkrijgen. Aha.. zult u denken, dus dat is de catch. Ja dat klopt, dat is de catch. De motivatie voor developers en bedrijven is om er beter van de worden. Iedereen met bedenkingen over open source software heeft toch gelijk. Maar er is nog een catch, eigen belang als motivatie is eigenlijk best prima.

De motivatie

Natuurlijk is het allemaal niet zo slecht als het klinkt. Bedrijven en developers werken aan open source software om er beter van te worden, maar ze zijn niet egoistisch, anderen mogen er ook van profiteren. En ja en ook dat gebeurt met de gedachte dat ze er later zelf beter van worden. Maar is dat eigenlijk wel erg?  Waarom zou je er zelf niet beter van mogen worden als anderen er ook wat aan hebben, dat is toch prima?

Zeg nu zelf, als je wil dat mensen iets doen en dat blijven doen, wat is de beste garantie die je kan krijgen? Dat ze ervoor betaald worden, of dat het (ook) in hun eigenbelang is? Het is eigenlijk het verschil tussen intern gemotiveerd zijn, of extern gemotiveerd worden. Interne motivatie is natuurlijk veel beter. Immers, geen betaling, geen software. Het verklaart eveneens waarom open source software developers zo gebrand zijn kwalitatief goede en veilige software te maken. Ze hebben zich persoonlijk verbonden aan de software. Deze persoonlijke verbondenheid is veel lastiger als je daarvoor betaald wordt.

Scratch your own itch

In het begin van het computer tijdperk werkte het immers ook al zo.  Als een computer iets moest doen, dan schreef je daar zelf de software voor, je kon het immers (nog) niet kopen. Maar als iemand anders software bezat die je nodig had, dan was het sneller om dat te mogen gebruiken, dan om het zelf te schrijven. Het delen van software lag daarmee erg voor de hand. Toch was de motivatie om te delen eigen belang, je werd er zelf ook indirect beter van.

Eigenbelang is prima

het-kan-wel-loesjeZo bekeken is de motivatie om mee te werken aan open source software inderdaad eigenbelang. Niet egoistisch zodat we niet delen, maar de inspanning die we leveren, leveren we in eerste instantie voor onszelf. Dit is precies de reden waarom open source software een goede keuze is voor bedrijven en organisaties. Het principe erachter, de motivatie om software te schrijven en te onderhouden komt voort uit eigenbelang. Juist dit feit maakt dat het proces stabiel is. Deze stabiliteit is bij uitstek in het belang voor bedrijven. Lage kosten (ja het gebruik van software is nooit kosteloos) en een stabiel proces om de software te ontwikkelen en te onderhouden is juist in hun belang – en uiteindelijk in ieders belang.

Duurzaam

Heb je zelf behoefte om aan open source software mee te werken, doe het dan vooral voor jezelf, maar deel het resultaat met anderen. Dit gaat ook voor bedrijven op. Bijdragen aan software projecten, of het financieren van ontwikkeling, doe het vooral vanuit eigenbelang en deel het daarna met de wereld. Dit is de beste manier om het gebruik en het ontwikkelen van open source software duurzaam te maken en nuttig te laten zijn voor iedereen.

 

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