Drupal Security Awareness (2). Disclaimer De informatie in deze cursus is bedoeld om veiligere Drupal websites te bouwen, niet om andere Drupal websites.

Slides:



Advertisements
Verwante presentaties
SharePoint denk in blokken Ton Stegeman.
Advertisements

PSO for Microsoft Dynamics 2013
Samenwerking met MOSS 2007! Chris Hoppenbrouwers.
Databases via internet
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Een introductie. Open source Betere kwaliteit Hoge innovatiesnelheid Betere prijs/kwaliteit verhouding Vrijheid in keuze van leverancier Gedreven door.
Kennis Sessie PSO 2013.
Deze presentatie mag noch geheel, noch gedeeltelijk worden gebruikt of gekopieerd zonder de schriftelijke toestemming van Seniornet Vlaanderen VZW Mijn.
Google Analytics. Google Analytics: waarom Google analytics meet hoeveel mensen er op de site komen, brengt in beeld wat we weten van dit mensen en wat.
G- MAIL EN A GENDA Fred Timmermans 12 december 2012 PTCC Afd.Oss-Den Bosch.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
W ORD P RESS TECHNISCHE ACHTERGROND Kris Cardinaels 26 maart 2013.
Inhoud Kenmerken ODBC HTML & PHP Inlogfunctie. Inhoud Kenmerken ODBC HTML & PHP Inlogfunctie.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Webpagina ’ s maken ITV 10 maart Onderwerpen Ontwerp en inhoud Navigatie HTML: de basis Webpagina’s in Word.
The KB en Web 2.0 Verlaag de drempel om services te integreren. Theo van Veen, 7 november 2006.
Subversion Version control
Wolter Kaper - Ruby on Rails Webtoepassing ontwerpen Webprogrammeren, week 1.
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
Workshop PHP Een productencatalogus Met database.
Hoofdstuk 16 en 19 PHP en MYSQL
Eduroam BELnet bezoek, 18 juli 2005
Hoogwaardig internet voor hoger onderwijs en onderzoek eduroam BELNET, Brussel, 29 September 2005
Microsoft Windows Vista vanuit gebruikersperspectief.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Client-side scripting. 1.Scripting in webpagina’s 1. Verschillende talen VB: toepassingen in Windowsomgeving VBA: toepassingen in MS-Office VBScript internet.
Wat is WordPress en hoe installeer je het?. Wat is WordPress? WordPress is een CMS (Content Management Systeem) net als Joomla; Met een CMS kan een gebruiker.
Opleiding CMS website Gent Bart Nelis Gent: #239/ docentengang Brussel: /naast bibliotheek
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 04 CMS: BEST PRACTICE. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Order IT v1.03 (01/03/2005) Order IT V Order IT v1.03 (01/03/2005) Opstarten De client applet wordt opgestart vanuit een html pagina in een browser.
Meervoudige selectie van deuren
Starten met PHP Dynamischer bouwen.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Front-end development
Federated Authentication Benchmarking Framework
W W W. N E D P O R T A L. N L Network-wide event log monitoring.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Beveiliging Filters. Security.....wat is dat(1)? Beveiliging draait om 4 belangrijke steunpilaren: 1.Authenticatie: is de persoon.
1 KPN Mobiel – Introductie Repository Object Browser & Designer 10 Designer 10g & Repository Object Browser Maandag 28 februari 2005 Lucas Jellema (AMIS)
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
©2016 Avanade Inc. All Rights Reserved. RAI Community Technische Implementatie Rob Bakkers
1 Bart van Muijen – Sales & Operations Manager UPDATE PV.
Broodje Security 18 november Vroeger Security nog geen hot topic Inbraak bleef soms lang uit.
wordPress  Het meest flexibele CMS CMS= Content Management System.
Gids door Doccle Doccle. De Cloud 2 1.Wat is de Cloud? 2.Voordelen van de Cloud 3.Nadelen van de Cloud 4.Doccle is geen cloudapplicatie.
Hoeveel aandacht besteed jij aan security testing? 1 Security is always excessive until it's not enough.
LPI 2010 NLLGG Trainer: Jeroen van Pelt Bijeenkomst 6: Gebruikers, permissies, procesbeheer
PPGM Voor databeheerders Johan Van Rensbergen 09/08/2016.
Introductie ‘Hacklab MOOC’
Windows applicatieontwikkeling
Software Development fundamentals
Menu affiliate Businesspartner
Identication & Authentication
The Hybrid Workspace Gino van Essen Technical Consultant.
Michaël Hompus Principal developer,
ASP.NET MVC Web Development
Praegus B.V.. .
Software Development fundamentals
SQL Les February 2019.
ASP.NET MVC Web Development
SQL Les 7 24 February 2019.
SQL Les 1 5 April 2019.
– Software development fundamentals
SQL Les 9 12 May 2019.
Transcript van de presentatie:

