Hardened Plone. Making Your Plone Site Even More Secure. Presented by: Nathan Van Gheem



Similar documents
ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

BASICS OF SCALING: LOAD BALANCERS

Attack and Penetration Testing 101

Recon and Mapping Tools and Exploitation Tools in SamuraiWTF Report section Nick Robbins

Configuring CQ Security

Check list for web developers

Advanced Web Security, Lab

How to break in. Tecniche avanzate di pen testing in ambito Web Application, Internal Network and Social Engineering

Acunetix Web Vulnerability Scanner. Getting Started. By Acunetix Ltd.

HOWTO: Installation of Microsoft Office SharePoint Server 2007

Thomas Röthlisberger IT Security Analyst

SQL Server Setup for Assistant/Pro applications Compliance Information Systems

Working With Virtual Hosts on Pramati Server

BASELINE SECURITY TEST PLAN FOR EDUCATIONAL WEB AND MOBILE APPLICATIONS

Criteria for web application security check. Version

Cross Site Scripting in Joomla Acajoom Component

SANS Dshield Webhoneypot Project. OWASP November 13th, The OWASP Foundation Jason Lam

Web Application Guidelines

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

Sophos UTM Web Application Firewall for Microsoft Exchange connectivity

CS 558 Internet Systems and Technologies

Magento Security and Vulnerabilities. Roman Stepanov

Mingyu Web Application Firewall (DAS- WAF) All transparent deployment for Web application gateway

Web Application Security

Columbia University Web Security Standards and Practices. Objective and Scope

Still Aren't Doing. Frank Kim

IIS SECURE ACCESS FILTER 1.3

Performing a Web Application Security Assessment

SQL Injection Vulnerabilities in Desktop Applications

Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security

Secure Web Application Coding Team Introductory Meeting December 1, :00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda

OWASP OWASP. The OWASP Foundation Selected vulnerabilities in web management consoles of network devices

1. Building Testing Environment

Essential IT Security Testing

External Vulnerability Assessment. -Technical Summary- ABC ORGANIZATION

What is Web Security? Motivation

Online Vulnerability Scanner Quick Start Guide

F-Secure Internet Security 2014 Data Transfer Declaration

Improving Web Vulnerability Scanning. Daniel Zulla

Comodo Web Application Firewall Software Version 2.11

REDCap General Security Overview

ABC LTD EXTERNAL WEBSITE AND INFRASTRUCTURE IT HEALTH CHECK (ITHC) / PENETRATION TEST

Configuring HAproxy as a SwiftStack Load Balancer

Outlook Profile Setup Guide Exchange 2010 Quick Start and Detailed Instructions

Kenna Platform Security. A technical overview of the comprehensive security measures Kenna uses to protect your data

From centralized to single sign on

Conducting Web Application Pentests. From Scoping to Report For Education Purposes Only

Guidelines for Web applications protection with dedicated Web Application Firewall

Windows XP Exchange Client Installation Instructions

JOOMLA SECURITY. ireland website design. by Oliver Hummel. ADDRESS Unit 12D, Six Cross Roads Business Park, Waterford City

External Network & Web Application Assessment. For The XXX Group LLC October 2012

MySQL Security: Best Practices

Cache All The Things

Semantic based Web Application Firewall (SWAF V 1.6) Operations and User Manual. Document Version 1.0

Alert Notification of Critical Results (ANCR) Public Domain Deployment Instructions

Creating Stronger, Safer, Web Facing Code. JPL IT Security Mary Rivera June 17, 2011

<Insert Picture Here> Oracle Web Cache 11g Overview

Design and Implementation of an IP based authentication mechanism for Open Source Proxy Servers in Interception Mode

Web Application Attacks And WAF Evasion

Repsheet. A Behavior Based Approach to Web Application Security. Aaron Bedra Application Security Lead Braintree Payments. tirsdag den 1.

Application Design and Development

Secure Programming Lecture 12: Web Application Security III

