1、訪問控制模型的概念(Reference Monitor)
2、DAC(Discretionary Access Control)的致命傷
3、MAC(Mandatory Access Control)的起源
4、SELinux的TE(Type Enforcement)模型
二、SELinux的概念
1、SELinux的“物質(zhì)基礎(chǔ)”-安全上下文(SecurityContext)
2、LSM(Linux Security Module)
3、Type Enforcement的概念
4、Domain Transition的概念
5、Role的作用
6、Domain Transition和role規(guī)則舉例
7、MLS對(duì)SC的擴(kuò)展
三、SELinux的語法
1、Object Class and Permissions
2、Type,alias and Attribute
3、Access Vector Rules
4、Type Transition Rule
5、神奇的type_change規(guī)則
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訪問用戶態(tài)Security Server
四、Reference Policy
1、Reference Policy代碼樹的主要結(jié)構(gòu)
2、Policy Package的源代碼文件
五、SELinux的用戶態(tài)設(shè)施
1、/etc/selinux/config
2、/etc/selinux/$SELINUXTYPE/
3、Policy Store
4、selinuxfs目錄樹
5、/proc/pid/attr/目錄樹
六、SELinux的安裝
1、Ubuntu上SELinux的安裝
2、SELinux的啟動(dòng)過程(Revisited)
七、為應(yīng)用程序開發(fā)新的PP
1、Object的標(biāo)簽由誰決定
2、何時(shí)需要為應(yīng)用程序開發(fā)pp?
3、設(shè)計(jì)pp的一般過程
4、為vlock程序編寫vlock.pp
5、為samhain程序編寫samhain.pp
6、使用SLIDE來開發(fā)pp,分析SELinux源代碼
7、編寫pp時(shí)的注意事項(xiàng)
八、SELinux問題分析
1、排除DAC權(quán)限的問題
2、檢查用戶當(dāng)前所扮演的角色
3、分析AVC Denied Message:Target的標(biāo)簽正確嗎?
4、在系統(tǒng)啟動(dòng)過程中適時(shí)地修復(fù)錯(cuò)誤的文件標(biāo)簽
5、應(yīng)用程序的實(shí)際行為要和其pp的假設(shè)相一致
6、明確相應(yīng)domain所缺少的權(quán)限
7、SELinux問題分析過程和方法舉例
九、SELinux開發(fā)
1、使能對(duì)/dev/console的支持
2、Socket Labeling開發(fā)
3、給role_transition規(guī)則添加class的支持
4、增加role attribute的支持(new)
5、區(qū)分tunable和boolean(new)
6、在策略中指定newcontext的缺省設(shè)置方法(todo)
十、SELinux內(nèi)核驅(qū)動(dòng)分析
1、LSM核心數(shù)據(jù)結(jié)構(gòu)及相應(yīng)回調(diào)函數(shù)
2、SELinux核心數(shù)據(jù)結(jié)構(gòu)
3、情景分析:打開文件時(shí)的相關(guān)函數(shù)調(diào)用鏈
4、通過SELinuxfs訪問內(nèi)核Security Server
5、情景分析:Domain transition的實(shí)現(xiàn)
6、情景分析:文件系統(tǒng)的掛載和新文件的創(chuàng)建
7、Context數(shù)據(jù)結(jié)構(gòu)和u32 sid之間的映射
8、Class Mapping
9、和文件操作相關(guān)的回調(diào)函數(shù)
10、和AF_UNIX socket相關(guān)的回調(diào)函數(shù)(todo)
11、和程序執(zhí)行相關(guān)的操作(todo)
十一、用戶態(tài)應(yīng)用程序?qū)ELinux的支持
1、libselinux相關(guān)文件分析
2、newrole源代碼分析
3、PAM模塊分析
十二、refpolicy的編譯,鏈接,擴(kuò)展
1、描述標(biāo)識(shí)符的數(shù)據(jù)結(jié)構(gòu)
2、描述規(guī)則的數(shù)據(jù)結(jié)構(gòu)
3、用戶態(tài)policydb_t數(shù)據(jù)結(jié)構(gòu)分析
4、module的編譯-checkmodule
5、module的鏈接-semodule_link
6、module的擴(kuò)展-semodule_expand
7、link和expand過程的圖解(new)
8、規(guī)則中的m4宏定義(new)
十三、SELinux的應(yīng)用--Labeled Networking(half-baked)
1、IPsec簡(jiǎn)介
2、SELinux對(duì)本地網(wǎng)絡(luò)的控制(compat-net)
3、用Labeled IPsec實(shí)現(xiàn)分布式網(wǎng)絡(luò)控制
4、Linux內(nèi)核XFM相關(guān)數(shù)據(jù)結(jié)構(gòu)
5、和IPsec相關(guān)的類,權(quán)限和接口
6、LSM中和Labeled Ipsec相關(guān)的回調(diào)函數(shù)
7、Labeled IPsec環(huán)境的搭建
8、觀察Labeled IPsec的行為
9、和Labeled IPsec相關(guān)的SELinux規(guī)則