35
Magento Application Security Anna Völkl / @rescueAnn

Magento Application Security [DE]

Embed Size (px)

Citation preview

Page 1: Magento Application Security [DE]

Magento Application Security

Anna Völkl / @rescueAnn

Page 2: Magento Application Security [DE]
Page 3: Magento Application Security [DE]

Security-TechnologieDepartment of Defense Computer Security Initiative

Page 4: Magento Application Security [DE]

Magento Anwendungsicherheit

Logins & PasswörterAdmin Backend geschütztSSL installiert

Page 5: Magento Application Security [DE]

Magento Anwendungsicherheit

Logins & PasswörterAdmin Backend geschütztSSL installiert

...und noch viel mehr!

Page 6: Magento Application Security [DE]

MagentoAnwendungssicherheit

Software-Lebenszyklus

Webserver

Datenbank

BenutzerVersionierung &

Deployment

FirewallDateirechte

Web-ApplicationFirewall

Anforderungen

Updates &Patches

LoginPasswörter

ProgrammierungSoftware-Design

Außerbetriebnahme

Konfigurations-dateien

Extensions/3rd Party

Page 7: Magento Application Security [DE]

http://blogs.technet.com/b/rhalbheer/archive/2011/01/14/real-physical-security.aspx

Page 8: Magento Application Security [DE]
Page 9: Magento Application Security [DE]

Unsichere Software

• Keine Zeit

• Kein Wissen

• Keine Prioritäten– Performance

– SEO

– Neue Funktionen

Page 10: Magento Application Security [DE]

Potentielle Angreifer

• (Organisierte) Kriminalität

• Defacer

• Script-Kiddies

• Verärgerte Mitarbeiter, Entwickler

• Konkurrenz

• Der Kunde/Shopbetreiber selbst

Page 11: Magento Application Security [DE]

Interesse?!

• Zahlungsdaten

• Kundendaten

• Eigener Vorteil

• Mitbewerb schädigen

Page 12: Magento Application Security [DE]

Die häufigsten Risiken von Web-Anwendungen

• A1: Injection

• A2: Fehler in Authentifizierung und Session Management

• A3: Cross-Site Scripting (XSS)

• A4: Unsichere direkte Objektreferenzen

• A5: Sicherheitsrelevante Fehlkonfiguration

OWASP Top 10, 2013

Page 13: Magento Application Security [DE]
Page 14: Magento Application Security [DE]

Secure Coding Principles

Page 15: Magento Application Security [DE]

Secure Coding PrinciplesAngriffsfläche verkleinern

Jedes hinzugefügte Feature erhöht das Sicherheitsrisiko

Page 16: Magento Application Security [DE]

Secure Coding PrinciplesSichere Grundkonfiguration

Sichere Konfiguration „Out of the box“

Reduktion (wenn erlaubt) durch User/Kunde

Page 17: Magento Application Security [DE]

Secure Coding PrinciplesLeast Privilege

Aktionen werden mit den geringsten erforderlichen Rechten durchgeführt

(User-Rechte, Dateiberechtigungen,...)

Page 18: Magento Application Security [DE]

Secure Coding PrinciplesFail securely

Fail secure vs. Fail safe

Die Kunst des Fails

Page 19: Magento Application Security [DE]

Secure Coding PrinciplesVertraue keinen Services

3rd Party

Page 20: Magento Application Security [DE]

Secure Coding PrinciplesVertraue keinen Eingaben

Überprüfe das Erwartete

Erwarte das Unerwartete

Page 21: Magento Application Security [DE]

Secure Coding PrinciplesVertraue keinen Eingaben

Längster Ortsname (einzelnes Wort)

Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakit

anatahu (Neuseeland, 85 letters)

Page 22: Magento Application Security [DE]

Secure Coding PrinciplesVertraue keinen Eingaben

Längster Ortsname (mehrere Wörter)

Krung Thep Mahanakhon Amon Rattanakosin Mahinthara Yuthaya Mahadilok

Phop Noppharat Ratchathani Burirom Udomratchaniwet Mahasathan Amon Piman

Awatan Sathit Sakkathattiya Witsanukam Prasit (Bangkok, 176 letters)

Page 23: Magento Application Security [DE]

Secure Coding PrinciplesSecurity by Obscurity

Sicherheit durch Unwissenheit?

Page 24: Magento Application Security [DE]

Secure Coding PrinciplesKISS

Keep Security simple

Einfachheit vs. Komplexität

Page 25: Magento Application Security [DE]

Secure Coding PrinciplesSecurity-Fehler richtig beheben

Die Wurzel des Problems verstehen

Weitere Problemstellen identifzieren

Tests entwickeln

Page 26: Magento Application Security [DE]

...und jetzt?

Page 27: Magento Application Security [DE]

Anforderungen

Funktionale & nicht funktionale Anforderungen

Page 28: Magento Application Security [DE]

Secure Coding I

• Neugierig sein - alles hinterfragen

• Secure Coding Guidelines– OWASP Secure Coding Practices

Page 29: Magento Application Security [DE]

Secure Coding II

• Validatoren für Inputs– Client

– Server

• Erwarteter Input: Whitelist vs. Blacklist Filter

• Aktion erlaubt?– User: Zugriff auf Ressource?

– Admin: Mage::getSingleton('admin/session')->isAllowed('admin/sales/order/actions/create');

Page 30: Magento Application Security [DE]

Security Testing I

• PHPSniffer

• Magento ECG Coding Standard

• Dependencies:– Sensio Labs: check composer.lock

Page 31: Magento Application Security [DE]
Page 32: Magento Application Security [DE]

Kein Zugriff auf

• .git, .git/config• composer.lock• Standard /admin Pfad• /downloader• app/etc/local.xml• Logfiles• phpinfo.php• Datenbank-Dumps: livedb.sql.gz

Page 33: Magento Application Security [DE]

Laufender Betrieb

• Magento– Updates

– Security Patches

• Webserver, PHP,...– Aktuelle Versionen

Page 34: Magento Application Security [DE]
Page 35: Magento Application Security [DE]

Hinterlasst euren Code jedesmal ein bisschen sicherer (besser), als ihr ihn

vorgefunden habt.