I. Introduction: The Economics of Insecure Software
Last year the Federal Trade Commission (FTC) demanded that Microsoft improve the security on its Passport information service, or face stiff fines up to eleven thousand dollars per violation.[1] Based on the fact [p108] that information for 200 million users is stored in Passport, Microsoft faces fines that could total up to $2.2 trillion for a security flaw discovered in May 2003 that would allow an attacker to access a Passport account at will. [2] Interestingly enough, the flaw was not discovered by automated scanning, or detailed analysis by a group of researchers. Rather, it took a single security specialist less than four minutes to discover and exploit the weakness.[3] Most would view this story as yet another indictment of Microsoft, but what is most disturbing about this episode is just how unremarkable it is, and how easily it could have happened to almost any of the major software manufacturers. Almost all software is riddled with holes, and programs are released to purchasers with hundreds, if not thousands, of security-related weaknesses. [4] This Article is an exploration of this phenomenon, an attempt to understand just how undesirable insecure software is, and to articulate those forces which are responsible for this situation.
In undertaking this task, this Article will adopt a distinctly law and economics perspective. This approach is warranted given the nature of the relationship at the core of the issue, namely the interaction between software seller and software buyer; but perhaps more important is the framework that economics provides for locating what is the ideal amount of software security. Economically speaking, security expenditure has long been recognized as a dead weight loss, as it represents a transfer of productive resources towards the empty activity of protection. [5] Security is not a product that has usefulness in of itself, as its social benefit derives only from its ability to reduce the welfare losses from theft and vandalism.[6] [p109] Consequently, the social utility of an extra unit of security must be based on it preventing a more significant loss from crime; with an equilibrium point where an extra unit is equivalent to the welfare loss that would be prevented by that unit. Also, it seems fairly evident that security in the context of computer crime is not a homogenous good, and these varying types of security products have different levels of effectiveness. One would also expect that there would be diminishing marginal utility from the employment of any one type of security product, and that a bundle would be the optimal way to achieve security equilibrium. Based on this framework it would seem that the question of whether the amount spent on security is efficient would be primary, but given the near impossibility of calculating the total amount lost to security incidents, the focus should be on the issue of whether the current allocation of resources includes an efficient mix of security-related products.[7]
In the context of computer crime this mix will include some combination of three approaches: engineer applications to have fewer security holes, produce patches as security holes are discovered, and implement security countermeasures to guard against attacks on a more general level. As vividly demonstrated by the example of the cracking of Microsoft’s Passport information system, the current mix favors the last two at the expense of application security. Part II of this Article describes the three types of security, and establishes why application security should be a higher priority. Part III lays out the conventional arguments for why software security is not more of a priority, and explains why they do not sufficiently account for this situation. Part IV puts forth an alternative explanation, that there is a systemic market failure because information about the safety level of software is largely unattainable. Since consumers have no ability to determine if the product they are buying is vulnerable, they cannot appropriately factor security into their buying decisions and companies have no incentive to produce secure software. Finally, Part V suggests some areas of analysis that could prove important for later attempts to define how this market failure might be rectified. [p110]
II. The Bundle of Security Measures
A. Application Security
Software programs are incredibly dense complex configurations of data, and this essential essence of software makes some level of bugs inevitable. [8] However, complexity does not account for the large number of security-related weaknesses found in most software applications. The real cause is a lack of emphasis on software security.[9] This lack of a concern for application security is underscored by the spending patterns of software producers. For the year 2001, they spent more than $8.4 billion on application design and construction tools, while total spending on application security tools, training, and consulting was less than $50 million.[10]
One argument raised by manufacturers about the presence of so many holes is that they are not determinative of whether a system is at risk. They contend that the skills of computer intruders are advanced and that if sufficiently dedicated, they will be able to break the security on a system, or find a way to launch a virus. For example, in Congressional testimony in the wake of the devastating SQL Slammer virus, Microsoft’s Susan Kelley Koeppen took the position that:
These attacks did not occur because the extremely innovative engineers creating the underlying codes disregarded security. They occurred because equally innovative criminal hackers worked day after day to find, create and exploit vulnerabilities in the software or in human nature that gave them new ways to trespass on your computers, steal your data and shut down your networks.[11]
This explanation brings computer security conceptually close to physical security, in the sense that while there may be ways to protect one’s home from an intruder, a burglar will almost always find a way to break in. In the [p111] world of physical security the response is to use significant criminal sanctions and a criminal justice infrastructure, both to deter and apprehend those who would transgress the law. However, the industry position is not supported by the data on computer attacks, which demonstrates that the majority of intrusions can be traced to those with very limited computer skills.[12] These intruders, labeled script-kiddies in computer crime jargon, download standardized tools from the Internet, which they use to exploit common software security holes. [13] This is not to say that there are not skilled malevolent hackers who are breaking into systems, or designing these standardized tools, but the fact remains that holes being exploited by generic tools are a primary source of losses from computer crime.
There is also reason to believe that application security could be useful against other categories of computer criminals. Security specialists contend that the key ingredient in protecting one’s system is not the quality of the intrusion-detection system, fire wall, or encryption protocol; rather, it is whether or not the underlying application software is secure.[14] This is true both in the sense that application holes are the primary avenue through which attackers gain access to a system, and that software is the key determinant of just how much damage will be done.[15] One estimate concluded that design flaws in commercial and custom software composed thirty to fifty percent of the total risks to IT infrastructure.[16] Furthermore, highly secure applications were found in practice to reduce overall [p112] business security risk by eighty percent. [17] Plainly, quality software is an important aspect of a network security scheme, no matter the source of the attack.
The other argument alleged against improving application security is the substantial nature of the costs involved. To make a significant difference in the number of security holes in software, manufacturers would have to make sizeable investments in security that would be passed onto the consumer in the form of higher prices. [18] The size of the costs involved is evident in the current disparity between spending on functionality tools versus security tools, but higher costs are not of themselves an efficiency loss. Instead, the potential for waste is based on the fact that only five to ten percent of software holes released into the market are discovered, and improving the security of applications might involve correcting holes that might never become an issue. [19] To what extent this is wasteful is largely dependent on how easy it is to project which holes are most likely to be discovered. The evidence on this issue is mixed. Some scanning for security holes can be automated, but to a large degree it is labor intensive and holes are extremely difficult to locate. [20] In spite of this, there are general areas of weakness and categories of attacks, and if security is designed into software from the beginning, this can make a serious difference with a relatively small investment of resources.[21] For example, the reason that Passport was hacked so quickly was that the tester was familiar with security principles and common Microsoft weaknesses, and thus knew where to look. The implication is that some of the most problematic security concerns are eminently foreseeable and may not have even been that difficult to fix. There has been very little research on this issue, but a study by Andrew Jacquith found that seventy percent of security weaknesses resulted from design flaws that could have been anticipated by a greater emphasis on security. [22] Specifically, he concludes: “What is most surprising about the defects was . . . the degree to which they were entirely preventable. Armed with the right skills and tools, we believe that the companies in our survey could have readily detected and [p113] fixed the defects we found during the design phase.”[23] Jaquith argues that what made the most difference between the low-performing and high performing software was the quality of the security practices integrated into the development. [24] The efficiency of a more holistic approach is really not very surprising, particularly in comparison to how security is handled in many development situations. Often, a design team will be solely preoccupied with getting an application to work, and the holes that interfere with functionality are their primary concern. Security holes are often addressed at the end of the process, and the effort expended on them is proportional to the immediacy of the deadline.[25]
There is also reason to believe that the increase in cost could be offset, to a degree, by less of a need to invest in security-specific applications. Viega and McGraw argue that there is a direct correlation between poor application security and spending on fire walls, intrusion-detection systems, and other types of defensive precautions. [26] The nature of software security is such that it is only as strong as its weakest link, so one vulnerable piece of software can necessitate substantial investments on the part of the consumer to counter the risk. [27] The value of this reduction of spending on security countermeasures would be compounded by the fact that the marginal utility of an additional unit is close to zero, so the cost of a producer upgrading their software could be diffused over a wide number of consumers. Essentially, there is a choice between a manufacturer upgrading the security of its one product, with each consumer reaping the benefits in terms of security, or the consumers each independently spending on upgrading their security.
B. Penetrate and Patch
While each software manufacturer might have a slightly different approach, the dominant paradigm is what has been loosely termed [p114] “penetrate and patch.”[28] Under this model, software is released into the market, and once a weakness is discovered a patch is designed and issued to contain the risk.[29] This means that purchasers will be susceptible to attacks during an interim period, termed the “window of vulnerability,” between when attackers start exploiting the vulnerability, and when manufacturers have become sufficiently aware of it to develop a patch. [30] Penetrate and patch is predicated on the idea that a security weakness is only problematic in context, and the danger presented by initial discovery is acceptably low. This danger grows as information about the hole spreads, but is still relatively localized until some enterprising hacker decides to automate it, making it available to the much larger network of script-kiddies who are not sufficiently adept to use anything but an automated tool. [31] Penetrate and patch will thus be most efficient when patches are designed and issued prior to this automation, and the industry purposefully attempts to slow this diffusion process, going so far as to push for criminal prosecution for those who would intentionally post such information. [32] They base this position on the argument that the most effective defense against exploitation of a software weakness is anonymity.[33]
The available evidence suggests that there are serious technical problems when relying on patches to fix software problems. Often, the weaknesses that patches are supposed to address are embedded within the [p115] very structure of the code, and they are not always capable of correcting the weakness. This problem is so pronounced that one leading researcher claims that the “effectiveness of patches is somewhere between band-aids and a stiff drink.” [34] For example, both the Windows 9x platform (Windows 95/98/ME) and UNIX were not designed with security in mind, and these systems have needed substantial security retrofitting that has not been entirely successful. This is particularly true of Windows 9x, which is still so vulnerable that a knowledgeable hacker should be able to crash or hijack one with relatively little difficulty. [35] The other problem with patching is that by continually applying makeshift code, the cohesion of the original program starts to denigrate, and a patch can often create as many problems as it fixes. [36] Consequently, while patches may be a necessary component to software security, they are still a stopgap measure which should not be overly relied upon.
Beyond the technical problems associated with patches, there is the issue of whether it is really possible to shrink the window of vulnerability by suppressing information about security holes. There is some validity to the industry argument that it is the publication of information on holes that is responsible for them being so widely exploited. Studies have shown that there is an upswing in intrusions using a given security weakness once it has been publicly disclosed. [37] However, it is probably unrealistic to expect that information on security weaknesses is not going to find its way out into the open, or be passed along to those who would exploit such information. [38] Also, it may be impossible to separate publication of security holes from the general framework of penetrate and patch. Some commentators have suggested that it is the negative publicity associated with public disclosure, or the fear of such publicity, that motivates vendors to release patches. Without this incentive, software vendors would be extremely slow to spend the resources designing patches, if they did so at all.[39]
[p116] Even if anonymity could successfully function to slow down awareness of security weaknesses, there are reasons to doubt that the penetrate and patch approach can function effectively. While the industry has grown better at releasing patches in a timely manner, there are still noticeable examples of long lag times. [40] In other instances, manufacturers have decided that developing a patch is prohibitively expensive, so the user is left with no easy way to repair the hole.[41] Furthermore, even after a patch is released many corporations are slow in updating their software. William Arbaugh found that, “many systems remain vulnerable to security flaws months or even years after corrections become available.”[42] This problem may be reduced by the advent of automatic updating features, such as the one included in Windows XP.[43] However, there is still a lot of resistance to automatic updating, especially by corporations, because it necessitates a high degree of system access be ceded to an external company. [44] Furthermore, recent research indicates that it is not a simple implementation failure by network administrators to timely update their software. Companies are faced with resource constraints that make constant software updating difficult, and they have concerns that patches will create new functionality problems which will destabilize their networks and production systems. [45] [p117]
C. Security Countermeasures
The penetrate and patch approach is complemented by the development of more general “reactive” tools like fire walls, cryptography, detection programs, and other add-ons that are intended to protect a system from a wide variety of security weaknesses. [46] There is no denying that these security-specific applications work, and should be an aspect of prudent organizational security. Fire walls, in particular, are useful in limiting access to the network, and in confining attackers to parts of the network that do not contain vital information. [47] Encryption can also be a very powerful force in protecting systems by protecting packets in transit from interception. [48] Similar to patching, an argument can be made that these measures are so effective that they should be emphasized at the expense of application security. Essentially, if fire walls and intrusion monitors can successfully control the risk associated with vulnerable software then it might not be efficient for producers to invest the resources needed to reduce the amount of security holes.
There is also a second advantage to add-on security measures that arguably makes them superior to both improved security through design and patching. With the other forms of software security, the developer is expending resources to fix holes in a piece of software that will be used by a variety of different companies, some of which face very few security threats, or do not have data that is deserving of substantial protection. Certainly, Citibank needs a higher level of protection than a minor e-commerce web site, but both may employ the same basic database software. With security-specific applications, Citibank can choose the level of security that is appropriate to its risk level and the value of its information. This is the flipside of the argument that it is more efficient to fix the software once instead of companies individually investing in costly security measures. It is not clear which of these two effects predominates, but there is a separate reason to prefer that the software company act instead of individuals choosing the security level they believe is appropriate.
Unlike the world of physical security, insecure companies are a threat to more than themselves. If an intruder can easily enter a company’s network, he or she can launch an attack on his or her real target using that [p118] company’s computers, helping to cloak their identity from possible identification. This type of obfuscation is a key problem for law enforcement in their pursuit of computer criminals, and also complicates the building of cases for prosecution. [49] Furthermore, access to an insecure company’s systems might help to compromise other, possibly more important, companies with which they regularly share data. For example, an intruder could use his presence within the first company to help slip past the fire wall of the second company, or directly enter through a wide-open connection between the two networks, like a just-in-time ordering system. Lastly, insecure networks are useful to malevolent intruders, because they can be used for launching Denial-of-Service (DoS) attacks. In these attacks, computers brought under the attackers control are used to flood a server with requests for service, which can effectively bring network traffic to a stand-still. [50] If enough computers are turned to this purpose, in what are known as Distributed DoS attacks, even web sites with enormous resources can be compromised.[51] Consequently, even if defensive countermeasures were extremely effective in countering attacks, there still might be an efficiency problem in that individual users might not choose an amount commensurate with the optimal social level.
These types of security technologies have their uses; however, in terms of risk analysis overreliance can be dangerous. These countermeasures are largely perimeter defenses; and as a result, once an intruder is able to circumvent them there are few limitations on the amount of damage that can be done. [52] This would not be a problem if the technology were perfect, but this is far from the case, and the combination of human error and system failure means that failures are inevitable. [53] Another problem is that these technologies cannot replace application security because vulnerabilities at the application level can undercut their effectiveness. [p119] Because these countermeasures function according to a particular logic that can be easily grasped by an external attacker, their weaknesses can be targeted. This problem can be seen in the case of cryptography. Even perfect cryptography will not protect against many different types of attacks because the endpoints (where the information gets encrypted or decrypted) can be attacked if those applications are insecure. Attackers know this, and consequently the most vulnerable aspect of a given system is generally application security.[54]
The other reason that application security can undermine defensive measures is that to a large degree they are dependent on applications for the logic under which they operate. This problem is particularly apparent in the case of fire walls, which are often regarded as the most potent of these types of defensive precautions. The term “fire wall” comes from the iron walls that separated the passenger cars on coal-powered trains from the engine compartment. The accumulation of highly flammable coal dust would ignite fires, and the wall kept the fires from spreading. The image conjured up by the term is one of complete protection, a hard shield that is a perimeter around the network. [55] However, a fire wall is permeable, and acts as more of a gatekeeper. Thus, a cell wall would be more of an accurate analogy. [56] An attacker can sneak something through the fire wall, and modern networks are susceptible because of the varying types of information with which the fire wall must interact. [57] This is most problematic in a business context, where information flows are constant between the company and outside systems. For example, a just-in-time ordering system has to maintain a constant and open connection between the network and that of partner companies. Not only does this create an inherent vulnerability because of the amount of information flowing, but it also risks an insider attack from the partner company. The point is that the effectiveness of fire walls is never going to be perfect, and to a large [p120] degree their effectiveness is determined by how secure the underlying applications are. On this point Matthew Levine notes:
By design, however, the network must route legitimate traffic to the critical resources housing business logic in the form of applications. Network security protects the integrity and reliability of the traffic to critical resources, but application logic must determine what input or transactions are legitimate. Manipulation and corruption of application logic is an attacker’s approach to compromising business data.[58]
Superior algorithms may improve their ability to filter traffic, but ultimately they are a simple gatekeeper dependent on interactions with other programs for information on what to block. Consequently, fire walls, and other types of perimeter defenses, are not suitable replacements for secure software.
The final problem with defensive technologies concerns their visibility and how they influence the perceptions of an attacker. This is not true of every one of these measures, but in general one can easily locate, and even check the brand of fire walls, intrusion-detectors, and virus detectors, prior to commencing an attack. [59] In contrast, most applications are not visible through the fire wall, and one aspect of designing security into the application is constructing it to decrease its visibility.[60] Fingerprinting is the technique by which an intruder uses a port scanner in order to ascertain the operating system and applications running on a system. It can be difficult to do, is time-consuming, and opens up the intruder to the possibility of detection. [61] Consequently, when the applications are secure an intruder may not know whether they can even break into a system until they have assumed these types of costs, and the importance of raising the transaction costs in this manner can be seen by drawing upon academic work on the effectiveness of physical security.
This problem can best be understood by looking to a framework used by Steven Shavell in analyzing the market for physical security products. Shavell notes that there is a difference between observable security [p121] precautions and unobservable precautions in terms of their impact on perpetrator behavior. [62] Observable precautions have a displacement effect, in the sense that iron bars on one’s windows may encourage a burglar to attack a more vulnerable house down the street. They may also have what Shavell calls a theft reduction effect; in that they may decrease the amount that a dedicated thief can successfully steal.[63] Similarly, a computer criminal that determines a company is using a technologically superior fire wall or intrusion-monitor may simply move onto an easier target. Shavell uses the example of wall safes to demonstrate that unobservable precautions operate differently. A wall safe will have the same type of theft reduction effect as observable precautions, but it will not possess a diversionary aspect because the thief will not know if the house has a safe or not. In this way unobservable precautions can produce a more general deterrent effect; as the number of safes goes up, so does the thief’s perception that any individual house may contain one and the general cost of engaging in criminal behavior is raised for the thief. This prediction has been borne out in an impressive study by Ian Ayres and Steven Levitt on the Lojack vehicle retrieval system.[64] Ayres and Levitt found that the marginal social benefit of an additional unit of Lojack has been fifteen times greater than the marginal social cost in high crime areas. [65] This reduction in crime was largely due to the deterrent effect delineated by Shavell, as they found that the perception of the mean Lojack installation rate strongly influenced thief behavior. [66] The same might be true of software security: if the average amount of users of secure software were increased and if the type of applications were successfully shielded from external view, then crime might go down.[67]
There is another interesting aspect to this deterrence argument, in that this transaction cost analysis could also be extended to the discovery of [p122] holes. Microsoft’s Passport information system only took four minutes to break, and the expectation of this type of quick result encourages attempts to try and locate software holes. Consequently, a slight increase in the level of software security might have a significant deterrent effect in that computer criminals may not see it as worth their time to probe the code in search of holes that might not be there. This is also an important reason why the cost of increasing software security might not be as high as commonly thought.
III. Traditional Explanations for Insecure Software
That society is not utilizing the proper level of security in software applications strongly suggests that the market for software products is not properly functioning. A normal competitive market should move towards an equilibrium point where the mix of the three components of computer security should be at their optimal point; instead, the two other types are being emphasized at the expense of application security. There are two main explanations that serve as an excuse for poor quality software. The first explanation focuses on the supply-side, and the possibility that vendors are not being properly incentivized due to the absence of liability for security holes. The second argues that the problem comes from the demand-side, specifically, that business consumers are systematically undervaluing the worth of secure software. Neither of these theories is particularly compelling, as they struggle to explain on a causal level why the market has not compensated. This market is composed of sophisticated buyers and sellers, and only a structural impediment can adequately explain why they have not adjusted and overcome minor hurdles to efficient allocation of security resources.
A. The Failure of the Absence of Liability Theory
There are a number of impediments to attempting to sue manufacturers for negligently producing software with security weaknesses. Most software purchases are considered a sale of “goods,” and are covered under corresponding provisions of the Uniform Commercial Code.[68] Some courts [p123] have distinguished that the full development of software for a specific company should be understood as a service, rather than a good. [69] However, this difference is relatively unimportant, as very few software applications are built from the ground up for one purchaser. The importance of falling under the UCC is that they are subject to its warranty provisions, which has the effect of preempting negligence claims that might have been brought under a tort theory of liability. [70] Furthermore, in a contract for a sale of goods the default remedy does not include consequential damages, meaning that the majority of the loss will fall upon the purchaser.[71]
The other possible avenue for arguing for liability would be through the civil liability section of the Computer Fraud and Abuse Act. [72] Early cases made it seem possible that a defective design that harmed the integrity of one’s system might be reachable under the statute. For example, in Shaw v. Toshiba American Information Systems, Inc., the court held that defective floppy disk controllers qualified as knowing transmission under the statute, and thus the manufacturer could be liable for damages in excess of $5,000. [73] However, two changes made to the CFAA by the USA Patriot Act cut off use of the statute for these purposes. Congress altered 18 U.S.C. section 1030(a)(5)(B)(i) so that only the government could aggregate losses from a related course of conduct to meet the monetary liability threshold. [74] This makes it much harder to use the civil liability [p124] subsection because a plaintiff would have to prove that a single attack caused sufficient monetary damage to trigger liability, rather than being able to add the damage from related attacks against the system. Furthermore, Congress added language to the civil liability subsection that specifically exempts damage from the negligent design of software or hardware. [75] This change almost certainly forecloses the possibility of using the CFAA against software manufacturers.
Some have argued that this no liability regime is a fundamental reason why software is insecure.[76] Essentially, without this liability vendors lack a key incentive to produce a quality product, as is effectively explained by Bruce Schneier:
There is no market incentive to produce secure software because software manufacturers risk nothing when their products are insecure. . . If automobile manufacturers were immune from product liability, I would be able to buy a motorcycle with a nitrous oxide injector spliced into my fuel line. I would be able to push the acceleration faster than the brakes could handle. I would be able to have any performance feature that the manufacturers could build, regardless of the consequences. But I can’t, because the manufacturers would face lawsuits for marketing an unsafe product.[77]
Schneier’s analogy to car manufacturers is instructive because it demonstrates that this argument is predicated on a certain interpretation of the nature of software. He is comparing software to a mass-market product, where the consumer is not in position to negotiate specific terms and does not have the technical knowledge to assess the safety feature of the product. While an argument can be made that this is the case for shrink-wrap software, it does not fit business application software that is the primary focus of this Article. Manufacturers being free from liability is a default rule that could be altered through the incorporation of different contractual terms, and even small and medium-sized businesses negotiate specific terms for enterprise applications. [78] Software companies do not rely on these default rules; instead they include specific contractual clauses to free themselves from liability, as is noted by Daniel Perlman: [p125]
Contracts covering software agreements typically include standard form exculpatory terms such as integration clauses, warranty disclaimers, and provisions limiting remedies to the repair or replacement of defects. The use of these contract provisions shifts the risk of software failure from the seller to the user.[79]
These terms do not always have to be to the detriment of the buyer, as there are some limited examples of larger companies successfully negotiating the inclusion of clauses conferring liability on the manufacturer.[80] Basically, the fact that the default rules do not favor consumers in disputes has very little to do with the contractual terms that could be included in contracts.
With this having been said, there is the possibility that a structural reason might be preventing different contractual terms from being negotiated, with implications for the importance of the default rule on influencing behavior. An organization’s network will have applications from a number of different vendors, and it is not clear how security incidents resulting from application interaction would be handled. There is also a moral hazard issue, as a large proportion of software incidents result from the failure of internal IT staffs to properly configure software or to install patches. [81] Estimating the damage from computer intrusions is also notoriously difficult, and would have to be negotiated prior to signing the contract.[82] Yet while these problems exist for computer intrusion insurance policies, they are becoming widely available. [83] While these policies have only been offered for a limited period of time, and are still being fine-tuned, insurers believe that a mix of deductibles, security audits, and effective pricing can overcome the difficulties with assigning liability in this context.[84] This is solid evidence that vendors and purchasers could [p126] account for these issues in a properly negotiated contract. In fact, the existence of cyber-insurance policies makes the fact that vendors do not take on the burden of liability something of an anomaly. Because vendors, rather than insurers, understand the risks associated with their products, one would think this would put them in the best position to assume the risk of intrusions, and profit, from risk-averse businesses. The same should be true of moral hazard, in that the vendors should be able to better anticipate the risks of configuration errors or failure to update software, and guard against them. While alternative explanations exist for this phenomenon, the fact that this is not occurring strongly points towards the existence of a substantial market failure.
B. The Failure of the Lack of Demand Theory
Presumably, if there were a sufficient demand for secure products, then market forces would compel vendors to create better software. Drawing upon this logic, most attempts to explain why a computer security problem exists have focused on the businesses’ demand for security. Two related versions of this approach exist, the first of which claims that executives suffer from a technological myopia which prevents them from understanding the value of safeguarding information.[85] It is not a market failure in the sense that the information is not available; rather it is a generation of executives that cannot appreciate the importance of something as abstract as computer security.[86] Consequently, one would predict that it would dissipate over time as management familiarized themselves to a larger degree with technology, and as younger and more technologically focused individuals infiltrated the higher ranks of management. The available evidence indicates that just such a scenario is being played out. The risk of computer intrusions has largely infiltrated the corporate consciousness, and Mario Correa contends that the vast majority of CEOs are generally aware of security as an issue, and appreciate its importance for their businesses.[87] His contention is independently supported by research surveys which demonstrate “a greater acceptance by senior management that information needs to be protected.” [88] Studies also [p127] show that companies are increasingly placing high level administrators in specific computer security positions, and that the majority of them report directly to senior management.[89] The growing role of a constituency within corporations focused on computer security suggests that these types of concerns are being seriously considered by corporate decision-makers. And while it may have been true at one time that the problem of insecure systems could be linked to corporate apathy, this no longer appears to be the case.
The second version contends that because the value of security products is probabilistic in comparison to the costs which are concrete and up-front, businesses do not choose the proper level of security.[90] The implication is that businesses will continue to under-invest in the efficient amount of security on a societal level, because they choose less expensive options when they are faced with the concrete costs of secure systems. An illustrative example was the federal government’s Trusted Computer System Evaluation Criteria, also referred to as the Orange Book Program, which were a series of guidelines meant to influence commercial systems development and thus improve security generally. Industry successfully delivered secure products; however, governmental agencies refused to buy them, instead preferring less expensive and more functional alternatives.[91] Some basis for this problem also exists in cognitive theory, as individuals are generally risk-averse when it comes to potential gains, but are risk seekers when it comes to potential losses. It is well documented that there is a substantial qualitative difference between the curve of subjective utilities for gains and for losses. [92] However, if such a cognitive bias were responsible for companies not valuing secure software, then one would expect a similar pattern with regard to other types of IT security spending. This does not seem to be occurring, as security applications and consulting are the fastest growing subgroup within the technology sector.[93] Dataquest, [p128] a Gartner analyst firm, forecasts that security-related services in North America will grow to $9 billion by 2006, up from $4.1 billion in 2001, a compound growth rate of 17%.[94] To put these numbers in perspective, Bruce Sterling found when researching his 1993 book that there was virtually no private industry, the government and phone companies were completely responsible for computer security.[95] Security-specific spending has continued even as the rest of the software industry suffers from the global slowdown. For the third and fourth quarters of 2002 every software sector was down, with the exception of the security sector which showed 12.8% and 11.1% growth respectively.[96] Furthermore, companies are so uncomfortable about bearing the risk of security incidents that they are increasingly finding insurance to be an attractive option. [97] Given the high level of corporate resources being devoted to computer security, a lack of will does not seem to be a compelling explanation for why companies are not demanding more secure software applications. Also, considering the evidence that application security is instrumental to preventing intrusions, the lack of a demand for secure applications is a rather glaring anomaly, and is worthy of further investigation.
IV. The Argument for an Information Failure Theory
The reason that buyer demand does not equate to more secure applications being supplied is that there are informational failures which handicap the functioning of this market. For buyers to be able to successfully make purchasing decisions that create pressures for improved security, they have to be able to evaluate the quality of the product. The higher the degree of buyer uncertainty is with regard to the security level of a product, the less it should factor into the purchasing decision. Companies may make claims with regard to security, but in practice these assertions are often quite exaggerated and do not provide a sufficient basis to make a concrete investment in more expensive software.[98] Furthermore, companies know how difficult it is to distinguish between products on the basis of security, and thus find it more useful to try and compete on the basis of functionality and price.
[p129] This reluctance of purchasers to base their decisions on security may be enhanced by the composition of the market, which is dominated by a few major producers.[99] Once a company makes the sizable investment to work with one of these providers, substantial sunk costs may inhibit them from changing. This behavior is a form of path dependency, where the switching costs are so prohibitively high that a company may be forced to continue working with the same provider even after it has become aware of the substantial security failings of their software. This is particularly true in the case of enterprise applications, since a corporation is unlikely to change providers once it has invested in a total network solution, like that offered by SAP. The market numbers provide an illustration of how pronounced this path dependency problem is, as sales rates for enterprise applications have been contracting since 2001, and Gartner is projecting a mere 3.1% compound growth rate in the sector for 2002-2006. [100] This drop in demand is forcing the major software vendors into the small and medium business market, which traditionally has had a higher degree of competitiveness.[101] This migration into the small and medium business market may be an indication that the switching cost problem may also continue to grow.
A conceptual reason why security testing is so difficult is namely that what one is trying to establish is the nonexistence of something. Security testing can only verifiably establish the existence of holes, and not finding a hole could be an indication of the quality of the investigation as much as the quality of the product. [102] However, what is not so apparent is just how severe the implications are of this conceptual problem with security testing. The effectiveness of an application resisting attacks is so opaque that Schneier contends:
The average person cannot tell good security from bad security. It works the same. It costs the same. . . The advertising is the same; the product [p130] literature is the same. It’s not different until you look under the hood: examine the source code, pick apart the hardware. And then only if you’re an expert. The average person still won’t be able to tell a quality product from snake oil.[103]
What Schneier means by “expert” is not a system administrator, or someone else that has a background in programming. Rather, he means someone that has a specific background in computer security, and is familiar not only with the theory of how attacks are undertaken, but has practical knowledge of how different components on the system’s network interact.[104] Only someone with this type of skill-set will be able to ascertain if the absence of visible holes actually means that the holes are not there.
There are some additional complications that make security testing difficult, even for someone with a deep knowledge of the field. Security testing is different from functional testing in that it is a creative process, whereby one probes the system to look for areas of potential weakness.[105] Consequently, familiarity with the product, and an understanding of how it was developed and its internal structure, is fundamental to properly testing it. A different impediment to effective purchaser testing is that the source code is often hidden from the potential buyer.[106] Security testing generally does not result in clear-cut results, and usually a weakness is only discovered when something about a system’s behavior suggests a need for manual inspection of the code. [107] Without access to the code it is nearly impossible to assess whether a vulnerability is present. [108] It is also impossible to assess the general quality of the programming, or to evaluate [p131] how an application deals with common security problem areas like access control and end to-end encryption.[109] In this sense, effective security testing really is best done by the manufacturer, as they have a level of access and depth of knowledge about the product which it is almost impossible to replicate.
The inability of companies to verify an application’s security effectiveness does not necessarily mean that information on product quality cannot be ascertained. To the extent that manufacturers and buyers are repeat players, it is conceivable that reputation can serve as an effective proxy, functionally serving the same purpose as testing. If a manufacturer continues to not live up to the level of their security claims, the market should respond by discounting their products accordingly. This works in the case of most consumer products, as can be seen in the market for automobiles. While the buyer may not be able to personally determine that the Volvo is safer than the Toyota, the buyer factors the additional safety of the Volvo into his buying calculation, based on its reputation. However, this reputational mechanism is far from automatic and requires timely, widely disseminated, and above all accurate information. Since costs are associated with collecting and deciphering this information, if to a large degree these criteria are not met then software buyers would have a rational basis for not valuing security when buying software.
Even if a product is extremely vulnerable to attacks, this information might not be effectively communicated. A number of companies search for software vulnerabilities and publicly report them. The primary motivation for these companies is to generate publicity for their security services, and they have an economic incentive to issue a large amount of these alerts.[110] To garner as much exposure as possible, each alert emphasizes the severity of the hole, and separating the important information from the trivial becomes overwhelming. [111] They are also under the same constraints with regard to the source code, and this limits the depth of analysis that they can perform. The overall effect is a valueless amalgamation of security data that a consumer cannot trust for buying decisions.
[p132] More objective parties also face substantial obstacles in trying to collect accurate information on the degree of security vulnerabilities found in a company’s software. As explained earlier, software manufacturers attempt to contain all information relating to security weaknesses, on the basis that its release serves as a blueprint for malevolent hackers of how to break into systems. This will be particularly problematic if they are successful in shutting down the largest source of reliable intrusion information, namely governmental data under the Freedom of Information Act. Manufacturers are lobbying for a broad FOIA exemption, and if they are successful, the ability of researchers and other third parties to study software security failures will be severely compromised.[112]
Given these difficulties, information about software vulnerabilities is generally confined to what individuals or companies have learned through personal experience. This information is not widely shared because companies have little incentive to publicly report it, and the accompanying information on how the intruder was able to penetrate their system. The 2002 Computer Security Institute/FBI survey found that only 34% of respondents were willing to report intrusions to law enforcement. [113] The respondents based this decision on fears about negative publicity, or that competitors would use it to their advantage, both of which would be present in a more widespread dissemination of attack data. [114] Thus, in a drive to maintain an edge over their competitors, companies are cutting themselves off from information that might be instrumental in helping them to avoid similar attacks. The willingness of companies to share information on computer intrusions may further deteriorate, as they begin to fear that such disclosures could subject them to lawsuits. This concern arises because under recent regulations, such as the finance industry’s Gramm-Leach-Bliley Act (GLBA), and health care’s Health Insurance Portability and Accountability Act (HIPAA), businesses could be liable for inadequately protecting confidential customer information. [115] [p133]
V. The Way Forward
The failure of businesses to be able to distinguish between secure and insecure products is at the heart of the current computer crime problem. When consumers have no ability to evaluate a qualitative difference in an aspect of a good, the only alternative is to make purchasing decisions on other criteria. This is a rather simple proposition, but as has been demonstrated, it can have a substantial impact on the efficient allocation of market resources. The nature of this issue calls for a separate and detailed examination in proposing a solution, but this Article’s analysis does demonstrate some areas of concern that should serve as a starting point for such a study. In some ways the most obvious answer to this problem would be to shift liability to software manufacturers for security vulnerabilities in their applications. However, this would not address the underlying problem and would most likely be bargained around, as has occurred with the current default rule against liability. If liability were more forcefully applied to manufacturers, the market would likely respond by increasing security, but it is not clear that this would be done in an efficient fashion. Depending on the liability rule, whether it be negligence or strict liability, a rule that could not be bargained around might cut too deeply and have a chilling effect on the production of software.[116] In this sense, liability might not be a sufficiently tailored approach to correcting this failure, and regulation might be superior as an alternative. However, regulation would have to address the informational problem directly, so as not to be as ineffective as the Orange Book program. This is not an easy task, as the reasons for this failure are buried deeply into the structure of the software relationship. Furthermore, the value from increased information would in all probability not flow linearly, as there should be a threshold of security knowledge before companies feel comfortable spending more for secure software. Exactly how high this threshold is, and how difficult it is to reach, should be at the center of any examination advocating regulation as a solution.
