Feds spend billions to run museum-ready computer systems
bigstory.ap.org
bigstory.ap.org
http://jimwarholic.com/2009/04/fdd-floppy-disk-drive-emulato...
That's great reasoning, until the day it stops working.
It sounds like a problem to me for the simple fact that replacement parts are near impossible to find, and it's clearly costing the taxpayer a lot of money. That alone should be reason enough to upgrade.
It's also a huge security problem because many of these machines were designed before modern security procedures were invented. How am I supposed to maintain a cryptographically secure password system on a machine with a processor too slow to run a hashing algorithm?
> I'm skeptical that building a modern system would really save money since the temptation for feature creep is too great.
So, because we might be tempted to add a few features, we shouldn't upgrade technology? I don't understand where this weird pseudo-luddite mentality in the tech world comes from. I see it all the time in tech forums, and I just don't get it.
"If it's not broke, don't fix it" is a fun, catchy phrase, but it really breaks down as soon as you try to apply it anywhere. "Hey, you should really change the oil in your car." "If it's not broke, don't fix it."
Counter-argument: How are you supposed to develop a virus for such obsolete technology, and even then, how are you supposed to infect a system without it being networked in a meaningful fashion?
https://en.wikipedia.org/wiki/Floppy_disk_hardware_emulator
It's often a lot cheaper to deploy a fix for what's actually broken, than it is to completely replace a business critical system.
There are parts of technology where you're absolutely right - if some mission-critical system is running on some old circuit, but it works reliably and maintenance is feasible, don't change it!
But other pieces of tech include the Windows 95 computer that is the only one anyone can do _____ with, because of some complex system that only runs on it. And anytime you do _____, you need to copy your data onto a file, and exclude some specifically formatted config file that you write in notepad, in order to get it done. And the whole system is a small project that could be feasibly implemented quickly and cheaply to run on modern computers.
So there are two sides to this, and arguing absolutes doesn't get us much closer to the truth.
From the article, it mentions that Social Security has a variety of legacy systems, and updates the ones that it thinks are the slowest and costliest. Which is the right way to think about it, so long as they have the technical expertise to make those judgements correctly.
There's some hope on reducing costs at least. Look up NuVAX for an example of emulators being designed to work exacly like old hardware for fraction of price, space, energy, and so on. I haven't heard attempts but next step might be instrumenting them to trace programs code/data for porting. Or binary translation to modern architectures. I know DEC did latter for VAX-to-Alpha port.
Factors affecting public sector that private industry typically doesn't face typically, though, is that most federal contracts basically mean that the entire supply chain must be "Made in America." When the federal government buys something, they want to have as much of it made by US citizens on US land and with US investors unless there's no viable alternative that meets criteria (there's hardly any fabrication facilities in the US, for example). Outsourcing labor and not owning as much of your supply chain is profitable. The federal government operates somewhat similar to the Carnegie model of vertical integration in the classic sense. Obviously, this does not hold very well in today's business environment except for a select few companies (Apple being the notable one) because cost models are so different.
There are accountability, alignment, and bureaucracy problems across the Fortune 100 aplenty even excluding the parts that sell to the federal government. It's tough to scale organizations as behemoth as large as the Fortune 10, I don't see how the federal government's millions of workers and perhaps even more millions of contractors are any easier.
A long time ago, I was responsible for such a system. I didn't ask for the job; I simply was the smartest person in the room for too long.
I vividly remember one day we had a problem with folks in a remote location entering things and those things getting mangled and/or lost on the way to the system-of-record.
For one system, with maybe five thousand users and perhaps a few gigabytes of traffic a month, I was on a call with 30 people spanning most of the Earth. I learned that there were at least a dozen separate systems at that location between the person entering the data and the data being sent to HQ. Each system was old. Each system had a separate vendor which claimed to be the only vendor to understand that system (Sometimes this was true. Many times they were just bluffing.)
And -- and this was the kicker -- for each of our dozens of locations, each location manager, because of their friendship with politicians, made their own decisions about how machines were configured and which programs were installed. They were complaining to us because things were bad, but they did not feel like they answered to us.
I was responsible for fixing it.
At the end of that call, I was reminded of Arthur C. Clarke's quip: Any sufficiently advanced technology is indistinguishable from magic.
But I doubt I thought of it in the way he meant it.
I understand this article mentions many different sectors and functions for antiquated systems but sometimes an update simply isn't needed.
Careful. I believe I just read an article (Wired?) about some hackers doing exactly this.
Security through Seniority might be a good name for the mindset. :-)
EDIT: honestly not being facetious just curious because this exact thing happens constantly.
In this case, the old systems were all torn apart by older hackers. There's young ones, just a few, hacking mainframes and stuff now. The ease of finding first flaws showed only reason they weren't found sooner is nobody cared enough to look. Or couldn't afford the relics to play with. So, believing one is safe just because computers are old is akin to Security via Senority.
Now, there are older approaches like tagged HW or dedicated lines whose intrinsic properties reduce odds of attacks. Definitely apply any good techniques from past to present situation. Just that it's old... especially since it's older than INFOSEC itself... doesnt make it safer.
Questions like this are pretty common there.
As an added bonus, Peter Shor (famous for Shor's algorithm) just might answer your question.
But you're right, it's sad how many people insist on feeling smart by taking a general statement as a universal statement and nitpicking it. It's so tiring.
I suggest you avoid the knowingly broad and include nuance to your arguments. I like the suggestion of adding "generally".
This is the same thing as security through obscurity or security through lack of usability IMO.
For example, NASA still uses hardened 808x systems. On top of that, for space-based systems in an ionized environment, the risk of having hardware developing hardware faults is non-zero, and the kind of things people do for error correction in that environment is insane.
The flip side of this is that, when a technology is widely used, there is a scaling that happens. If you are the sole user of a technology, then part of your cost is maintaining that technology that used to be shared by all the other users of that technology.
And then there's the bigger question: how effective is nuclear deterrence? And I don't mean for the United States of America vs. the rest of the world. I mean for the global, human civilization, and homo sapiens as a species.
Yeah the guy who maintained the OS was basically the only guy in the country who could so obviously we had to put up with his bullshit lol
The risk of faults is not only non-zero, it's expected. Google 'single event upset' and 'nor flash soft error. Short version - (SEU) any bit in your RAM, CPU, peripherals, or databus can (and will, eventually) be randomly flipped in a high radiation environment. (Soft Error) - A random cell in your flash may be pushed into an indeterminate voltage range, and will return a different value every time you read it. So, for instance, you may CRC it, think it's good, copy it to RAM, and then the CRC of the RAM copy will fail because you got a different value the second time you read it.
There are ways to deal with this. Google 'lockstep CPU' for information on a common, fairly hardcore approach. Basically you replicate the CPU (and the rest of the hardware) and cross-check every single clock cycle; you essentially have two or more computers in one box doing the work of a single computer.
As you can imagine, this hardware is typically entirely custom, tested more thoroughly than anything you've ever imagined (unless you're in a safety critical industry yourself), and very expensive to design & test. Hardware refresh cycles are typically measured in decades, often governed by component obsolescence.
> who writes malware for a 30 year old OS?
This may be relevant ... https://en.wikipedia.org/wiki/StuxnetSounds like a taunt. Almost makes me want to write some code
As someone else said, security via age and rarity.
They had an old database from the early 70s that stored _all_ of their data, everything, contacts, billing, etc.
That was accessible through a special proprietary program, that was overseen by one college kid after the rest of his team was let go.
That proprietary program was essentially an old DS prompt, which was connected to via a Java applet for an early version of Internet Explorer < 7 that emulated the old dos-like user interface.
That Java Applet was connected to via a Java web service, running on machines that had the java applet and ie installed.
The Java web service was accessed by tens, possibly a hundred thousand people nationally, through a few different interfaces.
The one I was aware of (probably the largest), connected to the Java Web service, through a C# WCF service.
The C# WCF service was built as a backend for a new javascript / html4 front end for their company.
That new UI, was intended to partially (BUT ONLY PARTIALLY) replace a strange, 100% actionscript web ui made previously.
Learning about their system architecture, was quite literally like stepping back through time. I felt like an archaeologist, uncovering layers of an ancient city.
It was also amazing how many people were employed supporting each system, each of which could have replaced the lower tiers if they had just upgraded at the time.
It was similarly amazing, how the company had laid off everyone at entire layers, when management arbitrarily decided they needed to make cuts, while other layers doing the _exact_same_thing were staffing huge quantities of people, completely unaware that a single bug in the layer beneath them was not being overseen, or supported, and could bring the whole house down at any time.
I agree with all the comments that say that legacy systems, government or corporate are not inherently, necessarily bad, inefficient, insecure, and in need of replacing.
Seriously, though, as far as I can tell, the transition to Python 3 is extremely low on pain. My Perl 5 to Perl 6 transition will be much more interesting, however.
I hate Perl as a programming language, but it does provide stability.
Honestly it might be heavy on new system acquisitions. I tend to think that enterprise lifecycles are too fast, most of the time, but that's because they're frequently driven by vendor licensing policies that make old-but-working systems prohibitively expensive on purpose. (IBM is notorious for this.)
I don't know if there's a name for this already, but I think there's a common fallacy in which people think that a "chuck it and redo it from the ground up" effort will be easier than fixing their existing system's bugs and/or will result in a less-buggy system. But there's a danger in that you're just moving from a situation where you know where all the bugs are, to a situation where you haven't found them yet. I've seen companies that seem to be stuck endlessly in this cycle.
Porting something like that across a non-backwards-compatible version bump while preserving identical behavior which is sparsely documented and uncovered by unit tests? Starts to be a serious amount of effort quickly.
<3 <3 <3
Indeed. Basically anything in the JS world, except maybe nodejs, will vanish in 5 years. (I'm looking at you, bower, gulp, EmberJS, even the giant dinosaurus jQuery is on the decline, given everyone and their dogs shift to Angular)
Seriously, if one is after long-lived software, choose a solid PHP framework (Drupal 7, for example, is around for 5 years now and probably will be supported for two or three years) or a Java framework, together with a rock-solid database (i.e. no NoSQL crap)...
Hate PHP and Java all you want, but these two languages put backwards compatibility as priority.
And the government could just choose not to use any third party framework.
But to prove your point, people are moving to React, not Angular :-) jQuery is used in almost all Angular apps anyway.
Besides that, use open protocols and open source for the whole stack. Use open source hardware too, but don't depend on being able to order new hardware. Processes could change (we could move away from silicon to something else), or file formats for schematics can change so that you can't find anyone to produce the product.
Also helpful would be to target a common VM like the JVM instead of relying on hardware-specific abilities.
I've never read through those contracts myself but I would hope that they're public record if they're so old and important.
Interestingly, there's case studies in the private sector for doing exactly this sort of thing in cyclical industries. Toyota is famous (within the rarefied air of supply-chain textbooks, anyway) for supposedly buying up its suppliers parts and stockpiling them, or even just paying the suppliers to be idle, so that they don't go out of business (or start retooling for other clients) during lean times and are ready to go when demand returns. If you view the military-industrial complex as basically a "supplier" to the US Government, and view the demand for military equipment somewhat cynically as a cyclical demand curve, the government's behavior makes sense. You don't let your suppliers go out of business if you think you might need them again...
That's really the best way to do it; you have to own (or control) as much of the supply chain as you can. Not really practical if you're a private company who has to compete on thin margins, but not really that hard to imagine for a government.
As far as impracticality arguments: keep in mind that each government that maintains a nuclear arsenal (rogue/client states excepted) already has a completely captive technological supply chain, generally at least at a 1950s level, in order to manufacture the weapons in the first place. So if you wanted to build secure nuclear C2 systems, it would make sense to basically build them with the same degree of security, and using the same presumptively-secure supply chains, that are used to create the weapons themselves.
"Feds spend billions to enforce museum-ready laws"
These computer systems aren't even that old compared to many things the government spends money on.
later I moved up in tech to a sperry/unisys system. all our personnel data and such was loaded via cards, physical cards in multiple boxes till near 88.
So honestly I don't doubt they still do similar. I was just so glad we got out of boxes of cards because having to fix runs each night got old and all for bent card.
it got me into programming, turbo pascal at the time. why, when we moved off physical cards it was then onto 360k floppies. The problem was, the upload/download programs provided could take half an hour or more to transfer to the 1100/70. The turbo pascal program did it in five or less per disk without issue.
In theory there's a middle ground that avoids both these extremes. In reality, with government software... I'm skeptical it will happen.
Fortran can actually be surprisingly pleasant, at least as pleasant as C, but I'm guessing their particular code is not.
Although I suspect it's a bit of an exaggeration because it seems the IRS is using System/360 which started 1965 https://books.google.ca/books?id=HwniRloeB6cC&pg=PA2&lpg=PA2...
If it is getting the job done cheaply and efficiently that required and better than the alternatives it is the best technology to use.