首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么会破坏/proc/self/exe?

/proc/self/exe是一个特殊的文件路径,它指向当前正在执行的可执行文件。在Linux系统中,/proc是一个虚拟文件系统,提供了对内核数据结构的访问。/proc/self是一个指向当前进程的符号链接,而/exe则是指向当前进程的可执行文件。

破坏/proc/self/exe可能会导致以下问题:

  1. 程序崩溃:如果/proc/self/exe被破坏或删除,当前进程可能无法找到自己的可执行文件,从而导致程序崩溃。
  2. 动态链接库加载失败:在Linux中,动态链接库通常是通过可执行文件的路径来查找和加载的。如果/proc/self/exe被破坏,动态链接库可能无法正确加载,导致程序无法正常运行。
  3. 安全性问题:/proc/self/exe的破坏可能会导致安全漏洞。例如,某些程序可能会依赖于/proc/self/exe的路径来执行某些安全检查或验证操作。如果该路径被篡改,可能会导致安全性问题。

为了防止破坏/proc/self/exe,可以采取以下措施:

  1. 权限控制:限制对/proc/self/exe的访问权限,只允许特定的用户或进程进行读取和执行操作。
  2. 安全审计:定期审计系统中的文件和目录,包括/proc/self/exe,及时发现异常情况并采取相应的应对措施。
  3. 文件完整性检查:使用文件完整性检查工具,如Tripwire或AIDE,对系统文件进行定期检查,以便及时发现/proc/self/exe是否被篡改。

