Drupal Security Training Overview Drupal Security - Amazon S3

crateleftInternet και Εφαρμογές Web

4 Δεκ 2013 (πριν από 4 χρόνια και 27 μέρες)

92 εμφανίσεις

7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
1/7
Drupal Security Training Overview
Created on: Jul 17, 2013 6:36 PM by 
Benjamin Sprague
 
­
 Last Modif ied:  Jul 18, 2013 3:26 PM by 
Benjamin Sprague
VERSION 5  
Drupal Security
Vulnerabilities
Drupal Vulnarabilities by popularity
Access bypass
XSS
CSRF
SQL Injection
OWASP Top Ten
Development Best Practices
user­supplied input is the root of the problem
Access bypass Prevention
XSS Prevention
CSRF Prevention
SQL Injection Prevention
Review community contributed modules
Tools
Tamper Data
Drupal Security Review
Plan
Drupal Security
While at DrupalCon 2013 in Portaland I attended this training: 
https://portland2013.drupal.org/node/3698,
 tought by Ben Jeavons,
Cash Williams, David Stoline, and hosted by Aquia. All the graphics in this document are from the slides in the course, and from
my notes, and credit goes to the course trainers and Aquia host. Thanks to them for giving me permission to use it! This will be
an overview the highlights covered in the training.  Note, that this just covers Drupal Web Application security and does not cover
server security such as firewalls etc.
This post is devided into 4 main sections:
Drupal Vulnuabilities in General
Developing secure code
Drupal security tools and modules
 
Vulnerabilities
Drupal Vulnarabilities by popularity
7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
2/7
Source Aquia Inc.
 
If you don't know what all these types of Vulnarabilies are, I will do a quick review of the main ones below. Based on this graph
XSS is the most common vulerability exploited in Drupal. We know this from experience, as all of the drupal security
vuluarbilites raised by the infosec team has been XSS related.  The good thing about this graph is that SQL Injection (SQLi)
which is currently the the #1 
OWASP Top Ten for 2013
 (more about this later) is very low. This is due to Drupal's very secure
database API and high awareness in the Drupal community with how to use it properly.  The next sections will talk about the
main types of vulnarabilities, if you're already familiar with them you can skip these sections.
Access bypass
This vulnarability is caused by missing or inadequate authentication or authorization checks.  An example of access bypass
would be if a customer was able to view unpublished solutions. This one is common in Drupal because it doesn't only require
insecure code to exist, it could be created from mis­configuration by drupal admins.  Another real­world example was recently
there was an Access Bypass vulnarability identified in CTools, a widly used Drupal Library, that allowed any user even
annonymous to see every node title in the system via autocomplete search
.
XSS
XSS (Cross Site Scripting) flaws occur whenever an application takes untrusted data and sends it to a web browser without
proper validation or escaping. XSS allows attackers to execute scripts in the victim’s browser which can hijack user sessions,
deface web sites, or redirect the user to malicious sites. The following illustrates how a Stored XSS attack works.
1

An attacker submits a request with embeded javascript, via some user input form, like a comment or creating a case. That
gets stored in the database.
7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
3/7
Source Aquia Inc.
Source Aquia Inc.
7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
4/7
Source Aquia Inc.
CSRF
CSRF (Cross SIte Request Forgery), A CSRF attack forces a logged­on victim’s browser to send a forged HTTP request,
including the victim’s session cookie and any other automatically included authentication information, to a vulnerable web
application. This allows the attacker to force the victim’s browser to generate requests the vulnerable application thinks are
legitimate requests from the victim. [1]  An example would be an a funny cat picture link like 
http://bit.ly/cat­riding­roomba
, that
has it's html <img src="
http://example.com/user/magic/delete/1
"> if a logged in user that has permissions to delete content
using that link if they click that link then content will be deleted using that users session.
SQL Injection
Injection flaws, such as SQL, OS, and LDAP injection occur when untrusted data is sent to an interpreter as part of a command
or query. The attacker’s hostile data can trick the interpreter into executing unintended commands or accessing unauthorized
data. [1]Example in the form of a XKCD cartoon:
Source: 
http://xkcd.com/327/
 
OWASP Top Ten
OWASP (Open Web Application Security Project) is an open community dedicated to enabling organizations to conceive,
develop, acquire, operate, and maintain applications that can be trusted. [2].  They keep a 
10 ten
 of the year's top vulnarabilites
below is the list for 2013.
1

Injection
2

Authentication / Session
3

XSS
4

Direct Object Ref
5

Security Misconfiguration
7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
5/7
6

Insecure cryptographic storage, Sensitive Data Exposure
7

Missing functional level access control
8

CSRF
9

using components with known vulnerabilities
10

Unvalidated redirects and forwards
Development Best Practices
user­supplied input is the root of the problem
Don't trust user input, most vulnarabilties are exploited through user input either in through GETs or POSTS. 
When dealing with
user data, think of the context: where does this text come from? is there a way a user can change it? in what context is it being
used?
Access bypass Prevention
Use the following drupal functions are useful for securing access when developing custom modules, and themes in Drupal.
hook_perm[issions] / user_access
hook_menu: access callback, access arguments
node_access
db_rewrite_sql / $query­>addTag('node_access');
XSS Prevention
To filter user input based on where it's comming from, use the following chart to know which function to use:
Source Aquia Inc.
CSRF Prevention
Always use Drupal's form_token system when handling user actions:
Form API includes this automatically.
drupal_get_token() and drupal_valid_token() for links.
SQL Injection Prevention
Protect against SQL injection by escaping user supplied data in a context appropriate way.
Never do this:
$sql = “SELECT * FROM table WHERE field = $field”;
db_query($sql);
Always do this:
7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
6/7
Average User Rating
0
(0 ratings)
$sql = “SELECT * FROM table field = :field”;
db_query($sql, array(':field' => $field)) ;
OR:
db_select('table', 't')­>fields('t', array('field')­>condition('field', $field)
 
Review community contributed modules
Drupal security team, focuses on core, and does not review every contributed module, we need to keep our eyes open when
looking through contributed code for potential vulnarabilities.
Tools
Tamper Data
Tamper data is useful for testing for vulnarabilites:
Source Aquia Inc.
 
Security related Drupal modules
Security Review module
Hacked
Coder
Secure Code Review
Vuln.module
Drupal Security Review
Steps to a Drupal security review: 
http://drupalscout.com/node/11
Acquia Insight
Plan
Here are the steps I think we should take on the Drupal Knowledge Base app based on this blog:
1

Keep contributed modules updated that have security fixes.
2

Do a Drupal security review using the Drupalscout.com guide above.
3

Install and review the security modules listed above for vulnarabilites and fix them.
4

Follow the secure coding rules defined above when developing custom code to prevent Access Bypass, XSS, SQLi, and
CSRF.
 
 
[1] 
https://www.owasp.org/index.php/Top_10_2013­Top_10
[2] 
https://www.owasp.org/index.php/About_OWASP
20 Views
 
Categories: 
Release
 
Like 
(
0
)
7/18/13
Main: Drupal Security Training Overview
https://docspace.corp.redhat.com/docs/DOC-151980?decorator=print
7/7
Main powered by Jive SBS ® 4.5.7.0 community sof tware
© Jive Sof tware
There are no comments on this document.
Comments (
0
)