XSS in Google Finance
miki.it
miki.it
When I worked at Yahoo, an XSS on yahoo.com (which almost never happened) was a code-red, drop-everything, holy-shit event. If I were at Google I'd probably give this guy a bonus.
The importance of httpOnly had somehow escaped me until today :-)
Cookies set for just subdomain.hostname.com can only be "seen by" that particular subdomain, while cookies set for hostname.com can be seen from hostname.com and any and all subdomains. I think that's why they do it constantly, at least stuff like www.google.com/glass certainly makes no sense otherwise. Why not make a fancy new domain for that? I think it's cookie greed.
The real threats I imagine is social engineering it enables or running code on the users' machines through browser plugin vulnerabilities. Also, running signed Java with a fake certificate is just a dialog confirmation from the user.
But I agree on your other point.
I mean, is there a law making it illegal to sell exploits to the black market? These bug bounty programs must know they compete with a large market for these sorts of things.
There're a lot of actions based on malicious intent that are (and should remain) legal.
The $5000 is also a nice incentive to keep looking around.
It would be funny to have a sort of wall of shame for that week or something else internally. Or you could even go as far as making that engineer pay for the bug bounty (that's a bit much though). Anyone have any experience as to what happens on Google's end besides the obviously patching of the bug and paying of the fine?
Not a Google employee but I'd imagine they'd have to do some kind of writeup about what happened/how future errors like this will be prevented.
(This is the major reason why I think having sustaining/continuing engineering departments in software companies is a bad idea).
You can point the blame at a lot of people, but in the end it's highly unproductive and a waste of time. You fix the bug and move on. If programming teams played the blame game every time a bug came up, it would just slow everyone down.
I was thinking, firstly, along the lines of having some ammo to make fun of people with (insult based humor is the basis for most of my relationships with people). Also, on a more practical note, as a developer myself I would like to know when my code breaks and why.
People like to be lauded for their accomplishments, but nobody wants to be known as "that guy who wrote a severe XSS bug."
Build babysitters are a bit of an exception, since it's not the end of the world if the current build is broken - another commit, and the problem's resolved. Public XSS though... that's more severe.
A good way to react to this bug is to come up with ideas for reducing the possibility of future bugs: static analysis tools, making code reviews easier, and so on. One might also think up ways to lower the impact of future bugs; make session cookies unavailable to JavaScript, propose new standards for the web, etc.
It's important to think of it from a statistical standpoint. Given two equally skilled developers, the one that implements more features is more likely to be involved in a production incident. If we punish people for bugs, we're punishing productivity in addition to sloppiness. That sets the incentives incorrectly. It isn't even a good idea to blame one person: if you scare one person into compliance, you still have the 29,999 other SWEs that aren't scared into compliance. Much better to develop tools that make bugs easier to spot, because every hour you spend doing that helps 29,999x as many people.
Also, generally speaking, it's not one person's fault. At the very least they also have a reviewer who should have caught it.
What actually happens in a healthy organization is that someone writes a postmortem going through all the steps leading to the bad outcome, along with a plan to make fixes at multiple levels to make sure nothing like it happens again.
We definitely don't play the blame game but we do keep track of bug statistics so we know where best to spend our time and effort. It can be useful to know that projects using framework X have more issues than framework Y or that maybe we should arrange to run some security classes at office Z.
Bugs like this one are fixed with the help of the product team, they're usually the ones writing and pushing the fix (since they know the project best) and it's a good way to get some practical security experience spread around the organization (and increase awareness).
We do write post-mortems for serious issues to delve into the root cause and to help stop it from happening again. We have a lot of initiatives in place to improve the security of our products overall through both awareness raising (training, newsletters, security puzzles) and technology changes (scanners, static analysis, framework hardening).
P.S We're always looking for security people to join us at Google (send me your resume, email in profile) or by bug hunting for bugs to submit to our vulnerability reward program.
Maybe a listing of the Wi() function would be useful.
I mean with a "great" hack this guy could have made much more in a few hour, but let say it's a generous reward anyway :)