Inleiding
Een 49-jarige Australiër is veroordeeld tot twee jaar celstraf omdat hij had ingebroken op de computersystemen van de riolering in Maroochy Shire, een deelregio in het oosten van Australië. Door met de systemen te knoeien zorgde hij ervoor dat 800.000 liter vervuild rioolwater in de omgeving van Maroochy Shire werd geloosd, waardoor parken en rivieren werden vervuild en talloze dieren het leven lieten.
De hack van de Australiër was een wraakactie: zijn sollicitatie bij de lokale overheid was afgewezen en hij was met ruzie vertrokken bij het bedrijf dat de computersystemen had geïnstalleerd.
Dit is geen vergezocht verhaal - het is waargebeurd. En niet vorig jaar, of het jaar daarvoor, maar al in 2000. Erg hightech was de aanval niet: de ex-werknemer kon de systemen van zijn voormalig werkgever eenvoudig binnendringen omdat de wachtwoorden niet waren gewijzigd.
In een analyse van de 'cyberdreigingen' voor Nederland schrijft de Nederlandse overheid dat 'gerichte verstoring' van industriële beheersystemen 'niet waarschijnlijk' is. De overheid verwijst daarbij naar het Stuxnet-virus, dat werd gebruikt voor een aanval op Iraanse uraniumverrijkingsinstallaties. Het Maroochy Shire-incident bewijst echter dat dergelijke geavanceerde software geen vereiste is om een aanval op infrastructuur te laten slagen.

Wat is een scada-systeem?
De toepassingen waarmee industriële systemen worden beheerd, worden scada-systemen genoemd. Scada staat voor supervisory control and data acquisition en is een verzamelnaam voor beheersystemen voor bijvoorbeeld rioleringen, energie-opwekking, fabricage en oliepijplijnen. Afhankelijk van de exacte definitie vallen er ook beheersysteemen voor treinen, verkeerslichten, telefonienetwerken, vliegtuigmotoren en pretparkattracties onder. Soms worden scada-systemen ook wel 'ics' genoemd: industrial control systems.
Het spreekt voor zich dat het handiger is om dergelijke systemen op afstand te beheren, dan door fysiek hendels en knoppen te bedienen. Diverse bedrijven, waaronder Siemens, Schneider Electric en General Electric, hebben daarom scada-toepassingen ontwikkeld.
Sommige scada-systemen kunnen alleen worden gebruikt om informatie af te lezen. Onderstaand screenshot is volgens Internet Security Systems, een onderdeel van IBM, een 'typisch voorbeeld' van een dergelijke interface.

