ATM operators eye Linux as alternative to Windows XP
computerworld.com
computerworld.com
And currently it's pretty easy to do this, with build-scripts and infrastructure in place. Maybe even using a tailored Android?
But then I somehow doubt that the industry would take that opportunity: I've seem my share of "embedded" devices (signage, control-room-displays) where the vendor just slapped their proprietary .exe in Autostart and left the Vendor supplied Win-XP + Nagware + never-updated-virus-scanner + ... intact.
Why? Because people in industry are lazy (they should be, maximizing their ROI, doing as little own work), and so going the same route, but with an 8 year old Ubuntu will not gain anything.
Also, I didn't get your remark about "8 year old Ubuntu". Why not a newer QT based Ubuntu?
Why not? You pay a one-time, small license fee, you get years of free support from a major company, I don't have to document all the details of my stripped down kernel and how to recreate it, you can hire anybody off the street to work on it long after I am gone (and I am long gone from that company, but the hardware lives on), they didn't have to pay me to build out a unique OS, the low power computer we had could more than handle XP, there was (and continues to be) continued new, unknown requirements and upgrades, the people required to occasionally touch the interface had more PC experience than for any embedded or linux OS, and on and on.
Why wouldn't I slap a copy of XP on there? Well, this story is the counter-argument, of course. I still think it was the right decision.
In either case, I don't understand why ATM industry should be pissed - it's not that they were patching ATMs on a regular basis... In case of XP Embedded the patching story is even more convoluted.
>> I've seem my share of "embedded" devices (signage, control-room-displays) where the vendor just slapped their proprietary .exe in Autostart and left the Vendor supplied Win-XP + Nagware + never-updated-virus-scanner + ... intact.
This is what scares me. This happens so often and so frequent. I know it may be a shock to HN, but huge amounts of "embedded devices" are built this way. I for one would love to see custom tailored Android or linux -- but I'll say it again -- I really really do not trust them to do it right. Sorry to start the day pessimistically. :)
The WinXP users are in the same boat as the Ubuntu users - someone is going to need to update that video driver and smooth that new software into the production run without tanking machines that are already out there. Service techs HATE having to deal with 24 different flavors of the same circuit board and crossing their fingers they updated the right file onto the correct board.
So yeah it's lazy that relying on Windows to handle all that lifting but, hey guess what, there's a lot better chance someone has a Windows driver for that new display that the Ubuntu crowd does.
Android has a lot of potential for embedded GUI usage (I'm doing it myself) but the driver stack integration is a LOT tighter than slapping another DLL into the mix.
If I would be into POS systems still they would be Android anyway. Makes all the sense in the world.
Linux the kernel, I would say, to avoid ambiguity. And second, I'm not sure what you refer to when you say "extremely secure" but even Linux had its share of issues recently (GnuTLS library).
For offline equipments, not sure how likely they would be patched, though.
I agree that free software seems to be very much responsive to disclosed issues though, and while many vendors (perhaps especially Microsoft) have gotten a lot better lately, the image remains (rightly or not) that closed source companies move (too) slow when it comes to patching security issues.
(Part of that is quality control, patching one bug tends to introduce/expose more)
It does have some quirks when trying to use it with software designed for swiping in mind and a keyboard and mouse, but that's probably not going to be an issue here.
I say Android could be a good choice, and it will also give them a migration path from X86 should they later on want to.
[edit: I suppose things might be a little (but only a little wrt drivers) worse than I thought, given eg:
I'm an android fan.. But, I just don't see it for something like ATMs.
ATMs need physical buttons for disabled users, so the whole touchscreen thing is a no go. They need experienced, stood the test of time, companies to provide support over the 10-15 year lifetime. They need reliable and auditable source code, so the less code, the better. In other words, they need something that's not android.
The Linux kernel makes a lot of sense given these requirements, paired with a bare minimal userspace and graphics stack, they can likely make good on their existing hardware until it either ceases up or simply can't support new standards like Chip+PIN.
Does this mean it requires someone on site to boot the machine? I could see that might not be an issue for ATMs, as they are usually located near banks. It might be an issue for remote locations, though.
But you can actually just leave the entire sector write only, even on boot. This is what most embedded Linux systems do - the entire rootfs is read only, /tmp and the like are on a ramdisk, and only a small writable partition remains for things like logs. In fact, Linksys routers didn't even have a writable filesystem - they stored all their settings on a separate EEPROM.
Or use a turn-key switch. First put it into II, wait for the boot sequence to complete, switch back to I. Yes, that does require someone to be on site but that tends to happen anyway when someone restarts the ATM in the first place. If you want to update the software remotely, you could download it into ramdisk and run it from there. For the base system, you'll want something robust so it's more or less guaranteed to get to the point where you can manage it remotely. And you could verify the downloaded application bits against a locally installed root certificate.
The old MS-Windows-based ATMs may be rebooted daily, but let's face it, that's just because Windows. When the base system has to be updated for some reason, a service technician will have to physically replace the storage device for it. If that happens very often, they're either doing it wrong or I'd recommend against such a setup. But perhaps the vendor can charge for the service, in which case /care ;)
Or they could turn the key into II every last Monday of the month for example (the ATM would go into maintenance mode) at a certain time and let the big maintenance server do its work overnight, avoiding the situation altogether at the cost of a slightly greater risk that the machine becomes defective.
In any case, a tiny embedded OS would be perfect for the job.
Bankers and ATM manufacturers ain't morons. They aren't using Windows XP out of ignorance. ATM's have been widely deployed in the US since about 1980 and it's the last version of Windows that runs old 16 bit code directly.
It is not as if banks have an aversion to Linux. What they are averse to is risk. Reimplementation requires testing for a level of robustness well to the north of MtGox. Multi-touch pinch to zoom doesn't matter- ATM's require physical buttons for handicap accessibility [by law in the US].
Disrupting banks isn't about ATM's. It's about new financial structures.
Moron is perhaps a harsh word but it's been known to the public when Microsoft will stop supporting Windows XP. They had years to prepare. And they are multi billion dollar corporations. How can they have dropped the ball with this?
I don't know, I'm just thinking of possible reasons. Same as in the good old NHS in the UK [1] and especially the comment at [2].
[1] http://www.theregister.co.uk/2014/03/20/doh_microsoft_nhs_on...
[2] http://forums.theregister.co.uk/forum/1/2014/03/20/doh_micro...
and
http://forums.theregister.co.uk/forum/2/2014/03/20/doh_micro...
Please show me the comparative risk analysis of sticking with XP after support ends versus rewriting an existing code base across fleets of machines that not only spit cash but are also hardwired into the electronic transfer systems.
I''ll stipulate that coming across as a brogrammer friendly workplace doesn't count.
Every single manager did a quick analysis, worked out that the upgrade would cost "Holy shit, how much of my budget?", and punted down the road in the hope that someone else would have to eat the cost.
And, Microsoft will probably extend support (for a big chunk of money) after the big companies scream enough.
"If I were Microsoft, I would have kept XP embedded alive for a few more years, and charged an escalating support fee" for it, he said."
You could install one of these patches and it totals your machine. Now what do you do?
As for totalling your machine, you'd do the same thing you'd do if you installed a flaky update now, i.e. a system restore.
The difference is, if you were running a supported version, then you could get MS to help you solve the update installation. But with the unsupported OS, all you can do is skip the update. And then you're back in the realm of an unpatched, insecure OS.
I've seen last year an ATM stuck in a reboot loop of some kind running OS/2. Was the first time in my life I saw this OS and probably the last.
Nowadays, things are really different. Red Hat is large and has a solid track record. IBM has shown its support for Linux over an extensive period. SUSE is now in the hands of a huge IT company.
Consequently, I don't think there is a good excuse in 2014 not to seriously evaluate Linux. In fact, it should be (and often is) the standard option for embedded devices.
Which one are you referring to?
The 'bad' thing now about Windows (and iOS, OS X) I can think of technically at this moment is that it is closed. I would not like to run my company on something closed, especially if there are nuclear reactors, missiles, airports, airplanes, medical crap involved. I want to be able to dive down to the line of code instead of having to ask a vendor why it does what it does. So again, from a tech point of view, I do not understand why any CTO would pick a closed solution over an open, especially when lives are at stake besides him/her covering his/her ass. And that's probably what it usually is; no balls to pick the best thing for humanity (...) even if it's an uphill battle.
It isn't. You have to find completely different loopholes in each implementation of networking stacks to exploit them. Anyone running outdated software is always vulnerable to newer exploits, but the thing with Linux is that is audited by thousands of businesses around the globe, whereas Windows probably has back doors for the NSA through some backdoor dealing with the US gov't and nobody can audit that.
Most non-startup companies have a huge tech stack in place. That stack depends in many ways on the OS. If today you win/make a bid for a display in an airport, the first thing you should be asking is "how do I leverage my existing code base". The answer is almost never "by completely switching my OS". Especially in the scenerios being discussed in this sub-thread - lives at stake. I'm going to throw away my multidecade tested code for new code, and call that safer? No, never.
Much (not all) of the code at the company I work at now is Windows based. I'd like to switch away, sort of, but for what? A nebulous "it's open" argument, vs converting man-centuries of work? It makes no sense.
It has nothing to do with "balls", but a cost benefit equation, and a recognition that a 5-10 year old, battle tested OS is pretty darn safe compared to some kernel released in the last 3 months.
Also; when you write software, now or in the 80s, late 70s (before that it was a bit harder unless it was Cobol/Fortran or something), you separate the frontend from the backend. I wrote a ton of 'Windows only' (meaning it had to only run on Windows) software for companies in the 90s and 90+% of that C++ or Delphi code compiles fine on Win + Mac + Linux. I will still say it's about balls in choosing your tech if it's not mainstream aka simply blabbering out: Oracle + MS, but more so now; now there isn't much excuse for picking lock-in tech for the most part.
Not sure what the 3-month old kernel is about; those exist in MS/Apple/... as well; who runs prod on that? So what does that even mean?
[1]: http://www.zdnet.com/microsofts-16-billion-dollar-businesses...
Whereas if I go to the Microsoft site, I can trivially find support lifecycles, details of what is supported, all of my tools pretty much interoperate (no breaking changes), it is easy to download from MSDN whatever set of technologies I need for any version of software, and so on.
I realize I am being unfair - I am familiar with MS support, and not with Red Hat support, so obviously it will be easier for me to find this stuff. But, consider me your average CTO. I don't think the case has been made for long term support of OS as host for my applications (we are, after all, talking about buying an OS to host my applications, not support for servers, which RH is very good at, of course). Hard questions that a CTO should be asking, and I suspect the answers are not going to be good.
But it's much worse than that, I was amazed when I learned that it's actually possible to dabble with ATM PC without anybody noticing - as presented on last CCC: https://www.youtube.com/watch?v=0c08EYv4N5A (basically the researches said that while the money case is in vault, the computer itself is not ... so this was exploited to install malware which would empty the money supply on request).
What's the new page? their CEN website is a bit confusing
I assume each operator paying to different opensource-shop of their choice is going to be more problematic than all of them paying to only Microsoft.
There isn't really anything special about the Windows builds ATMs run. It's all in the ATM software.
Will Redhat support the same Linux version 12 years from now?
If they don't care about OS support. Then they wouldn't have problem with Windows XP EOL.
What's the attack surface anyway, the modem drivers? It really, really shouldn't be possible to overflow anything using a "custom" card, or the number pad... (I do sometimes wonder about hostile smart card code for chip and pin, though...).
Well then don't they have the exact same problem as they do now with MS? Or more general: are the update cycles from a typical linux distro that different from Window's? I.e. can you really get security updates for such distro 20 years after it was released? That would mean the only benefit for choosing linux is that there are possibly less securit issues to begin with, while the article seems to claim the problem is all with the update cycle.
More seriously, with a truly stripped down free software solution (be that Linux or *bsd founded), you can have a pretty good idea of exactly what code you are running.
Current Linux might actually be a pretty poor choice, given the high rate of change in the kernel (which tends to drag a lesser, but noticeable change in userland). A few years ago 1.3 kernel might have seemed a sane choice to build such a system on (along with busybox, minimal init etc).
Anyway, the idea would be to get a reasonably audited core system (mostly userland) and a kernel - and then only ever update drivers, and/or add functionality.
Personally I'd be a lot more confident doing that on Linux (or bsd) than on Windows XP, even if given source access (would you really want to compile the needed bits of XP kernel+userland to run on your embedded stuff? The thought scares the beejeezes out of me)).
License restrictions are more likely to make them choose something else, like Sony chose FreeBSD for the Playstation. (Again, no need for drivers for many different configurations.)
Linux is have trouble shaking off its old reputation though.
They also need to be complaint and that can take long on new software, so they would need to pull in a provider who already has the compliance in some related areas, probably Redhat has and then try to tape on the extra compliance needed for the new software, drivers and whole combination.
All in all, it's all very possible, but I think going public with all of this is unfortunately just a trick to get MS to play. I hope it's not as I have always wondered, as a software engineer who created banners, POS systems and information panels (I don't know the proper English jargon for these; I know the Dutch names, but like the panels you see at events, train stations, airports :) why they are not using Linux for everything anyway; everyone always cries about drivers but those have been a non-issue already 10 years ago. 'They are used to writing software on Windows' has also always been a none issue; these apps are complete, fullscreen apps which are the only thing running next to the kernel and a few drivers on these systems. They are almost always completely custom drawn and, like 2D games, that means the difference between Windows and Linux is not really there and hasn't been for many, many years now. You can run SDL straight on the framebuffer and make a tiny Linux distro with your software/drivers to run on it.
We sold Linux POS systems over 10 years ago; built on C & Tcl/TK they were faster, easier, cheaper, and nicer than the Windows versions at that time by a long shot. There is 0 reason why you wouldn't do this, but people are ignorant and unfortunately many of these people are coders; like people are stuck on Linux & Mac, a lot of people are stuck on Windows and lose sight of what is better for the customer (over 10 years ago that would have been stability and price; both much better under Linux) while peddling the 'everything is better under Windows'. I would not expect that from smart devs but he, here we go :)
That EMV terminal that's talking to the windows host might just be running ARM or MIPS linux.
(yeah I work on this stuff...)
I never really wanted to go back into payment systems and had a few years away from them, but it turns out that when you've written an EMV L2 kernel people want to employ you for that sort of stuff again...
That too Windows XP, which has been deemed as the most unsecure OS in the world!. It's long time for them to switch to Linux!
ATMs are not internet-connected and have very restricted inputs, so that's mostly irrelevant[-1].
ATMs use windows because support, licensing[0], institutional knowledge, existing codebases, hardware drivers availability and the like.
Due to [0], as other commenters I'd see them migrating to some BSD rather than Linux, much like Sony did. If they ever switch off of Windows XP in the first place.
[-1] only mostly, if you can cut through and get hardware access, you can have fun: http://www.extremetech.com/extreme/173701-atms-running-windo... then again it seems the vulnerability used here is "boot from USB key" which is orthogonal to the OS used
[0] and no possible copyleft headaches
http://media.ccc.de/browse/congress/2013/30C3_-_5476_-_en_-_...
The operators (Germany, Austria) say they are not connected to the "internet". I wonder if they use a separate telephone-line-network or just use VPN/firewall.
I think that's OS/2 - it looks like DOS with tcp/ip. The copyright on the screen states 1992.
Naturally, even supported versions of Linux like RedHat's and etc. have an EOL date support wise. But in the worst case if some company is stubborn enough to stay on the old version for whatever reason (which might be valid for them), they can take the code and support it themselves. With Windows it's not possible. So open systems have a clear advantage here.
Microsoft has offered an embedded version of Windows since 7, and say what you will about Windows but it's backwards compatibility is second to none. If they can't or won't move to a more modern, secure OS (after 10+ years) then I would argue that they shouldn't be trusted to make ATM's
I don't know enough about this field to comment definitively, but I have to imagine that if one industry cares about security very, very deeply, it's the one that makes machines that give away money when you have a card with a magnetized strip and you push the right buttons. I'm willing to bet that the Windows XP that lives inside an ATM is not the same one that you buy from New Egg to play Half-Life.