September 2007 - Posts

    

Last week I spoke at SD Best Practices 2007 in Boston. Note that I did not say attended SD Best Practices 2007, because I didn't get there until three hours before my presentation via red eye flight from Denver and worked the rest of the week from my hotel.

My talk went well enough, considering my state of jetlag and sleeplessness. The slides are embedded below (hopefully). Please enjoy.

The title and picture for this post are just a joke, really – developer conferences are just fine, and I hope to attend many more in the future. Sometimes, though, when you see the third conference title like "Scrum or Agile RUP versus TDD Iterative-Customer-Driven Development", you lose just a little bit of your sanity. J

Posted by Alex | with no comments

During a web hacking class I recently taught, I noted that usually security testers spend more time writing up findings than actually hacking. This is also the case with code reviews; properly explaining security issues requires an awful lot of verbiage.

With all that writing going on to describe web security issues, a few new words get cooked up to describe certain "undefinable" terms. I've collected a few neologisms I've seen floated around in white papers and reports. All of the words below got a red squiggly underline in Microsoft Word. Got anything to add?

Unvalidated, adj. Referring to data which has not been checked for validity or appropriateness.

Untrusted, adj. Referring to an entity which is not under immediate control, and may be under the control of an attacker.

Canonicalize, verb. The process of converting data into its canonical form - a single, agreed representation.

Proxied, adj. That which has been sent through a proxy.

Misconfiguration, noun. A configuration setting which is incorrect, or introduces a weakness into a system

Decompilation, noun. The act of reverse engineering (decompiling) code which has compiled to a binary format back to its original source code.

Keystore, noun. A file or digital repository for storing cryptographic keys and key pairs.

Deprovision, verb. To remove from a directory.

Posted by Alex | with no comments

 

I attended the Rich Web Experience conference in San Jose last week, along with my colleague Dean Saxe (who was speaking there on AJAX Security and Web Hacking).

I'm not much of a Web 2.0 designer, and some of the talks were lost on me. It reminded me a bit of a web services conference I went to a few years ago, where people were frothing at the mouth about how their <insert buzzword here> library was the end-all, be-all approach and others didn't deserve a second flush. Now, I'm sure if I was involved day-to-day in a Web 2.0 design project, I would be frothing with the best of them. As it was, I was just trying to decipher acronyms and count the number of iTunes, Gmail, and Twitter references.

There was, however, some interesting security conversation. A couple of other speakers, Joe Walker and Douglas Crockford, and Dean and I (well, really Dean, but I tagged along) were invited to a security Birds of a Feather meeting. Among the topics discussed were the prevalence of XSS, the problem with SiteKey and other anti-phishing technologies, and the inherent insecurity of cross-domain mash-ups.

I found the last subject particularly interesting. To me, mash-ups at first seemed a little cutesy and limited, but the more I learn about the RESTful and Semantic Web, the more I realize that we (the web service providers) should all be talking the same language, and talking openly. Of course, this convolutes the current security model of the web.

One interesting question I still don't know the answer to is who makes the trust decisions in a mashup. Do I say which services can talk to each other, and what type of information they can exchange, as a user? Or does the service get to make those decisions? I think fundamental questions like this need to be ironed out. There's plenty of research going on right now about secure mashups. Summing up the thoughts of the similarly-feathered birds at the conference, I can say:

I hope we don't cause more browser divergence.

I hope we don't burden the user with security decisions they aren't prepared to make.

Posted by Alex | with no comments