Secure development environment @ Meet Magento Croatia 2017

48
Secure development workflow Best practises and tools to improve the overall security of your Magento shops Anna Völkl / @rescueAnn Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Transcript of Secure development environment @ Meet Magento Croatia 2017

Page 1: Secure development environment @ Meet Magento Croatia 2017

Secure development workflowBest practises and tools to improve the overall security of your Magento shopsAnna Völkl / @rescueAnn

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 2: Secure development environment @ Meet Magento Croatia 2017

Anna Völkl! Lead Magento Developer! E-CONOMIX! Wels, Linz / Austria@rescueAnn

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 3: Secure development environment @ Meet Magento Croatia 2017

http://bouk.co/blog/hacking-developers/http://extractdata.club

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 4: Secure development environment @ Meet Magento Croatia 2017

Who is responsible for security?"I didn't know it had to be secure..."

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 5: Secure development environment @ Meet Magento Croatia 2017

Source: Zend - The State of PHP in 2017Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 6: Secure development environment @ Meet Magento Croatia 2017

Magento Security Best Practises! https://magento.com/security! Sign up for Magento security alerts

• Be prepared

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 7: Secure development environment @ Meet Magento Croatia 2017

Magento Security Best Practises! https://magento.com/security! Sign up for Magento security alerts

• Be prepared• Patch early &• Use magereport.com

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 8: Secure development environment @ Meet Magento Croatia 2017

Magento Security Best Practises! https://magento.com/security! Sign up for Magento security alerts

• Be prepared• Patch early• Use magereport.com• Monitor for Signs of Attack

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 9: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IPasswords & Login!

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 10: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IPasswords & Login• EW_NativePasswords

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 11: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IPasswords & Login• EW_NativePasswords• MageHackDay_TwoFactorAuth

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 12: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IPasswords & Login• EW_NativePasswords• MageHackDay_TwoFactorAuth• BranchLabs_AdminPasswordStrength

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 13: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IPasswords & Login• EW_NativePasswords• MageHackDay_TwoFactorAuth• BranchLabs_AdminPasswordStrength• Shopliebe_PasswordStrength

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 14: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IPasswords & Login• EW_NativePasswords• MageHackDay_TwoFactorAuth• BranchLabs_AdminPasswordStrength• Shopliebe_PasswordStrength• Ikonoshirt_Pbkdf2

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 15: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IIConfiguration & Monitoring!

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 16: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IIConfiguration & Monitoring• Ikonoshirt_StrictTransportSecurity

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 17: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IIConfiguration & Monitoring• Ikonoshirt_StrictTransportSecurity• ET_IpSecurity

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 18: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IIConfiguration & Monitoring• Ikonoshirt_StrictTransportSecurity• ET_IpSecurity• FireGento_AdminMonitoring

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 19: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IIConfiguration & Monitoring• Ikonoshirt_StrictTransportSecurity• ET_IpSecurity• FireGento_AdminMonitoring• Nexcessnet_Alarmbell

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 20: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions IIConfiguration & Monitoring• Ikonoshirt_StrictTransportSecurity• ET_IpSecurity• FireGento_AdminMonitoring• Nexcessnet_Alarmbell• Mhauri_Slack / Moogento_SlackCommerce

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 21: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions for M2!

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 22: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions for M2• creaminternet/module-secure-passwords

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 23: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions for M2• creaminternet/module-secure-passwords• Git Status Security Report

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 24: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions for M2• creaminternet/module-secure-passwords• Git Status Security Report• Xtento Two-Factor Authentication [paid]

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 25: Secure development environment @ Meet Magento Croatia 2017

Recommended Extensions for M2• creaminternet/module-secure-passwords• Git Status Security Report• Xtento Two-Factor Authentication [paid]• Admin Actions Log [paid]

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 26: Secure development environment @ Meet Magento Croatia 2017

Who has access to your code?You.Your colleague.Your company.Your GitLab Server Server.An external developer.GitHub/BitbucketYour CodeClimate Integration.Your build/deployment tools.Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 27: Secure development environment @ Meet Magento Croatia 2017

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 28: Secure development environment @ Meet Magento Croatia 2017

Isolate Development from Productionreduce unwanted errors,improve security

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 29: Secure development environment @ Meet Magento Croatia 2017

Dev vs. Testing/Staging vs. Production

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 30: Secure development environment @ Meet Magento Croatia 2017

No keys in your code, put them in settings files.Don't add the settings files (esp. production) into your repo.

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 31: Secure development environment @ Meet Magento Croatia 2017

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 32: Secure development environment @ Meet Magento Croatia 2017

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 33: Secure development environment @ Meet Magento Croatia 2017

Database dumps IBecause dumping big databases is boring

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 34: Secure development environment @ Meet Magento Croatia 2017

Remove log data$ n98-magerun.phar db:dump --strip="@stripped"

Available:@log, @dataflowtemp, @stripped

See: n98-magerun Stripped Database Dumps

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 35: Secure development environment @ Meet Magento Croatia 2017

Database dumps IIBecause you don't need thousands of orders, customers and logs in your dev-environment

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 36: Secure development environment @ Meet Magento Croatia 2017

Remove sales and customer data$ n98-magerun.phar db:dump --strip="@development"

Available:@log, @dataflowtemp, @stripped, @sales, @customers, @trade, @development

See: n98-magerun Stripped Database Dumps

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 37: Secure development environment @ Meet Magento Croatia 2017

Use an environment configuration toolBecause accidentally using the wrong environment is embarrassing

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 38: Secure development environment @ Meet Magento Croatia 2017

Environment Configuration• LimeSoda_EnvironmentConfiguration• n98-magerun Script• Cti_MagentoConfigurator• HarrisStreet ImpEx

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 39: Secure development environment @ Meet Magento Croatia 2017

Code analysis• CodeClimate• SensioLabs Insight• Scrutinizer

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 40: Secure development environment @ Meet Magento Croatia 2017

GrumPHPA PHP code-quality tool• Tests running via git hooks• improve codebase• write better code following best

practises

• Extra packages like sensiolabs/security-checker

! https://github.com/phpro/grumphp

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 41: Secure development environment @ Meet Magento Croatia 2017

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 42: Secure development environment @ Meet Magento Croatia 2017

Security advisorieshttps://github.com/FriendsOfPHP/security-advisories

Checking for Vulnerabilities• Upload composer.lock to https://security.sensiolabs.org• Use web service (curl)

• Use CLI tool php checker security:check composer.lock

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 43: Secure development environment @ Meet Magento Croatia 2017

Magento Malware Scannerwget git.io/mwscan.txtgrep -Erlf mwscan.txt /path/to/magento

https://github.com/gwillem/magento-malware-scanner

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 44: Secure development environment @ Meet Magento Croatia 2017

Magento Project Mess Detector

https://github.com/AOEpeople/mpmdMeet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 45: Secure development environment @ Meet Magento Croatia 2017

Admin password cracking

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 46: Secure development environment @ Meet Magento Croatia 2017

To do! Read & apply Magento Security Best Practises! Sign up for Magento security alerts! Test & check your code and settings! Follow @piotrekkaminski, @gwillem, @_Talesh, @pete_cags, @PeterJaap, @Fabian_ikono

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 47: Secure development environment @ Meet Magento Croatia 2017

[email protected]/avoelkl

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn

Page 48: Secure development environment @ Meet Magento Croatia 2017

Meet Magento Croatia 2017, Anna Völkl / @rescueAnn