On Wed, Jan 09, 2008 at 03:14:35PM +0000, Russell Gadd wrote: > Unfortunately some bank sites do use javascript and I have a concern > over cross site scripting - only because I have yet to look deeper into > this to see what the risks are. But if I never visit non-bank sites is > this a problem? It very much is: if the bank site somehow gives you javascript which performs a transaction as you, it is very problematic and may make it very difficult to prove you were attacked, since the requests seem to come from you. This is not XSS in the literal sense (the site attacks itself so it is not cross-site), unless one banking site attacks another one, but I think that will not comfort you much if you get attacked :)
This, however, requires that the bank site is exploitable, and since one of the starting points is trusting the bank, you should be rather safe if you only visit bank sites, assuming you trust the SSL cert to make sure you really are connecting to the bank and not an impostor. If you are feeling paranoid, you can contain the damage to one bank by clearing your cookies between sessions and not using two banks at the same time. Trusting SSL also means you have to type your URLs carefully. Most people do not type 'https://' but trust that an insecure connection will redirect them to the real site, which is not safe, since you could be redirected to another site in another domain with a similar name, and at least some browsers allow javascript to change the address bar, making the attack hard to detect. Checking the SSL certificate reveals that kind of trickery: if you connected to another domain, the certificate can't be the one your bank uses (unless the browser / SSL library, the CA or the bank screws up - but those are again things you just have to trust.) You can get some extra security by disabling JavaScript, because XSS holes in the bank's system may not mean the attacker can do anything else than XSS, but we are getting close to the unavoidable problem: you have to trust the bank, and you can only try to mitigate the effects of the bank getting compromised, preventing it is up to the bank. And getting back to reality from all this paranoia: you are already light years ahead of a normal Windows PC, and compromise is pretty damn unlikely. The riskiest part I can see is your browser, but if you only visit banks, the real attack vectors require subverting your SSL implementation, the CA or the bank itself. This is almost definitely possible with enough resources, but it is probably not feasible to mount such an attack - that, however, depends on how much money you have :) On another note, if security is this important, you always need to buy the CDs to make sure your OpenBSD is not compromised, and installing patches is difficult: how do you get them securely, and can you even trust the OpenBSD project? Set some reasonable goal for your security, or you can't do online banking at all. Paranoia is very good for security, and thinking of all the possibilities is both entertaining and educational, but in practice you always have to trust something, so there is no absolute security. The final point I'd like to make is that we trust our browsers so much it is pretty scary. They are probably not very secure (I am too bad a programmer to really say anything, but the exploits seem to keep appearing), but usually the most security-critical things a Joe User does involves one, and often it is the Microsoft one. -- Jussi Peltola