订阅DeepL Pro以翻译大型文件。 欲了解更多信息,请访问www.DeepL.com/pro。
SFL C. Rossow教授/S. Hausotte博 多特蒙德工业大学 士
2021/2022年
4.1 秘密渠道 在讲座中,已经介绍了一些秘密渠道的类型。
Copyright By PowCoder代写 加微信 powcoder
(a) 秘密渠道与正常沟通渠道的区别是什么?为什么以及如何会造成问题?
还请举例说明这些措施无法防止的秘密渠道。
解决办法。用户、小组和其他
(c) 在德国议会服务器的主目录 “top-secret “中,你输入ls -l
解决办法。虽然其他沟通渠道大多是有意为之,但隐蔽的渠道却跨越了旨在阻止沟 (b) 为什么保护环境不受秘密渠道的影响比保护大多数其他类型的不受欢迎的通信更
通发生的边界而工作。这显然是隔离方面的一个问题。如果存在不希望的通信渠道, 难呢?
应该隔离运行的软件反而可以与其他组件互动,例如揭开合理的数据。
解决办法。主要原因是秘密渠道首先很难被发现,因为它们摆脱了传统概念的界限 (c) 基于秘密渠道进行真实世界的攻击是否可行?做一些在线研究,并尝试找出是否
。 通常情况下,可能的渠道在被发现之前几十年都没有被发现。 有最近的案例。
解决方案。是的,有各种基于缓存(Meltdown和Spectre,2017)或硬件效应(
(d) 假设两个进程在同一台物理计算机上运行。选择一种任意形式的秘密通道通信,它可
Rowhammer,2015)的现实世界攻击的案例,例如。 以被讲座中的一个进程隔离措施所阻止,并解释该案例。
解决方案。只有当两个进程都能访问同一个文件时,讲座中的文件锁定隐蔽通道才能
发生。一旦我们在每个进程访问自己的文件系统的意义上隔离了这些进程,该通道就
相比之下,利用物理效应的渠道仍有可能被滥用。这些包括例如CPU定时攻击和
(a) 可以为UNIX文件指定哪三种权限?
解决方案。读取(r),写入(w)和执行(x)。
(b) 谁可以被授予这些权限?提示:有三个级别的颗粒度。
并得到以下输出。 -rw-rw-r– schlz drwx—— -rw-r—– -rwsr-xr-x
ampelcoalition.pptx
mrklmrklg8-topics sphnministry-healthffp2-invoice.pdf
rootrootomicron.sh 从这些信息中,你对文件有什么了解?
SFL C. Rossow教授/S. Hausotte博 多特蒙德工业大学 士
2021/2022年
• 用户schlz拥有文件 coalition.pptx,群组ampel可以读写它,其他人都可以读 取它。
• g8-topics是一个目录,只有用户mrkl有(完全)访问权。
• 用户sphn可以读写文件ffp2-invoice.pdf,组 ministry-health也可以阅读。
• omicron.sh文件只能由root编写,但每个人都可以读取,并以root的权限执行 该文件。
4.3 贝尔-拉帕杜拉/比巴模型
(a) 贝尔-拉帕杜拉模式和毕巴模式之间的区别在哪里,它们的目标是什么?
解决方案。贝尔-拉巴杜拉的目标是保密,而毕巴的目标是诚信。 (b) 我们定义了一个符号a→r b,表示a级想从b级读取,a→w b表示a级想
写到b级。0是最多的,3是最少的特权/授权级别。以下哪些访问请求是哪个模式所允许 的?
要求贝尔-拉巴杜拉 – 拉 巴 杜 拉 和 比 巴
3 →r 2 3→2
要求 贝尔-拉帕杜 毕 Bell-LaPadula & r 拉 巴 Biba
1→w1 ✓ ✓ ✓
3 →r 2 3→2
(c) 同时使用贝尔-拉巴杜拉和毕巴时,有什么问题?
解决办法。这两种模式的作用是互补的。如果同时应用,各级之间的所有通信 都被禁止,数据只能在同一级别内交换。
SFL C. Rossow教授/S. Hausotte博 多特蒙德工业大学 士
2021/2022年
(a) 标志。R|E {F}LAGS寄存器包含了某些处理器的状态,最有趣的是在正常运行时,索引0 的进位标志CF(最小有效位),索引6的零标志ZF,索引7的符号标志SF,以及索引11 的溢出标志OF。
进位标志适用于无符号操作,而符号和溢出标志适用于有符号操作。
这些标志通常指的是最近一次算术运算的结果,并控制大多数条件分支。重要的 是,由于比较(通过cmp指令)只是引擎盖下的减法,某些条件指令在功能上是 等同的,例如je(如果相等则跳转)和jz(如果为零则跳转),因为从自身减去一 个数字总是会返回0。
对于下面的片段,请决定是否会采取这些分支,并解释原因。
mov eax , 0 mov ebx , 1234 cmp eax , ebx
I 洁丝。如果相等则跳转
解决方案。不是,因为0 /= 1234,所以ZF = 0。 II jz:如果为零则跳转
解决方案。与je相同。
III jb:如果在下面跳转(无符号的小于)。
解决方案。是的,因为0<1234,所以进位标志将被设置。 IV jl:如果较小,则跳转(有符号)。
解决办法。和jb一样,因为两个操作数都是正数,不过检查的标志不同。jb 你可以用标志做更多有趣的事情,尽管这可能不是你应该在实际应用中做的事情
只看进位标志,而jl检查符号标志和溢出标志的互斥。这背后的原因如下
:虽然它们不能被直接访问,但你可以用pushf将标志存储到堆栈,用popf从那里 。
加载它们。 如果第一个操作数是正数,第二个操作数是负数,那么减法就变成了两个正
数的加法,也就是说,只有当计算溢出时,结果才是负数。因此,在所有情 况下SF=OF,分支不被采纳。
在相反的情况下,即第一个操作数为负数,第二个操作数为正数,关于溢出 的情况也正好是相反的:因为我们是从一个已经是负数的数值中减去一个正数 ,结果要么是负数,要么溢出为正数。在这两种情况下,SF或OF中的一个将 被设置,分支将被执行。
如果两个操作数都是正数,减法永远不会溢出,这意味着OF在任何情况下都不会 被设置,但是如果第一个操作数小于第二个操作数,结果将是负数。负的结果将 导致SF被设置,并且分支将被采取。 如果两个操作数都是负数,那么减法也不可能溢出,因为它实际上是一个正 值和一个负值的相加。因此,再一次,唯一重要的标志是SF。当且仅当第一个 操作数比第二个操作数更负时,两个负值之间的差值就是负值。在这种情况下 ,SF将被设置,分支将被采取。
SFL C. Rossow教授/S. Hausotte博 多特蒙德工业大学 士
2021/2022年
and ax , 0 xFFFE or ax , 0 x00C0 and ax , 0 xF7FF push ax
这段代码执行后,本题开头提到的每个标志的值是多少?注意:前面的值不重要, 所有相关的位都被写入。
解决办法。这段代码首先把当前的标志推到堆栈,然后用pop把它们移到ax。在那 (b) 指令指针:rip寄存器包含下一条要执行的指令的地址。
和第7位被设置,其他的都没有被触动。 movrbx, 5
里,标志被修改,然后推回堆栈,之后用popf把它们放回标志寄存器中。
调 用 指令将它后面的第一条指令的地址推入堆栈,然后跳转到它的参数中传递的
• CF:由第一个和清空。0xFFFE在二进制中等于1111 1111 1111 1110,意味着只 地址。ret指令反其道而行之,将堆栈顶部的值弹入指令指针寄存器。
有最小有效位被清除,其他的都没有被触动。 在下面的片段中,假设行号是地址。这是为了简单起见,因为真正的X86指令并不总是具
• ZF和SF:由或设置。0x00C0在二进制中等于0000 0000 1100 0000,意味着第6 有相同的长度。
• OF:被第打二电个话和清le除。0xF7FF在二进制中等于1111 0111 1111 1111,意味着只 怀疑
有第11位被清除,其他都保持不变。 mov rbx , 饶
7 mov rax , rbx
在我做完第一个mov后,rip寄存器的 值是多少。
II 的呼吁。 III 撤退。 IV 和jmp?
I 第一个动作: 2
II 调用。7,双数中第一条指令的地址
III 返回:3 IV jmp:1234
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com