Andere systemen kunnen ook voor daadwerkelijke beheertaken worden gebruikt. Een inmiddels berucht voorbeeld is dat van de frequentieregelaars in Iraanse uraniumverrijkingsfabrieken, die werden ontregeld door het Stuxnet-virus. Dat virus is volgens de geruchten ontwikkeld door de Verenigde Staten en Israël en zou specifiek bedoeld zijn om de Iraanse plannen voor kerncentrales te ondermijnen.
Het Stuxnet-virus was in sommige opzichten geavanceerd. Zo maakte het gebruik van maar liefst vier zero day-exploits; het misbruikte dus gaten in de beveiliging die tot op dat moment nog niet bekend waren. Eén zo'n zero-day-lek is op de zwarte markt al een fortuin waard.
Het bouwen van een virus als Stuxnet of het vergelijkbare - en waarschijnlijk van dezelfde bron afkomstige - Duqu-virus is niet voor iedereen weggelegd; het vereist diepgaande kennis van het systeem dat moet worden gekraakt. Iran claimt zelfs dat Siemens, de fabrikant van de getroffen frequentieregelaars, bij de aanval betrokken was.
De vraag is dan of de vaardigheden die nodig waren om Stuxnet en Duqu te ontwikkelen, een voorwaarde zijn om industriële beheersystemen te kunnen binnendringen - en het antwoord is vermoedelijk 'nee'.
Direct aan het internet
De systemen in de Iraanse kerncentrales konden via usb-sticks worden besmet. "Usb-sticks zijn de allergrootste bedreiging", zegt expertpanellid webinn, die ervaring heeft met de beveiliging van scada-systemen. "De opkomst van scada-systemen met Windows brengt grote uitdagingen met zich mee."
Het zou natuurlijk nog makkelijker zijn om systemen op afstand te kunnen misbruiken. Het lijkt een slecht idee om een cruciaal onderdeel van een dergelijk systeem aan het internet te hangen, maar slecht idee of niet - het gebeurt.
"Over het algemeen zijn deze systemen afgeschermd of zelfs helemaal niet met het internet verbonden", zegt tweaker Nvidiot, die eveneens ervaring met de beveiliging van scada-systemen heeft. "Er is echter druk van de beheerders en het management om ze wel op het internet aan te sluiten."
Door een systeem op het internet aan te sluiten, kunnen beheerders bijvoorbeeld een waterpomp bedienen zonder er naartoe te rijden. "Dat dat behoorlijke risico's met zich meebrengt, lijkt men zich niet altijd te realiseren", constateert Nvidiot.
Essent
Soms weten bedrijven ook niet dat systemen rechtstreeks aan internet hangen. Essent had bijvoorbeeld een gatewaysysteem, dat werd gebruikt voor het monitoren van warmtekrachtinstallaties, rechtstreeks aan het internet hangen, zo ontdekte beveiligingsonderzoeker @ntisec van Tweakers.net deze week. Op het systeem kon worden ingelogd met gebruikersnaam en wachtwoord 'admin'.
Hoewel de potentiële problemen in dit geval meevielen - het grootste gevaar was een denial of service waardoor automatische monitoring niet meer mogelijk was - had dit niet mogen gebeuren, gaf Essents plaatsvervangend security officer Marcel de Kock toe. Het voorval maakt in elk geval duidelijk hoe moeilijk het is om zulke omvangrijke systemen in hun geheel onder controle te houden. Na melding loste Essent de problemen overigens nog dezelfde avond op.
Fabrikanten van scada-systemen raden het doorgaans af om een scada-systeem rechtstreeks op het internet aan te sluiten. Dat dat advies in de praktijk nog wel eens wordt genegeerd, blijkt uit verschillende onderzoeken, zoals de afstudeerscriptie van de Brit Éireann Leverett. In zes maanden tijd ontdekte hij 10.358 internethosts die zichzelf als scada-systeem presenteerden. Overigens omvat dat cijfer mogelijk wel false positives en systemen met meerdere ip-adressen.

Leverett ontdekte 370 scada-systemen in Nederland en 39 systemen in België. Van de ontdekte hosts die via port 80 te bereiken waren, gaf slechts 17 procent de http-statuscode dat authenticatie vereist was; in 53 procent van de gevallen kon de pagina van het scada-systeem worden opgevraagd. Bij 30 procent van de scada-systemen werd naar een andere locatie verwezen.
Het kan uiteraard wel zijn dat de bewuste systemen niet direct om http-authenticatie vroegen, maar doorverwezen naar een andere pagina of een anderssoortig loginformulier gebruikte. Feit is wel dat een systeem op dat moment benaderbaar is en dus in potentie misbruikt kan worden.
In een geval ontdekte Leverett zelfs een systeem dat aan het internet was gekoppeld, geen authenticatie vereiste en volledige toegang tot het beheerpaneel gaf. Het ging om de beheerinterface van een remote terminal unit, die volgens de fabrikant bijvoorbeeld voor het beheer van waterpompen kon worden gebruikt.
Het was zelfs mogelijk om ip whitelisting aan te zetten, zodat alleen van bepaalde ip-adressen verbindingen konden worden opgezet. Door daar zijn eigen ip-adres in te vullen, had Leverett de beheerders van het systeem kunnen buitensluiten. "Ik hoop maar dat dit systeem niet cruciaal voor de veiligheid is", schreef hij.

Alle software bevat bugs
Dat een systeem aan het internet hangt, wil niet per definitie zeggen dat het kwetsbaar is. In de praktijk bestaat er echter geen software zonder beveiligingsproblemen. Zelfs als beveiligingsproblemen snel worden gepatcht, bestaat er nog het gevaar van de eerder al genoemde zero day-aanvallen.
Maar zelfs het maken en uitrollen van patches gebeurt niet altijd goed genoeg. "Het gaat vaak om oudere systemen die niet gepatched worden. Beheerders zijn daar huiverig voor", zegt Nvidiot. Ze willen het proces waarvoor het systeem wordt gebruikt niet in gevaar brengen.

Een ander probleem is dat leveranciers vaak alleen oude versies van een besturingssysteem ondersteunen, waardoor gebruikers niet zomaar naar een nieuw OS kunnen upgraden. "Dat is prima als het netwerk niet aan het internet hangt", aldus Nvidiot. Zodra dat wel gebeurt, zijn de ongepatchte systemen een beveiligingsprobleem. Ook virusscanners kunnen vaak niet worden gebruikt, zegt webinn. "De leverancier moet dat willen en kunnen ondersteunen", zegt hij. En vaak is dat dus niet zo.
Metasploit
Een aantal beveiligingsonderzoekers stoorde zich zodanig aan de slechte beveiliging van veel scada-systemen dat ze een aantal kwetsbaarheden hebben toegevoegd aan Metasploit, een framework waarmee beveiligingsproblemen kunnen worden aangetoond. Het gaat om programmable logic controllers waarin backdoors zaten, waarvan de webinterface kon worden misbruikt of waarmee fuzzing mogelijk was.
Exploits voor één bepaalde General Electric-plc zijn nu toegvoegd aan het framework; exploits voor systemen van onder andere Schneider Electric, General Electric en Koyo volgen mogelijk later.

Geen theoretisch probleem
Dat beveiligingsproblemen in scada-systemen geen theoretisch probleem zijn, blijkt ook uit een onderzoek van Red Tiger Security, dat anderhalf jaar geleden op Black Hat werd gepresenteerd. Bij een analyse van circa 120 industriële systemen werden maar liefst 38.753 kwetsbaarheden aangetroffen.
Ook de Amerikaanse overheid waarschuwde deze zomer nog voor een groot aantal exploits voor scada-systemen, zoals buffer overflows, de mogelijkheid om eigen code uit te voeren, sql-injecties en denial of service-kwetsbaarheden.
"Beheerders zeggen vaak: ach, als het systeem de verkeerde dingen doet, dan corrigeren we het wel handmatig", zegt Nvidiot. Een aanvaller zou het systeem echter zodanig kunnen manipuleren dat het lijkt alsof alles goed gaat, terwijl alles stuk aan het gaan is.

Geavanceerde kennis?
Een veelgehoorde misvatting is dat geavanceerde kennis van een specifiek systeem nodig is om er misbruik van te kunnen maken: een aanvaller moet eerst weten welk systeem er wordt gebruikt om binnen te kunnen dringen. Bedrijven die erop rekenen dat maar weinig aanvallers over die kennis beschikken, maken zich schuldig aan security through obscurity en dat is niet bepaald een aanpak die bewezen effectief is.
Veel via het web toegankelijke scada-systemen identificeren zichzelf bijvoorbeeld al meteen in de http-headers. Daarnaast zetten veel fabrikanten testcases op hun website om potentiële nieuwe klanten binnen te halen - maar en passant is dat natuurlijk ook een prima bron van informatie voor eventuele kwaadwillenden. En als dat allemaal niet genoeg is, dan zijn er ook nog de insiders - zoals de Australiër die het rioleringssysteem van Maroochy Shire misbruikte.
Een tien jaar oud lek
Het is onbekend hoeveel scada-systemen kwetsbaar zijn, maar er is een aantal tekenende voorbeelden. Al in 2006 gaf Internet Security Systems op de Black Hat-conferentie een aantal voorbeelden van kwetsbare scada-systemen. Zo was er een bedrijf dat ontkende dat het scada-systeem van een energiecentrale aan het internet geknoopt was, maar indirect en via een tien jaar oud lek in Solaris kwamen aanvallers toch binnen.
In een ander geval was een 'onderdeel van het energienet' rechtstreeks aan het internet gekoppeld. Een hacker had met behulp van een sql-injectie kunnen inbreken en het systeem via een 'vpn-achtige tunnel' kunnen platleggen. In een nog ernstiger geval was het mogelijk om het gehele energienetwerk van een land plat te leggen door één speciaal geprepareerde url aan te roepen.
Er zijn ook recentere voorbeelden. In drie Amerikaanse steden wisten hackers eind vorig jaar in te breken op een scada-systeem waarmee een deel van de infrastructuur van de stad werd beheerd, en nog vorige week wisten hackers kortstondig een Amerikaanse treindienst plat te leggen.
Hack een vliegtuig
Beveiligingsonderzoeker Craig Wright benoemt een aantal andere voorbeelden, waarvan de ernstigste de Boeing 747 betreft. Wright moest de systemen van dit toestel testen en kon via een systeem voor video bij de controlesystemen van de motoren komen. "747's zijn grote vliegende Unix-hosts", schrijft hij.

