Capita selecta Informatiekunde/student contributions/uac

Uit Werkplaats
< Capita selecta Informatiekunde‎ | student contributions
Versie door Martin Devillers (overleg | bijdragen) op 4 jan 2010 om 12:21 (Why Secure Applications Are Difficult to Write)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Ga naar: navigatie, zoeken

Lead

Uw computer wil toegang tot uw e-mail. Mag dat? Een nogal overbodige vraag als u net bezig was uw e-mail te controleren. Toch zijn deze vragen orde van de dag met Microsoft's nieuwe besturingssysteem Vista. Maar wie zit te wachten op een besturingssysteem die als een klein kind overal toestemming voor vraagt?


Uw computer en veiligheid

In een tijd waar computer virussen en spam onhoudbaar lijken zijn informatici koortsachtig op zoek naar de ideale beveiliging. Iedereen werkt tegenwoordig met de computer en vrijwel iedereen is bekend met trager wordende computers, reclame popups en een crashend systeem.

Ondanks de vele security problemen is er niet één aanpak die de problemen kan aanpakken. Men raadt aan om virusscanners, firewalls en malware detectie software te installeren ter beveiliging van iedere computer. En hoewel deze producten een aantal problemen verhelpen zijn ze nooit in staat om uw computer af te schermen voor alle bedreigingen.

Met de komst van Microsoft Windows Vista is User Account Control (UAC) geïntroduceerd om op een gebruikersvriendelijke manier beperkte rechten voor een systeemgebruiker te implementeren in een besturingssysteem zonder hem te beperken in de controle over zijn systeem. Het concept is al volgt; het systeem mag zelf geen applicaties of systeembestanden installeren of wijzigen en mocht dit toch nodig zijn, dan wordt de gebruiker om toestemming gevraagd. Zodoende heeft de gebruiker de controle en kan kwaadaardige software niet ongecontroleerd zijn gang gaan.

Helaas blijkt in de praktijk dat gebruikers nodeloos vaak worden lastig gevallen door dialoogschermen die om toestemming vragen. Dit ergert de gebruiker en leidt er toe dat deze niet langer aandacht besteed aan de meldingen (dus achteloos overal op "toestemming geven" klikt) of simpelweg het hele UAC systeem uit zet. Als je ook googled op "vista uac" zijn zes van de tien eerste hits handleiding hoe je UAC kan uitzetten.

Stand van zaken

De technische achtergrond van een aantal problemen met kwaadaardige software, een van de redenen waarom UAC ook geïntroduceerd is, is dat het systeem geen onderscheid kan maken tussen acties die uitgevoerd worden door een gebruiker en acties die uitgevoerd worden door (software op) het systeem. Dus de computer kan eigenlijk nooit zeker weten of wijzigingen op de computer die door een programma worden uitgevoerd de bedoeling van een gebruiker is, of dat een kwaadaardig programma doet voorkomen dat een gebruiker dat wilt.

Waarom beperkte rechten?

Om een computer dan te beschermen tegen ongewenste software of ongewenst gebruikt wordt onder andere de vrijheid van gebruikers beperkt. Dit kan gerealiseerd worden door gebruikers niet als administrator te laten werken maar als een systeemgebruiker die beperkte rechten heeft. Hierdoor kan voorkomen worden dat gebruikers opzettelijk gegevens of applicaties wijzigen waar ze geen recht toe hebben. Maar het helpt ook gebruikers te beschermen tegen kwaadaardige software. Een set beperkte rechten kan de schade die dergelijke software namens een gebruiker kan toebrengen beperken en in sommige gevallen zelfs voorkomen dat de kwaadaardige software überhaupt geïnstalleerd wordt. Door de gebruiker van het besturingssysteem heel weinig rechten te geven zijn de mogelijke bedreigingen een stuk kleiner. Wil een gebruiker met beperkte rechten toch systeembestanden wijzigen, dan dient hij het wachtwoord van de administrator in te voeren. Voor de gebruiker zelf is van belang dat dit geen beperking is voor zijn productiviteit. Voor hem is de noodzaak tot veiligheid niet direct zichtbaar maar een beperking in het gebruiksgemak is dat wel.

