Date: Wed, 29 Jun 2011 06:46:43 +0530 From: Balbir Singh <bsingharora@...il.com> To: Vasiliy Kulikov <segoon@...nwall.com> Cc: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>, linux-kernel@...r.kernel.org, balbir@...ux.vnet.ibm.com, akpm@...ux-foundation.org, viro@...iv.linux.org.uk, rientjes@...gle.com, wilsons@...rt.ca, security@...nel.org, eparis@...hat.com, kernel-hardening@...ts.openwall.com, Linus Torvalds <torvalds@...ux-foundation.org> Subject: Re: [PATCH 1/2] proc: restrict access to /proc/PID/io On Tue, Jun 28, 2011 at 1:20 PM, Vasiliy Kulikov <segoon@...nwall.com> wrote: > On Tue, Jun 28, 2011 at 06:54 +0530, Balbir Singh wrote: >> > As to rounding - this is a workaround, not a fix. What if some program >> > reads one byte from tty and then do some io activity exactly of 1kb-1? >> > Then you just measure kbs and get original tty activity. (just a crazy >> > example to show that it is not a full solution.) >> > >> >> That would happen with a probability of 1/1024 > > I'd not claim about probability here, but anyway rounding would be not > a fix, just a workaround. Also note that the random value is program > dependent, it is not chosen at the program start time or anything > similar. IOW, if the program is vulnerable, it is vulnerable with 100% > probability. > I was thinking along ASLR lines, ASLR reduces the probability of malware finding specific address in code, but does not eliminate it completely. The other possibility is that we do both ROUND_UP and ROUND_DOWN as long as we keep the statistics as progressively increasing. I am trying to find a way to make the statistics available without compromising the system. In the worst case as you suggest may be the statistics would be available only to root, but that is the final drop down scenario. > >> >> > Also I'm worried about these statistics after dropping the privileges. >> >> > After setuid() and similar things not changing pid unprivileged user >> >> > gets some information about the previous io activity of this task being >> >> > privileged. In some situations it doesn't reveal any sensitive >> >> > information, in some it might. Clearing taskstats on credential >> >> > changing functions would totally break taskstats' interfaces; and should >> >> > be temporary changing fsuid/euid followed by reverting it considered >> >> > harmfull? I don't know. >> >> >> >> Can you please explain more? I'm feeling "reset at credential change" is >> >> reasonable idea. How broken is there? >> > >> > In the code I see taskstats statistics is kept untouched, so it would >> > break userspace assumptions about the statistics. >> > >> >> Could you please elaborate on this point? > > It's better to consider my phrase as a question :) Like this: don't > userspace programs rely on the fact that all statistic information > wouldn't be cleared after execve()/set*id()/prctl() ? I'm not familiar > with taskstats at all, so I don't know whether this assumption makes > sense to userspace application. No we don't clear taskstats info on credential changes. Balbir Singh
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.