网络与系统安全复习
概论
信息安全的需求 CIA
机密性Confidentiality,完整性Integrity,可用性Availability
信息安全管理
PDCA模型,plan do check act
访问控制系统
访问控制的三要素
SOA(Subject主体,Object客体,Authorize授权)
自主访问控制
每一个主体有一个Owner,它具有分配客体权限的能力,权限可以从Owner传递到其他主体,Linux的UGO和ACL用的就是自主访问控制
强制访问控制
访问的允许完全根据主体和客体的安全级别决定,主体的安全级别由管理员赋予用户,客体的安全级别由系统根据创建他们的用户安全级别决定。Biba,BLP。
Linux UGO
为每一个文件附上一段有关访问控制信息的二进制位,描述UGO(User、Group、Other的缩写)分别拥有RWX中哪几项权限
Linux ACL
UGO授权管理粒度太粗,只能对文件的User、Group进行权限管理,对其余指定的用户授权要创建新的组。ACL可以通过 setfacl -m user:用户名:rwx file
为指定的用户设置文件的ACL信息。ACL在UGO检查之后,通过UGO才进行ACL检查。
BLP模型
BLP只关注机密性,不关注完整/可用性
不能read up,不能write down
BLP不能支持策略制定
Biba模型
只关注信息的完整性
不能write up,不能read down,一个主体只能调用完整性低的主体
Clark-Wilson模型也关注信息的完整性,多边安全模型
Chinese-Wall模型同时关注机密性和完整性
SELinux
属于强制访问控制,所有访问必须明确授权,默认不允许任何访问,没有root用户,通过allow规则授予访问权限
allow规则四部分:
源类型 尝试进行访问控制的域类型
目标类型 被进程访问的客体类型
客体类别 允许访问的客体的种类名称
许可 目标类型允许原类型访问的种类
ex :Allow user_t bin_t: file{read execute}
基于属性的访问控制 ABAC
attribute based access control
- 细粒度访问控制 2. 管理的灵活性
网络边界和防护
IPSec
AH协议不提供机密性,ESP可以,即ESP配置的时候要选择加密算法和鉴别算法,AH只有一个鉴别算法
两个协议都可以实现数据源身份鉴别,数据源完整性验证
IPSec密钥交换协议用的是IKE
AH:IP头+AH+保护内容,算的哈希是IP头加上保护内容
ESP:IP头+ESP头+保护内容+ESP尾,没有保证IP头的完整性,但是多了一个加密功能,可以加密IP载荷部分,也可以加密整个IP包,重新打包进行传输,分别对应传输模式(Transport Modes)和隧道模式(Tunnel Modes)
VPN
用IPSec做VPN不能随便更换设备,因为IP会变,用SSL做VPN可以不同设备用
DNSSEC
对DNS响应进行数字签名
防火墙
功能:访问控制、集中管理、日志记录、流量控制、NAT/IPSec平台
包过滤防火墙:只检查报头,在IP层
状态检测防火墙:检查报头,建立链接状态表
应用级网关防火墙:检查报头,检查数据
网络权限管理
证书策略
用来区分不同证书安全等级Certificate Policy(CP),以OID的形式
CP在CA的证书中出现:表示CA可以签发包含这几种CP的订户证书
CP在订户证书中出现:说明被授权者的安全等级和可使用的范围,订户证书也可以有不同等级的CP
PKI和PMI
PMI:权限管理基础设施,资源拥有者成为SOA(Source of Authority),被授权的实体叫Privilege Holder,SOA对应PKI里根证书的签发机构
PKI中,CA签发证书,PMI中,AA(Attribute Authority)签发
为什么要设置PMI
公钥证书的颁发者和权限的授予者可能不是同一个
公钥证书和权限的有效期并不是一致的
可信计算
TPM
目标
保证私钥的安全(TPM产生公私钥对、签名验证加解密时,采用硬件方式在TPM内部操作,私钥的拥有者也无法取得密钥)
检测恶意代码(通过验证PCR度量值的变化,检测不受签名认证的恶意代码,并且可以用TPM私钥签名PCR的所有软件度量列表,向远端整明软件的安全)
所以TPM的三项基本功能是(安全的)存储、启动、网上认证
安全启动、可信启动
(利用只有拥有合法签名的系统镜像可以被引导等方式),将机器启动到一个可信状态——安全启动
记录启动序列,用于证明系统状态——可信启动
系统从一个信任根CRTM启动,信任根是系统中第一个获得控制权的模块,信任根启动BIOS,BIOS启动引导程序,引导程序加载系统内核,系统内核启动系统的应用层程序
TPM用平台配置寄存器PCT记录系统的启动序列,采用计算Hash的方式,为了将系统的不同镜像的度量值存入PCR,采用扩展的方式:将新的输入值连接在当前PCR值后面,然后链接的结果再次Hash,作为新的PCR值
动态可信度量根DRTM
旨在实现信任根的随时随地启动,以及可信启动过程的可重复
入侵检测
PDR模型
保护Protection 检测Detection 响应Response
PDRR模型
多了一个 Recovery 恢复
误用入侵检测系统
对检测过程中得到的审计事件数据进行过滤,与误用模式库进行逐一比较,检查是否包含入侵行为的标识(特征signature)
所有入侵行为和手段都能够表达为一种模式或特征
所有已知的入侵过程都可以用匹配的方法发现
区分计算机病毒与普通计算机程序代码不是一个可判定问题
优点:无需训练实时性好,缺点:只能检测已有的攻击类型
包括规则匹配(snort、Bro)、专家系统、状态转移分析、数据挖掘
专家系统
使用类似于if-then的规则格式输入知识,攻击的条件排列在规则的左边(if部分),条件满足时,系统采取规则右边(then部分)给出的动作
状态转移分析
把攻击特征表示为系统状态的转移
异常入侵检测
误用入侵检测是匹配特定的入侵行为,异常入侵检测是学习正常的行为模式
优点:可以发现未知的攻击,漏报率低。缺点:模式的定义、模式的完备性和监控频率、系统资源的消耗
异常入侵检测的模式库特征通常在IDS的运行中更新
入侵响应
阻断攻击
阻断TCP连接(TCP RESET)、ICMP Destination Unreachable、消息重定向,然后联络攻击者所在区域管理员/向攻击者发起反击
收集攻击信息:把攻击者引导到蜜罐,收集对方信息
入侵追踪
入侵检测发展
分布式入侵检测方案SnortNet、基于代理的检测AAFID、APT攻击
PPM
追踪包路径,操作为每经过一个路由器,就把IP加上去,不足:经过太多负担过大
入侵容忍
拜占庭将军问题 BGP
A. 所有忠诚的将军必须基于相同的行动计划做出决策。忠诚的将军按算法的要求行动,而叛徒则按他们自己的意志行动。
B.少数叛徒不能使忠诚的将军做出错误的计划。
在实际计算机中,问题表述为计算机的失效部件发送自相矛盾的信息给不同系统组成部分,在存在失效部件的情况下,系统仍能达成正确的协定(不是找出叛徒是谁)
A 口信解决方案
问题简化:
IC1:所有忠诚的下属都服从相同的命令
IC2:如果上级忠诚,每个忠实的下级都服从它发出的命令
原始问题可以看作每个将军都用上述方式发送其值v(i),其他将军看作下属
上级给下属全都发送消息(没收到消息默认是撤退),下属互相交换接收到的的结果,以多数人接收到的命令为准,这样所有忠臣就都知道了这轮的上级发送的是什么命令,排除了这一轮中叛徒下级的干扰,然后为了排除上级是叛徒的干扰,通过重复m+1轮次找到正确的指令
(即口解决方案不需要考虑发起的先后顺序)
如果将军数少于3m+1,没有解决方法,应对m个叛徒
B 签名消息解决方案
忠将可以签名消息,使得别人不能篡改她的消息
然后大家可以直接签名“谁说了什么”把自己收到的消息再公布出去
这样所有人都可以从上帝视角看,是谁向别人分别发送不同的消息
拜占庭容错系统 BQS
假设B发送消息M,A肯定收到,A收到的消息肯定不是假冒的(签名),目的是容忍 f 台服务器失效,client还能读出正确数据
复制/冗余:复制到大于f台服务器上,client就有可能读出数据
写/读:同时读写多台服务器
n台服务器,同时操作q台服务器,容忍f台服务器,就是BQS的核心内容
- $n-f\ge q$,即使f台坏服务器都回复假消息,也能有足够的q台服务器回复正确的
- $q-(n-q)\ge f+1+f$,至少f+1台服务器正确
即n=4f+1,q=3f+1,
门限密码
秘密S拆分成n个$S_{i}$,通过t个或更多的份额可以计算出t,少于t不能获取S的任何信息,(t,n)就是秘密分成n份,至少t个人。
构造曲线$F(x)=\sum {i=i}^{t-1}a{i}x^{i}+a_{0}$,每个秘密共享者拥有一个坐标,秘密S就是$a_{0}$
联合秘密分享
没有秘密分发者
约定一个大素数q,秘密为$S=\sum s_{i}modq$,每个人都有秘密$s_{i}$,构造多项式$F_{i}(x)$,$F_{i}(0)=s_{i}$。第i个参与者计算$F_{i}(j)$发给第j个参与者。每个人都收到了n-1个$F_{j}(i)$加上自己的,这n个数求和作为自己的份额
Proactive Recovery
在周期T内,攻击者不能攻陷超过f台服务器,不能突破门限,T之后恢复所有服务器
要保证每一次的拆分与之前的无关,不能互相推导