News for hackers. Stuff that matters.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by joe_the_user on Wednesday June 15, 2011 @12:14PM (#2657709)
This is the kind of vulnerability that should be caught on the whiteboard before a single line of code is written.

I know this isn't what you're talking about, but I hope that an institution that's protecting my money will formally specifying their protocol and not haphazardly putting their app together with "Test Driven Development". But maybe that's how they managed to be this stupid.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by tptacek on Wednesday June 15, 2011 @12:21PM (#2657737)
Though there are no doubt very, very smart developers scattered across Citi, please bear in mind that the wiring-up-form-fields-using-J2EE jobs in large financials are among the least prestigious in our field. These are the types of apps that are among the first to get outsourced.

Your idea that the input and output paths through a typical banking J2EE app were carefully whiteboarded seems mythologized, based on what I've seen at fisrv companies.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by joe_the_user on Wednesday June 15, 2011 @12:42PM (#2657837)
That's hair-raising. I have only a small amount of financial firm experience. I'm just used to ordinary software development being white-boarded first.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by tptacek on Wednesday June 15, 2011 @12:56PM (#2657896)
People forget that statistically the devs hanging around on HN are in the top brackets. The overwhelming majority of devs are 9-5 paycheck players with exactly the level of competence required to execute J2EE and .NET CRUD apps that pass internal acceptance testing.

If you are an enterprise dev with a knack for making web apps that are't horribly insecure, and you don't have a phantasmagorically awesome comp package already, more advice: start looking for new gigs. You're underemployed.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by noonespecial on Wednesday June 15, 2011 @04:31PM (#2658905)
The problem is to the PHB's in HR, there doesn't appear to be a difference between you and the guy who just makes it work, security-be-damned except that you likely take longer and cost more.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by auzieo on Wednesday June 15, 2011 @01:39PM (#2658169)
What's the lower bound for a phantasmagorically awesome comp package? I am not good at evaluating the fairness of my current salary.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by jacquesgt on Wednesday June 15, 2011 @04:56PM (#2658987)
In a market like the New York, Boston, or Seattle areas, with 5+ years of experience, a top tier software engineer should be able to pull down $100k salary plus 401(k), a good health insurance package (ie, something better than a high deductible plan plus HSA), and long term/short term disability insurance. Adjust the salary number for your local cost of living.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by Robin_Message on Wednesday June 15, 2011 @12:30PM (#2657781)
Online bank websites are, at least in the UK, universally terrible. They seem to be just a very, very thin layer on top of the bank's back-end systems, giving such delightful results as being two different sorts of recurring payments and two types of non-recurring payments I can do from my online banking (actually, I can't set up or cancel every type from within online banking.)

Do banks make so little from checking/current accounts that it isn't worth spending a dollar per customer to build a decent solution?

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by tptacek on Wednesday June 15, 2011 @12:34PM (#2657796)
Customers pick banks based on how many ATMs they have, not the quality of the bank's web apps.

Though there clearly are people who care deeply about bank UX, those people are not normal.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by Robin_Message on Wednesday June 15, 2011 @01:04PM (#2657948)
(UK has a shared ATM network, so it's not the same issue it is the States where I fondly remember hunting for damm BofA machines. I agree there are other reasons to choose a bank than website.)

However, it seems like there is relatively little to distinguish between banks, and a web service that truly pleased people might be a good way to get and retain customers, whilst cutting costs (branches and call centres.)

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by gnosis on Wednesday June 15, 2011 @03:52PM (#2658769)
Even for those people who do care about the quality and security of their bank's web services, how many of them are really going to take the time to compare the web services of various banks?

How do you compare them, anyway? It's not like banks give out trial accounts you could use for this purpose.

You'd have to go to the trouble of signing up for a real bank account at each of the banks whose web services you'd like to evaluate. Then spend the time to try them out and compare. So even a cursory inspection of a variety of banks' web services would already be a pretty huge hassle.

Even if you go to all this touble, you're probably not going to know much more than how intuitive a given bank's web interface is, or if they did something glaringly awful in terms of its usability.

You wouldn't know how accessible the interface is under load, or test how well the bank's interface handles the various real-life corner cases you're likely to encounter over time.

And how would you test the interface's security? Is even a reasonably security-aware consumer really going to try breaking in to the bank?

The ironic thing is that most users who use online banking probably do care about the web interface and its security, even if they can't articulate it in so many words. But of them, only a small minority care enough and aware enough of the issues to take the time to comparison shop. And even then they probably won't find out much.

There's an opportunity here for a Consumer Reports style investigation in to the web interfaces of various banks. That would be a valuable service that could save the consumer a lot of time and hassle, and maybe even do things that a lone consumer couldn't: evaluate interface security.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by mrb on Thursday June 16, 2011 @05:15AM (#2660572)
I did just that when I last needed to open a bank account :) I googled for users' comments about the bank's web interface (was it working fine in non-IE browsers, not using Java applets, etc).
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by pero on Thursday June 16, 2011 @03:23AM (#2660394)
Out of the major banks in Canada, the one with the most ATMs is the smallest--and incidentally also has the highest Forrester's marks in online banking.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by billybob on Wednesday June 15, 2011 @03:35PM (#2658683)
I agree with you about planning, but "test driven development" isn't haphazard; it's not just clicking around to see what happens. It's a way of formally specifying your design that simultaneously confirms that your code does what it should.

For instance, you write a test that says the user should get a "not authorized" if they try to access another user's account. You run the test, and it fails. You change your code to make it pass. And every time you update your app from then on, you re-run the test and make sure you didn't make that test fail.

Having a design on paper isn't as useful as having one that you can PROVE your code conforms to.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by bguthrie on Wednesday June 15, 2011 @07:48PM (#2659565)
There is no guarantee that anything specified on a whiteboard will actually make it into physical code, particularly if it's handed down from on high. Banking websites are terrible not because they use TDD, but precisely because of the supposition that a good architect and a whiteboard is enough safeguard to skip them.

Tests make it possible to refactor your code towards simplicity and clarity, making security errors more clear. If you're writing a banking application, ignoring them is simply foolhardy.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by kaiwren on Wednesday June 15, 2011 @08:24PM (#2659635)
So you're taking a ridiculous loophole created by enterprise architects that probably spent six months whiteboarding this shit before letting the devs write a single line of code as an excuse to troll on the subject of TDD? Lame.
Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by ashwinraghav on Thursday June 16, 2011 @12:45AM (#2660138)
Firstly this kind of vulnerability requires no white-boarding. It is fair to assume that a dev with a reasonable understanding of how the web protocols work will not need a white board to figure this out. So firstly the argument of catching this on a WB is a little juvenile.

Associating TDD to being haphazard is pretty random. Being hap hazard and TDDing are really in 2 different math spaces. Care not to mix em?

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by jez_h on Wednesday June 15, 2011 @07:59PM (#2659590)
If you're "haphazardly putting your app together" then you're not doing "test driven development".

TDD and using your brain coexist quite happily. But if you're not using your brain, then TDD won't save you.

So no, that's not how they managed to be this stupid. They managed it through not using their brains.

Re:How Hackers Stole 200,000 Citi Accounts Just By Changing ... by jbrechtel on Wednesday June 15, 2011 @08:06PM (#2659605)
Could you please elaborate on why you perceive a correlation (or causation?) between TDD and haphazard development?