Why is controlling the misbehavior of software as important as software behaving as expected during execution?


Making software was originally a straightforward constructive exercise – where you knew what you wanted to build, and worked on building it. With the amount of power technology now wields, the world and its monies ride on a network and on the software at the end of it. And software is not just about “making it work”, but also about “making it not break”. It is not just a defensive method of coding, but a paradigm shift in mindset on how we view a software system. Test cases and use cases are built into the requirement gathering phase and software needs to be developed to fail safely. Each line of code should only do what it is meant to, and no more. And every module needs to be enveloped with exception handlers and catch-alls.

As lives and systems are increasingly digitalized, hacking is no longer a game played by misguided teenagers. It is organized crime. Cybercriminals work around the clock to find vulnerabilities, backdoors, exploitable loopholes, and any chink in the software armor.

Heartland Payment Systems, a payment processing provider, had a website which was coded to do what it should. Help clients and customers to interact with it smoothly process their online transactions. But was this enough? In 2007, savvy online hackers exploited a software vulnerability, injected malicious SQL-code through their public portal, and caused Heartland Payment Systems and its stakeholders “hundreds of millions of dollars” in losses.

Reference

Booton, J. (2013, July 25). Major Corporations Attacked in Historic Hacking Case. Retrieved from http://www.foxbusiness.com/features/2013/07/25/major-companies-victims-in-biggest-hacking-case.html