- 博客(12)
- 收藏
- 关注
原创 2024-2025-1 20242805《Linux内核原理与分析》第十三周作业
在本次实验中,我们成功重现了ShellShock攻击,这是一个在2014年发现的Bash shell中的严重安全漏洞。通过安装并配置了易受攻击的Bash 4.1版本,我们验证了漏洞的存在,并进一步通过攻击一个Set-UID程序来展示了该漏洞如何被利用以获取未授权的系统访问权限。实验结果表明,当real uid和effective uid不同时,环境变量中定义的内容可以被利用来触发ShellShock漏洞,从而允许攻击者执行任意代码。然而,如果去掉Set-UID程序中的。
2025-01-02 13:39:53
487
原创 2024-2025-1 《Linux内核原理与分析》第十二周作业
在本次SET-UID程序漏洞实验中,我们通过实际操作深入理解了Unix系统中SET-UID机制的重要性及其潜在的安全风险。实验涉及了SET-UID程序的执行、内在保护机制、环境变量的影响、system()与execve()函数的区别、LD_PRELOAD环境变量的作用以及如何安全地消除程序的特权。通过这些实验步骤,我们认识到了SET-UID程序在提高权限的同时也可能带来的安全威胁,并学习了如何采取措施来防范这些风险,以确保系统的安全性。
2025-01-02 13:38:33
658
原创 2024-2025-1 20242805 《Linux内核原理与分析》第十一周作业
信息安全的设计原则:信息安全的基本原则是CIA三元组(也称为安全原则三剑客)——机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。一个完整的信息安全保障体系,应该充分考虑到CIA三元组的基本原则。机密性(不可见):又称隐私性,是指数据不能被未授权的主体窃取,即避免恶意读操作。完整性(不可改):确保数据只被授权的主体进行授权的修改。即避免恶意写操作。可用性(可读):数据能够被授权主体正常访问。操作系统安全的设计目标。
2025-01-02 13:36:47
703
原创 2024-2025-1 20242805 《Linux内核原理与分析》第十周作业
阅读学习教材「庖丁解牛Linux 操作系统分析 」第10,11章,有问题优先使用chatgpt等AI工具。或者到蓝墨云班课中提问,24小时内回复,鼓励解答别人问题,提问前请阅读「如何提问」。教材深入学习关注豆列「Linux内核及安全」。作业标题 “学号《Linux内核原理与分析》第X周作业”,重点是遇到的问题和解决方案内容涵盖教材学习和视频,提交格式用Markdown,同时提交转换的 PDF(VSCode 有相关插件)。
2025-01-02 13:34:02
770
原创 2024-2025-1 20242805《Linux内核原理与分析》第九周作业
在Linux系统中,进程调度的时机:进程完成:当一个进程执行完毕并退出时,它会释放其占用的资源,包括CPU时间,这时调度器需要选择一个新的进程来运行。阻塞:如果一个进程因为等待I/O操作、获取信号量、锁定等事件而无法继续执行,它会进入阻塞状态,调度器会将其从CPU上移除,并选择另一个就绪状态的进程来执行。唤醒:当一个阻塞的进程被唤醒(例如,I/O操作完成或信号量可用),它会从阻塞状态变为就绪状态,调度器可能需要将其调度到CPU上。时间片耗尽:在抢占式调度中,每个进程被分配一个时间片。
2025-01-02 13:31:53
666
原创 2024-2025-1 20242805《Linux内核原理与分析》第六周作业
在Linux系统中,系统调用的过程从用户程序执行system_call指令开始,到执行iret指令结束,详细解释如下:用户程序发起系统调用:用户程序通过执行一个系统调用指令(在x86架构中通常是int 0x80或syscall指令)来请求操作系统服务。进入内核态:当系统调用指令执行时,CPU从用户态切换到内核态,开始执行内核代码。保存用户态寄存器:在进入内核态之前,内核会保存当前用户态的寄存器状态,以便在系统调用结束后能够恢复。
2024-11-09 13:50:18
606
原创 2024-2025-1 20242805《Linux内核原理与分析》第七周作业
Linux内核中常用fork 函数来创建一个新进程,fork函数本质上是一个系统调用,用于复制当前父进程的状态来创建一个新进程(子进程)。fork函数的核心为do_fork函数,它主要负责完成子进程的创建和初始化,复制父进程的关键数据结构。fork 之后,父进程和子进程将从 fork 调用之后的代码点继续执行,因此通常需要在 fork 之后使用条件判断来区分父进程和子进程的行为。fork 可能会因为多种原因失败,例如系统资源限制(如进程数限制)或内存不足。
2024-11-09 13:48:57
557
原创 2024-2025-1 20242805《Linux内核原理与分析》第五周作业
两种方法均能成功执行系统调用,使用库函数的方法代码更简洁,易于理解和维护。而嵌入汇编的方法虽然提供了更直接的系统调用方式,但代码复杂,容易出错,且不易于移植。库函数 API 提供了一种抽象层,简化了系统调用的使用,使得代码更加清晰和易于维护。直接在 C 代码中嵌入汇编代码可以提供对系统调用的精细控制,但牺牲了代码的可读性和可移植性。在大多数情况下,推荐使用库函数 API 来执行系统调用,除非有特定的性能或控制需求。
2024-10-30 15:50:03
350
原创 2024-2025-1 20242805《Linux内核原理与分析》第四周作业
start_kernel 函数是 Linux 内核初始化过程中的一个关键函数。它在内核的启动过程中被调用,负责完成内核的初始化工作,直到内核能够开始处理用户空间的进程。rest_init 函数是 Linux 内核启动过程中的一个关键函数,它在 start_kernel 函数执行接近完成时被调用。rest_init 函数的主要作用是完成内核的剩余初始化工作,并启动用户空间的初始化进程。
2024-10-16 16:26:17
325
原创 2024-2025-1 20242805《Linux内核原理与分析》第三周作业
本次实验简单实现了一个简单的时间片轮转多道程序内核,时间片轮转多道程序内核的核心思想为:所有就绪状态的进程排成一个队列,并为每个进程分配一个时间片。每个进程在时间片内运行。时间片轮转多道程序内核适用于大多数通用操作系统,尤其是那些需要同时运行多个进程的系统。它通过确保所有进程都能公平地获得CPU时间,来提高系统的响应性和吞吐量。三、编译运行修改后的时间片轮转多道程序代码。二、修改与分析时间片轮转多道程序内核代码。一、运行Linux内核。
2024-10-12 16:55:08
194
原创 2024-2025-1 20242805《Linux内核原理与分析》第二周作业
【代码】2024-2025-1 20242805《Linux内核原理与分析》第二周作业。
2024-09-29 15:37:51
596
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