Cybersecurity First Principles
Cybersecurity First Principles
The discussion of 10 cybersecurity first principles is adapted from National Security Agency (NSA)
7. Information
1. Domain Separation Hiding
5. Layering
2. Process Isolation 8. Modularity
6. Abstaction
3. Resource
9. Simplicity
Encapsulation
Examples
o A word processor, a database, and a browser running on a
computer are all running in different addresses spaces.
Process isolation ensures that each one cannot influence the
others address space.
o A non-technical example of process isolation is when a
prosecutor and defense attorney run their cases in court. It
would be a problem if either had access to each other’s work.
Keeping their work separate protects it from misuse by the
other party.
3. Resource Encapsulation
What is a Resource?
o A computer has many resources. It can be memory, disk drive,
network bandwidth, battery power, or monitor. It can be system
objects such as shared memory or a linked list data structure.
What is encapsulation?
o Encapsulation finds its origin in object-oriented programming. In
OOP, a class definition encapsulates all data and functions to
operate on the data. The goal is to allow access or manipulation
of the class data in only the ways the designer intended.
Examples
o The application logic of a website allows access and manipulation
of database records in defined ways. Here the database is a
resource encapsulated by the website application logic.
o A flag pole allows certain operations (raise flag,lower flag,unhook
flag). No one needs to know how flag pole works internally.
4. Least Privilege
What is a privilege?
o It is a right for the user to act on managed computer resources.
Examples
o When a person gets a new computer, they log onto it using an
administrative account which has privileges to install software &
hardware, add or delete any users, program or file. Now, if the
person opens a malicious phishing attachment, the malware will
run with administrative privileges. If privileges were lowered to a
regular user the malware wouldn’t have administrative privilege.
o If a user doesn’t need a permission, why give it to them? Should
a military radio operator have permission to access nuclear silo?
5. Layering
What is a Layer?
o In the context of computer security, a layer is a separate level
that must be conquered by an attacker to breach a system.
o Layering slows down an attacker. The attacker needs to
conquer each layer before moving on to the next.
Examples
o A moat is an outer layer that protects a castle. The next layer
that an intruder has to go through is the high walls. All of this
has to be done by the intruder while avoiding the watchful
guards. Finally, the intruder needs to scale the inner walls
before getting to the king’s treasure.
o Firewall, intrusion detection systems, internal encryption,
access control and personnel controls are examples of layers
typically employed to protect enterprise data and programs.
6. Abstraction
What is abstraction?
o Abstraction is the concept that something complicated can be
represented more simply. All models are abstractions - since it
reduces complexity of an object to something understandable.
Examples
o A stack data structure exposes only the data at the top of the
stack using simple push and pop instructions. The operating
system applies access control to different regions of the stack.
o Websites don’t need to load all of a user’s data to show a list
of usernames - they only need the username, the rest of the
record fields can be hidden.
Implications
o Programmer or user frustration if allowed access is not
sufficient to carry out the task.
8. Modularity
What is modularity?
o Modularity is a design technique that separates functionality
of a program into independent, interchangeable components.
o Each component or module is self-sufficient and capable of
executing a unique part of the desired functionality through
well-designed interfaces.
How does modularity contribute to cybersecurity?
o Modules can be mutually-untrusting
o Compartmentalization is possible using modularization. It
contains damage to a single module.
o Using modules means that you can swap out a bad part. If
batteries weren’t modules, any time a battery died you would
need to throw out the entire electronic device it was in.
Examples
o Electronic circuits o Lego blocks o Network nodes
9. Simplicity
How does simplicity contribute to cybersecurity?
o The lack of complexity allows system designers and
programmers to identify unwanted access paths.
o Users can easily translate their general protection goals to
appropriate system security configurations.
Examples
o Interface designs that allow correct application of security
features.
o Intuitive and straightforward access control rules
o Easy to follow and maintain program statements.
Implications
o Testers will be able to cover all possible combinations and
spot problems sooner.
o Simplicity may feed aspirations to add complexity!
10. Minimization
What is minimization?
o Having the least functionality necessary in a program or
device
How does minimization contribute to cybersecurity?
o Decrease the number of ways in which attackers can
exploit a program or device.
Examples
o Turn off unnecessary features.
o Block unnecessary ports using a firewall.
o Reduce the amount of code.
Implications
o Expanding feature sets in future versions can be difficult.
o Reduce test combinations.
Citations
First Principles – definitions, examples and implications
https://mtu.instructure.com/courses/1267944/files/79717623/downlo
ad?verifier=iBraay1D8a5AF4FfENCMm6gZZbZhsDG7T2Ihag1R&wrap=1
https://gencyber.utulsa.edu/wp-content/uploads/2016/10/10-
Principles-GenCyber-Card-Game.pdf
Questions/Comments
Thank You!