首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当rootfs为只读且/tmp为noexec时,Python类型的分段错误

当rootfs为只读且/tmp为noexec时,Python类型的分段错误
EN

Stack Overflow用户
提问于 2013-07-17 14:44:51
回答 1查看 600关注 0票数 7

我试图在运行Linux的Arm处理器上使用Python作为嵌入式应用程序(CPython 2.7.3交叉编译自X86/Linux)。在我开始保护这个设备以防止篡改之前,它一直运行得很好。首先,我使rootfs成为只读的,这既可以防止rootfs突然失去功能时的损坏,也可以防止未经授权的用户修改我们的主要代码。尽管如此,python和我们的ctype库继续正常工作。/tmp目录被映射到tmpfs (ramdrive)。另一个强化步骤是在tmpfs分区上设置noexec标志,以防止用户以某种方式上传任何可能导致本地根漏洞的代码。在设置了这两个选项之后,导入ctype将产生一个直接的分段错误:

代码语言:javascript
复制
root@ATX4:~# python                                 
Python 2.7.3 (default, Jul 16 2013, 17:15:57) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
Segmentation fault

有趣的是,下面的任何更改都允许ctype正确工作:

  1. 将rootfs重新安装为读-写。
  2. 在没有noexec的情况下重新安装tmpfs
  3. 不带noexec的重新安装/dev/shm

知道是什么导致的吗?目前,我已经在没有noexec的情况下安装了/dev/shm,并将其限制在尽可能少的用户。

EN

回答 1

Stack Overflow用户

发布于 2014-04-16 16:19:55

我不能用Python2.7.6来再现这一点;

我怀疑这可能是个有效的窃听器。

考虑到ctype可能需要创建一个唯一的回调(一个可执行的C级函数)。它将mmap一些匿名(确定)或共享文件(不确定)与执行位设置。

内存错误处理总是很困难,并且可以很容易地摆脱开发人员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17702932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档