文章目录
第一节
考点 :
1.卡尔的攻击过程。
2.卡尔的工具和作用。
卡尔使用工具
技术性打探
F r a g R o u t e r FragRouter FragRouter : 入侵检测系统规避软件, 避免自己的系统直接暴露在扫描系统通信的前方。
C h e o p s − n g Cheops-ng Cheops−ng 嗅探软件功能: • 判断节点的操作系统 • 测绘网络拓扑 • 查找主机
N m a p Nmap Nmap 扫描工具功能: TCP 80 端口打开 〉 Web 服务器 UDP 53 端口打开 〉 DNS 服务器 TCP 5900 端口打开 〉 VNC 服务(虚拟网络控制) TCP 443 端口打开 〉 HTTPS 服务 • 主机发现 • 端口扫描 • 版本检测
F i r e w a l k Firewalk Firewalk 工具功能: • 探测路由器/防火墙的配置策略。
- 用 N e s s u s Nessus Nessus 作漏洞扫描发现: • N e s s u s Nessus Nessus 漏洞扫描工具:扫描主机、网络、系统、数据库、应用的漏洞。
寻找突破口
W e l l e n r e i t e r Wellenreiter Wellenreiter 探测无线接入点。
- 用 i f c o n f i g ifconfig ifconfig 假冒选定的 M A C MAC MAC 地址再尝试。
- 用 d i g dig dig 命令和服务器 I P IP IP 作逆向 D N S DNS DNS 查询发现:
设法扩大战果
- 用 M e t a s p l o i t Metasploit Metasploit 对销售点 B B B 的服务器上的备份程序进行缓冲区溢出攻击
- 在 B B B 服务器上安装嗅探程序
- 用 P a r o s P r o x y Paros Proxy ParosProxy 自动扫描 W e b Web Web 应用: 寻找跨站脚本和 SQL 注入缺陷: 在 cookie 中发现 SQL 注入缺陷
安全攻击步骤概括
- 侦察 侦察(踩点):就是收集有关被攻击目标的一般信息,主要是获取对方的 IP 地址、域名服务器的信息、管理员的个人信息以及公司的信息。 常见手段: • 社会工程学: 是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。 • 淘垃圾 • 单位的 web 网站 • 公共信息服务网站: Whois 数据库、 InterNIC 、 Uwhois • DNS 服务器: A 记录、 C Name 记录、 MX 记录(邮件交换地址记录)、 ptr 记录
- 扫描 扫描:采用技术手段,进一步掌握有关攻击目标的更多信息。 种类: • 无线接入扫描:寻找目标网络的无线接入点并确定其 SSID → W e l l e n r e i t e r Wellenreiter Wellenreiter • 网络映射:确定目标网络中的机器及这些机器构成的网络拓扑 → C h e o p s − n g Cheops-ng Cheops−ng • 端口扫描 确定目标网络中哪些端口开放 → N m a p Nmap Nmap • 防火墙规则扫描 确定目标网络中防火墙实施的规则 → F i r e w a l k Firewalk Firewalk • 漏洞扫描 检测目标系统中可能存在的安全漏洞 → N e s s u s Nessus Nessus
- 获取访问 获取访问:闯入或访问目标系统,攻击者可能采取对操作系统、应用程序、网络系统进行攻击的方法获取对系统的访问权。 常见方式: • 通过操作系统获取访问权的方式:缓冲区溢出、口令攻击 • 通过应用程序获取访问权的方式:账户捕捉、会话捕获、 SQL注入 • 通过网络攻击获取访问权的方式: IP 地址欺骗、 MAC 地址欺骗
- 维持访问 维持访问:是在攻击成功之后为下一次攻击打开方便之门,主要通过木马和后门实现。 • 木马:木马病毒是指隐藏在正常程序中的一段 具有特殊功能的恶意代码 。 • 后门:后门是指 绕过安全控制而获取对程序或系统访问权的方法 。后门的最主要目的就是方便以后再次秘密进入或者控制系统。 木马后门应对工具: • L i n u x Linux Linux: C h k r o o t k i t Chkrootkit Chkrootkit 、 R o o t k i t Rootkit Rootkit H u n t e r Hunter Hunter • W i n d o w s Windows Windows: R o o t k i t Rootkit Rootkit R e v e a l e r Revealer Revealer 、 B l a c k l i g h t Blacklight Blacklight
- 掩盖踪迹 掩盖踪迹:隐藏攻击行为,以期不被发现。
认识信息系统安全
- 主机系统 由 一 台 设 备 的 所 有 硬 件 和 软 件 构 成 的 整 体 一台设备的所有硬件和软件构成的整体 一台设备的所有硬件和软件构成的整体称为一个 主机系统 。
- 信息系统 由 一 套 应 用 软 件 及 支 撑 其 运 行 的 所 有 硬 件 和 软 件 构 成 的 整 体 一套应用软件及支撑其运行的所有硬件和软件构成的整体 一套应用软件及支撑其运行的所有硬件和软件构成的整体称为一个 信息系统 。
- 主机系统对信息系统的承载 [1] 如果信息系统 A A A 的某些功能需要由主机系统 H H H 实施,则称信息系统 A A A 依赖主机系统 H H H ,或称主机系统 H H H 承载信息系统 A A A 。 [2] 承载任何一个信息系统所需要的主机系统数量是有限的。 [3] 如果信息系统 A A A 的某些功能需要由网络设施 D D D 实施,则称信息系统 A A A 依赖网络设施 D D D ,或称网络设施 D D D 承载信息系统 A A A 。 [4] 任何一个信息系统都只需要由有限数量的主机系统和有限数量的网络设施承载。
信息系统安全
信息系统的安全性(
S
e
c
u
r
i
t
y
Security
Security )指信息系统具有的降低安全攻击风险的特性,它的作用主要体现在以下两个方面:
•1 )降低安全攻击获得成功的可能性
•2 )降低成功的攻击造成的损害。
主机系统安全与网络安全相结合是信息系统安全的有效方法。
信息系统安全问题具有以下特点:
•1 )涉及硬件安全和软件安全
•2 )以主机系统安全为核心
•3 )需要兼顾网络安全。
系统安全地位与环境
- 物理安全 :保护计算机设备、设施免受自然灾害、环境事故、人为操作失误、恶意操作导致的破坏。
- 系统安全 :又称主机系统安全,主要涉及计算机设备的 操作系统 层面的安全。
- 网络安全: 确保网络系统安全运行,提供有效的网络服务的。
- 数据安全:主要关注信息系统中存储、传输和处理过程中的数据安全性,目的是实现数据的机密性、完整性、可用性、可控性、不可否认。
- 应用安全:主要确保信息系统中的各种应用的安全运行,其安全需求主要涉及身份认证机制和关键业务系统的对外接口。
- 安全管理:主要落实信息系统中涉及的安全管理制度、人员安全管理、系统运行维护等方面的安全需求。
信息安全经典要素
机密性:防止私密的或机密的信息泄露给非授权实体的属性。
- 可以采取哪些措施保证机密性? •1 )访问控制:阻止未获授权的实体获取受保护的信息 •2 )加密保护:阻止未获授权的实体理解受保护的信息
完整性:完整性分为 数据完整性 和 系统完整性 。
2. 数据完整性:确保数据只能按照指定的方式进行修改
何为非法修改?
•1 )在没有获得授权的情况下修改数据
•2 )没有按照授权中指定的方式修改数据
3. 系统完整性描述的是系统运行过程中的行为,它要求系统的行为必须符合预期,以事先设定的逻辑为基准,系统行为落实的功能不能出差错,不能多了,也不能少了。
如果系统受到未经授权的操控,导致系统实施的功能与预期不符,那么系统完整性就遭到破坏了。
可用性:是指确保系统及时工作并向授权用户提供所需服务的属性。
4. 强调的是合法用户申请的服务不能被拒绝,必须在正常的时间范围内得到响应。 Dos攻击是危害可用性的常用手段之一。
安全策略
定义 1.9: 安全策略是指规定一个组织为达到安全目标如何管理、保护和发布信息资源的法律、规章和条例的集合。
定义 1.10: 安全策略是指为达到一组安全目标而设计的规则的集合。
定义 1.11: 安全策略是指关于允许什么和禁止什么的规定。
安全模型
定义 1.12 :安全模型是指拟由系统实施的安全策略的形式化表示。
定义 1.13 :安全模型是指用更加形式化的或数学化的术语对安全策略的重新表述。
主体(
S
S
S ), 客体 (
O
O
O ), 权限(
P
P
P )
访问控制矩阵模型
令矩阵的每一行对应一个主体、每一列对应一个客体、矩阵的每个元素对应一个权限集合 。
ACL机制: 把矩阵按列切开,每个客体拥有一列,每个单元格包含一个主体标识和一个权限集合,称为每一列为一个访问控制列表(ACL).
权能机制 : 把矩阵按行切开,每个主体拥有一行.称为每一行为一个权能.
安全机制设计八大原则
- 经济性原则( E c o n o m y o f M e c h a n i s m Economy of Mechanism EconomyofMechanism )
- 默认拒绝原则( Fail Safe Defaults )
- 完全仲裁原则( Complete Mediation)
- 开放设计原则( Open Design )
- 特权分离原则( Separation of Privilege )
- 最小特权原则( Least Privilege )
- 最少公共机制原则( Least Common Mechanism)
- 心理可接受原则( Psychological Acceptability)
例题
- 回顾开篇案例,请问卡尔在攻击过程中采用的是主动嗅探技术还是被动嗅探技术?
- 在开篇案例中,卡尔是否破坏了 机密性 ?如果是,请说明是如何破坏的,并说明好 运公司应采取什么样的措施应对相应破坏。
- 在开篇案例中,卡尔是否破坏了 完整性 ?如果是,请说明是如何破坏的,并说明好 运公司应采取什么样的措施应对相应破坏。
- 在开篇案例中,卡尔是否破坏了 可用性 ?如果是,请说明是如何破坏的,并说明好 运公司应采取什么样的措施应对相应破坏。
第二节
访问控制
定义:是指对主体与客体之间的交互进行控制的过程。
- 访问控制是允许或者禁止某主体访问某客体的过程
作用:让得到授权的主体访问客体,同时阻止没有授权的主体访问客体, 是实现机密
性和完整性机制的主要手段 。
访问控制分类
- 自主访问控制( DAC ) •定义 2.1 :如果作为客体的拥有者的用户个体可以通过设置访问控制属性来 准许或拒绝对该客体的访问,那么这样的访问控制称为 自主访问控制 。 用户决定主体是不是可以访问客体
- 自主访问控制可用以下模型表示 1 、访问控制矩阵( Access Control Metrix) 2 、访问控制列表 (Access Control Lists) 3 、访问控制全权能列表 (Access Control Capabilities Lists)
- 优点: 授权机制比较灵活
- 缺点:存在较大的安全隐患,不能对系统资源提供充分保护 容易被非法用户绕过- 例如:若某用户 A 有权访问文件 F ,而用户 B 无权访问文件 F ,则一旦 A 获取 F 后 再传送给 B ,则 B 可访问 F 。- 原因:在自主访问控制策略中,用户在获得文件的访问后,并 没有限制对该文 件信息的操作 ,即没有控制数据信息的分发。
- 强制访问控制 MAC 定义 2.3 :如果只有系统才能控制对客体的访问,而用户个体不能改变这种控制 那么这样的访问控制称为强制访问控制。
经典安全模型
贝尔 • 拉普杜拉模型
- 归纳:贝拉模型通过 “不上读,不下写” 的访问控制,防止敏感信息泄露
贝拉模型的核心内容由简单安全特性(
s
s
ss
ss 特性)、星号安全特性( 特性)、自主安全特性(
d
s
ds
ds 特性)和一个基本安全定理构成。
当前访问可用三元组表示:(
S
u
b
Sub
Sub ,
O
b
j
Obj
Obj ,
A
c
c
Acc
Acc)-- ( 主体 , 客体, 访问权限)
主体的安全级别包括最大安全级别和当前安全级别。
r - 读 , a - 写 , w - 读写
BLP 模型的简要描述:
1.对上能提供数据,但不能对上获取数据。(保证高密级的机密性)
2.同级可读可写(同级认为是被信任)
3.对下获取下级的数据,不能为下级提供数据(避免数据非法泄露)
贝拉模型的构成
贝 拉模型中的安全级别是由等级分类和非等级类别两种元素组成,等级分类是个数值量,可以用整数表示,非等级类别是个集合量,只能用集合表示。
支配关系:
例题:
•习题 1 :
设整数
1
、
2
、
3
、
4
1 、 2 、 3 、 4
1、2、3、4 分别表示非密、秘密、机密、绝密四种密级,
符号
d
1
、
d
2
、
d
3
d1 、 d2 、 d3
d1、d2、d3 分别是财务处、科研处、教务处的标识,
标签
𝑙
1
、
𝑙
2
、
𝑙
3
、
𝑙
4
、
𝑙
5
𝑙1、𝑙2、𝑙3、𝑙4、𝑙5
l1、l2、l3、l4、l5用于表示贝拉模型中的安全级别,它们的定义如下:
𝑙
1
=
(
2
,
﹛
𝑑
1
﹜
)
𝑙1=(2,﹛𝑑1﹜)
l1=(2,﹛d1﹜);
𝑙
2
=
(
4
,
﹛
𝑑
1
﹜
)
𝑙2=(4,﹛𝑑1﹜)
l2=(4,﹛d1﹜);
𝑙
3
=
(
4
,
﹛
𝑑
2
﹜
)
𝑙3=(4,﹛𝑑2﹜)
l3=(4,﹛d2﹜);
𝑙
4
=
(
1
,
﹛
𝑑
1
、
𝑑
2
、
𝑑
3
﹜
)
;
𝑙4=(1,﹛𝑑1、𝑑2、𝑑3﹜);
l4=(1,﹛d1、d2、d3﹜);
𝑙
5
=
(
4
,
﹛
𝑑
1
、
𝑑
2
、
𝑑
3
﹜
)
𝑙5=(4,﹛𝑑1、𝑑2、𝑑3﹜)
l5=(4,﹛d1、d2、d3﹜);
试比较安全标签
𝑙
1
、
𝑙
2
、
𝑙
3
、
𝑙
4
、
𝑙
5
𝑙1、𝑙2、𝑙3、𝑙4、𝑙5
l1、l2、l3、l4、l5之间的关系(支配关系)。
根据支配关系
习题2 :
根据习题 1 的定义,已知某学校下发文件
𝐹
1
、
𝐹
2
、
𝐹
3
𝐹1、𝐹2、𝐹3
F1、F2、F3的安全级别分别
为
𝑙
1
、
𝑙
3
、
𝑙
5
𝑙1、𝑙3、𝑙5
l1、l3、l5,该校老师
𝑇
1
、
𝑇
2
、
𝑇
3
𝑇1、𝑇2、𝑇3
T1、T2、T3的当前安全级别为
𝑙
3
、
𝑙
4
、
𝑙
5
𝑙3、𝑙4、𝑙5
l3、l4、l5,根据贝拉
模型,试问 :
1 )哪些老师可以读哪些文件
2 )哪些老师可以写哪些文件
根据*-特性
毕巴模型
毕 巴模型用 完整性级别 来对完整性进行量化描述。
biba 模型的完整性策略的制定主要是为了防止两种非法信息传输路径:
- 不希望低完整性主体写高完整性客体(直接非法修改)
- 不希望一个高完整性主体通过读低完整性客体,然后间接把低完整性客体的内容写到高完整性客体中 (间接非法修改)
规则 2-1 写 操作的实施由下面的规则 ① 控制 执行 操作的实施由下面的规则 ② 控制:
①当且仅当 i(O) ≤ i(S) 时 主体 S 可以写客体 O 。
②当且仅当 i(S2) ≤ i(S1) 时 主体 S1 可以执行主体 S2 。
规则①规定高完整性级别的主体可以修改低完整性级别的客体,低完整
性级别的主体不能修改高完整性级别的客体。( 防止了直接非法修改行
为
规则 ②规定高完整性级别的主体可以启动低完整性级别的主体,低完整
性级别的主体不能启动高完整性级别的主体。
对于 读 操作 通过定义不同的规则 毕巴模型呈现为三种略有不同
的形式 。
- 毕巴低水标模型 规则 2-2: 设 S S S 是任意主体 O O O 是任意客体 imin = m i n min min { i ( S ) , i ( O ) i(S), i(O) i(S),i(O)}那么不管完整性级别如何 S S S 都可以读 O O O 但是 读 操作实施后 主体 S S S的完整性级别被调整为 imin 。 防止了间接非法修改行为 在毕巴低水标模型的控制下,如果系统中存在一个从客体O (1) 到客体 O (n+1) 的信息传递路径,那么,对于任意的 k (1 ≤ k ≤ n)必有 i(Ok+1 ) ≤ i (O1) 。
- 毕巴环模型 不管完整性级别如何 任何主体都可以读任何客体 。
- 毕巴严格完整性模型 当且仅当 i(S)≤i(O) 时 主体 S 可以读客体 O.
莫科尔树模型
设 D 是一个给定的数据项,可以根据需要把它分割成 D1 、 D2 、 、 Dn 等 n 个数据
项, 即
D
=
D
1
∣
∣
D
2
∣
∣
…
…
∣
∣
D
n
D=D1||D2||……||Dn
D=D1∣∣D2∣∣……∣∣Dn
设 h 是一个哈希函数, D 是给定的数据项, i 和 j 是自然数 (1≤i≤j≤ n),递归
函数 f(i,j,D) 的值由以下方法确定
(1) f(i,i,D) = h(Di)
(2) f(i,j,D) = h( f(i,(i+j-1)/2,D) || f((i+j+1)/2,j,D) )
假设数据项 D D 1|| D 2|| Dn 莫科尔树对数据完整性进行度量的思想是
以可信的 f(1,n,D) 值为前提的,利用递归函数 f(i,j,D) 验证任意数据项 Dk 的完整性,验
证过程是沿着从树根到树叶的方向依次展开的。
过程:
已知:哈希函数为
h
h
h ,
f
(
1
,
8
,
D
)
f ( 1,8,D )
f(1,8,D)是已知且正确的,试给出运用递归函数
f
(
i
,
j
,
D
)
f (i , j , D)
f(i,j,D) 验证数
据项
D
5
D5
D5 的完整性的过程。
- (1). 设法获取 f ( 1 , 4 , D ) f(1,4,D) f(1,4,D) 和 f ( 5 , 8 , D ) f(5,8,D) f(5,8,D), 验证 f ( 1 , 8 , D ) = h ( f ( 1 , 4 , D ) ∣ ∣ f ( 5 , 8 , D ) ) f(1,8,D) = h( f(1,4,D) || f(5,8,D) ) f(1,8,D)=h(f(1,4,D)∣∣f(5,8,D)) 是否成立, 判断 f ( 1 , 4 , D ) f(1,4,D) f(1,4,D)和 f ( 5 , 8 , D ) f(5,8,D) f(5,8,D) 的正确性。
- (2), 上一步以获得 f ( 5 , 8 , D ) f(5,8,D) f(5,8,D) 的值并验证了他的正确性,设法获取 f ( 5 , 6 , D ) f(5,6,D) f(5,6,D) 和 f ( 7 , 8 , D ) f(7,8,D) f(7,8,D), 验证 f ( 5 , 8 , D ) = h ( f ( 5 , 6 , D ) ∣ ∣ f ( 7 , 8 , D ) ) f(5,8,D) = h( f(5,6,D) || f(7,8,D) ) f(5,8,D)=h(f(5,6,D)∣∣f(7,8,D)) 是否成立, 判断 f ( 5 , 6 , D ) f(5,6,D) f(5,6,D)和 f ( 7 , 8 , D ) f(7,8,D) f(7,8,D) 的正确性。
- (3), 上一步以获得 f ( 5 , 6 , D ) f(5,6,D) f(5,6,D) 的值并验证了他的正确性,设法获取 f ( 5 , 5 , D ) f(5,5,D) f(5,5,D) 和 f ( 6 , 6 , D ) f(6,6,D) f(6,6,D), 验证 f ( 5 , 6 , D ) = h ( f ( 5 , 5 , D ) ∣ ∣ f ( 6 , 6 , D ) ) f(5,6,D) = h( f(5,5,D) || f(6,6,D) ) f(5,6,D)=h(f(5,5,D)∣∣f(6,6,D)) 是否成立, 判断 f ( 5 , 5 , D ) f(5,5,D) f(5,5,D)和 f ( 6 , 6 , D ) f(6,6,D) f(6,6,D) 的正确性。
- (4), 上一步以获得 f ( 5 , 5 , D ) f(5,5,D) f(5,5,D) 的值并验证了他的正确性,给定数据项D5, 验证 f ( 5 , 5 , D ) = h ( D f(5,5,D) = h( D f(5,5,D)=h(D5 ) ) ) 是否成立, 如果成立数据项 D5 是的完整的。
- 如果(1)~ (4)的各个步骤都能顺利完成,则证明数据项D5的完整性没有问题,否者D5以遭到破坏。
完整性验证路径
定义 2.31 :从哈希树的根节点 f(1,n,D )到叶节点 f(i,i,D) 存在一条唯一的通路 P ,由 P
以外的且与 P 上的节点相邻的节点的哈希值(以及 f(1,n,D) D))组成的集合称为数据项
Di 的完整性验证路径。
•
注意:完整性验证路径指的是哈希树中相关节点哈希值的 集合 ,并不是由若干节点组
成的通路,不能混淆。
第四节
身份认证技术概述
身份认证技术类别:
- 基于口令的身份认证
- 质询 - 响应式身份认证
- 质询 - 响应身份认证机制:认证机制与用户之间约定一种秘密的计算功能,每次认证 时,认证机制给用户发送一个随机消息(成为质询),用户用约定的计算功能对该消 息进行计算,把计算结果(成为响应)返回给认证机制,认证机制进行同样的计算, 以验证用户的返回结果,从而确定用户身份。 此种认证机制通常需要硬件设备支持
- 基于个人特征的身份认证
- 基于位置的身份认证
身份标识与认证
通常,操作系统为每个合法用户设立一个账户,为每个账户设立一组管理信息,以实
现对系统合法用户的标识和管理。系统中所有用户账户的管理信息构成一个 用户账户
信息数据库 。
操作系统使用 账户名 来建立用户与账户之间的连接。
账户名是用户身份的外部表现形式,主要供用户使用。
身份标识号( UID )是用户身份的系统内部表现形式,方便操作系统的内部处理。
(系统自动建立账户名和内部身份标识对应关系)
Unix 系统中 etc/passwd 文件中的部分示例
w
e
n
c
h
a
n
g
:
wenchang:
wenchang: 账户名。
x
:
x:
x: 与该账户对应的口令相关的信息。
500
:
500:
500: 用户身份标识号。
300
:
300:
300: 用户所属用户组的组标识号。
W
e
n
c
h
a
n
g
S
h
i
:
Wenchang Shi:
WenchangShi: 有关该账户的注释。
/
h
o
m
e
/
w
e
n
c
h
a
n
g
:
/home/wenchang:
/home/wenchang: 用户使用系统时的默认工作目录。
b
i
n
/
b
a
s
h
:
bin/bash:
bin/bash: 用户登录进入系统时,系统自动为其启动的程序
例Unix系统中\etc\group文件中的部分示例
iserte:用户组的组名。x:与该组对应的口令相关的信息。300:用户组的组标识号。wenchang,user t01,usert02, user t03: 该用户组所包含的用户的对应账户名。
/etc/shadow是这样的数据库的经典文件。
T_name 账户名T_pw: 口令信息T_lstchg 上次口令修改是在第 T_lstchg 天进行的 从 1970 年 1 月 1 日算起T_min: 过了 T_min 天以后才能修改口令T_max: 过了 T_max 天以后必须修改口令T_warn: 口令过期前 T_warn 天提醒用户T_inact: 口令过期后 T_inact 天账户失效。T_expire: 过了 T_expire 天后账户失效 从 1970 年 1 月 1 日算起T_reserved: 保留字段。
口令管理中的撒盐措施
定义 4.4 :在口令管理中,给口令拌入随机数的过程称为给口令撒盐 Salting
拌入的随机数称为口令的盐值( Salt Value
撒盐的目的:提高口令破解难度
撒盐的效果:同一个口令通过撒盐课对应大量不同的加密结果
方案 4.4 :请设计给口令撒盐的一种实现方法。
解: 首先,确定一个随机数生成算法生成盐值,
𝐷
𝑠
𝑎
𝑙
𝑡
=
𝐴
𝑟
𝑎
𝑛
𝑑
𝑜
𝑚
(
)
𝐷𝑠𝑎𝑙𝑡=𝐴𝑟𝑎𝑛𝑑𝑜𝑚()
Dsalt=Arandom()
然后,确定一个哈希算法,该哈希算法可以将盐值撒到任意给定的用户口令中,
𝐴
𝑠
𝑎
𝑙
𝑡
=
(
𝐷
𝑠
𝑎
𝑙
𝑡
,
𝐷
𝑝
𝑤
)
𝐴𝑠𝑎𝑙𝑡=(𝐷𝑠𝑎𝑙𝑡,𝐷𝑝𝑤)
Asalt=(Dsalt,Dpw)
方案 4.4 :请设计一个 口令信息生成方案 ,要求实施撒盐操作,说明算法的基本思想。
1 )接收用户提供的口令 𝐷𝑝𝑤;
2 )生成一个盐值 𝐷𝑠𝑎𝑙𝑡=𝐴𝑟𝑎𝑛𝑑𝑜𝑚
3 )给口令 𝐷𝑝𝑤撒盐 𝐷𝑝𝑤=𝐴𝑠𝑎𝑙𝑡(𝐷𝑠𝑎𝑙𝑡,𝐷𝑝𝑤);
4 )用撒盐结果做密钥 𝐾=𝐷𝑝𝑤;
5 )用一个 64 比特位的全 0 的二进制位串构造一个数据块 𝐷𝑝;
6 )设循环次数初始值 𝑖=0;
7 )对数据块加密 𝐷c=𝐴𝑐𝑟𝑦𝑝𝑡(𝐾,𝐷𝑝);
8 ) 𝐷𝑝=𝐷𝑝,𝑖=𝑖+1;
9 )如果 𝑖<25 则回到第( 5 )步
10 )把数据块变换成字符串 𝑆=𝐴𝑡𝑟𝑎𝑛𝑠(𝐷𝐶);
11 )返回 𝑆
第五章
权限位串
考点一
把每个用户域中的用户看作一类用户,则系统中的用户便分为三类: 属主类、属组类、其余类 。
可以用二进制比特位同时定义三类用户对一个文件的访问权限。
例 5 3 :设操作系统中,用户对文件 F 的访问权限的二进制表示为 111 101 001 ,请给出用
户对该文件的访问权限的八进制表示和字符串形式的表示。
●答:三类用户对文件 F 的访问权限的二进制表示分别为 111 、 101 、 001 ,相应的八进制
表示分别是 7 、 5 、 1 ,相应的字符串表示分别是 rwx 、 r-x 、一 x ,所以用户对文件 F 的访问
权限的八进制表示和字符串形式的表示分别是 751 和 rwxr-x-x
例2:
设在某UNIX操作系统中,部分用户组的配置信息如下:grp1: x :300:usr1,usr2,usr3,usr4grp2: x :301:usr5,usr6,usr7,usr8,usr9系统中部分文件的权限配置信息如下:rw-r-x–x usr1 grp1 … File1r—w—x usr5 grp2 … File2
请问,用户usr1、usr2和usr5可以对文件file1执行什么操作?用户usr6可以对文件file2执行什么操作?
可对file1的操作:
usr1—属主—读和写;usr2—属组—读和执行;usr5—其余—执行。
可对file2的操作:
usr6—属组—写。
在自主访问控制中,文件的 属主可以修改文件的访问权限 。
进程的用户属性
- 真实用户属性: R U I D + R G I D RUID+RGID RUID+RGID 有效用户属性: E U I D + E G I D EUID+EGID EUID+EGID 访问判定时,进程到用户域的映射: g ( 进 程 ) − − > E U I D + E G I D g (进程 ) --> EUID+EGID g(进程)−−>EUID+EGID
确定进程的用户属性
- 用户 U 启动进程 P 时:- 进程 P 的 RUID 和 EUID <- 用户 U 的 ID- 进程 P 的 RGID 和 EGID <- 用户 U 的属组 ID
- 进程 P 装入程序映像且映像文件 F 允许时:- 进程 P 的 EUID <- 文件 F 的属主 ID 1 (条件:文件 F 有 SETUID 标记)- 进程 P 的 EGID <- 文件 F 的属组 ID 2 (条件:文件 F 有 SETGID 标记)
文件的SETUID/SETGID 标记的表示
重点
位串表示法
ut gt s t ro wo xo rg wg xg ra wa xa
u t =1 <-> SETUID g t =1 <-> SETGID
当进程 P 调用 exec(“F”) 把程序映像替换为 F 时,控制方法定义如下
- u t =1 允许进程 P 的 EUID 值取文件 F 的属主标识
- u t =0 不允许进程 P 的 EUID 值取文件 F 的属主标识
- g t =1 允许进程 P 的 EGID 值取文件 F 的属组标识
- g t =0 不允许进程 P 的 EGID 值取文件 F 的属组标识。
例子:
100101001001 <-> r-s --x --x
010101001001 <-> r-x --s --x
例题:
progf1:progf2:progf3:printf(“China”);printf(“England”);printf(“Australia”);exec(“progf2”);exec(“progf3”);return;printf(“America”);printf(“Canada”);return;return;grp2 : x : 681:usr5,usr6,usr7,usr8,usr9–x–x–x usr1 grp1 … progf1–x–s–x usr6 grp2 … Progf2–s–x–x usr5 grp2 … Progf3rw-r----- usr5 grp2 … filex假设:用户usr1 执行程序progf1启动进程P。
- 问题:进程P显示China时,对文件filex拥有什么访问权 限? 结果: EGID | RUID | 权限
- 问题:进程P显示England时,对文件filex拥有什么权限? EGID | RUID | 权限
- 问题:进程P显示Australia时,对文件filex拥有什么权限? EGID | RUID | 权限
基于 ACL 的访问控制机制
访问权限的上限
m
a
s
k
:
:
R
W
X
mask::RWX
mask::RWX
Mask对根据属主、other表项判定出来的权限没有过滤作用
🤾♀️访问控制表的访问判定算法描述
- 如果进程 P P P 的 E U I D EUID EUID 等于文件 F F F 的属主的标识,那么,根据 F F F 的属主的 A C L ACL ACL 表项进行判定,转到 第 ( 7 ) (7) (7) 步;
- 如果进程 P P P 的 E U I D EUID EUID 等于文件 F F F 的 A C L ACL ACL 表中某个指定用户的标识,那么,根据该指定用户的 A C L ACL ACL表项进行判定,转到第 ( 7 ) (7) (7) 步。
- 如果进程 P P P 的 X G I D XGID XGID 等于文件 F F F 的属组的标识,而且,该属组拥有 A A A 权限,那么,进程 P P P 对文件 F F F 拥有 A A A 权限,判定结束。 ( X G I D XGID XGID 是 P P P 的 E G I D EGID EGID ,或者是 P P P 的 E U I D EUID EUID 所属的某个用户组的标识 )
- 如果进程 P P P 的 X G I D XGID XGID 等于文件 F F F 的 A C L ACL ACL 表中某个指定组的标识,而且,该指定组拥有 A A A 权限,那么,进程 P P P 对文件 F F F 拥有 A A A 权限,判定结束。 ( X G I D XGID XGID 同 )
- 如果进程 P P P 的 X G I D XGID XGID 等于文件 F F F 的属组的标识,或者等于 A C L ACL ACL 表中某个指定的组的标识,但是该属组和该指定组都不拥有 A A A 权限,那么进程 P P P 对文件 F F F 不拥有 A A A 权限,判定结束。 ( X G I D XGID XGID 同 )
- 根据文件 F F F 的 A C L ACL ACL 表中的 o t h e r other other 表项进行判定。
- 如果选定的 A C L ACL ACL 表项中配置了 A A A 权限,那么进程 P P P 对文件 F F F 拥有 A A A 权限,否则进程 P P P 对文件 F F F 不拥有 A A A 权限。
🎈ACL习题
用户组信息:
g
r
p
01
:
x
:
850
:
u
t
01
,
u
s
01
,
u
t
02
,
u
s
03
grp01: x: 850: ut01, us01, ut02,us03
grp01:x:850:ut01,us01,ut02,us03
g
r
p
02
:
x
:
851
:
u
s
01
,
u
s
02
,
u
t
03
,
u
s
04
grp02: x: 851: us01, us02, ut03, us04
grp02:x:851:us01,us02,ut03,us04
假设进程 P 的 EUID 和 EGID 分别是:
- ut01 grp01
- us02 grp01
- us01 grp01
- us01 grp02
- us03 grp03
- us04 grp04
- us05 grp05
ACLUser::RWXUser:us02:RWGroup::WXGroup:grp02:RGroup:grp03:RXOther::WXMask::WX
文件 Filex 属主是 ut01 ,属组是 grp01 它的 ACL 如下,请问进程 P 对 filex 分别拥有什么权限?
文件系统加密机制
挂载命令
mount t ecryptfs /d1 /d2
把目录
/
d
2
/d2
/d2 定义为加密文件系统的挂载点,同时把以目录
/
d
1
/d1
/d1 为顶点的子目录挂载到该挂载点上。
写文件:
加密挂载点: 写的文件为加密文件
非加密挂载点:写的文件为未加密文件
读文件:
加密挂载点:
加密文件: 明文
未加密文件: 错误
非加密挂载点:
加密文件:密文
未加密文件:明文
例5.10 :设在如图所示的文件系统中,通过以下命令把目录 d2 定义加密系统的挂载点,同时把以目录 d1 为顶点的子目录挂载到该挂载点上
mount t ecryptfs /d1 /d2
通过以下路径名创建文件
f
1
:
f1:
f1:
/
d
2
/
d
4
/
f
1
/d2/d4/f1
/d2/d4/f1 ①
通过以下两个路径名都可以读文件
/
d
2
/
d
4
/
f
1
/d2/d4/f1
/d2/d4/f1 ②
/
d
1
/
d
4
/
f
1
/d1/d4/f1
/d1/d4/f1 ③
请问,通过以上两个路径名读到的文件结果是否相同,为什么
审计
审计事件产生者
审计事件的紧迫级别
说明它们的主要含义
- uth.notice;kern.debug; * .err /dev/console1. “ auth. notice “ 表示由认证进程产生的 n o t i c e notice notice 及其以上级别的日志信息2. “kern. debug" 表示由操作系统内核产生的 d e b u g debug debug 及其以上级别的日志信息3. “*.err" 表示所有 e r r err err 及其以上级别的日志信息。4. 该行的目的地域说明的是系统控制台
- daemon,auth.notice /var/log/messages 第 2 行的信息源域说明的是由系统守护进程和认证进程产生的 notice 及其以上级别的日志信 息,其中, daemon 表示系统守护进程, auh 表示认证进程 , 两 者 间 由 逗 号 分 隔 两者间由逗号分隔 两者间由逗号分隔。该行的 目的地域说明 要将以上信息 发往 var/log/ messages 日志文件 中。
- auth. * root,wenchang 第 3 行的信息源域说明的是由认证进程产生的所有级别的日志信息,该行的目的地域说明的 是 root 用户和 usr1 用户。该行说明的 日志信息将发送给指定的两个用户
例题:
审计语句含义auth.* @sise.ruc.edu.cnauthpriv.* @loghostmail.* -/var/log/maillogcron.* /var/log/cron*.emerg mark. /dev/consolelocal7.* /var/log/boot.lognews.=crit /var/log/news/news.crit*.alert |dectalker
第六章
SETE模型
S
E
L
i
n
u
x
SELinux
SELinux访问控制模型
S
E
T
E
SETE
SETE的核心是
D
T
E
DTE
DTE模型。
● 与
D
T
E
DTE
DTE模型相比,
S
E
T
E
SETE
SETE模型具有以下突出特点:
(1)类型的细分:
D
T
E
DTE
DTE模型把客体划分为类型,针对类型确定访问权限;
S
E
T
E
SETE
SETE
模型在类型概念的基础上,增加客体类别
(
C
l
a
s
s
)
(Class)
(Class)概念,针对类型和类别确定访问
权限。
(2)权限的细化:
S
E
T
E
SETE
SETE模型为客体定义了几十个类别,为每个类别定义了相应的
访问权限,因此,模型中定义了大量精细的访问权限。
重点:
● 客体类别:
f
i
l
e
file
file(普通文件)
d
i
r
dir
dir(目录)
p
r
o
c
e
s
s
process
process(进程)
s
o
c
k
e
t
socket
socket(套接字)
● 常见权限:
客体权限file类别read(读)、wite(写)、execute(执行)、getattr(取属性)、create(创建);dir类别read(读)、 write(写)、search(搜索)、rmdir(删除);process类别signal(发信号)、transition(域切换)、fork(创建子进程), getattr(取属性)等。socket类别listen(侦听连接)、 connect(发起连接)、accept(接受连接);filesystem类别mount(挂载)、 unmount(卸载)等。
SETE模型支持默认拒绝原则,在默认情况下,所有访问都是被拒绝的,只有经过授权的访问才
是允许的。
● SETE模型通过SEPL语言描述访问授权规则。
● SEPL语言用allow规则描述访问控制授权。
allow source_type target_type object_class perm_list
例:请说明SEPL语言的以下访问授权规则的含义:
allow user_d bin_t : file {read execute getattr}
① 答:该规则把对
b
i
n
bin
bin _
t
t
t类型的
f
i
l
e
file
file类别的客体的
r
e
a
d
read
read、
e
x
e
c
u
t
e
execute
execute、
g
e
t
a
t
t
r
getattr
getattr访问权限授予给
u
s
e
r
user
user _
d
d
d域的主体,允许
u
s
e
r
user
user _
d
d
d域的进程对
b
i
n
bin
bin_
t
t
t类型的
f
i
l
e
file
file类别的普通文件进行读、执行以及取属性的操作,取属性就是查看文件的属性信息,如日期、属主。
②allow passwd_d shadow_t: file { ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename};
版权归原作者 ℳ ℓ 爱 ℳ ℓ 惜 ℳ ℓ ₉ ₉ 所有, 如有侵权,请联系我们删除。