Re: absolute path of a process (as the credential of a process)

Chris Wright (chris@wirex.com)
Thu, 10 Jan 2002 12:56:48 -0800


* Senhua Tao (stao@nbnet.nb.ca) wrote:

<some details snipped>

> The ip filter checking can be done in sys_connect(). That is the problem
> that I am having. I try to get the absolute path of the current process
> which calls connect() to against the entries in the config file (they
> also have to be translated to absolute path) and get lost.

if you look at the code in fs/proc/base.c::proc_exe_link() you can
see how the absolute pathname is gathered (note: only on execve is the
VM_EXECUTABLE flag set). basically you need the dentry and vfsmount
of the file. btw, you are only stopping tcp and bound udp if you hook
in sys_connect, perhaps you should consider the sendmsg family as well.
also, if the trojan is a server you have not protected listen/accept or
resvmsg so sys_socket may be the best spot to watch.

also, all of this can be done using the LSM framework. (see lsm.immunix.org
for patches).

cheers,
-chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/