Ongebreidelde functionaliteit grootste vijand beveiliging
Het is duidelijk dat we met z’n allen steeds afhankelijker zijn geworden van computers, voor bewerking en beheer van documenten, voor communicatie en voor de besturing en regeling van velerlei processen. Daarbij zijn veel zaken ‘gevoelig’ en ‘waardevol’, in brede zin. Het vak computer security gaat over het reguleren van toegang tot zulke waardevolle zaken, zodat partijen bijvoorbeeld alleen die gegevens (of software) kunnen inzien (of veranderen) waartoe ze geautoriseerd zijn. Dit roept direct een aantal fundamentele vragen van het vakgebied op: Hoe stel je vast wie je tegenover je hebt en wat de bevoegdheden zijn (zowel van mensen als van computerprocessen)? Hoe scherm je je af voor ongeautoriseerde partijen? En ook: Hoe en door wie worden authenticatiemiddelen en bevoegdheden eigenlijk toegekend en weer ingetrokken? Zwakheden Het belangrijkste gereedschap voor computer security is cryptografie, de wiskundige discipline die technieken levert voor het versleutelen en ontsleutelen van gegevens. Een versleutelingsmechanisme (zoals AES of RSA) wordt typisch geparametriseerd door een cryptografische sleutel. Dit is een bepaald getal, waarvan de grootte (en daarmee de sterkte) gewoonlijk in bits wordt uitgedrukt. Alleen iemand in het bezit van de juiste sleutel kan een versleuteld document ontcijferen, of van een digitale handtekening voorzien. Zulke cryptografische sleutels dienen dus zelf weer beschermd te worden, bijvoorbeeld via een wachtwoord of vingerafdruk (op een gewone computer) of een pincode (op een chipkaart). Cryptografie is jarenlang vooral beoefend door militairen en diplomaten, maar is sinds de jaren zestig ook een belangrijk hulpmiddel voor de industrie (banken) en burgers (GSM-telefoons). Voor langere tijd viel het gebied computer security grotendeels samen met cryptografie. Echter, wanneer we kijken waar de laatste jaren dingen fout gaan, dan blijkt dat zelden aan de crypto te liggen. De zwakheden worden meestal veroorzaakt door falende software of door onjuist menselijk handelen. Security blijkt een breed, multidisciplinair gebied te zijn waarbij niet alleen de techniek een belangrijke rol speelt: juiste procedures en inrichting van processen, opsporingsfaciliteiten en een afdoende juridisch kader zijn minstens zo belangrijk. Een voorbeeld van een elementaire beveiligingsprocedure binnen een bancaire context is: dat voor grote overboekingen de handtekeningen van twee senior-medewerkers nodig zijn. In het algemeen vraagt beveiliging om een juiste mix van technische, organisatorische en juridische maatregelen. Verschuiving Bij de technieken die gebruikt worden voor computerbeveiliging is er de laatste jaren een nadrukkelijke verschuiving zichtbaar van wiskunde naar informatica, door de afname van het relatieve belang van cryptografie. Informatici gebruiken cryptografische technieken meestal als black box, via voorgeprogrammeerde programmabibliotheken, zonder zich veel zorgen te maken over de wiskundige details. De daadwerkelijke implementatie van beveiligingsmechanismen in computers brengt heel eigen (informatica)vragen met zich mee, zoals: Hoe zoek je in een database met versleutelde gegevens? Hoe reguleer je toegang in een file-systeem? Hoe regel je het sleutelbeheer? Hoe produceer je een correcte implementatie van een bepaald security protocol? Hoe bescherm je een webserver tegen aanvallen? Computer security is ook binnen de informatica een zeer breed onderwerp, dat van belang is in veel subdisciplines, zoals besturingssystemen, netwerken, databases et cetera. Opvallend aan het gebied computer security is de relatief grote nadruk die gelegd wordt op certificering. Het is niet genoeg om enkel een goed beveiligd systeem te bouwen: het moet ook aantoonbaar goed beveiligd zijn. Het systeem moet vertrouwd kunnen worden. Binnen met name de militaire en bancaire context zijn hiervoor speciale certificatiemechanismen ontwikkeld, waarvan de zogenaamde Common Criteria waarschijnlijk de bekendste zijn. Een Common Criteria-evaluatie (of ‘stempel’) is geen triviale aangelegenheid, er moet extra tijd (en geld) voor worden uitgetrokken. In Nederland kunnen zulke evaluaties worden uitgevoerd door TNO ITSEF. Waarom zijn er zoveel beveiligingsincidenten met virussen, wormen, inbraken, defacements van webpagina’s et cetera? In het algemeen gaat het hier om een combinatie van: gebrek aan aandacht voor beveiliging en een gebrek aan effectiviteit van bestaande beveiligingsmechanismen. In het vervolg zullen deze twee aspecten nader worden belicht, vooral vanuit technisch perspectief. Grootste vijand Het bestaande gebrek aan aandacht voor beveiliging heeft vele oorzaken. Natuurlijk, beveiliging is lastig voor de gemiddelde gebruiker, vertraagt de beoogde voortgang en dient daardoor zoveel mogelijk vanzelf te werken. Maar de grootste vijand van beveiliging is ongebreidelde functionaliteit. Fabrikanten menen meer producten te kunnen te verkopen door steeds meer functies toe te voegen. Er is niemand die zegt: ‘Kijk dit fantastische product van mij: het is hardstikke veilig, maar het kan bijna niks!’ Zo’n sobere Spartaanse aanpak zou wel het beste zijn, vanuit beveiligingsperspectief. Het grootste voorbeeld van uit de hand gelopen functionaliteit is de welbekende pc. Bekijk alleen eens wat een tekstverwerker als MSWord voor functies biedt, zeker wanneer daarbij macro’s worden meegenomen. Hoeveel van deze functionaliteit wordt regelmatig gebruikt? Al deze mogelijkheden (en combinaties daarvan) bieden echter aanknopingspunten voor misbruik. Met de mobiele telefoon gaat het dezelfde kant op: het platvorm van een gemiddelde GSM is inmiddels zo complex, met software van zoveel verschillende partijen, dat het overzicht op de mogelijke vormen van exploitatie snel verloren gaat. Het is dus verstandig om dergelijke complexe multi-purposesystemen niet voor kritische beveiligingstaken te gebruiken. Men kan zich dan ook afvragen of een digitale handtekening die via een gewone pc door een chipkaart gezet is wel betrouwbaar is. Er zou immers een virus op de pc actief kunnen zijn dat de pincode van de chipkaart achterhaald heeft via het registreren van toetsaanslagen, en daarmee volledige controle over de chipkaart heeft. Of een virus dat een ander document op het scherm toont dan ter ondertekening naar de chipkaart gestuurd wordt. Het is een kwestie van wachten op de eerste jurisprudentie over dergelijke zaken: wat zal de rechter zeggen wanneer ik claim dat niet ik digitaal getekend heb maar een kwaardaardig virus? In plaats van een multi-purpose-pc zou men liever een (gecertificeerd) single-purpose-apparaat willen gebruiken dat simpel en overzichtelijk werkt: een A4-display met een kaartlezer en keypad in tamper-proof (of resistant) hardware, met één enkel (bijvoorbeeld infrarood) communicatiekanaal voor het up- en down-loaden van documenten, in slechts één standaardformaat. Sober en Spartaans, natuurlijk zonder mogelijkheid van software-updates! Is daar een markt voor? Een betere vraag is: Is het beveiligingsbewustzijn inmiddels zodanig dat dergelijke apparaten als noodzakelijk worden gezien? Somber beeld De volgende vraag is dan natuurlijk naar de effectiviteit van bestaande beveiligingsmechanismen: Is de stand van de techniek zodanig dat dergelijke apparaten met voldoende mate van betrouwbaarheid geproduceerd kunnen worden? Een simpel antwoord op deze vraag is niet te geven. In plaats daarvan noemen we de volgende, vooral negatieve, aspecten. • Security is niet een eigenschap die aan het eind van een ontwikkeltraject nog even toegevoegd kan worden, maar moet van meet af aan in het ontwerp worden opgenomen. • Security-eigenschappen zijn moeilijk testbaar: hoe vind je bijvoorbeeld een geheime toetsencombinatie die een backdoor activeert? • Security en complexiteit gaan niet samen. • Foutloos programmeren (of specificeren) bestaat niet. • De huidige formele validatiemethoden zijn onvoldoende krachtig (en schaalbaar) om correctheid van niet-triviale realistische systemen te garanderen, behalve na agressieve abstractie. Het geschetste beeld is somber. De (certificatie)praktijk komt inderdaad vaak niet verder dan het nalopen van een aantal standaardlijsten (zoals bijvoorbeeld de Code voor Informatiebeveiliging van het Genootschap van Informatie Beveiligers: GVIB), zonder tot volledige dekking te komen. Het is dan ook een grote uitdaging voor de gemeenschap van onderzoekers op het gebied van computer security om het gat te verkleinen tussen enerzijds het controleren met behulp van deze concrete checklijsten en anderzijds het gebruiken van formele methoden op abstracte modellen. Een pragmatische uitweg lijkt geboden te worden door een radicale acceptatie van de beperkingen van certificatiemethoden en de werking van het gehele systeem openbaar te maken, typisch via de open-sourceaanpak. In eerste instantie lijken openheid en beveiliging slecht samen te gaan. De impliciete vooronderstelling daarbij is dat datgene wat men ‘onder de pet’ wil houden ook correct is. Wanneer men daarvan niet verzekerd is, is openheid een goed alternatief, waarbij veel (goedwillende) controleurs (‘many eyeballs’) kunnen zorgen voor snelle identificatie en reparatie van mogelijke fouten. Reputatie Ten slotte, wat kunnen en moeten wij in Nederland op het gebied van computer security doen? Onze middelen zijn beperkt, en onze expertise is, net als elders, verspreid over gemeenschappen die onderling beperkt communiceren: inlichtingendiensten, specifieke bedrijven (waaronder banken, elektronicaproducenten, automatiseerders, gespecialiseerde leveranciers) en (academische) onderzoeksinstellingen. Sinds een paar jaar zijn er een aantal innovatieve landelijke projecten voor betere samenwerking (Safe-NL) en stimulering (Sentinels van STW) op onderzoeksgebied. Het lijkt sowieso verstandig een minimale ontwikkelcapaciteit voorhanden te hebben, om niet voor strategische taken van het buitenland afhankelijk te zijn, met alle risico’s van backdoors. Daarnaast zijn er voor de hand liggende mogelijkheden voor Nederland op certificatiegebied. We hebben wereldwijd een redelijk onafhankelijke reputatie, bijvoorbeeld als gastland van het internationale gerechtshof in Den Haag. Het maakt in de beeldvorming veel uit of een Franse chipkaart door een Franse of door een Nederlandse evaluator beoordeeld is. We hebben in Nederland een sterke traditie in formele methoden aan de universiteiten en het is een grote uitdaging om die expertise uit te bouwen en in te zetten ten behoeve van het ontwikkelen en toekennen van internationaal erkende keurmerken. Met gerichte sturing en steun ligt hier een voor de hand liggende rol voor kennisinstellingen als TNO en universiteiten - bijvoorbeeld met de evaluatieactiviteiten van de Nijmeegse Security of Systems groep (SoS) en het Eindhovense Laboratory for Quality Software (LaQuSo). Daar kan een klein land groot in zijn. AUTEUR: Bart Jacobs Bart Jacobs is hoogleraar Beveiliging en Correctheid van Programmatuur, Nijmeegs Instituut voor Informatica en Informatiekunde (NIII), Radboud Universiteit Nijmegen (bart@cs.kun.nl).Wetgeving Op het gebied van wetgeving is er het laatste decennium veel veranderd in Nederland, door de opname van verschillende bepalingen over computercriminaliteit in het wetboek van strafrecht, zoals art. 138a Sr: over computervredebreuk (hacken), of art. 350a Sr: over het wijzigen of vernietigen van opgeslagen gegevens. Echter, door beperkte ervaring en kennis van zaken bij de politie en het openbaar ministerie, worden deze wetten nauwelijks toegepast. Civielrechtelijk kan ook het een en ander geregeld worden, zoals bijvoorbeeld in de gebruiksvoorwaarden voor bankpassen, waardoor eventueel misbruik van klanten leidt tot aansprakelijkheid. Staatsgeheimen Hoe kan openheid bijdragen aan beveiliging? Twee voorbeelden illustreren deze vraag. Stel je gaat naar slotenmaker 1, die zegt: ‘Hier heb ik een fantastisch deurslot. Hoe het werkt kan ik niet vertellen, want dan zouden inbrekers van die informatie misbruik kunnen maken. Maar vertrouw me maar, het is echt veilig!’. Slotenmaker 2 zegt: ‘Ik heb ook een goed slot: iedereen kan dat zelf zien, het werkt namelijk zo en zo. De beveiliging hangt niet van dit mechanisme af, maar puur van de complexiteit (aantal groefjes en zo) van de sleutel.’ Wie is meer te vertrouwen: de eerste of tweede sleutelmaker? Een groot beveiligingsrisico wordt altijd gevormd door backdoors: achterdeurtjes in programmatuur die heimelijk toegang kunnen verlenen aan de ontwikkelaars. Men kan zich afvragen of bijvoorbeeld Nederlandse staatsgeheimen (voorzover in digitale vorm) door software afgehandeld moeten worden waarvan de preciese werking aan geen enkele Nederlander bekend is (zoals bij Windows-besturingssystemen). In plaats van staatsgeheimen kan men natuurlijk ook denken aan cruciale industriële geheimen of aan aftapgegevens van de politie. ‘Heb je even tijd?’ Organisatorische beveiligingsmaatregelen behelsen onder meer het dragen van badges of het op een bepaalde manier omgaan met wachtwoorden of attachments. Ze zijn zeer belangrijk, maar vragen veel discipline. In de praktijk worden procedures vaak omzeild uit gemakzucht, onwetendheid of uit nonchalance. Social engineers kunnen hier dankbaar gebruik van maken: mensen zijn over het algemeen vriendelijk en meegaand, zeker wanneer iemand in de problemen lijkt te zitten. Social engineers doen zich vaak voor als insiders en weten via onschuldig lijkende vragen cruciale informatie te ontfutselen. Bijvoorbeeld over de telefoon: ‘Hallo, ik ben van systeembeheer, en hoor dat je hier nieuw bent. Heb je even tijd om de beveiligingsprocedures door te lopen? [...] Je moet natuurlijk een sterk wachtwoord kiezen, want [...] Wat gebruik je nu? Als je er dat van maakt is het een stuk sterker. Weet je hoe dat moet? [...]’. Wat in feite nodig is, is constante paranoia: is dit bericht (of telefoontje) wel echt afkomstig van de vermeende afzender? Wie heeft de inhoud onderweg gezien, of kunnen veranderen et cetera. Echter, zonder spionnenopleiding houdt bijna niemand dat vol. Goede training en beloning, en regelmatige herinneringen en opfriscursussen kunnen wel degelijk verschil uitmaken.