> From a security pov, is it possible to guess binder reference numbers of
> binder nodes, thus by-passing the service manager to initiate IPC
> 'directly' from one application to another? Is that possible in the
> traditional Binder implementation? If yes, did you regard this in your
> project?

I had thought about before too. From the implementation point of view,
you need someone to send you either a binder or handler (like
invitation) to be able to create a kernel level reference (numbered
locally), which you can then use to start transaction with. As the
reference number is created locally, there's no point of guessing or
forging, because if you don't have a local reference, the kernel will
simply reject it. From that perspective, it's probably secure. But
there's nothing (from memory) would stop you from creating a reference
via a reference from someone else other than the owner. On the other
hand, the service provider (owner) can always enforce verification the
originator of the request if they want to. What might be a security
risk I found is actually the way the framework handles the cookie.
When a request is received, the cookie is cast-ed into an object
without much checking, which can potentially be misused by some
malicious apps.

The first priority of my project was to implement a version that can
be used as a drop replacement, well as much as possible. So logic
mentioned above mostly applies to my implementation too, but I'd
certainly consider those security aspects along the way.

Cheers,
Rong

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel

Reply via email to