Re: [firebird-support] Protecting data from end users

2012-01-16 Thread Mark Rotteveel
On Sun, 15 Jan 2012 20:37:37 -, "richwiz11"
 wrote:
> Hi, I need a way of logging or protecting data from being deleted by a
> user.
> 
> I work for a POS (point of sale) company, each user "shop" would have a
> local firebird db running. We are entering into a new market where
> regulation states we have to protect our system from tax evasion (where
> possible) 

Next to the suggestions given by others, you could also considering adding
a hash or (better yet) a cryptographic message digest of all other records
fields to every record (the hash or message digest would need to be
calculated by your application, not by the database!). This can be used to
identify tampered records. De keep in mind that a determined person can -
with some trouble - still produce a valid hash or message digest if he has
access to the application.
 
Mark



Re: [firebird-support] Protecting data from end users

2012-01-15 Thread Alexey Kovyazin
Hello Richard,

 >We have figured out to how protect sales data from being altered. The 
problem I am left with is how to protect a row from being deleted.
 > (firstly, have come to the conclusion that it impossible to fully 
protect data, however the idea here is just make it a bit harder and 
scare people off)

Actually you need audit solution. Both SYSDBA role and trigger to outer 
database are "kids tricks" which can be easily cracked and bypassed by 
experienced user who has access to the database file (and reads 
firebird-support :)).

If you need reliable audit solution you should consider integration with 
some external tool like our FBScanner, which works as a proxy and can 
store all data and events like unsuccessful login attempts to the 
external Firebird [or other database engines] or text files, with 
necessary data encryption.
It's possible to built-in additional plugin for FBScanner to encrypt 
data exchange or perform additional secure "handshake" with client 
application in order to prevent "bypass" attempts, and with ISV 
subscription licensing even deployment at hundred of terminals will have 
the flat price.
Feel free to contact me directly and ask any questions.

Regards,
Alexey Kovyazin
IBSurgeon (www.ib-aid.com)

> Hi, I need a way of logging or protecting data from being deleted by a 
> user.
>
> I work for a POS (point of sale) company, each user "shop" would have 
> a local firebird db running. We are entering into a new market where 
> regulation states we have to protect our system from tax evasion 
> (where possible)
>
> We have figured out to how protect sales data from being altered. The 
> problem I am left with is how to protect a row from being deleted. 
> (firstly, have come to the conclusion that it impossible to fully 
> protect data, however the idea here is just make it a bit harder and 
> scare people off)
>
> The two method I have thought of is
> a) Using roles and remove the delete privilege (we currently just 
> using SYSDBA, which is probably a bit bad anyway)
> or
> b) Add some kind of trigger logging to keep this deleted data and copy 
> to another db.
>
> Just wanted to know if anyone else had any other ideas or been in a 
> similar situation.
>
> PS at the moment using FB 2.0, however planning on upgrading our 
> clients to FB 2.5. I have been looking at the trace logging in FB2.5 
> but don't see that usefull for this problem
>
> Thanks in advance
> Richard
>
> 



[Non-text portions of this message have been removed]



Re: [firebird-support] Protecting data from end users

2012-01-15 Thread Helen Borrie
At 09:37 AM 16/01/2012, richwiz11 wrote:
>Hi, I need a way of logging or protecting data from being deleted by a user.
>
>I work for a POS (point of sale) company, each user "shop" would have a local 
>firebird db running. We are entering into a new market where regulation states 
>we have to protect our system from tax evasion (where possible) 

So having all of your users with SYSDBA privileges bombs you out totally.

>We have figured out to how protect sales data from being altered. 

While every Joe Blow is SYSDBA?  I don't think so.

>The problem I am left with is how to protect a row from being deleted. 
>(firstly, have come to the conclusion that it impossible to fully protect data

That's true.

>, however the idea here is just make it a bit harder and scare people off)

Oh yeah...

>The two method I have thought of is
>a) Using roles and remove the delete privilege 

That's the one.

>(we currently just using SYSDBA, which is probably a bit bad anyway)

Try "totally insane".

>or
>b) Add some kind of trigger logging to keep this deleted data and copy to 
>another db.

And let all these SYSDBAs play with it to their hearts' content.

>Just wanted to know if anyone else had any other ideas or been in a similar 
>situation.

Just about everyone has to deal with this, from little shops to defence 
installations.  Fix what's broken now and use roles. Give every user a login 
account and enforce login, i.e., remove "automatic login" that you may have 
been trying to avoid by encoding SYSDBA login in your applications. Restrict 
SYSDBA access to the one human in each place who has responsibility for 
securing data.  

Address unauthorised access to databases AND backup files as an issue of 
extreme importance.  Be aware of the exposure from keeping backups around - get 
them off the local servers and onto portable media that can be locked up, 
preferably off site and out of reach.  It is extremely easy to steal databases 
and backups from an unprotected LAN.

>PS at the moment using FB 2.0, however planning on upgrading our clients to FB 
>2.5. I have been looking at the trace logging in FB2.5 but don't see that 
>usefull for this problem

True. Especially not useful if all your users are SYSDBA. In any case, a trace 
can only tell you what happened, not what's going to happen. But SQL roles and 
user access control have been around Firebird since long before Firebird was 
born.  

./heLen





Re: [firebird-support] Protecting data from end users

2012-01-15 Thread Michael Ludwig
richwiz11 schrieb am 15.01.2012 um 20:37 (-):

> The problem I am left with is how to protect a row from being deleted.

> The two method I have thought of is
> a) Using roles and remove the delete privilege (we currently just
>using SYSDBA, which is probably a bit bad anyway)
> or
> b) Add some kind of trigger logging to keep this deleted data and copy
>to another db.

Go with method (a). Why reinvent the wheel?

And do get rid of SYSDBA as your application user.
-- 
Michael Ludwig


[firebird-support] Protecting data from end users

2012-01-15 Thread richwiz11
Hi, I need a way of logging or protecting data from being deleted by a user.

I work for a POS (point of sale) company, each user "shop" would have a local 
firebird db running. We are entering into a new market where regulation states 
we have to protect our system from tax evasion (where possible) 

We have figured out to how protect sales data from being altered. The problem I 
am left with is how to protect a row from being deleted. (firstly, have come to 
the conclusion that it impossible to fully protect data, however the idea here 
is just make it a bit harder and scare people off)

The two method I have thought of is
a) Using roles and remove the delete privilege (we currently just using SYSDBA, 
which is probably a bit bad anyway)
or
b) Add some kind of trigger logging to keep this deleted data and copy to 
another db.

Just wanted to know if anyone else had any other ideas or been in a similar 
situation.

PS at the moment using FB 2.0, however planning on upgrading our clients to FB 
2.5. I have been looking at the trace logging in FB2.5 but don't see that 
usefull for this problem

Thanks in advance 
Richard