Memory Gaffe Leaves Aussie Bank Accounts Open To Theft
mask.of.sanity writes "A researcher has found flaws in the way major Australian banks handle customer login credentials which could allow the details to be siphoned off by malware. He built proof of concept malware to pull unencrypted passwords, account numbers and access credentials from volatile memory of popular web browsers every two hours."
In the 80s, my comp sci partner and I discovered a similar case at Acadia University. We reported it to the head of the computer center. He told us it wouldn't work, it couldn't be done. I left that meeting feeling betrayed. My partner decided to write a proof of concept. He was successful and to prove it logged in as the main admin account. Days later he decided to try it again to see if they still hadn't fixed it or changed the password. They were waiting. He was expelled from Acadia. He was a brilliant honors student.
It's worse these days. They will charge you for cybercrimes, or treason, and sentence you to decades in prison. Or hold you without trial. Be careful when you do the right thing and report these. Just report them, don't "proof of concept" or you could be charged. It's unfair and immoral but it's what they'll do to you, mostly out of their own shame and embarrassment.
and now he can be researching the in side of jail down under hands on.
You have to be infected first for your credentials to be stolen? Couldn't the hacker just have installed a key logger?
If you can't trust the machine, don't put your sensitive data on the thing.
Aussie IT is a bit Mickey Mouse all around, sadly -- especially in the banks, oddly (you'd expect a higher standard where billions of dollars are concerned, but no...)
As for the researcher, they didn't actually 'hack' into anything, merely scraped their own computer for data, so I wouldn't expect them to face any problems over revealing the exploit. Probably hasn't won them any friends in the banking sector though...
So he's running malware that's sniffing your browsers memory? If your machine is already compromised, there are easier ways to get access to login credentials.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
Sadly, he probably will.
Financial institutions want to keep their vulnerabilities quiet. People who shout them to the world face lawsuits
If you are smart enough to discover a major exploit, also be smart in how you notify them. There are many great security companies who work as middle-men to help submit the bugs to the corporations and at an appropriate time make the information public so it gets fixed.
Going through a security company is free, and means you won't get the big splash on news sites or all the public attention, but it also means you can generally avoid hiring a lawyer, or worse, having he cops knock at your door with warrants.
//TODO: Think of witty sig statement
In the Down Under, the brain of most business owners is located in their arse and this researcher could soon be sued for hacking the banks.
My bank uses POST in the login form which means that sniffing memory for URLs (which is what this malware seems to do) wont get you a login.
Plus, in order to actually transfer money to someone you haven't transferred money to before you have to input a second password.
The biggest failing of the bank in question is that it has a 10 char maximum on passwords for some stupid reason.
If malware has access to the RAM of another process, the horse has left the barn.
This would probably affect every single Internet site in existence. And there is no solution, nor can there be
There is a company in Australia selling JavaScript that encrypts form field - I assume this guy is associated to that company & trying to drum up a sale, while hiding the fact they are selling snake oil.
I am really starting to be sick of these "security researchers" who don't know that the 1st law of the computer security is:
If malware is running on your computer, it is not your computer anymore.
It follows that no matter what you do, malware will win. Discovering that malware can "siphon" memory is really... uh, groundbreaking.
What makes me even more sick is the incredibly amount of various BlackHat "security conferences" and supposedly geek-oriented media like Slashdot that let those people present this kind of "discoveries" as legitimate, notable, noteworthy, important and new.
I am really, really, sick of you.
Not really a banks fault though - why is the browser hanging on to post'd data after it's been post'd??
Me failed English...
FreeBSD over Linux. If my comments seem odd, this may explain...
Not really a banks fault though - why is the browser hanging on to post'd data after it's been post'd??
So that when you hit refresh on the page, the browser can pop up its usual "you'll need to repost to refresh this page, are you sure?" and do the repost if you tell it to.
http://blog.nexusuk.org
The Bendigo at least set those fields to autocomplete off - so should the browser actually be doing that then... or even keeping it for two hours plus.
Me failed English...
FreeBSD over Linux. If my comments seem odd, this may explain...
But one of the common vulnerabilities is buffer overrun. So they want to limit the read to some fixed number instead of looking for the trailing null, in an unlimited loop. So the right thing to do is set the limit to some moderately large number, like 128, allocate space, write nulls into it and then read the data into that buffer. Why it can't be really big like 1K or 2K? Well, it is possible to pack lots of instructions into a 1K or 2K buffer, and we dont want to provide that much of memory in a user writable space. Of course a well written authenticator will immediately clear every user written buffer as soon as they are done reading.
In reality some UI designer limits the amount of data to be entered limited to the space provided in the edit box in the GUI. By default most screen controls like buttons and edit boxes are sized by the string buffer allocated for it. It is always possible to change the size of the control explicitly, but there are many programmers who are lazy or incompetent and don't use it,
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
*All* of those banks insist on two factor authentication for money transfers. I use 2 of them and every single person I know (here in Australia) is either issued an RSA token or has SMS alerts on money transfers (an SMS is sent to you with a code that must be entered before the transfer will take place). So even with the password, you can't transfer money out of an Australian bank.
It has nothing to do with autocomplete. Reposting data when you refresh the page is a completely different feature.
Australian government is now seizing bank accounts by declaring them 'inactive' if they haven't had a transaction in three years. Financial planner found $150K vanished and they also shafted a pensioner who got back from heart surgery to find his account seized. Probably hit other people who won't know yet, or elderly whose relatives won't even know the money is missing. Sure it'll be put to good use refurnishing bureaucrats offices: http://www.couriermail.com.au/news/queensland/brisbane-woman-has-had-more-than-150000-taken-from-bank-account-under-recent-law-changes/story-e6freoof-1226654782499?from=trendinglinks
:) Oh I would have paid.
the bank should just have you call in and give the username and password over the phone, that will fix the problem. lol
Excuse my naiveté, but how is this "so easily avoidable?" Lets put aside the fact that malware is already on the machine. How does one cause the browser to encrypt what it stores in memory. I don't believe that that a bare bore HTML form would protect from this kind of attack. The browser might encrypt the memory pages when push out to disk but thats not the issue here. At some point, for a plain HTML form, the browser must store the info in memory.
The possible solution I see is that encryption is performed via javascript, then a forensic analyst would have to go in and check that nothing was missed. If it was written in C this wouldn't be a problem. I imagine that javascript objects are copied around to different parts of memory for their GC algorithms. Therefore, this solution seems very error prone to me.
Any explanations, articles, resources that people could point me too would be much appreciated. Yes I already tried googling for it already.
Is this software logging FORM (POST) requests and claiming that it is a vulnerability? Are there more than 20 websites (outside Singapore) on the planet that encrypt credentials on the client prior to sending them to the server? I can demonstrate this on my machine for pretty much every US bank. Did I miss the point?
It would be great if financial companies were required to make a publicly accessible testing site, in order to qualify for benefits from government, like insurance. The testing site would be a mock-up of the current system. Just copy the code over keep a separate database, it wouldn't have to be large because it won't do the same volume and we don't all need unique accounts. I mean, there is testing and production systems already, right? So, after pushing to production you also push to public testing. This way, I can hack your systems all day and night, and not worry about going to jail for trying out the exploits I think exist -- Some are even just changing URL parameters...
The government insures the banks, but the banks aren't setting up a system where it's easy for folks to test and report vulnerabilities. It should be a no-brainer. You want car insurance? You have to drive safely and get your car inspected, also anyone can report your bad driving or smoking engine via your mandatorily exposed license plate number... Since everyone can't just visibly inspect the live version of the online systems without falling afoul of the law, then we need a mock-up.
I mean, they let me inspect the vault where my safe deposit box is... I don't get to swing a hammer, but at least I can see if the door is made of steel, and the guard is armed and paying attention. We should be able to knock on the digital vault door to ensure it's not wafer thin. I don't trust the bank to put items in my safe deposit box for me, I do that myself. Just because I put my money in the bank, doesn't mean I trust their security practices completely. I don't think we should be trying to hack the live systems because it could cause disruption, but in the current system if we notice a damn exploit we can't even report it. It would be like noticing the guards are just distracted teens with cell phones instead of guns or batons, and that there's a huge hole in the side of the vault with muddy footsteps leading in and out through it, but you'll get thrown in jail if you say anything about it at all!
Back when this online banking thing started I accidentally changed the URL parameters while logged into one of my banks' online portals. I was trying to copy paste the URL field, but ended up changing the digits in my user ID. Suddenly, my account balance was drained!? I brought up a few more account pages and my savings account wasn't just drained, it was GONE!! Wait, no, the name in small print under the company logo wasn't mine! Another users account had been pulled up. Whew.... Oh Shit! I just accessed another users account AND rummaged around looking at all the funds! I immediately logged out. I did not report anything to anyone. I was afraid that accidentally discovering a vulnerability could land me in jail if I reported it, even if I never intended to "hack" anything. It was still accessing an account without permission, a violation of the US's computer fraud and abuse act -- Similar to using a browser that someone is still logged into, you see their "private" social media stuff because they're not logged out; The bar for triggering the CFAA violation is ridiculously low. Since the bank had crappy security, and incompetent web developers I closed my account the next day. When asked why I was leaving their service, I said in the sternest voice I could conjure, "There is a large theoretical hole in the side of your bank's vault, apparently no one can see it but me, and I can't even legally show you where it is." The look on the clerks face was priceless. These banks shouldn't qualify for government benefits, IMO. I mean, security audit? No, that's obviously not working, or you wouldn't have been able to drain any account by changing a number in the URL bar... The public would do a better job for less.
I would have loved to be able to log into a mock-up site. Perform the "exploit", show them what's happening, and give them all the info they need to fix the problem. In TFA, it would be
Are you telling me the solution to this is to encrypt the password in javascript? How do you manage the keys? If someone could explain how your supposed to write your code to prevent this on the client side, it would be much appreciated.
few people commenting saying that it's no danger since all Aussie banks use 2-factor SMS etc. They seem to think the password is worth nothing, That's fine however i doubt these people actually know how transfer fraud works. Meaning you need the password just as much as you need the SMS-code, And if you have access to the machine or at least password, It increases your chances to be able to port the SIM-CARD. It usually works like this FYI - 1. Got login pass for Bank, even better if they use same for e-mail ( You can delete the money transfer notification ) 2. Depending on access be it E-mail or just PC access remotely chances are you can be crafty enough to get the details needed to port the SIM-CARD 3. DOB, License No., Address etc 4. Go to carrier shopfront request blank sim-card 5. Call carrier saying you lost your phone and you need to transfer sim 6. After 20-45 minutes, Victims phone will lose connectivity which can be combined with a bogus message from attacker warning of network drop-outs 7. Login with harvested pass, SMS security message comes to you. 8. Bobs your uncle. References - http://www.bankwest.com.au/media-centre/media-releases/mobile-phone-porting-new-type-of-scam-to-look-out-for-1292493597511 - http://www.scmagazine.com.au/News/282310,45k-stolen-in-phone-porting-scam.aspx/0 - http://www.flyingpenguin.com/?p=14540 Put your claws back in, and focus on the problem here, If one bank can avoid it they all should.
... I'm with a credit union? :p
Can a person program a new solution to a problem? Why should anyone be able to stop such a thing? -Richard Stallman