Stack inspektion är en mekanism för att programmera säkra applikationer i närvaro av kod från olika skyddsområden. Tidskontroller av anropsstacken gör det möjligt att få information om den kod som (direkt eller indirekt) åberopade den för att kunna fatta beslut om tillträdeskontroll. Denna mekanism är en del av säkerhetsarkitekturen för Java och.NET Common Language Runtime. Ett centralt problem med stackinspektioner är att avgöra i vilken utsträckning de lokala kontroller som införs i koden är tillräckliga för att garantera att en global säkerhetsfastighet upprätthålls. Ett annat problem är hur en sådan kontroll kan genomföras på ett stegvist sätt. Inkrementell analys är viktig för att undvika återanalys av bibliotekskoden varje gång den används, och tillåter biblioteksutvecklaren att resonera om koden utan att känna till dess sammanhang av distribution. Vi föreslår en teknik för att komma fram till gränssnitt för stack-inspekterande bibliotek i form av säkra samtalssammanhang för metoder. Med en säker samtalskontext menar vi en förutsättning på call stacken som är tillräcklig för att garantera att genomförandet av metoden inte kommer att bryta mot en given global egendom. Tekniken är en restriktion-baserad statisk programanalys som genomförs via fast punkt iteration över en abstrakt domän av linjära tidslogiska egenskaper.
Det närmaste av vårt eget arbete är kanske tekniken för datorgränssnitt för stack inspektion REF, där vi beräknar uppsättningen behörigheter som krävs för en metod att utföra utan att höja ett säkerhetsundantag på grund av en misslyckad stack inspektion.
Interfaces for stack inspection
{'venue': 'J. Funct. Program.', 'journal': 'J. Funct. Program.', 'mag_field_of_study': ['Computer Science']}