官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 疏勒县| 阳谷县| 弥渡县| 宣汉县| 梅河口市| 昌平区| 连城县| 星座| 枣阳市| 朔州市| 宝丰县| 阆中市| 容城县| 彩票| 孝感市| 康乐县| 临猗县| 灌南县| 古田县| 富源县| 高碑店市| 京山县| 淄博市| 社旗县| 巴塘县| 嵩明县| 十堰市| 全南县| 湖北省| 磐安县| 买车| 英山县| 凉城县| 托里县| 荆门市| 翼城县| 若羌县| 广饶县| 洱源县| 清原| 上林县|