CHAPTER 4Ghosts in the Code
4.1 ALL SOFTWARE HAS ERRORS
Software contains errors. An undetected error typically occurs at least once in every 50 lines of computer code, even in commercial software released after completing quality assurance (QA) processes.1 It is these errors that are at the heart of cyber risk. An error that causes a malfunction is known as a ‘bug’, after a 1947 glitch in the Harvard Mark II electromechanical computer was caused by a moth in the machinery.
4.1.1 Accidental Malfunction
Even rigorous checks can fail to find the hidden ghosts in the code.
Errors can cause the software to malfunction, even without external intervention, usually in ways that the QA system hasn't anticipated. Some of these can be very costly. On August 2, 2012, investment company Knight Capital ran a test of its new software system, written in-house, for executing automatic rapid electronic trades on the US stock exchange. Unfortunately, an error in the software inverted the conventional wisdom of trading: it bought high and sold low, losing money on every trade, 40 times a second, for 30 minutes. By the time the traders managed to get the rogue system back under control (yes, they tried switching it off and switching it back on again), they had lost $440 million, and nearly bankrupted the company.2
Software errors have been blamed for billion-dollar rocket launch failures,3 deadly helicopter crashes,4 and malfunctions of medical equipment that have cost lives.5 A 2002 study ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access