南京
杭州
上海
025-87787966    0571-88257871

SELinux开发

发布日期: 2020/6/5 11:51:44

课程大纲:
一、操作系统中访问控制模型的演化
    1、访问控制模型的概念(Reference Monitor)
    2、DAC(Discretionary Access Control)的致命伤
    3、MAC(Mandatory Access Control)的起源
    4、SELinux 的 TE(Type Enforcement)模型
二、SELinux 的概念
    1、SELinux 的“物质基础”-安全上下文(SecurityContext)
    2、LSM(Linux Security Module)
    3、Type Enforcement 的概念
    4、Domain Transition 的概念
    5、Role 的作用
    6、Domain Transition 和 role 规则举例
    7、MLS 对 SC 的扩展
三、SELinux 的语法
    1、Object Class and Permissions
    2、Type, alias and Attribute
    3、Access Vector Rules
    4、Type Transition Rule
    5、神奇的 type_change 规则
    6、RBAC
    7、Constraints and MLS constraints
    8、Boolean, Tunable and OptionalPolicy
    9、Range Transition
    10、Role Transition
    11、使用 setools 工具包分析 policy.X
    12、在 Host 上使用 Checkpolicy 访问用户态 Security Server
四、Reference Policy
    1、Reference Policy 代码树的主要结构
    2、Policy Package 的源代码文件
五、SELinux 的用户态设施
    1、/etc/selinux/config
    2、/etc/selinux/$SELINUXTYPE/
    3、Policy Store
    4、selinuxfs 目录树
    5、/proc/pid/attr/目录树
六、SELinux 的安装
    1、Ubuntu 上 SELinux 的安装
    2、SELinux 的启动过程(Revisited)
七、为应用程序开发新的 PP
    1、Object 的标签由谁决定
    2、何时需要为应用程序开发 pp?
    3、设计 pp 的一般过程
    4、为 vlock 程序编写 vlock.pp
    5、为 samhain 程序编写 samhain.pp
    6、使用 SLIDE 来开发 pp,分析 SELinux 源代码
    7、编写 pp 时的注意事项
八、SELinux 问题分析
    1、排除 DAC 权限的问题
    2、检查用户当前所扮演的角色
    3、分析 AVC Denied Message:Target 的标签正确吗?
    4、在系统启动过程中适时地修复错误的文件标签
    5、应用程序的实际行为要和其 pp 的假设相一致
    6、明确相应 domain 所缺少的权限
    7、SELinux 问题分析过程和方法举例
九、SELinux 开发
    1、使能对/dev/console 的支持
    2、Socket Labeling 开发
    3、给 role_transition 规则添加 class 的支持
    4、增加 role attribute 的支持(new)
    5、区分 tunable 和 boolean(new)
    6、在策略中指定 newcontext 的缺省设置方法(todo)
十、SELinux 内核驱动分析
    1、LSM 核心数据结构及相应回调函数
    2、SELinux 核心数据结构
    3、情景分析:打开文件时的相关函数调用链
    4、通过 SELinuxfs 访问内核 Security Server
    5、情景分析:Domain transition 的实现
    6、情景分析:文件系统的挂载和新文件的创建
    7、Context 数据结构和 u32 sid 之间的映射
    8、Class Mapping
    9、和文件操作相关的回调函数
    10、和 AF_UNIX socket 相关的回调函数(todo)
    11、和程序执行相关的操作(todo)
十一、用户态应用程序对 SELinux 的支持
    1、libselinux 相关文件分析
    2、newrole 源代码分析
    3、PAM 模块分析
十二、refpolicy 的编译,链接,扩展
    1、描述标识符的数据结构
    2、描述规则的数据结构
    3、用户态 policydb_t 数据结构分析
    4、module 的编译 - checkmodule
    5、module 的链接 - semodule_link
    6、module 的扩展 - semodule_expand
    7、link 和 expand 过程的图解(new)
    8、规则中的 m4 宏定义(new)
十三、SELinux 的应用 -- Labeled Networking (half-baked)
    1、IPsec 简介
    2、SELinux 对本地网络的控制(compat-net)
    3、用 Labeled IPsec 实现分布式网络控制
    4、Linux 内核 XFM 相关数据结构
    5、和 IPsec 相关的类,权限和接口
    6、LSM 中和 Labeled Ipsec 相关的回调函数
    7、Labeled IPsec 环境的搭建
    8、观察 Labeled IPsec 的行为
    9、和 Labeled IPsec 相关的 SELinux 规则

相关培训课程

TRAINING COURSE
无标题文档