Drupal Security Awareness (2)

Disclaimer De informatie in deze cursus is bedoeld om veiligere Drupal websites te bouwen, niet om andere Drupal websites te hacken. Art. 138a Wetboek van strafrecht

Doelen •Security bewustzijn bevorderen. •Welke bedreigingen zijn er? •Hoe maak ik m’n Drupal site veiliger?

Agenda •Owasp top 10 - Drupal style >Kwetsbaarheden >Oplossingen >Voorbeelden •Security Modules •Zelf doen? >Webgoat >Damn Vulnerable Drupal App

Wie is dit •L1099xx

Waar komen bedreigen vandaan •Automatische scans •Scriptkiddie •Casual hacker •Doelbewuste hacker •Mainstream aanval •Gebruiker •Systeem

OWASP •“The Open Web Application Security Project (OWASP) is a worldwide free and open community focused on improving the security of application software. •Our mission is to make application security visible, so that people and organizations can make informed decisions about true application security risks.” •Top10, WebGoat, Webscarab.

OWASP Top RC 1.Injection 2.Broken Authentication and Session Management 3.Cross-Site Scripting (XSS) 4.Insecure Direct Object References 5.Security Misconfiguration 6.Sensitive Data Exposure 7.Missing Function Level Access Control 8.Cross-Site Request Forgery (CSRF) 9.Using Known Vulnerable Components 10.Unvalidated Redirects and Forwards

1. Injection Door de client aangeleverde data wordt verwerkt door een interpreter die het ziet als een commando, een query of als data.

1. Injection - soorten •SQL injection >Toegang/wijzigen van de database >Voer commando’s uit op de server •LDAP injection >Omzeilen van authenticatie •Header injection >Aanpassen opdracht •…. Injection >Het misbruiken, waarvoor … is bedoeld

1. Injection - SQL Scherm: USERNAME:[PERSOONA] PASSWORD:[GEHEIM12] Achtergrond: Mag er toegang worden gegeven aan de gebruiker wanneer: de username is 'PERSOONA' en het wachtwoord is 'GEHEIM12';

1. Injection - SQL Scherm: USERNAME:[PERSOONA] PASSWORD:[Onbekend of 1=1] Achtergrond: Mag er toegang worden gegeven aan de gebruiker wanneer: de username is 'PERSOONA' en het wachtwoord is ‘Onbekend' of 1=1;

