File system capabilities in the context of a separation kernel: A practical approach by extending the capability model of the S3K kernel
2024 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Student thesisAlternative title
Filsystemskapabiliteter i kontexten av en separationskärna : Ett praktiskt tillvägagångssätt genom att utöka kapabilitetsmodellen i S3K-kärnan (Swedish)
Abstract [en]
The security and reliability of operating system kernels are critical. Trusting software to operate a car, a train, or an aeroplane requires high confidence in fault tolerance and resilience to attacks. The Simple Secure Separation Kernel (S3K) is one such effort currently being developed at KTH. S3K is a microkernel and uses capability-based security to achieve fine-grained resource access control. However, supported capability types are currently limited to time scheduling, memory access, interprocess communication, and monitors (modification of another process). This thesis tackles the topic of capability design for persistent storage, namely file systems. The scope is limited to basic kernel support and a file server running in userspace, which means abstracting over file systems rather than creating new ones. File systems typically use access control lists to encode permissions with user and group identifiers. However, S3K does not aim to implement a full multi-user system and extending the capability model to include the file system is a better fit. Four implementations using a path capability approach are presented and evaluated. These are named FullAPI, MinAPI, MaxQuota, and CreateQuota. FullAPI has a number of file system related system calls, while MinAPI only has path capabilities and implements file system operations in userspace. MaxQuota and CreateQuota are built on top of FullAPI and tackle the problem of disk quotas. The results show that the added complexity to the kernel is small if the vendored drivers are ignored. Path capabilities are an especially good fit for MinAPI, as it allows the kernel to have minimal cost to deriving them compared to an inode approach. The MaxQuota approach performs poorly as it requires frequent disk usage checks. The CreateQuota approach is a better approach as it only requires a check against a single capability. In conclusion, file system capabilities are an excellent abstraction for kernels and achieve better security than traditional access control lists. Security-orientated systems would benefit from using the programming model presented in this thesis.
Abstract [sv]
Hög säkerhet och tillförlitlighet hos operativsystemkärnor är kritiskt. Det krävs god motståndskraft mot attacker för att lita på programvara att styra en bil, ett tåg eller ett flygplan. En sådan operativsystemkärna är Simple Secure Separation Kernel (S3K) som utvecklas vid KTH. S3K är en mikrokärna och använder kapabilitetsbaserad säkerhet för att uppnå granulär kontroll av resursåtkomst. Dock är stödet för kapabilitetstyper för närvarande begränsat till schedulering, minnesåtkomst, interprocesskommunikation och monitorer (modifikation av en annan process). Den här uppsatsen behandlar ämnet kapabilitetsdesign för persistent lagring, det vill säga filsystem. Omfattningen är begränsad till stöd i kärnan, vilket innebär abstraktion över befintliga filsystem och inte att designa nya. Filsystem använder vanligtvis listor för att bemärka behörigheter genom användar- och gruppidentifierare. S3K syftar dock inte till att implementera ett fullständigt fleranvändarsystem och att utöka kapabilitetsmodellen för att inkludera filsystemet är en bättre lösning. Fyra implementationer presenteras och utvärderas, alla baserade på ett tillvägagångssätt med filsökvägar som kapabiliteter. Dessa kallas FullAPI, MinAPI, MaxQuota och CreateQuota. FullAPI har ett större antal systemanrop relaterade till filsystem, medan MinAPI endast har nya systemanrop relaterade till skapa filsökvägs-kapabiliteter och implementerar filsystemoperationer utanför kärnan. MaxQuota och CreateQuota bygger på FullAPI och hanterar problemet diskkvoter. Resultaten visar att den ökade komplexiteten i kärnan är liten om de externa drivrutinerna som kopierats ignoreras. Filsökvägar som kapabiliteter är särskilt väl lämpade för MinAPI, eftersom kärnan har minimal kostnad för att derivera nya kapabiliteter jämfört med ett tillvägagångssätt där inoder används. MaxQuota-prestandan är dålig eftersom den kräver frekventa kontroller av diskutrymmesanvändning. CreateQuota är en bättre lösning eftersom den endast kräver att kontrollera en enda kapabilitet. Slutsatsen är att kapabiliteter för filsystem är en utmärkt abstraktion för kärnor och uppnår bättre säkerhet än traditionella listor för behörigheter. Säkerhetsinriktade system skulle gynnas av att använda den programmerings-modell som presenteras i denna uppsats.
Place, publisher, year, edition, pages
Stockholm: KTH Royal Institute of Technology , 2024. , p. 93
Series
TRITA-EECS-EX ; 2024:598
Keywords [en]
File system, Computer security, Separation kernel, Security kernels
Keywords [sv]
Filsystem, Datorsäkerhet, Separationskärna, Säkerhetskärnor
National Category
Computer Sciences Software Engineering Computer Engineering
Identifiers
URN: urn:nbn:se:kth:diva-353087OAI: oai:DiVA.org:kth-353087DiVA, id: diva2:1897044
Subject / course
Computer Science
Educational program
Master of Science in Engineering - Computer Science and Technology
Presentation
2024-06-12, 4523 Stefan Arnborg, Lindstedtsvägen 3/5, Stockholm, 13:15 (English)
Supervisors
Examiners
2024-10-022024-09-112024-10-02Bibliographically approved