Susie Lin (@mightysooz)
Joel Pittet (@joelpittet)
Team lead, UBC Web Services
Web Developer, Scrummaster, Web Analyst. I work closely with marketing and IT teams.
Excited about the delivery of great digital experience.
Twitter @mightysooz
Web Application Team Lead, Department of Computer Science, UBC
Theme API co-maintainer for Drupal 8
Collector of commit access on Drupal.org
Twitter: @joelpittet
Drupal: d.o/u/joelpittet
Theft of Privacy and Personal Information
|
|
|
Service disruption
Website Vandalism
Unauthorized execution
|
|
UBC Policy #104 (Acceptable Use, Security & Privacy & Responsibilities)
http://www.universitycounsel.ubc.ca/files/2013/06/policy104.pdf
FIPPA – (Personal Information must be stored in Canada)
http://www.bclaws.ca/Recon/document/ID/freeside/96165_00
Vulnerability Management Standards
https://cio.ubc.ca/sites/cio.ubc.ca/files/documents/standards/Std%2014%20Vulnerability%20Management.pdf
SA-CORE-2014-005 Drupalgeddon
SA-CORE-2014-005 Drupalgeddon
SA-CORE-2014-005 Drupalgeddon
Unauthenticated users can make requests to execute arbitrary php code.
RESTWS - Highly critical - Remote code execution - SA-CONTRIB-2016-040
Coder - Highly Critical - Remote Code Execution - SA-CONTRIB-2016-039
Webform Multiple File Upload - Critical - Remote Code Execution - SA-CONTRIB-2016-038
A brute-force attack is an attempt to gain unauthorized access to a website by continually generating and inputting various combinations of a password. automation software (a "bot").
Free password databases on Github
https://github.com/danielmiessler/SecLists/tree/master/Passwords
Premium databases
eg. Yahoo, Dropbox, LastFM, Linkedin, Adobe, MySpace
https://haveibeenpwned.com
Brute Force - disabling account access
Traffic – Distributed Denial of Service
Memory Expansion –
SA-CORE-2016-001 XML-RPC
https://www.drupal.org/drupal-security-team/general-information
Text
Text
$type = "'; TRUNCATE {node}; -- muahahahaha";
// Vulnerable example.
db_query("SELECT n.title FROM {node} n WHERE n.type = '$type'");db_query("SELECT n.title FROM {node} n WHERE n.type = :type", [
':type' => $type,
]);Ensures that the variables are escaped to prevent SQL Injection.
<?php
// User provided data, this should be fine...
$text = '<script>alert("XSS attack!");</script>';
// Whoa, who put that in there?
print $text;
// Fewf safe, but who wants to type this all the time?
print htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
// Thanks Drupal 7, I have to remember to do this but remember less.
print check_plain($text);
?>
{# Twig printing, special characters escaped, auto-magic! #}
{{ text }}
Drupal prevents brute force attacks on accounts. It blocks login by a user that has more than 5 failed login attempts (within six hours) or an IP address that has more than 50 failed login attempts (within one hour).
drush pm-updatestatusdrush up --security-only Add your email to the update modules settings:
https://your-site.ubc.ca/admin/reports/updates/settings
Use strong & unique passwords (not same as your yahoo!)
Password Policy
https://www.drupal.org/project/password_policy
Coder had a library that caused remote writing/execution https://www.drupal.org/node/2765575
This ensures users/hackers see a generic
message but the errors will still be logged in the database or syslogs.
Don't expose info about your site's vulnerabilities
/README.txt & /CHANGELOG.txt, delete or .htaccess
/sites/modules/contrib/ .htaccess
Update Manager
D6 isn't supported by the maintainers nor security team. Consider purchasing LTS from a vendor or upgrade
SSL Certificate to secure information transmitted through browser and web server, vulnerable to information sniffing. Gandi, Let's Encrypt
Securing Information in Database. Encryption Modules. No UBC policy required to encrypt database.