Hoe vult UAC dit in?

Dit concept van beperkte rechten is een alom beproeft systeem waar UAC op voort probeert te borduren. Dus men probeert toegang tot systeembestanden af te schermen van de gebruiker. Maar vanuit het oogpunt van gebruiksvriendelijkheid moet de gebruiker niet beperkt zijn in het gebruik van de computer, dus hij moet vrijheid hebben. Dus dat leidt tot een potentieel gevaar.

De oplossing van UAC is om de gebruiker expliciet toestemming te laten geven voor handelingen die mogelijk gevaarlijk kunnen zijn. Uiteraard vraagt Vista in een sterk beperkte gebruikersaccount nog steeds om het administrator wachtwoord waar dat nodig is omdat de grenzen van standaard gebruikersaccounts niet zomaar overschreden kunnen worden. Microsoft heeft, middels UAC, een compromis gesloten waar zij veel baat bij hebben. De gebruiker heeft uiteindelijk de macht om alles te doen wat zijn hartje begeert maar draagt bij waarschuwing de verantwoordelijkheid voor alle gevolgen.

Hiermee vervalt het concept van beperkte gebruikersrechten omdat de gemiddelde computergebruiker niet in staat is om de gevaren in te schatten bij het uitvoeren van programma's. Effectief kan een gebruiker dus verleidt worden tot het uitvoeren van alle software op systeem niveau, net zoals bij een besturingssysteem zonder beperkte gebruikersrechten.


Een voorbeeldje

Stel je bent ingelogd als administrator gebruiker en je wilt de parental controls wijzigen. Windows Vista verdenkt je van een mogelijke schadelijke handeling en vraagt of je wel zeker weet dat je dat wilt doen. Als je op "Ok" klikt is het dialoog weer weg. Waarom zou je deze waarschuwing krijgen als je toch al administrator bent? Je zou verwachten dat je alleen een melding krijgt als je geen rechten hebt om deze actie uit te voeren.

Cs grp4 uac-admin.jpg

Of stel dat je een apparaat in je computer plugt, zoals een headset bijvoorbeeld, die de computer nog niet eerder gezien heeft. Dan krijg je uit het oogpunt van veiligheid toch nog even de vraag of je echt zeker weet dat je deze hardware wilt installeren. De gebruiker zal zich afvragen waarom het installeren van een headset een beveiligingsprobleem is.

Cs grp4 uac-hardware.png

Schijnveiligheid

De velen meldingen die UAC afgeeft zijn wellicht vervelend, maar op z'n minst geven ze de gebruiker een gevoel van veiligheid. Als UAC bij het minste en geringste begint te piepen, dan krijgt de echte malware nooit een kans, toch? Helaas blijkt UAC ook hier een steekje te laten vallen, want het is vrij eenvoudig om een applicatie te schrijven die, ongevraagd en ongemerkt, UAC uitschakelt op je systeem. Schrikbarender is de reactie van Microsoft op deze zwakheid. Volgens Microsoft is dit namelijk onderdeel van het ontwerp van UAC. Sterker nog, volgens Microsoft is UAC helemaal geen veiligheidsbarrière, maar een veiligheidsgrens (zgn. sandbox model). Dit komt er op neer, dat UAC niet alle schadelijke acties stopt, maar een veiligere omgeving biedt, dan een systeem zonder UAC.

Conclusie

Dus helaas biedt UAC geen verbetering van systeemveiligheid maar zegt het bij ieder wisse wasje tegen de gebruikers van Windows Vista: Ik weet niet of dit een probleem is, zoek jij het maar uit. Het is dus niet een oplossing voor een alom aanwezig probleem maar een manier om onder de verantwoordelijkheid ervoor uit te komen.

De vraag is ook of UAC wel effectief is voor bepaalde situaties. Als gebruikers bewust een installatie programma downloaden en vervolgens uitvoeren, dan lijkt het waarschijnlijk, dat ze ook de UAC melding zullen accepteren. In deze situaties vraagt UAC eigenlijk alleen maar of de gebruiker iets wil bevestigen, wat ze in hun hoofd allang gedaan hebben.

