Abstract-Vi introducerar ett nytt typsystem för att upprätthålla ett säkert informationsflöde på ett absolut nödvändigt språk. Vårt arbete är motiverat av problemet med statiskt kontrollera potentiella informationsläckage i Android-applikationer. I detta syfte designar vi ett lättviktssystem med Android-behörighetsmodell, där behörigheterna är statiskt tilldelade till applikationer och används för att säkerställa åtkomstkontroll i applikationerna. Vi tar inspiration från ett typsystem av Banerjee och Naumann för att göra det möjligt för säkerhetstyper att vara beroende av behörigheterna för ansökningarna. Ett nytt inslag i vårt typsystem är en skrivregel för villkorlig förgrening som induceras av tillståndstestning, som introducerar en sammanslagande operatör på säkerhetstyper, vilket gör det möjligt att tillämpa mer exakta säkerhetsprinciper. Ljudet i vårt typsystem är bevisat med avseende på icke-inblandning. Dessutom presenteras en type inference algoritm för det underliggande säkerhet type systemet, genom att minska inference problem till en begränsning lösa problem i lattice av säkerhetstyper. Mobil säkerhet har blivit allt viktigare för vårt dagliga liv på grund av den omfattande användningen av mobila applikationer. Bland de mobila enheter som för närvarande är på marknaden, Android-enheter står för de flesta av dem så analys av deras säkerhet har varit av betydande intressen. Det har gjorts ett stort antal analyser av Android säkerhet ([1]-[5]) med fokus på att upptäcka potentiella säkerhetsöverträdelser. Här är vi istället intresserade av problemet med att bygga säkra applikationer, i synnerhet att garantera informationsflödessäkerhet i de konstruerade applikationerna. Vi följer den språkbaserade säkerhetsstrategin där informationsflödet upprätthålls genom typsystem [6]- [9]. I synnerhet föreslår vi en utformning av ett typsystem som garanterar icke-interferens egendom [8], dvs. typbara program är icke-inblandning. Som framgår av [10] utgör icke-inblandning ett allmänt och naturligt sätt att modellera informationsutbytets säkerhet. Den typbaserade metoden för icke-inblandning kräver tilldelning av säkerhetsetiketter till programvariabler och säkerhetspolicyer till funktioner eller förfaranden. Sådana policies är typiskt kodade som typer, och typbarheten av programmet innebär att körtiden beteende av programmet överensstämmer med de angivna policies. Säkerhetsetiketter bildar en latticestruktur med en † Corresponding författare. S t r i n g nummer; i f (c h e k P e r m i s i n (READ_CONTACT)) nummer =. . ; / / fråga telefonnummer e l s nummer = " ; r e t u r n nummer ; } Lista 1. Provkod för att få kontaktinformation med behörighetskontroll. underliggande partiell ordning ≤, t.ex., en lattice med två element "hög" (H) och "låg" (L) där L ≤ H. Typing regler kan sedan utformas för att förhindra både explicit och implicit flöde (genom villkor, t.ex., om-den-else uttalanden) från H till L. För att förhindra ett uttryckligt flöde, skrivregeln för ett uppdrag uttalande som x := e skulle kräva att l(e) ≤ l(x) där l(.) betecknar säkerhetsnivån för ett uttryck. För att förhindra ett implicit flöde, t.ex. om (y = 0) sedan x:= 0 annars x := 1, kräver de flesta typer av system för icke-interferens att uppdragen i båda grenarna ges samma säkerhetsnivå som är högre eller minst lika med säkerhetsnivån för tillståndet (y=0). Om t.ex. y är av typ H och x av typ L, skulle uttalandet inte vara typbart. Vid utformning av ett informationsflöde typ system för Android, stöter vi på ett gemensamt mönster av villkor som inte skulle vara typbar med konventionella typsystem. Betrakta pseudo-koden i Listing 1. En sådan kodfragment kan vara en del av en telefonuppringare eller en social nätverkstjänst app som Facebook, WhatsApp, där getContactNo ger ett offentligt gränssnitt för att fråga telefonnummer som hör till ett namn. Säkerhetspolicyn (implicit) i detta sammanhang är att kontaktinformationen (telefonnumret) endast kan släppas om anropsappen har READ_CONTACT-tillstånd. Den senare upprätthålls med hjälp av checkPermission API i Android. Antag att telefonnummer är märkta med H, och den tomma strängen är märkt med L. Om gränssnittet åberopas av en app som har den behörighet som krävs, returneras telefonnummeret (H); annars returneras en tom sträng (L). I båda fallen, nr 218 2018 IEEE 31st Computer Security Foundations Symposium
Nyligen utfört arbete av REF anser att säkerhetsetiketter som beror på behörigheter som beviljats ett program.
A Permission-Dependent Type System for Secure Information Flow Analysis
{'venue': '2018 IEEE 31st Computer Security Foundations Symposium (CSF)', 'journal': '2018 IEEE 31st Computer Security Foundations Symposium (CSF)', 'mag_field_of_study': ['Computer Science']}