Fwd: Fwd: Getting path in inode_permission

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Apologies for the late reply.

On Sat, Feb 7, 2015 at 8:52 AM,  <Valdis.Kletnieks@xxxxxx> wrote:
> On Sat, 07 Feb 2015 07:27:13 +0530, noyb noybee said:
>
>> I am trying to enhance the security features of the chroot "jail"(I
>> know it wasn't built for the purpose). I am trying to prevent access
>> to files outside the "jail" unless they specify a specific
>
> The right thing to do is design the jail so it *never* references files
> outside.
>
>> passsphrase. Whenever an inode is accessed, inode_persmission is
>> called. I get the pid of the calling process by current->pid in the
>> hook and check if it is a child of the original process for which
>
> Bzzt!  Wrong.  Trivially beatable - all I have to do is double-fork,
> exit the child process, the grandchild gets reparented to PID 1,
> and your check fails.

You are correct. I missed out on that fact. Well, there's still a
workaround. I will put in some kind of data in the security structure
of task_struct as soon as it is created.

>
>> chroot was run. If yes + if this process hasn't specified a passphrase
>> + the path of the inode shows that it is outside the "jail", the
>> request is blocked. I am also blocking all mounts in the "jail".
>
> Plus the whole passphrase thing is probably equally easy to defeat.  (Hint -
> how does the passphrase get passed to the kernel in the first place?)

I am planning to create a new system call for that and I am not sure
how that would be insecure. Please correct me if I am wrong.

What you're saying is definitely simpler than my approach but it
probably violates some POSIX standards(including chdir in chroot)
which I don't want to. Also, I aim for my tool to be just a simple
addendum to the traditional system call rather than adding a
completely new call to handle the entire process.

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux