Magento Application Security - de.meet- · PDF fileSecurity Testing I • PHPSniffer •...

Post on 06-Feb-2018

224 views 4 download

transcript

Magento Application Security

Anna Völkl / @rescueAnn

Anna Völkl

• @rescueAnn

• Magento Certified Developer

• PHP seit 2004

• Magento seit 2011

• IT & Telekommunikation (BSc),IT-Security (MSc)

• LimeSoda (Wien, AT)

Security-TechnologieDepartment of Defense Computer Security InitiativeQuelle: http://csrc.nist.gov/publications/history/nissc/1980-2nd-seminar-proceedings.pdf (Seite 40)

Security-TechnologieDepartment of Defense Computer Security InitiativeQuelle: http://csrc.nist.gov/publications/history/nissc/1980-2nd-seminar-proceedings.pdf (Seite 40)

Magento Anwendungsicherheit

Logins & Passwörter

Admin Backend geschützt

SSL installiert

Magento Anwendungsicherheit

Logins & Passwörter

Admin Backend geschützt

SSL installiert

...und noch viel mehr!

MagentoAnwendungssicherheit

Software-Lebenszyklus

Webserver

Datenbank

BenutzerVersionierung &

Deployment

FirewallDateirechte

Web-ApplicationFirewall

Anforderungen

Updates &Patches

LoginPasswörter

ProgrammierungSoftware-Design

Außerbetriebnahme

Konfigurations-dateien

Extensions/3rd Party

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

● VertraulichkeitVertraulichkeit● IntegritätIntegrität● VerfügbarkeitVerfügbarkeit

Sicherheit

Unsichere Software

• Keine Zeit

• Kein Wissen

• Keine Prioritäten– Performance– SEO– Neue Funktionen

Potentielle Angreifer

• (Organisierte) Kriminalität

• Defacer

• Script-Kiddies

• Verärgerte Mitarbeiter, Entwickler

• Konkurrenz

• Der Kunde/Shopbetreiber selbst

Interesse?!

• Zahlungsdaten

• Kundendaten

• Eigener Vorteil

• Mitbewerb schädigen

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

Sicherheitsrisiken für Web-AnwendungenOWASP Top 10 2013,

Quelle: https://www.owasp.org/images/4/42/OWASP_Top_10_2013_DE_Version_1_0.pdf, angepasste Version

Secure Coding PrinciplesAngriffsfläche verkleinern

Jedes hinzugefügte Feature erhöht das Sicherheitsrisiko

Secure Coding PrinciplesSichere Grundkonfiguration

Sichere Konfiguration „Out of the box“

Reduktion (wenn erlaubt) durch User/Kunde

Secure Coding PrinciplesLeast Privilege

Aktionen werden mit den geringsten erforderlichen Rechten durchgeführt

(User-Rechte, Dateiberechtigungen,...)

Secure Coding PrinciplesFail securely

Fail secure vs. Fail safe

Die Kunst des Fails

Secure Coding PrinciplesVertraue keinen Services

3rd Party

Secure Coding PrinciplesVertraue keinen Eingaben

Überprüfe das Erwartete

Erwarte das Unerwartete

Secure Coding PrinciplesVertraue keinen Eingaben

Längster Ortsname (einzelnes Wort)

Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakit

anatahu (Neuseeland, 85 letters)

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)

Secure Coding PrinciplesSecurity by Obscurity

Sicherheit durch Unwissenheit?

Secure Coding PrinciplesKISS

Keep Security simple

Einfachheit vs. Komplexität

Secure Coding PrinciplesSecurity-Fehler richtig beheben

Die Wurzel des Problems verstehen

Weitere Problemstellen identifzieren

Tests entwickeln

...und jetzt?

Anforderungen

Funktionale & nicht funktionale Anforderungen

Secure Coding I

• Neugierig sein - alles hinterfragen

• Secure Coding Guidelines– OWASP Secure Coding Practices

Quelle: https://www.owasp.org/images/0/08/OWASP_SCP_Quick_Reference_Guide_v2.pdf

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');

Security Testing I

• PHPSniffer

• Magento ECG Coding Standard

• Dependencies:– Sensio Labs: check composer.lock

Security Testing II

• Scrutinizer CI

• Code Climate

• SensioLabsInsight

Screenshot: https://codeclimate.com/github/magento/magento2/issues/categories/security

Scr

eens

hot:

http

s://

insi

ght

.se

nsio

lab

s.co

m/p

roje

cts/

8e8

f25b

a-d

5d0-

4a51

-852

7-7

b0a

911a

88e

2/a

naly

ses/

4

Kein Zugriff auf

• .git, .git/config

• composer.lock

• Standard /admin Pfad

• /downloader

• app/etc/local.xml

• Logfiles

• phpinfo.php• Datenbank-Dumps: livedb.sql.gz

Laufender Betrieb

• Magento– Updates– Security Patches

• Webserver, PHP,...– Aktuelle Versionen

Aus aktuellem Anlass

• SUPEE-5344

• Magento Community Edition 1.9.1.1 & Enterprise Edition 1.14.2 beinhalten SUPEE-5344

• Magento Shoplift Bug Tester: https://shoplift.byte.nl

• Ankündigung: Magento Alert Registry

Bild: https://shoplift.byte.nl/

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

vorgefunden habt.