bembry.org
Home / Notes / Books / Building_firewalls

Notes on Building Internet Firewalls

Ch. 3 - Security Strategies

  • Least Privilege : Any object should have only the privileges needed to perform its assigned task, and no more.
  • Many common security problems on the Internet can be viewed as failures to follow the principle of least privilege.
  • Trying to enforce least privilege on people, rather than programs, can be particularly dangerous.
  • Defense in Depth : Don't depend on just one security mechanism, no matter how strong it may be. Instead, install multiple mechanisms that back each other up.
  • In situations where cost is low you should always deploy redundant defenses.
  • Choke Point : A choke point forces attackers to use a narrow channel, which you can monitor and control.
  • A choke point is useless if there is an effective way for an attacker to go around it.
  • Weakest Link : Smart attackers are going to seek out the weak spot and concentrate their attentions there.
  • There is always going to be a weakest link. The trick is to make that link strong enough and to keep the strength proportional to the risk.
  • Fail Safe : If systems are going to fail, they should fail in such a way that they deny access to an attacker, rather than letting the attacker in.
  • Two fundamental stances:
    • Default Deny: Specify only what you allow, prohibit everything else.
    • Default Permit: Specify only what you prohibit, allow everything else.
  • About the only people who benefit from the default permit stance are attackers.
  • Universal Participation : If someone can simply opt out of your security mechanisms, an attacker may be able to get through by attacking the exempt person's system first.
  • People who are not voluntary participants will to to amazing lengths to circumvent security measures.
  • It's worth spending a lot of energy to convince people to cooperate voluntarily, because you'll often spend just as much energy trying to force them to cooperate, with worse side effects.
  • Diversity of Defense : You need not only multiple layers of defense, but different kinds of defense.
  • If you are not careful, you can create diversity of weakness instead of diversity of defense. ie Trying to use security products from different vendors just for sake of diversity can cause more trouble than benefit.
  • Systems configured by the same people are probably configured with the same weaknesses.
  • Simplicity : If you don't understand something, you can't really know whether or not it's secure.
  • Complexity provides all sorts of nooks and crannies to hide in.
  • Once people start to expect a system to behave erratically, they won't be able to recognize security problems.
  • Security through Obscurity : Obscurity is a perfectly valid security tactic, just not a very strong one.
  • The less information attackers have, the better. It won't keep them out, but it may slow them down.
Restricted access