160 likes | 277 Vues
Learn about CMS security, vulnerability measurement, patch management, user management, configuration, testing, and commitment to security in this comprehensive overview.
E N D
Justin Klein Keane CMS Working Group March 3, 2010 CMS Security
Overview • Background in CMS development • ASP, Java, Cold Fusion, Perl, Python and PHP • CMS security generalities • Specifics drawn from SAS deployment of Drupal
Insecurity is a Given • Software engineering studies show bugs per KLOC • Predicatable average # of bugs in code • Some portion are security related • Some vulnerabilities are not functional flaws • Information security is an evolving space
Considering a CMS • Given any system chosen will be insecure: How do you choose a CMS?
Ubiquity • How widely used is the CMS? • Recognize this could mean higher risk • Wide use may also mean more eyeballs • But not necessarily
Modularity • Is the system monolithic? • Important in understanding impact • Also affects upgrades • How does modularity affect scope?
Patch Management/Upgrade • How easy is upgrade? • Monitor for advisories • Evaluate • Acquire • Prioritize and schedule • Test and approve • Create and test deploy • Deploy • Confirm • Clean up • Document
Compartmentalization • Complexity is the enemy of security • What is level of dependence in the system? • OS, web server, db server, programming language, etc. • Component security concerns • How sill component security affect the CMS?
Measuring Vulnerability • Tempting to measure reported vulnerabilities • Potential false metric (more eyes = more bugs) • Mean time to patch is a good metric • Severity of vulnerability • Better metric is project activity • People involved, update release, community “noise” • Healthy dev community = faster patching
Maturity • Not necessarily longevity • How closely does the CMS model a “real” enterprise system? • Established security team • Security reporting and response procedure
User Management • CMS offers power to users in varying scale • How is privilege separated • Can you disable/protect dangerous permissions?
Configuration • Consider: • Many security flaws are configuration issues • How can configuration be changed to increase the security posture of your CMS? • Are there security configuration guides/guidelines available?
Security Testing • Automated web app testing in infancy • If used be sure to test behind authentication • Manual testing is still the best way • Complexity of systems obviates advantage of source code in many cases • System should be tested as a whole before deployment • Components should be tested prior to install • Patches/upgrades should be tested • Commit to a continuous security testing cycle • If you don't have resources is it possible to leverage others'?
Commitment to Security • Must be ongoing • Security space evolves • Systems are digital bonsai trees • Look beyond the CMS to supporting • Technology • Process • configuration
SAS Practice • Published security guidelines • Setup and Configuration guidelines • Approved modules • Module approval procedure • Dedicated security team doing active research