1. Injection – SQL - Drupal db_query( "SELECT * FROM {users} WHERE name= '$name' and pass= '$pass' )->fetchObject(); Payload: wachtwoord' or 1=1 --

1. Injection – SQL - Drupal Prepared statements! db_query( "SELECT * FROM {users} WHERE name= :name and pass= :pass", array(':name' => $name, ‘:pass' => $pass) )->fetchObject();

1. Injection – SQL - Drupal Dynamic queries: $query = db_select('users', 'u'); $query ->condition('u.name', $name, '=') ->condition('u.pass', $pass, '=') ->fields('u', array('mail', 'created')); $result = $query->execute();

1. Injection – SQL - Demo

1. Injection •1 plek is al genoeg. •Nieuwe technologieën, nieuwe kansen. •Een oude technologie waar dit mee zou kunnen?

1. Injection

2. Broken Authentication and Session Management •Session hijacking / fixation •Sessie timeout / logout •Session ids sterk genoeg, niet herbruikt •Sessie ids niet in url of logs •Standaard in Drupal 

3. Cross-Site Scripting (XSS) •Een kwaadwillend script wordt terug gegeven in de HTML van een vertrouwde site, waardoor het wordt uitgevoerd.

3. Cross-Site Scripting (XSS) •Aanval op de website >Een gebruiker stuurt kwaadaardige informatie (HTML/javascript) naar de website. >De website plaatst deze informatie in de webpagina. >De browser voert de informatie (HTML/javascript) uit.

3. Cross-Site Scripting (XSS)

Resultaat in pagina: Zoekresultaten U heeft gezocht op test 3 resultaten

3. XSS - aanval Kwaadaardige zoekterm: alert(document.cookie);

3. XSS - aanval Resultaat:

3. XSS - aanval Resultaat in pagina: Zoekresultaten U heeft gezocht op alert(document.cookie); 0 resultaten

3. XSS - aanval Kwaadaardige zoekterm: document.write(' ');

3. XSS - aanval Resultaat in pagina:

3. XSS - aanval •Meerdere soorten >Eenmalig >Terugkerend >DOM based •Misbruiken >Sessie token kapen >Frames >Formulieren >Malware >Acties uitvoeren

3. XSS - voorkomen Vertrouw NOOIT user-input. Output sanitation: Input wordt binnen gelaten, output wordt veilig gemaakt en verstuurd. KarakterEntiteit << >> "" '&apos;

3. XSS - Drupal

3. XSS - voorkomen echo t(‘Je favoriete kleur => De waarde van de token wordt door check_plain() heen gehaald. %Zelfde alleen wordt er default html tags toegevoegd. !Er wordt geen filtering toegepast.

3. XSS - demo

3. XSS – code voorbeeld • Bezichtingslo caties

4. Insecure Direct Object References Directe referentie naar een object •Views >published = Yes •Bestandssysteem >Publieke lokale bestanden aangeboden door de webserver. >Afgeschermde lokale bestanden aangeboden via Drupal.

5. Security Misconfiguration •Voorbeeld pagina’s, library voorbeelden, test bestanden, documentatie. •Ontwikkel modules. •Default password. •Error logging, systeem informatie. •Rechten, input filters. •Dev, acc en lokale omgevingen.

5. Security Misconfiguration

Security review

5. Security Misconfiguration •Ontwikkel modules >Backup/restore >Coder >Devel >Schema >Php Filter >PhpMyAdmin

6. Sensitive Data Exposure •Beveilig gevoelige informatie >Wachtwoord >Creditcard nummer >Medische informatie •Versleutelde opslag (md5&salt, encrypt) •Versleutelde verzending (SSL, secure login)

7. Missing Function Level Access Control Drupal authenticatie&authorisatie •hook_menu >'access arguments' => array('administer site configuration'), >'access callback' => 'user_edit_access', >'access arguments' => array(1), •user_acces >user_access('administer site configuration', $account)

7. Missing Function Level Access Control Url: /user/17/document/89/edit if (user_access(‘edit document’, $account)) { return TRUE; } if (user_access(‘edit document’, $account) && $document->uid == $account->uid) { return TRUE; }

7. Missing Function Level Access Control •Views contextuele filters >Toegangscontrole >All Demo!

8. Cross-Site Request Forgery (CSRF) Ingevuld formulier wordt vanaf een andere site naar de website gestuurd.

8. Cross-Site Request Forgery (CSRF) 1.Ingelogd als admin in Drupal 2.Bezoek een kwaadwillende site met CSRF exploit

8. Cross-Site Request Forgery (CSRF) •Oplossing: >Zeker weten dat de eigen site de oorsprong van de aanvraag is: Toevoegen van een uniek token aan een formulier.

8. Cross-Site Request Forgery (CSRF) Het formulier wordt alleen geaccepteerd als er een geldige token wordt meegestuurd. Data-mutaties altijd door een submit handler uitvoeren i.c.m. formulier.

8. Cross-Site Request Forgery (CSRF) •Bescherming tegen verkeerde data Ingevulde waarden worden alleen geaccepteerd als ze in het formulier gekozen konden worden.

9.Using Components with Known Vulnerabilities •Hou Drupal up to date!

9. Using Components with Known Vulnerabilities Automatische scans zoeken naar Known Vulnerabilities

9.Using Components with Known Vulnerabilities •Module gepatcht? >Voeg patch bestand toe in module directory. >Module niet verplaatsen naar patched directory!

10. Unvalidated Redirects and Forwards Lok een gebruiker via een vertrouwde site naar een kwaadwillende site. drupal_goto( $url, array('external' => FALSE) );

Security modules •Coder (code review)

Security modules •Security_review (controles)

Security modules •Encrypt (Beveiligde opslag) •Secure login (SSL) •PCI Update (no autocomplete) •Remove Generator (HTML Meta tag) •Security kit (XSS, XSRF, Clickjacking, SSL)