Presented by Denard Springle NVCFUG January, 2012 Many people hear ‘security’ in conjunction with ‘ColdFusion’ and think only about ColdFusion application security, which is primary, but not the only security you should be concerned about. Operating System, network, application server and physical environment are additional security concerns rarely discussed in the ColdFusion circles. Most major breaches of security coming from the outside are based on operating system attacks. Windows is the primary target of most scripted hacking systems and of most hacking groups – this is due primarily to the large surface area Windows exposes. Most production web sites on Windows servers are extremely vulnerable due to lack of proper patch maintenance. Most production web sites on Windows servers are extremely vulnerable to virus due to a general lack of virus protection and maintenance. Protecting yourself involves: Ensuring you plan for and execute maintenance windows that apply security patches to the OS as frequently as possible – preferably within a few to 24 hours after release. Turning off all services and removing all applications that are not required or will never be utilized. Turning on the software based firewall included with modern operating systems and opening only the ports required to operate (SSH/RDP, HTTP, SSL, FTP, etc.) Multiple Anti-Viral/Malware applications set to stop and remove virus/malware automatically. Most major breaches of security coming from the outside are based on port attacks – with the most common attack still being buffer overrun. Ports below 1024 are the most commonly attacked ports in part because these ports are granted more rights in the operating system and in part because they are the most commonly used port for application servers. Protecting yourself includes: One (or more) firewalls between the outside network and your application server. Port forwarding from the firewall(s) to non-standard ports on the OS (e.g. port 80 at the firewall to port 41280 on the OS) Single line connection between outside network, firewall(s) and the application server – no switches, no hubs, no other application servers, just one to one. The second most active target of hackers is the applications that run on the operating system. IIS and MSSQL are the two most active targets of hackers in the application realm – again due to the large surface area exposed. Apache, Sun One, MySQL, Oracle, Postgres, ColdFusion etc. are all additional targets of hackers. Any application exposed to the transport layer is susceptible to attack. Protecting yourself includes: Turn off everything in IIS and MSSQL that are not required (limits exposing processes that could be taken advantage of – e.g. ASP.NET, FrontPage extenstions, ODBC, etc.) Run separate instances of MSSQL for *each* database (limits exposing multiple databases to one hacker) Limit IIS to a single web site (limits exposing other websites to immediate disclosure if one site is hacked) The majority of physical attacks from the inside come from disgruntled employees. The majority of physical internal attacks are designed to cripple hardware (pull drives, spill liquid, etc.). The second most common internal physical attack is from corporate spies intent on stealing data or technology, or crippling the competition. Protecting yourself includes: Putting servers under lock and key Server room should be locked and impenetrable (can’t use a utility knife to slice through the sheetrock and walk in, can’t climb over the ceiling, etc.) Servers and wiring should be in locked cages Use only fiber optic network connections (reduces EMI and eliminates physically patching the cabling) Servers should additionally be in locked cabinets. Implementing PKI, CAC or RSA style authentication and limiting logins at the console to non-specific administrator accounts (e.g. NOT ‘Administrator’) The best defense is a good offense – know what you are exposing to the outside world and mitigate it as much as possible. Nmap is a network scanner tool designed to penetrate networks and isolate security flaws – it produces reports generally with links to how to resolve the issue(s) found. Windows Security Scanner – scans windows machines and determines vulnerabilities also with links to solutions. hackmycf Pete Freitag (Foundeo, Inc.) has written a tool called HackMyCF (http://hackmycf.com/) which is like an Nmap for ColdFusion servers. Detects missing patches, isolates common security issues such as exposing your application server name and version, and provides links to more information that can be used to resolve those issues, including blog posts by Pete himself. For those using CF8 and CF9, David Epler has created a java utility called the ‘Unofficial Updater’ (https://github.com/dcepler/unofficialupdater2/downloads) that automates the process of updating your CF server to the latest patch release (requires Java 6 or Java 7). ColdFusion Zeus will include a utility in the CF Admin that will show you updates and allow you to manage them (download, install, uninstall). The primary focus of the next release of ColdFusion will be on application security. All areas of ColdFusion have been touched on down to and including the very engine CF will run on (Tomcat vs. Jrun). Tomcat is an open source engine that is a more robust, more secure and more trusted application server than Jrun (and, it’s much, much faster). CF Zeus will provide enterprise grade security features putting CF developers on equal footing with ASP and Java developers from a capabilities perspective. ColdFusion Zeus implements ESAPI (The OWASP Enterprise Security API https://www.owasp.org/index.php/Category:OWAS P_Enterprise_Security_API) Implemented under the hood since CF8 HF4 Enhances the built-in security functionality of ColdFusion and eliminates the need to write your own secure session handlers. Enhances security in ColdFusion to mitigate the vulnerabilities mentioned in the OWASP Top 10. 1. 2. 3. 4. 5. Injection (code, script, SQL, etc.) Cross-Site Scripting (XSS) Authentication & Sessions Insecure Direct Object Reference Cross-Site Request Forgery (C/XSRF) 6. 7. 8. 9. 10. Security Misconfiguration Insecure Storage (crypto) URL Access Restrictions Poor Transport Layer Protection Unvalidated Redirects Session Cookies – total upgrade – you can now control attributes of the session cookie that make it more secure (timeouts, http only, etc.). Cookies in general now have the http only attribute – prevents client-side scripts from accessing server-side cookies. Session rotation, input parsers, content validation and more! As with each prior release of ColdFusion, it has once again been enhanced with the latest and greatest encryption and hashing standards, providing additional options for securing content and a wider array of multi-encryption possibilities for the uber secure (or corporately paranoid) among us. In addition to enhancing the security of ColdFusion, Zeus brings so many speed enhancements it nearly eliminates the arguments against writing secure applications. Basic security principles have *not* changed with the implementation of ESAPI – sessions and security related utility functions have been improved. Obfuscation, encryption, password hashing and mitigating exposed surface area of your application are all still critical aspects of secure application design and development. ESAPI provides many utility functions that make implementing some of these requirements easier. Open Web Application Security Project (OWASP) – the defacto standard body for defining security on the web (https://www.owasp.org/) Charlie Arehart’s What’s New in Zeus presentation (http://www.carehart.org/presentations/whats_new _in_cf_zeus-cfcamp.pdf) Matt Gifford’s ESAPI Preso (http://www.slideshare.net/coldfumonkeh/owaspenterprise-security-api-and-available-methods-tohelp-lock-down-a-coldfusion-application)