- Exploring SE for Android
- William Confer William Roberts
- 246字
- 2021-07-23 20:37:36
Complexities and best practices
As you can now appreciate, SELinux is complex, and can be thought of as a general purpose "meta programming policy language". You're literally programming what interactions are allowed to occur in a very complex OS such as Linux, where the interactions themselves are often complex. Just like a programming language, you can do things with different styles and methods that will yield differing results. Perhaps using a switch()
in that program will make it cleaner and easier to understand rather than an else-if
block, even though functionally you will end up with the same thing. SELinux is the same; you can often accomplish things with one portion of the enforcement mechanisms that would be more appropriately accomplished using an alternate mechanism. In later chapters, we will cover the process of labeling the target and subject, one of the more difficult parts of the system.
When someone authors a program, they often have a set of requirements in place that the software should perform. These are the requirements of the software. In SELinux, you should do the same thing. You should gather the security requirements and understand the threat models you wish to protect yourself from. A well designed SELinux policy would meet these goals. A great design would do it in a way that is easy to extend. That's ultimately where careful and judicious use of the combination of UBAC, RBAC, TE, and MLS will help achieve the requirements and design goals.
- Learning Python Web Penetration Testing
- 玩轉(zhuǎn)Scratch少兒趣味編程
- Flink SQL與DataStream入門、進階與實戰(zhàn)
- 程序員數(shù)學:用Python學透線性代數(shù)和微積分
- RTC程序設(shè)計:實時音視頻權(quán)威指南
- Web全棧工程師的自我修養(yǎng)
- PostgreSQL 11從入門到精通(視頻教學版)
- Quarkus實踐指南:構(gòu)建新一代的Kubernetes原生Java微服務(wù)
- Java設(shè)計模式及實踐
- 微信小程序入門指南
- Mastering JavaScript Design Patterns(Second Edition)
- Swift語言實戰(zhàn)精講
- Clojure Reactive Programming
- Go語言開發(fā)實戰(zhàn)(慕課版)
- C++ Fundamentals