Chinaunix

标题: Linux 判定可执行文件或者可执行脚本 [打印本页]

作者: 536ma    时间: 2015-08-10 15:56
标题: Linux 判定可执行文件或者可执行脚本
Linux的file命令判定文件的类型,例如 file cg1
cg1:                     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
就可以判定这样文件是可执行文件,另外 ls -l cg1
-rwxrwxr-x. 1 xi xi 5160 7月  17 16:21 cg1  像这样的文件就可以通过文件x属性判定是可执行文件,我想问一下file executable 的判定 与 ls -l 查看x属性判定,哪一个更详细更准确确定文件是可执行文件??
作者: MMMIX    时间: 2015-08-10 16:18
回复 1# 536ma


    file 是根据文件内容判断(猜测), ls 是根据文件属性. 这两个的结果哪个都不是 100% 可靠.
作者: 536ma    时间: 2015-08-10 17:01
回复 2# MMMIX

你说的很对。file是通过对文件类型的初判,然后又通过检测 magic file 规则来判定,觉得这个比 ls -l 好一点。但是在判定过程中发现不是很可靠,想判定某个目录中可执行文件文件或者脚本不是100%可靠,请问您有可靠的办法来判定可执行文件或者脚本?
   
作者: MMMIX    时间: 2015-08-10 17:34
回复 3# 536ma


    关键看你拿判定的结果干啥. 若是要执行它, 只要判定下对应的路径为普通文件并且具有可执行权限, 然后直接执行就行了.
作者: 536ma    时间: 2015-08-10 20:53
MMMIX 发表于 2015-08-10 17:34
回复 3# 536ma


我想判定linux根目录的所有可执行文件,然后对可执行文件进行拦截控制。我应该怎么判定和搜集可执行程序的名单? 但是像你说的普通文件,还具有可执行权限。例如普通的脚本文件,如果我按照你说的办法去做,就会把它漏掉。如: sh01.sh 文件属性是 rw-rw-rw- sh sh01.sh仍然可以执行, 求大神指导?
作者: MMMIX    时间: 2015-08-10 21:02
回复 5# 536ma


    直接用沙盒(sandbox)吧.
作者: 536ma    时间: 2015-08-11 08:49
MMMIX 发表于 2015-08-10 21:02
回复 5# 536ma


有没有相关的关于sanbox的实现案例,大神求教?
作者: 536ma    时间: 2015-08-11 13:44
回复 6# MMMIX

我查了相关的资料,关于轻量级的SetUid中的Sandbox,但是对于具体的实现还是有点不明白,能否给指点一下?

   
作者: MMMIX    时间: 2015-08-11 18:06
回复 8# 536ma


    你是要自己实现沙盒? 还是在其之上添加额外的功能?
作者: 536ma    时间: 2015-08-11 18:19
回复 9# MMMIX


   恩,就是想实现对可疑程序的判定? 本来想用白名单机制去判定,但是可执行程序白名单的搜集数据太大,内核空间有限难实现;听你说沙盘刚好有这个功能 ,如果有例子参考的话更好?没有的话给点思路?
作者: MMMIX    时间: 2015-08-11 18:39
本帖最后由 MMMIX 于 2015-08-11 18:40 编辑

回复 10# 536ma


    沙盒是把可疑程序放在一个隔离的环境中执行. 如果你要监测系统的每一个进程的话, 要从 syscall execve 入手, 在内核中把它拦截掉, 这样你就能看到每一个进程都执行了些什么.

另外, Linux 说不定已经有一些安全机制可以做到这个了.
作者: 536ma    时间: 2015-08-11 18:54
回复 11# MMMIX


   我想在已经可以把sys_execve地址解析并且hook,但是现在就是缺少一个linux可执行程序的白名单?我写了shell脚本通过file去判定可执行脚本,问题一是白名单很大,问题二还有些可执行的文件漏了?
linux的安全机制?求推荐?
作者: MMMIX    时间: 2015-08-11 18:58
回复 12# 536ma


    关键是你到底要干啥呀? 做一个受限系统, 让用户只能执行某些程序? 那你把这些程序弄个列表不就完了?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2