SlideShare ist ein Scribd-Unternehmen logo
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?

Weitere ähnliche Inhalte

Andere mochten auch

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
adlerhotel
 
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ñosdec-admin3
 
#digilern - Ergebnisse des #mmc13
#digilern - Ergebnisse des #mmc13#digilern - Ergebnisse des #mmc13
#digilern - Ergebnisse des #mmc13
Monika E. König
 
JSN ImageShow Konfigurationshandbuch
JSN ImageShow KonfigurationshandbuchJSN ImageShow Konfigurationshandbuch
JSN ImageShow Konfigurationshandbuch
JoomlaShine
 
soziales semantisches web
soziales semantisches websoziales semantisches web
soziales semantisches web
_veronika_
 
I-views semantik-sharepoint
I-views semantik-sharepointI-views semantik-sharepoint
I-views semantik-sharepoint
intelligent-views-gmbh
 
Nur 2 Minuten
Nur 2 MinutenNur 2 Minuten
Nur 2 Minutengrafic02
 
Freiexemplar 2012-1
Freiexemplar 2012-1Freiexemplar 2012-1
Freiexemplar 2012-1
Torsten Neumann
 
BerlinStartupInsights G-Forum 2013
BerlinStartupInsights G-Forum 2013BerlinStartupInsights G-Forum 2013
BerlinStartupInsights G-Forum 2013
berlinstartupinsights
 
The Jasna Gora wunders
The Jasna Gora wundersThe Jasna Gora wunders
The Jasna Gora wundersErasmus+
 
Optimierung balkonkante
Optimierung balkonkanteOptimierung balkonkante
Optimierung balkonkante
Vielfalter Werbeagentur
 
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
Marc Zander
 
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
Open Knowledge Austria
 
Social War for Talents
Social War for TalentsSocial War for Talents
Social War for Talents
Ralph Hutter
 

Andere mochten auch (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
 

Mehr von stk_jj

UX in the WordPress backend
UX in the WordPress backendUX in the WordPress backend
UX in the WordPress backend
stk_jj
 
Page Performance
Page PerformancePage Performance
Page Performance
stk_jj
 
The Business of WordPress
The Business of WordPressThe Business of WordPress
The Business of WordPress
stk_jj
 
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
stk_jj
 
WordPress Security 101 - WordCamp Nairobi 2019
WordPress Security 101 -  WordCamp Nairobi 2019WordPress Security 101 -  WordCamp Nairobi 2019
WordPress Security 101 - WordCamp Nairobi 2019
stk_jj
 
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!
stk_jj
 
Scaling WordPress - WP on AWS
Scaling WordPress - WP on AWSScaling WordPress - WP on AWS
Scaling WordPress - WP on AWS
stk_jj
 
WordPress Security
WordPress SecurityWordPress Security
WordPress Security
stk_jj
 
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
stk_jj
 
Cms security
Cms securityCms security
Cms security
stk_jj
 
2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress
stk_jj
 
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
stk_jj
 

Mehr von 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