SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Sicherheit ab Werk
die Bordmittel von WordPress
für sichere Plugins und Themes
ad personam
• Stefan Kremer
• freiberuflicher Systemberater

Mac,Web, CTI
• 10 Jahre WordPress
• Contributor
• Inhaber von AdminPress
@WPAberSicher
adminpress
stefan@adminpress.de
Angriffsvektoren
Cross-Site-Scripting (XSS)
bezeichnet das Ausnutzen einer
Computersicherheitslücke in
Webanwendungen, indem Informationen
aus einem Kontext, in dem sie nicht
vertrauenswürdig sind, in einen anderen
Kontext eingefügt werden, in dem sie als
vertrauenswürdig eingestuft werden. Aus
diesem vertrauenswürdigen Kontext kann
dann ein Angriff gestartet werden.
SQL Injections
bezeichnet das Ausnutzen einer
Sicherheitslücke in Zusammenhang mit
SQL-Datenbanken, die durch mangelnde
Maskierung oder Überprüfung von
Metazeichen in Benutzereingaben entsteht.
Der Angreifer versucht dabei, über die
Anwendung, die den Zugriff auf die
Datenbank bereitstellt, eigene
Datenbankbefehle einzuschleusen.
All data is guilty
until proved innocent
Trefft keine Annahmen
Vertraut keinen Daten
Lehnt Euch nicht zurück
Datenüberprüfung

(Validation)
• Positivliste (Whitelisting)
• nur definierte Werte werden akzeptiert
• Tauglichkeit (Qualifying)
• PHP Funktionen
• WordPress Funktionen
PHP
• is_bool()
• is_float()
• filter_input()
• filter_var()
• …
• is_email()
• wp_validate_boolean()
• wp_kses_allowed_html()
• …
WP
"In diesem Augenblick ist alles perfekt.
Die Weichheit des Lichts, dieser feine
Duft, die ruhige Atmosphäre der Stadt. Sie
atmet tief ein, und das Leben erscheint ihr so
einfach, so klar, dass sie eine Anwandlung
von Liebe überkommt und das Verlangen der
gesamten Menschheit zu helfen."
/wp-includes/kses.php
/wp-includes/formatting.php

IST SICHERHEITSLYRIK
WordPress Funktionen
absint() sanitize_post() esc_attr()
sanitize_email() sanitize_text_field() esc_attr__()
sanitize_file_name() sanitize_title() esc_attr_e()
sanitize_html_class() sanitize_title_for_query() esc_js()
sanitize_key() sanitize_title_with_dashes() esc_sql()
sanitize_meta() sanitize_user() esc_textarea()
sanitize_mime_type() esc_html() esc_url()
sanitize_option() esc_html__() esc_url_raw()
sanitize_sql_orderby() esc_html_e() urlencode()
Datenaufbereitung

(Sanitization)
• to sanitize = desinfizieren, reinigen, …
• Validation: 

Daten sollen bestimmte Merkmale aufweisen
• Sanitization: 

Daten werden von unerwünschten Inhalten befreit
Validate Input
Sanitize Output
CRSF
ist ein Angriff auf ein Computersystem, bei
dem der Angreifer eine Transaktion in
einer Webanwendung durchführt. Einem
Opfers, das bei einer Webanwendung
bereits angemeldet sein muss, wird ohne
dessen Wissen im Webbrowser ein
arglistiger HTTP-Request (‚Anforderung‘),
der die vom Angreifer gewünschte Aktion
ausführt, untergeschoben.
Nonces
• Numbers used once = Einmalpasswort
• keine dogmatische, reine Lehre
• alphanumerisch ≠ numerisch
• 12 h Lebensdauer ≠ einmalig
• Prüfung der Intention
• Erzeugung des nonces bei Aufruf Formular
• Überprüfung des nonces bei Übermittlung
Qualitätssicherung

Theme Review
required
recommended
"ottomatisch"
Qualitätssicherung

PlugIn Review
😱https://vip.wordpress.com/documentation/code-review-what-we-look-for/
… Security Team
• http://www.joomla-security.de/das-team.html
• https://security.drupal.org/team-members
• http://typo3.org/teams/security/members/
• https://c-c-a.org/aktuelles/news/details/security-
mailingliste
• https://docs.djangoproject.com/en/1.8/internals/roles/
#security-team-list
• https://plone.org/team/SecurityTeam
–Andrew Nacin, WordPress Lead Developer
in a presentation

‘WordPress.org & Optimizing Security for your WordPress sites’ 

