Approaching high-security environments
In a high-security environment, you need to take all the precautions described previously in this chapter. What separates high-security environments from other environments is that you generally need to go further.
In a high-security environment, you should assume that no matter what steps you take, your application will be compromised at some point. Your job is to make this compromise as difficult as possible for the attacker, as well as to take whatever steps you can to mitigate the damage that an attacker can do if they can successfully compromise the application. In this section, you'll learn the basics of the following five techniques which can make compromise more difficult and which can mitigate the damage if compromise is successful:
- Limiting database access
- Internal firewalling
- Randomizing memory layouts
- Limiting filesystem access
- Limiting system call access
Let's go through each of them in...