Veilige software ontwikkelen blijft een uitdaging ondanks de kennis opgebouwd en tegenmaatregelen ontwikkeld in meer dan dertig jaar onderzoek naar computerbeveiliging. De resulterende onveiligheid manifesteert zich in een continue stroom van beveiligingszwakheden. Wanneer we deze beveiligingszwakheden aandachtig bestuderen, blijkt dat die meestal voorbeelden zijn van welgekende beveiligingsproblemen waarvoor tegenmaatregelen reeds geruime tijd voorhanden zijn. Waarom slagen softwareontwikkelaars er dan ondanks de bestaande tegenmaatregelen niet in de beveiligingszwakheden te voorkomen?Verschillende factoren, zoals marktgedreven softwareontwikkelingsplanning en gebrek aan beveiligingsbewustzijn, spelen hierin mee. Doorslaggevend is echter de beperkte economische aansporing voor softwareontwikkelaars om te investeren in softwarebeveiliging. Een probleem eigen aan de bestaande tegenmaatregelen is dat ze te duur geacht worden vanwege hun grote impact op de softwareontwikkelingsprocessen en de benodigde beveiligingsexpertise. In dit werk onderzoeken we de uitvoerbaarheid van pragmatische tegenmaatregelen die strikt los staan van het softwareontwikkelingsproces. We belichten voornamelijk tegenmaatregelen voor implementatie-gerelateerde beveiligingszwakheden in webtoepassingen.Dit onderzoek behelst drie delen, namelijk een studie van het probleemdomein, de ontwikkeling van een specifieke techniek voor het beveiligen tegen injectieaanvallen en de extensie van deze techniek naar het waarborgen van privacy.De studie van het probleemdomein heeft als doel het waarborgen van de relevantie van het te onderzoeken beveiliginsprobleem. Hiervoor hebben we een algemeen toepasbare methodologie ontwikkeld voor het taxonifiëren van beveiligingszwakheden op basis van de correlatie van de aanwezigheid van systeemeigenschappen en de toegeschreven invloed van deze eigenschappen op een selectie van historische beveiligingszwakheden. De toepassing van deze methodologie op Web Services heeft onthuld dat deze vatbaar zullen zijn voor beveiligingszwakheden gerelateerd aan de verificatie van invoer in het algemeen en injectiezwakheden in het bijzonder.Dit resultaat diende vervolgens als inbreng voor het tweede deel waarin we Context-Sensitive String Evaluation (CSSE), een vernieuwende en efficiënte maatregel tegen injectiezwakheden, ontwikkeld hebben. CSSE richt zich op de onderliggende oorzaak van injectiezwakheden, namelijk het vermengen van gegevens- en controlekanalen door ad hoc serialisatie. Door gebruik te maken van fijn-korrelige markering van veranderlijken, slaagt CSSE erin om volledig zelfstandig in een uit te voeren opdracht onderscheid te maken tussen de delen afkomstig van gebruikers (gegevens) en die afkomstig van ontwikkelaars (controle). Door vervolgens de delen afkomstig van gebruikers aan de noodzakelijke testen te onderwerpen, wordt het vermengen van beide kanalen vermeden.In het laatste deel hebben we CSSE uitgebreid met de functionaliteit nodig voor het waarborgen van privacy. Voorzieningen voor rijkere metadata, voor de bewaring van metadata en voor de beschrijving van het privacybeleid resulteerden in een praktische implementatie van het paradigma van het aangehechte privacybeleid. Op deze manier is het mogelijk om het consistent navolgen van de gegeven privacybeloftes doorheen de hele levenscyclus van persoonlijke informatie te waarborgen. Door gebruik te maken van het aspect-georiënteerde software ontwikkelingsparadigma zijn we erin geslaagd om de functionaliteit voor het waarborgen van privacy volledig te modulariseren en in te kapselen, wat het mogelijk maakt om het te gebruiken met bestaande toepassingen.
展开▼