magento application security - de.meet- · pdf filesecurity testing i • phpsniffer •...
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 Principles
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.