A talk on the state of NoSQL security
NO SQL! NO INJECTION?
IBM Cyber Security Center of Excellence Aviv Ron Alexandra Shulman-Peleg IBM AppScan Emanuel Bronshtein
NO SQL! NO INJECTION? A talk on the state of NoSQL security IBM - - PowerPoint PPT Presentation
NO SQL! NO INJECTION? A talk on the state of NoSQL security IBM Cyber Security Center of IBM AppScan Excellence Aviv Ron Emanuel Bronshtein Alexandra Shulman-Peleg IBM Security Systems Cyber Center of Excellence AVIV RON Security
A talk on the state of NoSQL security
IBM Cyber Security Center of Excellence Aviv Ron Alexandra Shulman-Peleg IBM AppScan Emanuel Bronshtein
IBM Security Systems – Cyber Center of Excellence
@aviv_ron
for IBM AppScan, Application Security Testing
IBM Security Systems – Cyber Center of Excellence
According to http://db-engines.com
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
PERFORMANCE SCALABILITY FLEXIBILITY REAL TIME WEB BIG DATA
Images are under Creative Commons license and are attributed to their creators
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
db.books.insert({ title: ‘The Hobbit’, author: ‘J.R.R. Tolkien’ }) db.books.find({ title: ‘The Hobbit’, author: ‘J.R.R. Tolkien’ }) array(‘title’ => ‘The hobbit’, ‘author’ => ‘J.R.R. Tolkien’);
IBM Security Systems – Cyber Center of Excellence
db->logins->find(array( “username”=>$_POST[“username”], “password”=>$_POST[“password”])); { username: ‘tolkien’, password: ‘hobbit’ }
IBM Security Systems – Cyber Center of Excellence
db->logins->find( array(“username”=>array(“$ne” => 1), “password”=> array(“$ne” => 1)); { username: { $ne: 1 }, password: { $ne: 1 } }
IBM Security Systems – Cyber Center of Excellence
db->logins->find( array(“$where”=>”function() { return this.price < 100 }”));
IBM Security Systems – Cyber Center of Excellence
db->logins->find( array(“$where”=>”function() { return this.price < 100 }”));
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
string query = “{ username: ‘“ + post_username + “’, password: ‘” + post_password + “’ }” { username: ‘tolkien’, password: ‘hobbit’ }
IBM Security Systems – Cyber Center of Excellence
string query = “{ username: ‘“ + post_username + “’, password: ‘” + post_password + “’ }” { username: ‘tolkien’, $or: [ {}, { ‘a’: ‘a’, password: ‘’ } ], $comment: ‘hacked’ }
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
$map = "function() { for (var i = 0; i < this.items.length; i++) { emit(this.name, this.items[i].$param); } }"; $reduce = "function(name, sum) { return Array.sum(sum); }"; $opt = "{ out: 'totals' }"; $db->execute("db.stores.mapReduce($map, $reduce, $opt);");
IBM Security Systems – Cyber Center of Excellence
a);}},function(kv) { return 1; }, { out: 'x' });db.injection.insert({success:1});return 1;db.stores.mapReduce(function() { { emit(1,1
IBM Security Systems – Cyber Center of Excellence
a);}},function(kv) { return 1; }, { out: 'x' });db.injection.insert({success:1});return 1;db.stores.mapReduce(function() { { emit(1,1 db.stores.mapReduce(function() { for (var i = 0; i < this.items.length; i++) { emit(this.name, this.items[i].a); } },function(kv) { return 1; }, { out: 'x' }); db.injection.insert({success:1}); return 1;db.stores.mapReduce(function() { { emit(1,1); } }, function(name, sum) { return Array.sum(sum); }, { out: 'totals' });"
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
IBM Security Systems – Cyber Center of Excellence
else be careful when inserting user input to javascript
(NO JSONP, use of random token)
such as IBM AppScan
IBM Security Systems – Cyber Center of Excellence
http://xkcd.com/327/