Live data from Hacker News

XSS Twitter in minutes; Why you shouldn't store important data with 37signals

brian.mastenbrook.net

31–40 of 61 posts

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#31
post #23

Earlier quoted context omitted.

Then XSS attacks would insert before =) What we need is literal separation of control statements (eg, ) from content such that neither can be easily misinterpreted, but that would be a significant departure from existing design.

That shouldn't work for the same reason that you can't escape a bound SQL query parameter in a pre-parsed query.

A modernized, preferably static version of perl's taint mode might work. You need two types of strings, one for trusted and one for untrusted strings, all your output functions accept only trusted strings, all your input or request parsng function return untrusted strings, and all naive string manipulation functions return untrusted strings if at least one of their arguments are untrusted. Then the possibly vulnerabe code is limited to a few statically identifiable routines that take untrusted strings and return trusted ones. They still may be buggy, but at least you know which parts of your code may induce vulnerabilities and need special attention.

And with modern type systems, these types might even be phantom types incurring no runtime overhead. Athough things like the differences between "safe for passing to a browser" and "safe for passing to my SQL-server" might compliate the architecture.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#32
post #27
post #18

I'm usually the first person here to jump to 37s' defense. I know some of their people, they're hometown heroes, and I use and like their products. This is hard to defend, guys. It is literally the-simplest-thing-not-to-fuck-up. Nobody's asking you not to have security vulnerabilities. In fact: nobody's even asking you to fix vulnerabilities. We just need a reliable way to communicate with you about them. If you're s…

Actually it's pretty easy to defend. I never used to have travel insurance but after my first intercontinental flight my suite-case broke and I learned the importance of having one. In a perfect world your support team would be able to distinguish between someone rambling about bytes and an actual security issue. That's hard without a lot of technical knowledge. I believe that's why the Rails security team responded…

It would be easy to defend if being an airline passenger is even vaguely analogous to being an application service provider who charges money and promises you your data is secure -

http://37signals.com/security

Compare this to what your airline likely promised you in the event of damage to or loss of your luggage -

http://en.wikipedia.org/wiki/Warsaw_Convention

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#33
post #18

I'm usually the first person here to jump to 37s' defense. I know some of their people, they're hometown heroes, and I use and like their products. This is hard to defend, guys. It is literally the-simplest-thing-not-to-fuck-up. Nobody's asking you not to have security vulnerabilities. In fact: nobody's even asking you to fix vulnerabilities. We just need a reliable way to communicate with you about them. If you're s…

Sorry if this is a stupid question, but why the PGP key?

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#34
post #19
post #6

Earlier quoted context omitted.

Microsoft is actually decent at security now. The AV they released for free was actually on par with a few commercial products out there (all AV at the moment is pretty bad though, if you're curious). The really difficulty with Microsoft and security is countering their reputation for bad security that they earned over the past several years.

Where by "decent" we mean "leads the industry in". =)

Hrm, interesting. I didn't know that Microsoft was leading the industry in security. If we're talking about the commercial OS market, I suppose that makes sense because you're pretty much only comparing them with Apple.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#35
Brian, I'm on the receiving end of security@37signals.com and @rubyonrails.org. I read your post with great dismay, to put it mildly. You're understandably pissed: we whiffed on our response to you by changing venue to Rails security without keeping you in the loop.

This is my fault. I identified it as a Rails issue and requested that you forward your findings to the Rails security team so we could investigate in concert.

Craig here at 37s narrowed down a root fix with Michael, Rails' security ombudsman, who then enlisted Manfred's help to track down and repair the root cause. What you see today is the end result of those efforts. The security process worked, but you only saw the Rails arm of it. The apparent 37signals arm of it amounted to runaround. Completely not OK.

We now have a security-only email and PGP key at http://37signals.com/security. Next time, no runaround.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#36
post #18

I'm usually the first person here to jump to 37s' defense. I know some of their people, they're hometown heroes, and I use and like their products. This is hard to defend, guys. It is literally the-simplest-thing-not-to-fuck-up. Nobody's asking you not to have security vulnerabilities. In fact: nobody's even asking you to fix vulnerabilities. We just need a reliable way to communicate with you about them. If you're s…

Sorry if this is a stupid question, but why the PGP key?

So that you can send your information to them encrypted via e-mail. For example if you have to provide sensitive information to reproduce the problem.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#37
post #27
post #18

I'm usually the first person here to jump to 37s' defense. I know some of their people, they're hometown heroes, and I use and like their products. This is hard to defend, guys. It is literally the-simplest-thing-not-to-fuck-up. Nobody's asking you not to have security vulnerabilities. In fact: nobody's even asking you to fix vulnerabilities. We just need a reliable way to communicate with you about them. If you're s…

Actually it's pretty easy to defend. I never used to have travel insurance but after my first intercontinental flight my suite-case broke and I learned the importance of having one. In a perfect world your support team would be able to distinguish between someone rambling about bytes and an actual security issue. That's hard without a lot of technical knowledge. I believe that's why the Rails security team responded…

its more like finding out the airline doesn't have insurance after a plane crash.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#38

Brian, I'm on the receiving end of security@37signals.com and @rubyonrails.org. I read your post with great dismay, to put it mildly. You're understandably pissed: we whiffed on our response to you by changing venue to Rails security without keeping you in the loop. This is my fault. I identified it as a Rails issue and requested that you forward your findings to the Rails security team so we could investigate in con…

There are still a couple of issues Brian brought up you haven't addressed.

The main one being the hubris of the copy on your security page. Declaring users data to be uncompromisable then justifying this by listing mostly physical restrictions to the datacenter seems to ignore rather the larger security issues for web-based applications. A firewall and latest security patches do not make one immune.

His other peeve seems to be the perceived bullshit of your support team saying they replied to his initial complaint when it appears (at least to him) that they had not, then putting the blame for this on his spamfilters.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#39
post #31
post #23

Earlier quoted context omitted.

That shouldn't work for the same reason that you can't escape a bound SQL query parameter in a pre-parsed query.

A modernized, preferably static version of perl's taint mode might work. You need two types of strings, one for trusted and one for untrusted strings, all your output functions accept only trusted strings, all your input or request parsng function return untrusted strings, and all naive string manipulation functions return untrusted strings if at least one of their arguments are untrusted. Then the possibly vulnerabe…

Ruby has a taint mode for String too. I think it's used in Rails, or maybe they rolled their own, but the concept is definitely there.

Problem is, at some point you have to be able to display user-entered data. You indeed mark it as tainted, or equivalent, then escape it as best you can. The issue here was a bug in the escaper. Tainting was working as planned.

Re: XSS Twitter in minutes; Why you shouldn't store important data with 37signals

#40
post #6

Earlier quoted context omitted.

Microsoft is actually decent at security now. The AV they released for free was actually on par with a few commercial products out there (all AV at the moment is pretty bad though, if you're curious). The really difficulty with Microsoft and security is countering their reputation for bad security that they earned over the past several years.

That's because Microsoft is good at anything that they throw resources at. Unfortunately, we haven't thrown enough resources at determining what to throw resources at.

Here's a hint: throw resources at supporting web standards in internet explorer. Seriously that is the main reason I hate Microsoft and around here I'd wager I'm far from alone.

IE's fuckedness is inexcusable. If you actually fixed it, 90% of the reasons I hate Microsoft would just melt away that instant.

And until you fix IE, it's just "DOS Ain't Done til Lotus Won't Run", Web Edition, as far as I'm concerned.

Post reply on HN