Re: Stored procedure code no longer stored in v14 and v15, changed behaviour - Mailing list pgsql-general

From raf
Subject Re: Stored procedure code no longer stored in v14 and v15, changed behaviour
Date
Msg-id Y4oB5RLrbTFLGWsW@raf.org
Whole thread Raw
In response to Re: Stored procedure code no longer stored in v14 and v15, changed behaviour  (Pasi Oja-Nisula <pon@iki.fi>)
Responses Re: Stored procedure code no longer stored in v14 and v15, changed behaviour
List pgsql-general
On Fri, Dec 02, 2022 at 03:00:09PM +0200, Pasi Oja-Nisula <pon@iki.fi> wrote:

> On Fri, 2 Dec 2022 at 02:24, raf <raf@raf.org> wrote:
> > Same here. Accessing the loaded stored procedure source
> > is how I audit the state of stored procedures in the
> > database against the code in the code repository.
> 
> Exactly. If our software is audited, how can I reliably prove to auditor
> that the running version of the procedure has not been tampered with
> either by customer, rogue developer or some malicious party?

> Suggested solution "store the text in user table" does not work, because
> it requires following a process. And the process overriding changes are those
> we are interested in.
> 
> I'm not so much concerned about whether the stored procedure text compiles
> anymore (because of object name changes etc.) I just really would like to
> have the exact source code stored with the database. So if release management
> goes horribly wrong, there is at least the possibility to compare procedure
> text manually.
> 
> Pasi

That's a different concern to mine. I just want to be
able to check that multiple test systems all have the
same schema and stored procedures, and to be able to
reload an old database, apply any schema updates made
since it was backed up, and load/drop any stored
procedures that were added/changed/removed since then
without having to reload all of them. So storing
procedure code in a user table would be OK. I just have
to update my db loading/auditing tools for v14+. It was
great to be able to make use of the source in pg_proc
for my needs, but that's not what it was for. I was
just lucky it was there.

If you're concerned about tampering by
customers/users/developers, you can either set
permissions to prevent it in some cases, and when you
can't prevent it, make it tamper-evident by logging
actions to somewhere remote and monitoring for what
concerns you. That should satisfy auditors.

cheers,
raf




pgsql-general by date:

Previous
From: Dominique Devienne
Date:
Subject: Re: Stored procedure code no longer stored in v14 and v15, changed behaviour
Next
From: Dominique Devienne
Date:
Subject: Re: Stored procedure code no longer stored in v14 and v15, changed behaviour