Following the busy Thursday, I returned to the Minneapolis Convention Centre on Friday.
I began the second day of AppSec USA 2011 on the OWASP track, where I was speaking in a session shared with Michael Coates.
Michael described the objectives and current content of the practical OWASP cheat sheet series of documents, which cover the most common web application security issues developers come across and who need accurate, and up-to-date information. The relatively concise cheat sheets are undergoing review, and three further cheat sheets (HTML 5, password storage and web services) are in progress. He also said the full set of cheat sheets are likely to be produced as a single book, as well as being freely accessible on the OWASP wiki (where all these are currently located and available). There was some useful feedback from the audience about the need for another tier of 1-2 page lists/summaries, and that all the cheat sheets should be formatted and structured in an indentical style where possible. Another delegate asked if all the details could be incorporated into the OWASP development guide. And as a last question, one person asked if issues relating to mutual authentication might be addressed.
I then described a different sort of strategy by OWASP, the OWASP Application Security Codes of Conduct project. I adopted these documents which were largely produced during the summit in Portugal earlier this year, to consolidate the work, produce release-quality documents and then promote their adoption. If you remember, these describe what OWASP believes other types of organization could do to support OWASP's mission. While these are aspirational (by OWASP), they do define some minimal normative behaviour, and optional additional recommendations, for government bodies, educational institutions, standards groups, trade organisations and certifying bodies. Excellent feedback from the audience included whether there was a need for prioritised approach for organisations that might fall into two target groups (e.g. educational institution and government body). The audience also asked about the specific requirements for educational institutions and the practicality of achieving them. I will revirew these ideas and post some suggestions to the project's mailing list.
Ryan Stinson provided an introduction to Common Attack Pattern Enumeration and Classification (CAPEC), and how this can be used to help target resources in an implementation agnostic through typical secure software development life cycles (SDLCs). This is easiest when threat modelling is used so that threats can be linked with attacks listed in CAPEC. It provides a way to cross-reference data from different points in the secure SDLC such as requirements, design, development, code review, QA, testing and operations. Switching to Common Weakness Enumeration (CWE), Ryan explained how this describes an overall style of a vulnerability and what challenges developers face relating to these. The taxonomy is extensive and fine-grained. Ryan uses this in his company to link vulnerabilities found during their engagements with the matching CWE issue. This provides additional centralised support resources and demonstrates the relevance to clients.
After a short break, I continued my pursuit of good threat modelling guidance and attended Mike Ware's session on this topic. He explained the need to keep threat modelling simple and described a process built around identifying who, what, where & how, combined with the impact and mitigations. The suggested process needs to involve a range of stakeholders which Mike referred to as the builders (e.g developers, suppliers), gluers (e.g. enterprise architects, CTO, shared service providers), owners (e.g. system, business, data), defenders (e.g. infrastructure, operations), and breakers (e.g. security teams, external penetration testers). The eight-part method includes diagramming the software architecture, enumerating the attack surface, documenting threats, illuminating assets, illuminating trust boundaries, and mitigation. A key take-away was that if you don't have good design information, don't attempt to begin threat modelling.
During lunch Moxie Marlinspike described the problems with trust using the internet, and in particular the difficulty of proving authenticity using SSL. His approachable presentation style won over the audience while he was discussing what might be called a complete failure in the current trust model that relieas on certificate authorities, domain name registrars and top level domain owners. He said that trust agility needs to have the ability for trust decisions to be reversed, and for users to be able to decide where they can place their trust. He described a previous concept called Perspectives but this had problems with completeness, privacy and responsiveness. Moxie went on to discuss his own inititiative called Convergence which could be a new authenticity system for SSL. It uses local caching and notary bounce to avoid the problems Perspectives had, and is designed with future extensibility buit in. There is a plugin for Firefox and this doesn't break the existing model — there is no need for changes on individual (web) servers. I need to check this out further.
After lunch I returned to the software assurance track to attend Adam Meyers' presentation on assessing threats to mobile computing. He described the milestones facilitating the current wave of mobile computing. He said that mobile security concerns relate to all the components (e.g. device, networks operating system, third party applications, browsers & web sites, enterprise applications), limitations (OS API, 3rd party application validation, carrier device authentication, data encryption, mandatory security controls, security updates). He described protections (and lack of) for data at rest, data in motion and voice for each operating system, and the additional personal security concerns, perimeter issues and data ownership concerns relating to mobile computing. Adam went on to explain detection and mitigation concerns due to issues like devices not always remianing on enterprise infrastructure, klack of real auditing for installed applications, difficulty in tracking user behaviour and difficulty in removing malicious code. He then identified the mobile computing attack surface and his most important recommendations for mobile software developers.
Continuing, Charles Schmidt described how to utilise Security Content Automation Protocol (SCAP). He said that even if you have an application with no flaws, no weaknesses and no bugs, it's still not secure. This is because deployment and operational management also matter. Perfect engineering makes an application securable, not secure. He said that documentation is a complete guide to an application, whereas guidance is a set of suggestions for how to configure it for specific use cases. The idea is that there can be automated security guidance, in a format that allows automated assessment of meeting these in the actual environment. This can provide the specific deviations to be identified that can then be assessed, and mitigated as necessary. SCAP is an open standard being used by the US government and others, for this automated guidance. The seven components are connected together by SCAP are:
- Common Configuration Enumeration (CCE) for configurable items in software
- Common Vulnerabilities and Exposures (CVE) for public vulnerabilities in public software
- Common Platform Enumeration (CPE) for identifying software & hardware items
- Common Vulnerability Scoring System (CVSS) to rank vulnerabilities on its likely danger
- Extensible Configuration Checklist Description Format (XCCDF) defining a standard format for security guidance that allow tailoring structures to customise recommendations and assessments
- Open Vulnerability Assessment Language (OVAL) format to express assertions about system state
- Open Checklist Interactive Language (OCIL) standard format for user questionnaires.
Apart from SCAP's well-known uses for vulnerability management, Charles described a use case for an off-the-shelf software package. The guidance for the application and the underlying infrastructure can be built using XCCDF, with OVAL for the low-lying technical checks and OCIL for the non-technical checks. If it is not a public application, CCE and CPE could be used for further annotation. The software acquirers can then use this for initial configuration and ongoing assessment. In another use case for inventory management, users can use the standardised format to be alerted about rogue installations and outdated versions.
For the final session of the day I returned to the OWASP track to listen to Ryan Barnett discussing how the ModSecurity Core Rule Set can be extended to implement some aspects of detection and response from AppSensor. After a brief introduction to the concepts, his dynamic presentation highlighted the pros and cons of building defense logic external to the application, and then how experimental rules have been created for the CRS for many detection points. There are some ideas there I will need to investigate, and make sure I write up for the next version of the AppSensor book.
The conference closed with a final recap by members of the board and the local organising committee. Vendors' prizes were distributed and thanks given to the volunteer organising team in Minneapolis. Yes, the whole week had been run fantastically well, and I hadn't heard any complaints. With over 540 delegates, that's excellent work. A high standard for Austin TX to follow next year.
The next global OWASP events are AppSec Latin America October 4th-7th in Porto Alegre, Brazil, and AppSec Asia November 8th-11th in Beijing, China. The next European AppSec conference will be held in Athens during July 2012.
All presentations will be available on the OWASP AppSec USA web page.