Page 385 -
P. 385
368 Chapter 14 Security engineering
Application
Reusable Components and Libraries
Middleware
Database Management
Generic, Shared Applications (Browsers, E-mail, Etc.)
Figure 14.1 System
layers where security Operating system
may be compromised
• middleware that supports distributed computing and database access;
• libraries of reusable components that are used by the application software.
The majority of external attacks focus on system infrastructures because infra-
structure components (e.g., web browsers) are well known and widely available.
Attackers can probe these systems for weaknesses and share information about vul-
nerabilities that they have discovered. As many people use the same software,
attacks have wide applicability. Infrastructure vulnerabilities may lead to attackers
gaining unauthorized access to an application system and its data.
In practice, there is an important distinction between application security and
infrastructure security:
1. Application security is a software engineering problem where software engi-
neers should ensure that the system is designed to resist attacks.
2. Infrastructure security is a management problem where system managers con-
figure the infrastructure to resist attacks. System managers have to set up the
infrastructure to make the most effective use of whatever infrastructure security
features are available. They also have to repair infrastructure security vulnera-
bilities that come to light as the software is used.
System security management is not a single task but includes a range of activities
such as user and permission management, system software deployment and mainte-
nance, and attack monitoring, detection and recovery:
1. User and permission management includes adding and removing users from the
system, ensuring that appropriate user authentication mechanisms are in place
and setting up the permissions in the system so that users only have access to the
resources that they need.
2. System software deployment and maintenance includes installing system soft-
ware and middleware and configuring these properly so that security vulnera-
bilities are avoided. It also involves updating this software regularly with new
versions or patches, which repair security problems that have been discovered.