Comodo Mobile Device Manager Software Version 1.0

REDCap Technical Overview

VMware Identity Manager Connector Installation and Configuration

This installation guide will help you install your chosen IceTheme Template with the Cloner Installer package.

SharePoint Integration Framework Developers Cookbook

STOPPING LAYER 7 ATTACKS with F5 ASM. Sven Müller Security Solution Architect

Data Breaches and Web Servers: The Giant Sucking Sound

Ruby on Rails Secure Coding Recommendations

IS L06 Protect Servers and Defend Against APTs with Symantec Critical System Protection

Secure Web Development Teaching Modules 1. Threat Assessment

REAL-TIME WEB APPLICATION PROTECTION. AWF SERIES DATASHEET WEB APPLICATION FIREWALL

Penetration Testing Corporate Collaboration Portals. Giorgio Fedon, Co-Founder at Minded Security

AVG Business SSO Connecting to Active Directory

Columbia University Web Application Security Standards and Practices. Objective and Scope

Configuration Manual English version

AVG Business Secure Sign On Active Directory Quick Start Guide

Contemporary Web Application Attacks. Ivan Pang Senior Consultant Edvance Limited

Configuring Thunderbird for Flinders Mail at home.

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

Adobe Systems Incorporated

Introduction:... 1 Security in SDLC:... 2 Penetration Testing Methodology: Case Study... 3

Barracuda Syslog Barracuda Web Site Firewall

CCM 4350 Week 11. Security Architecture and Engineering. Guest Lecturer: Mr Louis Slabbert School of Science and Technology.

Detecting (and even preventing) SQL Injection Using the Percona Toolkit and Noinject!

An Insight into Cookie Security

Security and Control Issues within Relational Databases

IP Application Security Manager and. VMware vcloud Air

Where every interaction matters.

Webapps Vulnerability Report

Web Application Hacking (Penetration Testing) 5-day Hands-On Course

The Weakest Link: Mitigating Web Application Vulnerabilities. webscurity White Paper. webscurity Inc. Minneapolis, Minnesota USA

Transcription:

Hardened Plone Making Your Plone Site Even More Secure Presented by: Nathan Van Gheem

Plone Security Flexible and granular ACL/roles-based security model of Zope All input in Plone is validated Plone does not use a SQL database (injection) Very good security track record More information on http://plone. org/products/plone/security/overview

Unauthorized access XSS CSRF DOS/DDOS Types of Attacks,IRC,2012-05-14 15:52:42,#ddos,xxx.xxxxxx.com.,<powertool>,Let's all just go to xxx.xxx and push "F5 F5 F5" over and over.,,,

The Obvious Things To Do Patch your software! Assign privileges correctly Remove old users Run Plone as unprivileged user(default ZEO install)

Drawbacks Plone includes a lot of features. This is great, but it also provides opportunity for attackers to gather information from your site. Examples: RSS feeds include author and username. There is no way through configuration to disable it except by customizing the template.

Separate editing site Read-only Plone Sanitize Nginx/Apache Varnish CDN WAF Proxy blocks Protecting Plone

Separate Editing Backend Protected by multi-factor authentication RSA WiKID Factored(by Wildcard Corp.) http://pypi.python. org/pypi/factored Basic authentication on proxy server Different DNS for backends

Factored Demo...

Read-Only RW ZEO replicates to read-only public sites Assures that even if a user account is exploited, it's not possible to do any damage on the public site Various setups to accomplish read-only Plone Replication Mixing RW and RO rsync Data.fs and blob files to RO server

ZRS Replication Can be pricey Works very well No nice monitoring or stats No easy way to turn it off except to change config, restart server ZODB clients >= 3.8 ZODB server >=3.9 RelStorage Supports mysql and postgres There are existing replication strategies for these databases

Read-Only ZEO Server

Read-Only ZEO Client

Read-Only Zope Instance

Read-Only Demo...

Read-Only With Buildout No options directly in buildout configuration for read-only Manually entering it can be a pain especially when making changes to buildout Use wildcard.recipe.insertinto

