In the trigger API I mentioned you’ll get the data that is about to get 
inserted, you can decode that data and check that it is compliant to your 
security. If you want to kill the node, just call System.exit() or 
CassandraDaemon.stop(); The thing is that if you have RF=4 with 4 nodes, they 
will all receive the same update and this will kill your whole cluster. If 
instead you throw an exception, you’ll prevent the rogue write and your client 
will get an error.

As far as I know there is no public interface to plug your code at the 
replication level, and even if there was one, it would only work when you have 
different DCs. One DC would stay with rogue data, and the other one would 
shutdown.

--
Jacques-Henri Berthemet

From: Abdelkrim Fitouri [mailto:abdou....@gmail.com]
Sent: jeudi 16 novembre 2017 22:33
To: user@cassandra.apache.org
Subject: Re: Executing a check before replication / manual replication

ok please find bellow an example:
Lets suppose that i have a cassandra cluster of 4 nodes / one DC / replication 
factor = 4, So in this architecture i have on full copy of the data on each 
node.

Imagine now that one node have been hacked and in some way with full access to 
cqlsh session, if data is changed on that node, data will be changed on the 
three other, am i right ?
imagine now that i am able to know (using cryptographic bases) if one column 
was modified by my API ( => normal way) or not ( => suspicious way), and i want 
to execute this check function just before any replication of a keyspace to 
avoid that all the replica will be affected by that and so a rollback will be 
not easy and the integrity of all the system will be down, the check will for 
example kill the local cassandra service ...
Hope that my question is more clear now.
Many thanks for any help.


2017-11-16 22:01 GMT+01:00 Oliver Ruebenacker 
<cur...@gmail.com<mailto:cur...@gmail.com>>:

     Hello,
  If I understand the OP right, he wants an automated response one node 
displays suspicious activity.
  I suppose in that case, one would want the node to be removed from the 
cluster or shut down or both.
     Best, Oliver

On Thu, Nov 16, 2017 at 3:40 PM, kurt greaves 
<k...@instaclustr.com<mailto:k...@instaclustr.com>> wrote:
What's the purpose here? If they have access to cqlsh, they have access to 
every nodes data, not just the one they are on. An attacker modifying RF would 
be the least of your worries. If you manage to detect that some node is 
compromise you should isolate it immediately.


On 16 Nov. 2017 07:33, "Abdelkrim Fitouri" 
<abdou....@gmail.com<mailto:abdou....@gmail.com>> wrote:
Hi,

I know that cassandra handel properly data replication between cluster nodes, 
but for some security reasons I am wonderning how to avoid data replication 
after a server node have been compromised and someone is executing modification 
via cqlsh ?

is there a posibility on Cassandra to execute a custom check / Hook  before 
replication ?

is there a posibilty to execute a manual replication between node ?



--

Best Regards.

Abdelkarim FITOURI

System And Security Engineer





--
Oliver Ruebenacker
Senior Software Engineer, Diabetes 
Portal<http://www.type2diabetesgenetics.org/>, Broad 
Institute<http://www.broadinstitute.org/>




Reply via email to