Voor de meeste gebruikers is UAC dan ook niks meer, dan weer een extra hoepel van Microsoft waar ze doorheen moeten springen om hun doel te bereiken. En het is vooral dit laatste wat UAC zo’n slechte naam heeft gegeven. Type voor de gein "vista uac" in Google en zeven van de eerste tien resultaten zullen handleidingen zijn, hoe je UAC kunt uitschakelen. Wij vinden dit erg jammer, want het concept achter UAC is goed…

Bronnen en literatuur

Usability meets access control: challenges and research opportunities

ABSTRACT This panel discusses specific challenges in the usability of access control technologies and new opportunities for research. The questions vary from "Why nobody, even experts, uses access control lists (ACLs)?" to "Shall access controls (and corresponding languages) be totally embedded and invisible and never, ever seen by the users?" to "What should be the user-study methodology for access control systems?".

cite: Beznosov, K. et al.: Usability meets access control: challenges and research opportunities. Proceedings of the 14th ACM symposium on Access control models and technologies, p73-74. 2009.

Dit artikel is relevant want het beschouwt dezelfde problematiek maar dan in een iets bredere context (wij kijken hier alleen naar windows+UAC). Daarnaast bekijken ze verschillende aanpakken voor het toepassen van access control en beschouwen hoe dit voor de gebruiker uitpakt. In diezelfde richting willen wij ook kijken in de toekomst.

Een interessant punt wat ze aankaarten, wat ook zeker voor ons relevant is, zijn de verschillende doelgroepen, die een systeem gebruiken. Er wordt onderscheid gemaakt tussen

  • Beginners, de gemiddelde gebruiker van de straat en tevens ook meteen de grootste (en zwakste) doelgroep van Windows Vista
  • Gevorderden, diegene die weten wat ze aan het doen zijn
  • Power users, zoals IT-professionals
  • Experts, zoals systeemadministrators

Why Secure Applications Are Difficult to Write

ABSTRACT The authors discuss software security as an awareness issue, because software that is unaware of its potential vulnerabilities has no chance of being secure. Only by being aware of potential threats and using vigilant defensive countermeasures can we hope to write secure applications, and we can only achieve security through awareness and understanding of these issues.

cite: Whittaker, J.: Why secure applications are difficult to write. IEEE Security & Privacy, vol. 1, issue 2, pp. 81-83. 2003.

Dit artikel geeft een inzicht in de achterliggende problematiek bij het schrijven van veilige software, een van de motivaties van het toepassen van UAC zoals hier besproken. Tevens wordt het principe van 'least privilige', waar UAC op voortborduurt, aangehaald.

Onze bijdrage in de toekomst

Als informatiekundigen zouden we er in een dergelijk project op aansturen om allereerst eens een solide analyse te maken van de wensen van de gebruiker bij een interactief systeem zoals UAC. Het samenbrengen van mens en techniek ligt in ons straatje. En voor ons gevoel valt daar ook nog veel we winnen omdat het bij UAC lijkt dat het basisprincipe wel goed is maar dat de toepassing niet goed aansluit op de werkelijke behoeften van de gebruiker.

Daarnaast zou het opleiden van gebruikers ook bijdragen aan de veiligheid van hun computer. Het doel is om gebruikers bewust te maken van de gevaren en ze te leren deze te herkennen. Vervolgens zouden ze moeten leren hoe ze deze gevaren effectief bestrijden met het verbeterde UAC systeem. Als informatiekundigen willen we het belang hiervan benadrukken en de software dusdanig ontwerpen dat deze doelen bereikt kunnen worden.

