JavaTM 2 har en säkerhetsarkitektur som skyddar system från obehörig åtkomst via mobil eller statiskt konfigurerad kod. Problemet är att manuellt bestämma vilken uppsättning säkerhetsrättigheter som krävs för att köra ett bibliotek eller en applikation. Den allmänt använda strategin är att köra koden, notera behörighetsfel, allokera ytterligare åtkomsträttigheter, och testa igen. Denna process itererar tills koden framgångsrikt körs för testfallen i hand. Testfall täcker vanligtvis inte alla sökvägar genom koden, så fel kan uppstå i utplacerade system. Omvänt tilldelas en bred uppsättning tillträdesrättigheter till koden för att förhindra att behörighetsfel uppstår. Detta leder dock ofta till en kränkning av "Principle of Least Privilege". I detta dokument presenteras en teknik för att beräkna kraven på åtkomsträttigheter genom att använda en kontextkänslig, flödeskänslig, interprocedural dataflödesanalys. Genom att använda denna analys beräknar vi vid varje programpunkt den uppsättning åtkomsträttigheter som krävs enligt koden. Vi modellerar funktioner som multi-threading, implicit definierade säkerhetspolitik, semantik av Authority.implies metod och generering av en säkerhetspolicy beskrivning. Vi implementerade algoritmerna och presenterade resultaten av vår analys på en uppsättning program. Medan de analystekniker som beskrivs i detta dokument är i samband med Java-koden, är de grundläggande teknikerna tillämpliga på frågor om åtkomsträttigheter analys i icke-Java-baserade system.
Koved m.fl. I REF föreslogs en kontextkänslig, flödeskänslig och kontextkänslig analys av dataflödet (1-CFA) för att automatiskt uppskatta den uppsättning åtkomsträttigheter som krävs vid varje programpunkt.
Access rights analysis for Java
{'venue': "OOPSLA '02", 'journal': None, 'mag_field_of_study': ['Computer Science']}