Was just thinking of that, you can consider roughly 2 types of attacks:
persistent and non-persistent.
Non-persistent attacks are the weaker type of attacks. Since the DB is not
compromised outsiders can't get control of the system,
the data are not at risks, notably the credentials!
Nowaydays, Deny Of Service is a well known non-persistent attack (Anonymous).
It's weak but powerfull: the system is down from
outside as long as the attackers want, unless you are able to dynamically
filter IPs address or packets in front-end
(http://en.wikipedia.org/wiki/Denial-of-service_attack#Prevention_and_response)
If the server is so attacked all tenants will be in the same situation: nobody
can access the system from the Web anyway. This is
the only case, I see, where a non persistent attack is really damageable for
all tenants. But it has no durable consequences.
So it's all about balance of choices. Though, if you need/want to implement
Software-As-A-Service (SAAS)
http://en.wikipedia.org/wiki/Software_as_a_service I don't see any other
choices...
Imagine you have to dymamically create clients (I mean tenants DBs for
clients). Only multi-tenant architecture allows to do so (not
implemented in OFBiz OOTB)
I hope these simple explanations help you to be reassured about multi-tenants security, which is not OFBiz specific BTW (hence my
questions in dev ML)
Jacques
From: "Jacques Le Roux" <jacques.le.r...@les7arts.com>
Yes of course, we can't exclude this possibily, as you maybe read in this
article, the other types of vulnerabilites can be
exploited as well. And then, as all the tenants are sharing the same system,
one compromised tenant is potentially compromising
all the system.
The most possible type of attack, apart SQL injection, is XSS. To really
compromise other tenants, the XSS attack must be
permanent
(ie the compromising piece of javascript is stored in some way in the DB, to be
restored/reused). But then this will be only in
one
tenant DB and will not affect the other tenants. Because in OFBiz, apart the 2
shared tenants specific tables, all the data are DB
separated (in other word OFBiz uses the Separate Databases schema:
http://msdn.microsoft.com/en-us/library/aa479086.aspx). And
it's
impossible, unless proved otherwise, to compromise the 2 shared tenants
specific tables because there are no ways to store a
javascript script there.
Anyway nobody will never be able to guarantee a 100% secure system. So, as well
explained in the article above and in the
Wikipedia
article, it's more about economics. For instance it's far more easier with
multi tenant to create a new account for a new client.
There are "endless" points to consider...
Jacques
From: "Ruth Hoffman" <rhoff...@aesolves.com>
Hi Jacques:
Isn't there more to this than just SQL injection? It is not so much that a
single tenant is compromised. It is that a single
tenant might be the ONE doing the compromising. They might be able to do this
because they are a tenant and thus have access to
the system.
That is what I am wondering.
Thanks much for you insight.
Ruth
On 1/28/12 5:23 PM, Jacques Le Roux wrote:
If a SQL injection was able to compromise one tenant DB, it could indeed be
able to compromise the entire system
Note that there are no known/proven SQL injection vulnerabilites in OFBiz.
The most relevant article I found is http://iaas.ulitzer.com/node/1624391/mobile
(look for "SQL Injection In Multi Tenant
Database Design")
Also IBM seems to have deposed an intellectual property
http://ip.com/IPCOM/000184999
HTH
Jacques
From: "Ruth Hoffman" <rhoff...@aesolves.com>
Hi Adrian:
Ah, but it is. From a business point-of-view, in the "single" instance case,
the only instance compromised is that instance. In
the multi-tenant case, all tenants (still the same instance) could be
compromised. True? or Not?
Regards,
Ruth
On 1/28/12 12:24 PM, Adrian Crum wrote:
The initial multi-tenant implementation was simply a way to run multiple
database instances on a single copy of OFBiz -
basically a user logs into a database instance. Other than that, nothing much
changed - so the dangers of someone hacking into
a multi-tenant instance of OFBiz is no different than a single instance.
-Adrian
On 1/28/2012 5:17 PM, Ruth Hoffman wrote:
Hans, Pierre and several others have been kind enough to outline the OFBiz
multi-tenant value proposition.
I appreciate this primarily because I can't even count the number of times
prospective OFBiz users have asked me about it.
Now, with this background information, I feel comfortable articulating the
marketing value proposition.
What I still have great angst about, is the security side of multi-tenancy.
Perhaps someone can clarify or answer this basic
question:
What is to stop a hacker or otherwise malicious tenant from writing a Groovy
script (or Java program that is inserted on the
classpath when the system is rebooted) that acts as a "trojan horse"? For
example, how can you stop a savvy tenant from
adding
a program (or, I could even see hacking the Mini-lang since all it is - is
interpreted XML statements) that monitors (JVM)
memory and captures shopping cart objects or usernames and passwords of the
other tenants?
Really, I'd like to endorse multi-tenant implementations. But I am still left
with this one - very significant - security
question.
Anyone care to respond? Am I missing something here?
Regards,
Ruth Hoffman