June 2013
„The WordPress security team is made up of 25
experts including lead developers and security
researchers — about half are employees of
Automattic, and a number work in the web security
field. We consult with well-known and trusted
security researchers and hosting companies.“
WordPress Security Team
Stefan Kremer
https://adminpress.de
FRAGEN?

Más contenido relacionado

Destacado

Alegremos nuestro jardín de niños
Alegremos nuestro jardín de niñosAlegremos nuestro jardín de niños
Alegremos nuestro jardín de niños
dec-admin3
 
Nur 2 Minuten
Nur 2 MinutenNur 2 Minuten
Nur 2 Minuten
grafic02
 
The Jasna Gora wunders
The Jasna Gora wundersThe Jasna Gora wunders
The Jasna Gora wunders
Erasmus+
 

Destacado (18)

Zadanie domowe
Zadanie domoweZadanie domowe
Zadanie domowe
 
Wellness & Badebereich im Hotel Schwarzer Adler Nauders am Reschenpass
Wellness & Badebereich im Hotel Schwarzer Adler Nauders am ReschenpassWellness & Badebereich im Hotel Schwarzer Adler Nauders am Reschenpass
Wellness & Badebereich im Hotel Schwarzer Adler Nauders am Reschenpass
 
Alegremos nuestro jardín de niños
Alegremos nuestro jardín de niñosAlegremos nuestro jardín de niños
Alegremos nuestro jardín de niños
 
Михаель Хармс
Михаель ХармсМихаель Хармс
Михаель Хармс
 
#digilern - Ergebnisse des #mmc13
#digilern - Ergebnisse des #mmc13#digilern - Ergebnisse des #mmc13
#digilern - Ergebnisse des #mmc13
 
JSN ImageShow Konfigurationshandbuch
JSN ImageShow KonfigurationshandbuchJSN ImageShow Konfigurationshandbuch
JSN ImageShow Konfigurationshandbuch
 
soziales semantisches web
soziales semantisches websoziales semantisches web
soziales semantisches web
 
I-views semantik-sharepoint
I-views semantik-sharepointI-views semantik-sharepoint
I-views semantik-sharepoint
 
Nur 2 Minuten
Nur 2 MinutenNur 2 Minuten
Nur 2 Minuten
 
Freiexemplar 2012-1
Freiexemplar 2012-1Freiexemplar 2012-1
Freiexemplar 2012-1
 
BerlinStartupInsights G-Forum 2013
BerlinStartupInsights G-Forum 2013BerlinStartupInsights G-Forum 2013
BerlinStartupInsights G-Forum 2013
 
The Jasna Gora wunders
The Jasna Gora wundersThe Jasna Gora wunders
The Jasna Gora wunders
 
Optimierung balkonkante
Optimierung balkonkanteOptimierung balkonkante
Optimierung balkonkante
 
Urlaub extrem
Urlaub extremUrlaub extrem
Urlaub extrem
 
Chancen für den Mittelstand in Afrika
Chancen für den Mittelstand in AfrikaChancen für den Mittelstand in Afrika
Chancen für den Mittelstand in Afrika
 
OKF-AT MeetUp: Open Transport Data in Linz
OKF-AT MeetUp: Open Transport Data in LinzOKF-AT MeetUp: Open Transport Data in Linz
OKF-AT MeetUp: Open Transport Data in Linz
 
Social War for Talents
Social War for TalentsSocial War for Talents
Social War for Talents
 
Harness Backplate Kauftipps
Harness Backplate KauftippsHarness Backplate Kauftipps
Harness Backplate Kauftipps
 

Más de stk_jj

Más de stk_jj (12)

UX in the WordPress backend
UX in the WordPress backendUX in the WordPress backend
UX in the WordPress backend
 
Page Performance
Page PerformancePage Performance
Page Performance
 
The Business of WordPress
The Business of WordPressThe Business of WordPress
The Business of WordPress
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020
 
WordPress Security 101 - WordCamp Nairobi 2019
WordPress Security 101 -  WordCamp Nairobi 2019WordPress Security 101 -  WordCamp Nairobi 2019
WordPress Security 101 - WordCamp Nairobi 2019
 
Security? hey, it's only word press!
Security? hey, it's only word press!Security? hey, it's only word press!
Security? hey, it's only word press!
 
Scaling WordPress - WP on AWS
Scaling WordPress - WP on AWSScaling WordPress - WP on AWS
Scaling WordPress - WP on AWS
 
WordPress Security
WordPress SecurityWordPress Security
WordPress Security
 
