Workshop security testen voor de functioneel tester

Slides:



Advertisements
Verwante presentaties
Het internet.
Advertisements

Optimale flexibiliteit in de verkrijging van royementsgegevens
Beste klant, Welkom op Modelovereenkomst.nl. Onder de knop ‘Documenten’ vind u al onze documenten geordend in mappen. Klik iedere keer op ‘pijltje naar.
Koppelen zonder Metis Martin van Muyen
1 Samenwerkend leren met Google Docs Werking en mogelijkheden van online tekstverwerken.
Stijn Hoppenbrouwers Software Engineering les 1 Algemene inleiding en Requirements Engineering.
Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Welk effect heeft uw Website? Gerard Duursma Online Marketeer linkedin.com/in/bonopoly.
Personalisatie van de Archis website Naam: Sing Hsu Student nr: Datum: 24 Juni 2004.
Drupal Security Awareness (2). Disclaimer De informatie in deze cursus is bedoeld om veiligere Drupal websites te bouwen, niet om andere Drupal websites.
Websites maken Waarom? Voor Wie? Hoe?
Uitleg installatie SAM Broadcaster v3 en v4 met de MySQL database
Databases via internet
F&J webcreation even voorstellen… we willen graag met u in gesprek, dus…
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
01 van 06 Portal4U Loe Hameleers Twan Saleming Klanten: Wat kost dat artikel? Wanneer wordt geleverd? Die werkt hier niet meer.. Die factuur ken ik niet.
Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
Welkom bij de cursus Handig met Internet! Handig met Internet -Wat doet u al met internet? -Wat wilt u nog meer met internet doen? -Hoe kunt u beter.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
INITIATIE DEFINITIESELECTIECONCIPIËREN INBEDDING IN ORGANISATIE ONDERHOUD Opdrachtgever/ Projectleider Eigenaar Architect en zijn team Stakeholders INITIATIEDEFINITIESELECTIECONCIPIËRENINBEDDINGONDERHOUD.
W ORD P RESS TECHNISCHE ACHTERGROND Kris Cardinaels 26 maart 2013.
Adobe formulieren : stand van zaken.
© BeSite B.V www.besite.nl Feit: In 2007 is 58% van de organisaties goed vindbaar op internet, terwijl in 2006 slechts 32% goed vindbaar.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Uitbouw expertisecentrum voor webgebaseerde testing pag. 1 Webbased testing wordt steeds belangrijker Nu werkt elke onderzoeker met eigen middelen: versnippering.
Download en installeer de gereedschappen
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
The vision at work Batteries included Ervaringen van een ISV op hosting avontuur Sven Middelkoop Corporate ICT Manager Exact Holding N.V.
User management voor ondernemingen en organisaties
Formuliervalidatie Met Javascript.
Workshop PHP Een productencatalogus Met database.
Introductie/Agenda 1 Cor Verbaas 1.Business Analist. 2.Werkzaam bij AEP sinds juni Verantwoordelijk voor de business applicaties binnen AEP. 4.MFGPro.
Workshop Informatievaardigheden
Workshop Informatievaardigheden Propedeuse FHSS Mediatheek TF.
Hoofdstuk 16 en 19 PHP en MYSQL
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Technische Architectuur
Opleiding CMS website Gent Bart Nelis Gent: #239/ docentengang Brussel: /naast bibliotheek
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.
Workshop nieuwe release Roy-data september Agenda Aanleiding en uitgangspunten nieuwe release Roy-data 1 x nieuwe zoekfunctionaliteit, 4 logistieke.
GGZ Nederland & Microsoft
Webmaster ToolsWebmaster Tools Google Webmaster Tools Gedetailleerde rapporten over uw pagina's in Google. Weet wat google van u vind! Ontdek.
Web 1.0 HTMLAfbeeldingen FlashHyperlinks CSS Participation AJAX Usability Design Ruby on Rails.
Het opbouwen van een data base
DIGITAL ANALYTICS TOOLS. 2 DIGITALE MEDIA - METEN.
TypeScript Orde in de chaos!. Over mij Patrick Schmidt (Microsoft Certified Trainer) Trainer bij 4DotNet Mede-oprichter en architect BesteProduct.nl.
7 Databases. SAMENGESTELDE VOORWAARDEN 1 Wat is het adres van Odile Goossens? SELECT adres, woonplaats FROM leden WHERE naam = ‘Goossens’ AND voornaam.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Kennismanagement & Sociale media
Iedereen is context driven!
Broodje Security 18 november Vroeger Security nog geen hot topic Inbraak bleef soms lang uit.
wordPress  Het meest flexibele CMS CMS= Content Management System.
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Hoeveel aandacht besteed jij aan security testing? 1 Security is always excessive until it's not enough.
– Software development fundamentals
Case: Nieuwe website Anne Heining (M&C
Praegus B.V.. .
Software Development fundamentals
Workshop Agile Performance Testing with mBrace Agile
SQL Les February 2019.
– Software development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Workshop security testen voor de functioneel tester Summerschool TestNet 10 juli 2013

Voorstellen Gert Jan Tamboer Sinds 1996 werkzaam in de testwereld (overheid, banken) Verantwoordelijk voor test bij RISA IT sinds 2008 en testmanager Ketentest migratie Friesland Bank bij Rabobank Apeldoorn Begin 40 Reizen (Zuidelijk Afrika) en nog 1001 dingen

Voorstellen Yorick Koster Meer dan 10 jaar ervaring in het vak Beveiligingslekken gevonden in applicaties van o.a. Microsoft, Oracle en Adobe Oprichter Securify Heerhugowaard Basketbal

Voorstellen Rogier Boon Meer dan 10 jaar ervaring Zowel infrastructuur als applicatie-onderzoek Bekend met beide kanten van de security-tafel Heiloo Motorrijden

Agenda Voorstellen Inleiding RISA IT Introductie Security Testen Case 1 XSS Pauze Case 2 SQLi Case 3 A & A Afsluiting

Inleiding Workshop security testen voor de functioneel tester, omdat: Security belangrijk is voor veel organisaties en er komt meer bewustwording bij projectleden Functioneel tester ook zelf kan testen op security Toegevoegde waarde voor de tester en dus voor de klant! Vragen wanneer je wil en vraag alles! Afsluiting: evaluatie en lessons learned

RISA IT - Highlights 5 Ml 2006 47 fte ICT

New Line Projectmanagement B.V. RISA IT - Organogram RISA IT B.V. New Line Mobile B.V. New Line Projectmanagement B.V.

RISA IT - Testen 12 FTE Ervaren consultants (TA, TC en TM) Detachering en projecten Test Factory Model (TFM), Agile testing, Testprocess Improvement, Product Risk Workshops, Quality Management

RISA IT - Partnerklanten Strategisch ICT outsourcen

Over Securify Als bedrijf een nieuwe speler op de markt De mensen hebben meer dan 8 jaar ervaring met de top-bedrijven in Nederland Sterk in web & mobile applicatie penetratietesten Werkt met ontwikkelaars samen

Introductie Security Testen Security als onderdeel van het proces

Techniek Waar te testen Gebruikerslaag Applicatielaag Netwerklaag Geautomatiseerd Met tooling Techniek

Malafide ongevalideerde (gebruikers) invoer Malafide input IT security wereld zit vol met vreemde termen Reflected/stored/(non-) persistent Cross Site Scripting Blind/2nd Order <insert tech> Injection Meestal is de oorzaak: Malafide ongevalideerde (gebruikers) invoer Het is een oud probleem, voor het eerst onderkend in de telecom

IN-band signaling Landlijnen gebruiken koperdraad om spraak te versturen Voor normale telefoonlijnen gaat dit goed Voor telefooncellen is dit moeilijker, hoe betaal je. De centrale moet weten of en hoeveel er is betaald Extra koper ($$$) Stemgeluid zit tussen de 60 to 7000 Hz Hogere frequenties voor stuurinformatie “in-band”

IN-band signaling Hier is Phreaking ontstaan: blue boxing Pionier is John “Captain Crunch” Draper Met het juiste geluid doe je alsof er is betaald Gevolg: een rat race tussen telcos & Phreakers Verschillende frequenties tov. verschillende kleuren ‘boxen’

IN-band signaling In-band signaling mixt gegevens (spraak) met opdrachten ($) In IT doen we dit vaak Mix input in output -> Cross Site Scripting Mix input in queries -> SQL injection Mix input in messages -> XML injection New tech? Nieuwe lekken! Security onderzoekers willen graag de kudos Bron blijft malafide invoer -> valideer!

Cross-site scripting Probleem - gebruikersinvoer wordt geïnterpreteerd als HTML of Javascript Vrijwel elke webapplicatie heeft last van XSS XSS is oud (pre 2000), maar nog steeds een groot probleem Via XSS kan je o.a.: Cookies van de browser stelen (SessionID) De website aanpassen (nep inlogscherm, phishing) Code injecteren om de browser uit te buiten (malware)

Cross-site scripting XSS voorbeeld

Cross-site scripting Hoi Alice, check deze site, dit is wat je zocht! e-mail / chat / facebook / etc. *l33tH@x0r91* Hoi Alice, check deze site, dit is wat je zocht! https://www.website.nl/logon.jsp?uid=“><script>alert(‘xss’)</script> encoded %1c%3e%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%18%78%73%73%19%29%3c%2f%73%63%72%69%70%74%3e

Cross-site scripting HTTP / HTTPS www.website.nl https://www.website.nl/logon.jsp?uid=“><script>alert(‘xss’)</script> Malafide code toegevoegd door the l33dH@x0r91

Cross-site scripting HTTP / HTTPS www.website.nl De code is geïnjecteerd in de security-context van website.nl en wordt uitgevoerd in de browser van Alice.

Wifi: Securify Wifi: Securify2 http://mijn.sbank.nl Onveilige applicatie Wifi: Securify Wifi: Securify2 http://mijn.sbank.nl

Cross-site scripting Ga naar de test-applicatie, Opdracht: Ga naar de test-applicatie, vind zo veel mogelijk XSS Houd bij hoe je de XSS hebt getest

Cross-site scripting Bevindingen Gevonden testpatronen: "><h1>text</h1> <style>body{ visibility: hidden;}</style> "><willekeurige tag>..... "><iframe>

Output encoding Cross-site scripting Frameworks to the rescue! Er is veel werk verricht op het gebied van context-aware output encoding Google, Velocity, OWASP ESAPI, AntiSamy (filter)

Cross-site scripting Accepteer het goede (whitelist) Gegevens zouden moeten (OWASP/M$): Sterk getyped Lengte gecontroleerd Bereik gecontroleerd (if numeric) Syntax/grammar voor gebruik gecontroleerd (format) https://www.owasp.org/index.php/Data_Validation

Cross-site scripting Valideer altijd de invoer Invoer is niet alleen gebruikersinvoer Vertrouw ook de directe omgeving niet (databases) Validatie is ook belangrijk bij detectie Zonder validatie weet je niet of je aangevallen wordt Denk ook aan minder voor de hand liggende invoer zoals headers, cookies

Pauze

Case 2 SQLi Probleem: De vragen naar de database kunnen worden gemanipuleerd Komt veel voor. Oorzaak: gemak/onwetendheid van de programmeur Directe toegang tot de bron: Uitlekken van gegevens Manipuleren van gegevens Manipuleren meta-gegevens zoals applicatie-rechten

Case 2 SQLi SQL; een gestandaardiseerde taal om database te bevragen Een database bestaat uit 1 of meer tabellen Via keywords wordt een bewerking uitgevoerd Voorbeeld: doe mij alle informatie van personen met achternaam “Bakker” Voornaam Achternaam E-mailadres Henk de Vries h.de.vries@rn.rabobank.nl Jaap Bakker j.bakker@rn.rabobank.nl Marlies Jansen m.jansen@rn.rabobank.nl

Case 2 SQLi SELECT * FROM personen WHERE Achternaam = 'Bakker'; Alles Zoekcriteria Tabelnaam Veldnaam Data (zoekcriteria) wordt gemixt met het commando (SQL) Wat als je zoekt op O'Reilly? Of ' OR '1' = '1 ? Voornaam Achternaam E-mailadres Henk de Vries h.de.vries@rn.rabobank.nl Jaap Bakker j.bakker@rn.rabobank.nl Marlies Jansen m.jansen@rn.rabobank.nl

Case 2 SQLi SELECT * FROM personen WHERE Achternaam = '' OR '1' = '1'; Geef alles terug waar de Achternaam leeg is... OF wanneer 1 gelijk is aan 1

Case 2 SQLi

Case 2 SQLi Veel voorkomende zwakke plek. (Anonymous, Lulzsec) Mogelijkheden afhankelijk van: Invoervalidatie rechten in de database Merk database

Houd bij hoe je de SQLi hebt getest Case 2 SQLi Opdracht: Ga naar de test-applicatie vind zo veel mogelijk SQL-injection Houd bij hoe je de SQLi hebt getest http://mijn.sbank.nl/logout.action

Case 2 SQLi Bevindingen Gevonden testpatronen: ' OR 1=1 --

Case 2 SQLi Scheiden gegevens en commando’s Prepared/Parameterized statements Escapen/Encoden String selectUserSQL = "SELECT * FROM users" + "WHERE username = ? AND pass = ?"; PreparedStatement prepS = dbConnection.prepareStatement(selectUserSQL);   prepS.setString(1, "rogier"); prepS.setString(2, "geheim"); ResultSet result = prepS.executeQuery(); $user = mysql_real_escape_string($user); $pwd = mysql_real_escape_string($pwd); $sql = "SELECT * FROM users WHERE username='" . $user . "' AND pass='" . $pwd . "'" mysql_query($sql);

Case 2 SQLi Ook hier: Valideer altijd de invoer Invoer is niet alleen gebruikersinvoer Vertrouw ook de directe omgeving niet (databases) Validatie is ook belangrijk bij detectie Zonder validatie weet je niet of je aangevallen wordt Denk ook aan minder voor de hand liggende invoer zoals headers, cookies

Case 3 A & A Authenticatie: het proces van het vaststellen van een identiteit Autorisatie: het verlenen van een recht (machtiging)

Case 3 A & A Functieautorisatie: gebruiker mag een actie uitvoeren Dataautorisatie: gebruiker mag beperkte set (zijn eigen) gegevens zien

Case 3 A & A Het web: vroeger Request: get homepage Reply: under construction Een toestand (state) is er niet

Case 3 A & A Het web: nu Request: banksaldo Reply: € 12,50 Hoe zit het met de toestand? (ingelogd?)

Case 3 A & A Bij elk request moet alles meegegeven worden Denk aan: Sessie-cookie Nummers in de URL Referenties als hidden field in een formulier Authenticatie tokens

Case 3 A & A Geen vaste standaard, veel variatie. http://www.rijksoverheid.nl/bestanden/documenten-en-publicaties/begrotingen/2012/09/18/miljoenennota-2013/miljoenennota-2013.pdf https://www.google.com/calendar/render?tab=mc&pli=1&gsessionid=-0vNWdCuyDTopebqyfbBTw Geen vaste standaard, veel variatie.

Case 3 A & A

Case 3 A & A Opdracht: Ga naar de test-applicatie Vind zoveel mogelijk manieren om A & A heen Houd bij welke tests je hebt uitgevoerd http://mijn.sbank.nl/logout.action

Case 3 A & A Bevindingen Gevonden testpatronen: getal verlagen/ophogen url kopieren, uitloggen, plakken in de adresbalk http://mijn.sbank.nl/?account_num=401234632

Afsluiting Lessons Learned Evaluatie Vragen

Dank U