People endowing inanimate objects with human characteristics is commonplace today. I believe it's also a useful approach when dealing with security design, controls, and analysis. Just as analogies and metaphors aid in helping the brain process new information, thinking of your endpoints as having human intentions (regardless of whether a real one is there at the moment) is also a very useful aid because it engages the two ancient almond-shaped regions of your brain called the amygdala.
She trusts me, she trusts me not, she ...
One type of the human trust model takes three forms: Trust no one at any time, trust some of the people some of the time, and trust all of the people all of the time. It is best when designing your network to match up devices, applications, and people based on this trust model. Why? So you can focus your efforts in the most effective way when defining controls, processing logs, and correlating events. By "effective" I mean likely to increase your security posture.
Do you trust everyone and everything the same?
How about the computers used by your road warriors? What about the systems exposed to the Internet? How about security software? Vendor-hosted systems? No, you don't trust all of these the same. You create zones of trust. You and everyone around you, regardless of their job roles, are experts at risk analysis. Why? Because they have survived walking across busy streets. Now all you need to do is apply these evolved senses to modern-day technology challenges by training your brain and linking human traits to those that live on your network.
How does it work?
Start with a pattern like this:
- Trust no one at any time (I don't trust you) = trust 3
- Trust some of the people some of the time (I trust you, but will verify) = trust 2
- Trust all of the people all of the time (I trust you) = trust 1
Note: There is a trust 0 (something akin to subconscious) and trust 4 (enemy) AND the higher trust number = less trust
Place trust # entities together; when they're mismatched over time, classify/reclassify them as the highest trust number between them. Focus your controls, log capture, and analysis on those you do not trust, then verify those you do trust with the leftover team hours.
Sample: You see traffic coming from these examples ... How will you trust them?
- Web server in a demilitarized zone (DMZ) [trust 3] uses standalone accounts or ones that have no privileges [trust 3] in inner layers
- Development workstation in development area [trust 2] with users who are not admins, but developers [trust 2]
- Production database server with no outside access [trust 1] with no interactive users (no one logged on) [trust 1]
Have kings been toppled by their inner circle? Sure they have. But did those in the inner circle responsible commingle with the untrusted at some point? Did they transition to the inner circle through other levels of trust? Yes, they did. Do you feel like arguing this point, linking your argument to an historical event, and/or taking this approach (called profiling) personally? Then you get my point. It's hard to be passionate and accurate when dealing with, "IP address: X connecting to Y with a byte count of X." So engage your amygdala by endowing endpoints with the expectation of trust ... as you do people.
Tim Rohrbaugh VP. Information Security for Intersections Inc.