In this chapter, we begin to study how to apply security in. We start with why we need security at the program level and. In one form or another, protecting programs is at the heart of computer. So we need to ask two important questions: How do we keep programs free from flaws? How do we protect computing resources against programs that contain. In later chapters, we will examine particular types of. In this chapter, we.
Thus, this chapter not only lays the groundwork for. This chapter deals with the writing of programs. It defers to a later chapter. The trust problem. Presented with a finished program, for example, a. In part the answer to these questions is independent.
Chapter 5. The reporting and fixing of discovered. Chapter 9, as are liability and software warranties. For. now, however, the unfortunate state of commercial software development is. Consider what we mean when we say that a program is . From the point. of view of a program or a programmer, how can we look at a software component or.
This question is, of course, similar to. One way to assess security.
However, we are likely to get different. This difference occurs because the importance of. For example, one. And someone else may decide code is secure if it has run. But a third person may decide. An assessment of security can also be influenced by someone's general. For example, if your manager's idea of.
This security view played a role when a major computer. But the machines were not secure, because all locks. Thus, another view of security is fitness. For example, developers. Sidebar. 3- 1 explains the importance of separating the faults—the causes of. Fixing Faults One approach to judging quality in security has been fixing faults.
You might. argue that a module in which 1. Au contraire, challenges your friend: a piece of software with. Your friend's opinion is confirmed by the.
Early work in computer security was based on the paradigm of. Often, a top- quality .
The test was considered to be a . Unfortunately, far too often. The problem discovery in turn led to a rapid. There are three reasons why.
The pressure to repair a specific problem encouraged a narrow focus on. In particular, the analysts paid.
The fault often had nonobvious side effects in places other than the. The fault could not be fixed properly because system functionality or. Unexpected Behavior The inadequacies of penetrate- and- patch led researchers to seek a better way.
One way to do that is. That is, to understand program.
We call such unexpected behavior a program. Unfortunately, the terminology in the computer security field is. IEEE standard described in Side- bar 3- 1; there is no.
A flaw can be either a fault or. In spite of the inconsistency, it is important for us to. For example, a Trojan horse may have been. Trojan horse's malicious behavior.
Thus, we. must address program security flaws from inside and outside, to find causes not. Moreover, it is not enough. We must also determine how to prevent harm caused by. Program security flaws can derive from any kind of software fault. That is. they cover everything from a misunderstanding of program requirements to a.
The flaws can result from problems. The security flaws can. Thus, it makes sense to. Sidebar 3- 1 IEEE Terminology for Quality. Frequently, we talk about .
The IEEE has suggested a standard. IEEE Standard 7. 29) for describing . For example, a. designer may misunderstand a requirement and create a design that does not match. This design fault is. Thus, a single error can. A failure is a departure from the system's required behavior.
It. can be discovered before or after system delivery, during testing, or during. Since the requirements documents can contain faults. Thus, a fault is an inside view of the system, as seen by the eyes of the. These categories help us understand some ways to prevent the inadvertent and.
That is, in the words of Sancho Panza in. Man of La Mancha, . Furthermore, a system. From reading the popular press (see Sidebar 3- 2), you might conclude.
In fact, plain, unintentional, human errors cause. Regrettably, we do not have techniques to eliminate or address all program. There are two reasons for this distressing situation. Program controls apply at the level of the individual program and programmer. That is, we take a . However, security is also about preventing certain actions: a.
It is almost impossible to ensure that. Regardless of designer or programmer intent, in a large and complex. We are forced to examine and test. So sheer. size and complexity preclude total flaw prevention or mediation. Programmers. intending to implant malicious code can take advantage of this incompleteness. Sidebar 3- 2 Dramatic Increase in Cyber Attacks. Carnegie Mellon University's Computer Emergency Response Team (CERT).
Part of CERT's mission is to warn users and developers of new. According to the. CERT coordination center, fewer than 2. But the. number increased dramatically in 2. How does that translate into cyber attacks? The CERT reported 3,7.
But in the. first quarter of 2. Moreover, as of June 2. Symantec's Norton antivirus software checked for 6. Mc. Afee's product could detect over 5. The. Computer Security Institute and the FBI cooperate to take an annual survey of.
Of the respondents, 9. By a different count, the Internet security firm. Riptech reported that the number of successful Internet attacks was 2. Janu- ary–June 2. A survey of 1. 67 network security personnel revealed that more than 7. However, 6. 0 percent of respondents admitted that. It is clearly time to take security seriously, both as users and developers.
Programming and software engineering techniques change and evolve. So we often find. Still, the situation is far from bleak. Computer security has much to offer. By understanding what can go wrong and how to protect.
Types of Flaws To aid our understanding of the problems and their prevention or correction. For. example, Landwehr et al.
They further divide. In the taxonomy, the. This list gives us a useful overview of the ways programs can fail to meet. We leave our discussion of the pitfalls of. Chapter 4, in which we also investigate. In this chapter, we address the other.