Het patchen van het systeem, in dit geval Solaris, gebeurde niet goed genoeg en de geteste software moest ook nog eens via telnet worden benaderd, omdat de software niet met ssh-verbindingen overweg kon. Telnet wordt al jaren amper meer gebruikt omdat het protocol als onveilig bekendstaat. Het systeem kon al met al worden gebruikt om de instellingen van de motoren te wijzigen - en niet alleen op de grond, maar ook tijdens de vlucht. Het spreekt voor zich dat een aanval op deze systemen voor grote problemen zou kunnen zorgen.
Formeel was het scada-systeem voor de motoren gescheiden van het open netwerk voor de videosystemen, maar in de praktijk werden de netwerken alleen gescheiden met nat-filters. Dat is niet de beste manier om een netwerk te beveiligen, en daar kwam nog eens bij dat alleen inkomend verkeer werd gefilterd.
Een ander voorbeeld van Wright, dat ongeveer twee jaar geleden speelde, betreft een aantal energiecentrales waar eveneens geen firewall aanwezig was en waar een aantal computers nog op Windows 98 draaide. Bovendien stelde dit scada-systeem eventuele aanvallers in staat om zelf routes voor tcp-packets te bepalen, wat een inbraak flink vergemakkelijkte. Tot overmaat van ramp lekte een presentatie over de werking van dit scada-systeem uit, waardoor iedereen zich erin kon verdiepen.
Tot slot
Energiecentrales en vliegtuigen zijn fysiek goed beveiligd: je komt er vaak niet zomaar binnen. Dat is logisch, want gerommel met een vliegtuig of met het lichtnet kan grote en ernstige gevolgen hebben.
Zoals inmiddels duidelijk zal zijn, geldt dat niet voor netwerkbeveiliging. Het komt voor dat ongepatchte systemen die cruciale processen aansturen, direct of indirect aan het internet hangen. Het is moeilijk te zeggen hoe groot het beveiligingsprobleem is dat hieruit voortvloeit.
Duidelijk is wel dat leveranciers van scada-systemen en de gebruikers ervan niet alleen oog moeten hebben voor fysieke beveiliging. De worstcasescenario's lijken misschien op vergezochte scenario's voor Die Hard of Mission Impossible, maar gehackte scada-systemen zijn geen fictie.
De vraag is dan natuurlijk hoe scada-systemen goed kunnen worden beveiligd. Een mogelijke maatregel is de scheiding tussen interne netwerken en het internet. Een systeem rechtstreeks aan het internet hangen is misschien handig, maar dat maakt het nog niet verstandig. En hoewel het kennelijk nog niet overal beleid is, is het tijdig en volledig patchen van software en het dichttimmeren van de systemen - waarom zou je in een kerncentrale bijvoorbeeld usb-sticks moeten kunnen gebruiken - nog wel het minste wat een scada-beheerder moet doen.
