Lecture 1
- 安全目标
- 机密性(confidentiality、secrecy、privacy):授权用户具有读权限
- 完整性(integrity):仅被授权实体可按所授权权限进行修改
可用性(availability):仅被授权实体可访问
- 防御方法
- 防止:prevention
- 阻碍:hindrance
- 震慑、制止:deterrence
- 偏斜、偏差:deflection
- 检测:detection
恢复:recovering
- 安全原则
- 最弱链接原则
- 适当保护原则:安全目标不是最大化安全,而是最大化实用性,限制风险的花费控制在可接受范围内
- 有效性原则:必须使用控制措施,控制措施要适当、有效,措施要充分、适合,用户心理能接受
- 深度防御
晦涩的安全是不起作用的
- 系统的安全需求,如:
- 银行
- 空军基地
- 医院
家庭
Lecture 2
- 内存保护模式:保证一个用户的进程不能访问其他人的内存空间,操作系统进程、用户进程具有不同的权限
- 栅栏
- 分段
- 分页
- 基/堆寄存器
重分配
- CPU模式(又叫处理器模式、特权模式)
- 系统模式(内核模式):可以执行任意指令、访问任意内存地址、硬件设备、中断操作、改变处理器特权状态、访问内存管理单元、修改寄存器
- 用户模式:受限的内存访问,有些指令不能执行
- 不能停止中断,改变任意进程状态,访问内存管理单元等
- 从用户模式转到系统模式的切换必须通过系统调用
- 服务程序和用户的应用作为进程运行,形成用户空间
root用户运行的进程可能在内核模式或用户模式
- 内核实现方法
- 单核:一个大内核提供所有的服务,包括文件系统、网络服务、设备驱动等
- 所有内核代码运行在单地址空间,互相之间会产生影响
- 如,Linux2.6内核有6百万条代码
- 优点:高效
- 缺点:复杂,某部分的bug会影响整个系统
- 例如:UNIX-variants:FreeBSD,SunOS,AIX,NetBSD
- 提供可加载内核模块的内核依然是单核,如MULTICS
- 微内核:内核较小,仅提供执行系统服务必须的机制
- 内核提供:低地址空间的管理,线程管理,进程间通信
- 操作系统的服务可在用户模式下工作:包括设备驱动、协议栈、文件系统、用户的接口代码
- 优点:可实现最小特权,容忍设备驱动的失败/错误等
缺点:性能差,系统的关键服务出错后会使系统停机
- 系统调用:UNIX为每个系统调用在标准C库中设置一个同样名字的函数。用户进程用标准C调用序列来调用这些函数,启动函数调用对应的内核服务
- 进程控制
- prctl:对进程进行特定操作
- ptrace:进程跟踪
- 文件管理
- fcntl:文件控制
- umask:设置文件权限掩码
- truncate:截断文件
- 用户管理
- 信息维护
通信
- 用户空间的安全机制
- 鉴别
- 访问控制
- 记录日志和审计
- 入侵检测
- 被动式IDS vs 响应式IDS
- 基于主机IDS vs 基于网络IDS
恢复
Lecture 3
二进制文件 vs 脚本文件
命令cat和more调用了read()系统调用,但仅当对要访问的文件或者目录有r权限才能调用、
mv命令对转移文件不需要读权限
粘滞位:在最低位,为t表示无x权限,有T表示有x权限,t/T都表示只有拥有者且为root才能删除或更名目录下文件
- 对于目录:读权限仅能显示目录下的文件的文件名,执行权限可以用于遍历文件属性信息,写加执行权限可以在目录下创建\删除文件\更名文件,且在UNIX中,目录不具有继承性
- 若无写权限,则用户无法访问目录下文件信息
- 若有读权限但是无执行权限
- ls somedir, ok
- ls -l somedir, no
- 有执行权限但无读权限
- ls -l someDir/file, ok
ls somedir, no
只有超级用户可以创建一个目录的硬链接
/etc/group文件保存组用户和组id的映射
Lecture 4
- 访问控制的一些建议
- 虚拟化限制
- 操作系统级虚拟化
- chroot
- FreeBSD jail
- 虚拟机
- 虚拟指令集
- root权限分开
- POSIX/Linux内核能力
- FreeBSD安全级
细粒度的、基于进程的强制访问控制:目的是更好的实现最小特权,分配一个程序其需要的权限,不同于按用户进行权限划分
- chroot好处
- 增加了系统的安全性,限制了用户的全力
- 建立一个与原系统隔离的系统目录结构,方便用户的开发
切换系统的根目录位置,引导Linux系统启动以及急救系统等
- chroot的一些原则
- 在chroot环境下以non-root user运行
- 正确的放弃权限
- 利用chdir显示进入jail
- 在jail环境中内容尽量少
- 尽可能让root管理jailed文件
- 建立权限设置脚本
- 不要在jail环境存放/etc/passwd文件
在建立jail环境前关闭文件描述符
- FreeBSD jail的三个目标
- 虚拟化:每个jail是运行于单机的虚拟环境,拥有自己的文件,进程,用户,超级用户。在jail内部看起来和真实系统一样
- 安全:每个jail和其他部分无关联,破坏其他部分比较困难
- 容易授权:因为jail是受限环境,管理员授权后对整个系统影响不大
虚拟机在用户进程中模拟硬件,性能差;虚拟指令集无主机OS,只有一个小型的虚拟指令集运行在硬件上,性能高,能支持多个OS
- 细粒度访问控制工具:Systrace,LIDS
- SELinux:类型强制访问控制(TE),所有访问都必须明确授权,默认不允许任何访问,无超级用户,通过指定主体类型(即域)和客体类型使用allow规则授予访问权限
- 每个进程上下文:ID,role,domain
- allow规则由四部分组成
- 源类型:尝试访问的进程的域类型
- 目标类型:被进程访问的客体的类型
- 客体类型:指定允许访问的客体的类型
- 许可:象征目标类型允许源类型访问客体类型的访问种类
如:allow user_t bin_t:file {read execute},user_t为源类型,bin_t和目标类型或者客体类型,file是其名称,大括号内包括的许可是文件客体类别有效许可
Lecture 5
访问控制矩阵:行表示用户或进程(主体S),列表示文件(客体O),值为权限。即A(S,O)准确的描述了保护状态的模型。描述一个主体(进程)相对于系统客体的权限,并且是变化的。
通常客体可操作的可称为客体:目录、文件或者内存段。在遇到kill、suspend、resume等命令时,主体可以当成客体使用
访问控制列表(ACL):每个客体维持一个访问列表,列表上为用户以及在这个客体上相应的权限
能力表:每个用户或者进程(主体)维持多个序列对,序列对内容是客体和对应权限
自主访问控制(DAC)是依据主体的判断力授予访问权限,通常由客体的拥有者授权,但是容易被Trojan木马入侵
Lecture 6
两阶段更新:准备阶段和提交阶段,防止数据很大修改到一半就失败。提交阶段时要设置提交标志,写入数据库。直到COMMIT-FLAG为0才能执行操作
推理:根据不敏感的数据得到、推理敏感数据。
Lecture 7
安全策略:定义了系统的安全,可以是非形式化的,也可以是数据描述,精确定义安全策略后,我们信任它
将计算机系统想象成有限状态的自动机,设定一系列转换函数
- 策略将系统状态划分为
- 被授权状态
未授权状态(不安全)
机密性:X为实体集,I为信息,I具有机密性属性:如果无x属于X可以从I中获得信息,如X为学生,I为期末考试试卷题目
- 完整性:I相对于X来说有完整性,当所有x属于X,信任I中的信息。
- 信任的类型包括
- 信任I,包括传递和保护(数据完整性)
- I的起源和身份(初始完整性,鉴别)
信任其能按预定的功能工作(保障)
- 可用性:I相对X来说有可用性:当所有x属于X可以访问I
- 可用性类型
- 按传统:x可以访问或者不可以访问
按服务质量:访问效率等
Lecture 8
- BLP模型
- 信息安全级别
- 绝密 Top Secret
- 机密 Secret
- 秘密 Confidential
公开 Unclassified
主体的安全许可L(s),客体的安全级L(o)
- 信息向上流动,非向下流动
- 上读不允许,下读允许
- 禁止上读原则
- 信息向上流动,非向下流动
- 上写允许,下写不允许
禁止下写原则
A是安全级,C是安全分类,(A,C) dom (A',C') iff A' <= A和C'属于C。如(Top Secret,{NUC,ASI}) dom (Secret,{NUC})
- 安全级集合L = A x C,dom形成格序
- 最小上界lub(L) = (max(A), C)
最大下界glb(L) = (min(A), 空)
- DG/UX System
- 初始
- 主体的标签:指定为用户,保存在授权与鉴别数据库中
- 客体在创建时建立标签
- 显示标签:是属性的一部分
隐式标签:从父目录获得
进程p(MAC_A标签)想创建/tmp/x,可是x已经存在,标签为MAC_B,并且MAC_B dom MAC_A,所以创建失败
多级目录时,若进程p为MAC_A标签,想创建/tmp/x,可是MAC_A对应的目录为/tmp/d/,所以创建了/tmp/d/x
Lecture 9
- Biba完整性模型
- 主体和客体具有完整性级别I,包括完整级和分类(和机密性类似)
- 读写和BLP模型相反
- 执行操作和写操作一样
- Clark-Wilson模型
- 主要关注责任分离和事务