Skip to main content

Other ways to detect an SQL Injection attack ( Honey Data )

Fake Data (Honey Data)


By using honey data , it could help to identify attacks that are not triggered by error messages. 


Honey data is data (e.g. Passwords, Credit card numbers,…) in tables which is never used by the application (Fake Ones). If someone from anywhere is accessing this kind of data , alert will be raised.

Creation a table or tables containing unused data with juicy names (e.g. PASSWORD, CREDITCARD, SALARY).  
Such interesting data is often the target of attackers.   

During the attack, attackers are often accessing the view ALL_TAB_COLUMNS (Oracle) or INFORMATION_SCHEMA.COLUMNS (MySQL) to get the column names of interesting data.


Attackers are normally downloading the data of  interesting tables found via the column name in further attacks. 

You could monitor such an access and could react (send email, lock user, …).

Oracle can implement this monitoring via Virtual Private Database (VPD).

-- The script 

-- Create Honeytable 
create table app.userdata (username varchar2(30), password varchar2(30));
-- Fill Honey table with data 
insert into app.userdata values ('WEBUSER','WEBUSER01');
insert into app.userdata values ('WEBADM','ADMADM01');
insert into app.userdata values ('WEBREAD','READUSER01');
-- create predicate function 
create or replace function perfcheck (pv_schema in varchar2, pv_object in  varchar2)
return varchar2 as
 begin
dbms_output.put_line(‘Send email to the security team or lock the database user...');
-- return always true. Attacker will see all results 
    return '1=1';
end;
/
-- now we activate VPD for this table 
exec dbms_rls.add_policy(object_schema => ‘APP', object_name => ‘USERDATA',
policy_name => 'PERFCHECK', policy_function => 'PERFCHECK');

if Oracle solves it using VPD , 
how could it be implemented on MySQL ? A question needs to be answered.    

Comments

  1. It can be done using MySQL by :
    1- make a fake table like users_tb ,or permissions_tb with field (username , password , ....).
    2- when these tables are accessed , a trigger raised to put some data in another fake table (temp_tb).
    3- a small service reads from the temp_tb , if any data appears , it will alert the administrator, this means that there is an attempt to attack.

    ReplyDelete

Post a Comment

Popular posts from this blog

SQL Injection Test 1

Search Google about Dork List 2013 SQL Injection Here are some from the list is :       http://tutsql.blogspot.com/2013/06/dork-list.html       http://securitypedia.blogspot.com/p/dork-list-2013_7588.html     -- choose one way of them to google it like : inurl:newsdetail.php?id=

SA-CORE-2014-005 - Drupal core - SQL injection (Highly Critical)

Posted by  Drupal Security Team  on  October 15, 2014 at 4:02pm Advisory ID: DRUPAL-SA-CORE-2014-005 Project:  Drupal core Version: 7.x Date: 2014-Oct-15 Security risk:  25/25 ( Highly Critical ) AC:None/A:None/CI:All/II:All/E:Exploit/TD:All Vulnerability: SQL Injection Description Drupal 7 includes a database abstraction API to ensure that queries executed against the database are sanitized to prevent SQL injection attacks. A vulnerability in this API allows an attacker to send specially crafted requests resulting in arbitrary SQL execution. Depending on the content of the requests this can lead to privilege escalation, arbitrary PHP execution, or other attacks. This vulnerability can be exploited by anonymous users. Update:  Multiple exploits have been reported in the wild following the release of this security advisory, and Drupal 7 sites which did not update soon after the advisory was released may be compromised. See this follow-...

Do you think , Google makes a mistake ?

It seems Google makes a new mistake by launching its new security key (2-step verification)  one of the steps is USB device .  The question  :how come can i plug USB into my mobile (I-Phone , I-Pad , Samsung Galaxy , ....) !  Do Google know the difficulties while you are holding a USB on your hand all the time .  so You can't access  your  account if it's not in your hands. or it's damaged ?  This solution is hopeless , I think it's designed for small audience. As someone says : Can you convince the Bank Manager while you are putting the USB Device into the bank PC, that you are securing your PC , not stealing the bank data, or not transferring amounts of money to other account . or what else .  You know , This way is not quietly good , If I have many accounts on Google and other websites ,I need many  USB devices to verify myself.  That's of course , not good at all.