总结起来,破坏/proc/self/exe可能导致程序崩溃、动态链接库加载失败和安全性问题。为了防止破坏,可以采取权限控制、安全审计和文件完整性检查等措施。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • CVE-2019-5736 docker-runc escape 漏洞复现

    还一个 /proc/pid/exe 文件,这个文件指向进程本身的可执行文件。而/proc/self目录则是读取进程本身的信息接口,是一个link,链接到当前正在运行的进程。...我们需要特别注意的是,在execve()替换旧的进程时,是不会修改/proc/pid/fd目录中的文件描述符的,新的可执行文件继承原进程的文件描述符,包括打开的文件。...所以我们如果想要覆写exe这个可执行文件就必须等到runc运行结束。什么时候结束呢?当我们运行execve()去运行新的可执行文件时。...中寻找pid[runc] --> 通过 open(/proc/pid[runc]/exe)获取可执行文件的fd --> 与此同时在/proc/self/fd中会生成并保留该可执行文件的fd --> 等待执行新的文件导致.../proc/self/exe")err = fd.Close()if err !

    43020

    如何使用whoc将底层容器运行时环境提取至远程服务器

    运行机制 根据漏洞CVE-2019-5736的描述,传统的Linux容器运行时环境会将自身通过/proc/self/exe运行的这一个情况暴露给容器,让容器所知晓。...1、whoc镜像入口点设置为/proc/self/exe,镜像的动态链接器ld.so会被upload_runtime替换。 2、当镜像开始运行之后,容器运行时会在容器内进行重新执行。...4、upload_runtime将通过/proc/self/exe读取运行时代码,并将其发送至配置好的远程服务器。...2、用户需要在whoc容器中执行,并调用一个指向/proc/self/exe的文件(例如“docker exec whoc_ctr /proc/self/exe”)。...4、upload_runtime通过/proc/$runtime-pid/exe读取运行时代码,并将其发送至配置好的远程服务器。

    50930

    KCon议题讲解——进退维谷:runC的阿克琉斯之踵

    执行过程大体如下:runC启动,加入到容器的命名空间,接着以自身/proc/self/exe为范本启动一个子进程,最后执行用户指定的二进制程序。.../self/exe init 24 root 0:00 ps aux shell1[ctr]# ls /proc/18/fd -la total 0 # 省略... lr-x----...然而,在runc init执行execve重新执行/proc/self/exe(自身)后,non-dumpable的属性被去掉,从这里开始,容器内的攻击者便可以利用/proc/[runc-PID]/exe...方案二对于用户空间尝试修改runC的行为是有效的,然而,由于容器内/proc/self/exe依然指向宿主机上的runC程序,且内核漏洞DirtyPipe并未受到前述只读挂载的限制,容器内攻击者就可以利用...下面是进行ELF文件注入的代码示例,该示例将载荷注入到了原ELF文件程序入口地址(Entrypoint,下文简称EP)的位置: runc_fd_read = open("/proc/self/exe",

    60930

    Runc 容器初始化和容器逃逸

    当一个进程运行时,它自己可以通过/proc/self/exe得到指向自己的链接,也可以进一步在/proc目录下找到自己的 fd。...一个恶意构建的镜像可以将自己的入口改成/proc/self/exe,由于容器入口需要通过 runc 来 clone+execve 启动,这样就使得一个普通的用户容器,访问并执行了主机上的 runc。...环境变量,迫使 runc 优先使用改造过的.so文件,而这个.so的作用,就是改写/proc/self/exe指向的文件,即主机上的 runc。...在这个漏洞中,我们可以看到它需要满足几个条件: 容器能够通过入口/proc/self/exe指向主机中的 runc 容器允许用户自行任意指定,将其中的恶意代码伪装成普通文件 容器中的用户 UID 在主机中的映射...clone,避免了/proc/self/exe指向主机 runc 的问题。

    89520

    Python编写的桌面图形程序,如何实现版本更新和下载?

    同时,我们还能直接使用PyInstaller、Nuitka、cx_Freeze等Python第三方程序打包模块,将编写好桌面图形界面程序打包为各个平台的二进制可执行程序文件,比如Windows下的exe...通常我们会将程序按需打包为单个的exe可执行文件或包含整个文件夹的可执行文件。 程序更新 随着版本的迭代和功能的优化,我们编写的程序需要进行更新。...程序文件的下载,我们可以直接使用requests模块,示例代码如下所示: def work(self): # 新建一个文件对象 temp_file = os.path.join(self.download_path...chunk in f.iter_content(chunk_size=self.buffer): if not chunk: break self.fileobj.seek...for proc in psutil.process_iter(): if proc.name() == 'xxx.exe': proc.kill()

    3.2K10

    容器逃逸成真:从CTF解题到CVE-2019-5736漏洞挖掘分析

    /proc/[PID]/exe:它是一种特殊的符号链接,又被称为magic links(为什么将这类符号链接叫做magic links呢?.../proc/self/exe; 2 持续遍历容器内/proc目录,读取每一个/proc/[PID]/cmdline,对"runc"做字符串匹配,直到找到runc进程号; 3 以只读方式打开/proc/[.../proc/self/exe,因此实际上将执行宿主机上的runc,而runc也已经在第4部中被我们覆盖掉了。...附录:为什么将/proc下的符号链接称为magic links? ? 我们知道,/proc目录下有许多符号链接,例如/proc/[PID]/exe和/proc/[PID]/cwd。...如上图,我们创建了一个普通符号链接,可以看到它的文件长度为目标文件名的长度,即6;但/proc/self/exe的长度却是0,而非其所指目标文件/bin/ls名称的长度。

    3.4K20

    proc文件系统

    一、proc文件系统是什么proc是一个伪文件系统,伪文件系统的定义: 它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。...可以看到exe的软链接就是gedit; /proc/N/cmdline 进程启动命令 /proc/N/cwd 链接到进程当前工作目录 /proc/N/environ 进程环境变量列表 /proc/N/exe.../self 链接到当前正在运行的进程 2、在根目录命名的文件: /proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关 /proc/cmdline 启动时传递给kernel...系统总线(Bus)信息,例如pci/usb等 /proc/driver 驱动信息 /proc/fs 文件系统信息 /proc/ide ide设备信息 /proc/irq 中断请求设备信息 /proc/net...网卡设备信息 /proc/scsi scsi设备信息 /proc/tty tty设备信息 /proc/net/dev 显示网络适配器及统计信息 /proc/vmstat 虚拟内存统计信息 /proc/

    2.7K70
    领券