Verder kunnen ontwikkelaars een bijdrage leveren aan het succes van UAC. Deze moeten namelijk niet langer klakkeloos vanuit gaan, dat hun applicatie alles kan en mag binnen het systeem. In plaats daarvan moeten ze gaan nadenken welke rechten hun applicatie op welke momenten nodig heeft. Op die manier kunnen ze de UAC meldingen beter communiceren naar de gebruiker. Een voorbeeld hoe het niet moet zien we bij de Java updater. Deze gaat namelijk vanzelf aan de slag op het systeem, waardor de gebruiker een melding krijgt van UAC, dat de Java Runtime Environment zijn toestemming nodig heeft om verder te kunnen. Deze melding komt voor de gebruiker plompverloren uit de lucht vallen, want de Java updater voert periodiek zijn taken uit en vereist dus geen interactie van de gebruiker. Erger nog, in het dialoogscherm van UAC staat onder andere “Ga verder als u dit programma heeft gestart”. Met zo’n melding, moet de gebruiker het verzoek haast wel weigeren, want hij weet niet wat er aan de hand is en heeft het zeker niet gestart. Als mosterd na de maaltijd verschijnt pas daarna een melding van Java, dat er een update klaar is om geïnstalleerd te worden. Als deze melding nou juist eerst zou verschijnen, dan zou de UAC melding juist wel geplaatst zijn.

Benodigd onderzoek

Ook wij vinden het concept van beperkte gebruikersrechten een goede basis voor verbeterde veiligheid van een besturingssysteem. Door het afschermen van belangrijke delen van het systeem kun je op een effectieve manier het systeem beveiligen tegen kwaadaardige software. Maar wij willen daarbij kritisch kijken naar twee factoren: wat scherm je af en hoe communiceer je dit naar de gebruiker? Wij zien een systeem voor ons waar we rechten voor toegang tot informatie beperken ten behoeve van systeemveiligheid zonder de gebruiker in productiviteit te beperken.

Voor de gebruiker is het niet zo interessant of er systeembestanden gewijzigd worden door software, dat zijn beveiligingszaken die het besturingssysteem zelf moet afhandelen. Voor een gebruiker is het wel belangrijk welke informatie benaderd wordt door software. Bijvoorbeeld zijn adresboek of persoonlijke documenten. Daar kan een techniek zoals UAC, welke gebruikers om bevestiging vraagt als een beveiligingsdrempel overschreden dreigt te worden, goed aan bijdragen mits goed toegepast. Op het moment dat informatie van de gebruiker benaderd wordt door software zou de gebruiker daar een melding van moeten krijgen.

Een belangrijk aspect is de gebruiksvriendelijkheid, wanneer en hoe ga je de gebruiker melden dat software toegang zoekt tot hun persoonlijke informatie. Soms is dit gewenst gedrag van software en soms niet. Het is belangrijk dat de gebruiker niet overspoeld wordt met meldingen en dat deze duidelijk, niet technisch en eenvoudig te begrijpen zijn. Een melding zoals "Programma.exe wil schrijfrechten tot C:\" is onleesbaar voor een doorsnee gebruiker. "Live Messenger wil uw webcam inschakelen" is daarentegen een stuk beter. 'Gematigde' waarschuwingen zijn tevens waardeloos, zoals bijvoorbeeld "Het uitvoeren van dit programma kan tot schadelijke gevolgen leiden"). Dat draagt niet bij aan de veiligheid en irriteert de gebruiker vooral (zoals nu het geval is bij UAC).

Door te anticiperen wanneer meldingen getoond worden kun je het gebruiksgemak ook vergroten. Als een melding getoond wordt vlak nadat er op een knop is gedrukt dan komt het op de gebruiker logischer over dan zo maar een melding die uit de lucht komt vallen. Een melding op het juiste moment maakt het systeem voor de gebruiker ook inzichtelijker. Bijvoorbeeld: "Ik heb net in MSN een videogesprek gestart en nu vraagt de applicatie of hij mijn webcam mag aanzetten.", dat is vrij logisch en begrijpelijk.

Om tot een dergelijk verbeterd UAC systeem te komen moeten gebruikersonderzoek en security samen komen. Human Computer Interface experts zouden de gebruiksvriendelijkheid kunnen beschouwen. Aan de andere kant kunnen experts op het gebied van security werken aan een verbeterd beveiligingsmodel waar persoonlijke informatie beschermd wordt zoals hier beschreven is. Tezamen zouden experts uit beide disciplines een verbeterde versie van UAC kunnen maken.