Wildcard.recipe.insertinto

Drawback To Straight Up Read-Only Ugly read-only error message Some things are not written to the database until they are accessed. For instance, custom image scales

Read-Only Cont. Or, to prevent the possible case where writeon-read will cause Zope to throw errors, you can abort all transactions.

Read-Only Subscriber Demo...

Careful Using Doom And Abort... It will prevent most mail from getting sent. To fix this, you can do a conditional abort

If You Must Have R/W... - Have different ZEO clients handle R/W operations - Use proxy rules to only have certain urls go to write clients - Other clients can be read-only. Yes, you can mix r/w and r/o clients. - Use Wildcard.lockdown

wildcard.lockdown Provide rules to only be able to write to the database for certain types of requests. Create rules Install product Enable rules

Example Rule

Example Using Lockdown...

Rule Settings path An enabling glob expression. This path is always based on the relative Plone site, not the Zope root. request_method Enabling HTTP request method portal_type Published object's portal type host Enabling globing globbing expression for the host name logged_in require user to be logged in custom Custom function to do manual checks against the request object. Return True if you want to commit, False if not.

Sanitize Information on backend servers Unnecessary headers Information on users

Specific Things In Plone To Sanitize Custom RSS feeds Block logins, password resets Anonymous should not be able to see editor information searchformembers

Monitor Text For Info On Backends When users save content, do checks to make sure they aren't saving bad links or other info about backends Also, use TinyMCE events to fix bad links

Pseudo Subscriber For Checking Text

ZCML Wiring For Subscriber

Blocking Requests Use your front ends to block as many maliciously intended requests as possible no reason for plone to even deal with them Can accomplish in Nginx, Apache, Varnish, HAProxy, etc.

What Can You Block? Public side, make sure to block anything that users should not be accessing: manage_?*, login*, logged*, require_login*, acl_users*, searchformembers, etc... Also, block any known bad request types. Does your site need POST requests? Rate limiting? Maybe only POST requests?

Example Nginx Blocks

Caching Varnish Optimize caching By default, cache everything. Everything you serve should have a ttl on it If you have a large site, might be a good idea to continually crawl the site to keep more items in cache Serve stale content if backend is down

Normalizing URLs To optimize caching Remove hash from URLs Sort query parameters(varnish) https://github. com/cyberroadie/varnish-urlsort Whitelist query parameters Remove cookies, user agent, etc. Block known bad URL types In CDN, Nginx or Varnish Strip Google params

Sample Varnish http://nathanvangheem.com/news/high-availability-varnishconfiguration-for-plone Saint mode -- use stale Grace period -- max time in cache Use always down backend If request fails, restart request with always down backend used, then it'll serve stale.

Proxy Setup Limit the number of simultaneous requests being sent to each plone client.max_connections setting for backend Varnish config maxconn setting for haproxy Do not overload Plone Allow proxies to pool requests so plone can serve content at a steady pace Know your expected load

Cloudflare/Incapsula Caching CDN WAF Recaptcha for suspicious users Minify Loads of other features No fine grained cache invalidation though

Benefits of WAF Can detect various vulnerabilities and XSS attacks and automatically block them http://code.google.com/p/naxsi/ for nginx http://www.modsecurity.org/ for apache

Drawbacks of WAF Blocks a bunch of things that are not Plone related--although, you can customize More server overhead

Conclusion Prevent information from getting into the hands of malicious users Protect your Plone servers Always serve content, stale if necessary.

More Information psusymp.hardenedplone sample product https://github.com/vangheem/psusymp.hardenedplone https://github.com/collective/wildcard.lockdown http://nathanvangheem.com/news/high-availabilityvarnish-configuration-for-plone http://nathanvangheem.com/news/notes-on-a-moresecure-plone-deployment

Questions? Thanks, Nathan Van Gheem website: nathanvangheem.com irc: vangheem twitter: vangheezy