WordPress Security - WP Meetup München 24.9.2015
WordPress Security - WP Meetup München 24.9.2015WordPress Security - WP Meetup München 24.9.2015
WordPress Security - WP Meetup München 24.9.2015
 
Cms security
Cms securityCms security
Cms security
 
2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress
 
We are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 BerlinWe are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 Berlin
 

WordPress Sicherheit ab Werk

  • 1. Sicherheit ab Werk die Bordmittel von WordPress für sichere Plugins und Themes
  • 2. ad personam • Stefan Kremer • freiberuflicher Systemberater
 Mac,Web, CTI • 10 Jahre WordPress • Contributor • Inhaber von AdminPress @WPAberSicher adminpress stefan@adminpress.de
  • 4. Cross-Site-Scripting (XSS) bezeichnet das Ausnutzen einer Computersicherheitslücke in Webanwendungen, indem Informationen aus einem Kontext, in dem sie nicht vertrauenswürdig sind, in einen anderen Kontext eingefügt werden, in dem sie als vertrauenswürdig eingestuft werden. Aus diesem vertrauenswürdigen Kontext kann dann ein Angriff gestartet werden.
  • 5. SQL Injections bezeichnet das Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken, die durch mangelnde Maskierung oder Überprüfung von Metazeichen in Benutzereingaben entsteht. Der Angreifer versucht dabei, über die Anwendung, die den Zugriff auf die Datenbank bereitstellt, eigene Datenbankbefehle einzuschleusen.
  • 6. All data is guilty until proved innocent
  • 7. Trefft keine Annahmen Vertraut keinen Daten Lehnt Euch nicht zurück
  • 8. Datenüberprüfung
 (Validation) • Positivliste (Whitelisting) • nur definierte Werte werden akzeptiert • Tauglichkeit (Qualifying) • PHP Funktionen • WordPress Funktionen
  • 9. PHP • is_bool() • is_float() • filter_input() • filter_var() • … • is_email() • wp_validate_boolean() • wp_kses_allowed_html() • … WP
  • 10. "In diesem Augenblick ist alles perfekt. Die Weichheit des Lichts, dieser feine Duft, die ruhige Atmosphäre der Stadt. Sie atmet tief ein, und das Leben erscheint ihr so einfach, so klar, dass sie eine Anwandlung von Liebe überkommt und das Verlangen der gesamten Menschheit zu helfen." /wp-includes/kses.php
  • 12. WordPress Funktionen absint() sanitize_post() esc_attr() sanitize_email() sanitize_text_field() esc_attr__() sanitize_file_name() sanitize_title() esc_attr_e() sanitize_html_class() sanitize_title_for_query() esc_js() sanitize_key() sanitize_title_with_dashes() esc_sql() sanitize_meta() sanitize_user() esc_textarea() sanitize_mime_type() esc_html() esc_url() sanitize_option() esc_html__() esc_url_raw() sanitize_sql_orderby() esc_html_e() urlencode()
  • 13. Datenaufbereitung
 (Sanitization) • to sanitize = desinfizieren, reinigen, … • Validation: 
 Daten sollen bestimmte Merkmale aufweisen • Sanitization: 
 Daten werden von unerwünschten Inhalten befreit
  • 15. CRSF ist ein Angriff auf ein Computersystem, bei dem der Angreifer eine Transaktion in einer Webanwendung durchführt. Einem Opfers, das bei einer Webanwendung bereits angemeldet sein muss, wird ohne dessen Wissen im Webbrowser ein arglistiger HTTP-Request (‚Anforderung‘), der die vom Angreifer gewünschte Aktion ausführt, untergeschoben.
  • 16. Nonces • Numbers used once = Einmalpasswort • keine dogmatische, reine Lehre • alphanumerisch ≠ numerisch • 12 h Lebensdauer ≠ einmalig • Prüfung der Intention • Erzeugung des nonces bei Aufruf Formular • Überprüfung des nonces bei Übermittlung
  • 19. … Security Team • http://www.joomla-security.de/das-team.html • https://security.drupal.org/team-members • http://typo3.org/teams/security/members/ • https://c-c-a.org/aktuelles/news/details/security- mailingliste • https://docs.djangoproject.com/en/1.8/internals/roles/ #security-team-list • https://plone.org/team/SecurityTeam
  • 20. –Andrew Nacin, WordPress Lead Developer in a presentation
 ‘WordPress.org & Optimizing Security for your WordPress sites’ 
 June 2013 „The WordPress security team is made up of 25 experts including lead developers and security researchers — about half are employees of Automattic, and a number work in the web security field. We consult with well-known and trusted security researchers and hosting companies.“ WordPress Security Team