Re: Shared system resources - Mailing list pgsql-general

From David Wilson
Subject Re: Shared system resources
Date
Msg-id 20151222232127.GA7695@k3
Whole thread Raw
In response to Shared system resources  (oleg yusim <olegyusim@gmail.com>)
List pgsql-general
On Tue, Dec 22, 2015 at 04:52:23PM -0600, oleg yusim wrote:
> Greetings,
>
> I'm looking at the following security control right now:
>
> The DBMS must prevent unauthorized and unintended information transfer via
> shared system resources.
>
> The purpose of this control is to prevent information, including encrypted
> representations of information, produced by the actions of a prior user/role
> (or the actions of a process acting on behalf of a prior user/role) from being
> available to any current user/role (or current process) that obtains access to
> a shared system resource (e.g., registers, main memory, secondary storage)
> after the resource has been released back to the information system. Control of
> information in shared resources is also referred to as object reuse.
>
> From previous discussions, I understood that session in PostgreSQL is closely
> associated with process, and it is essentially new process for every user
> connection. In regards to that, my question would be:
>
> When user disconnects, process is terminated and all resources are released,
> does memory, session/process stored information at gets "sanitized" or just
> released as is?

On Linux the memory pages of an exiting process aren't sanitized at
exit, however it is impossible(?) for userspace to reallocate them
without the kernel first zeroing their contents.

It might be possible for root to use some debugging mechanisms to access
the freed memory, but certainly there is no mechanism for a non-root
user to do so.

Regarding PG in particular, I can't speak for any shared internal state
that might be maintained after a session has exitted (e.g. in the SHM
regions PG maintains). Since that state lives longer than an individual
process, it's possible some information leakage could occur that way,
but "object reuse", it seems doubtful.


David


pgsql-general by date:

Previous
From: oleg yusim
Date:
Subject: Shared system resources
Next
From: John R Pierce
Date:
Subject: Re: Shared system resources