Secure systems design concepts help ensure that computing systems are deployed and maintained in a secure state. If you’re planning to take the SY0-501 version of the Security+ exam, you should have a basic understanding related to secure systems design.
For example, can you answer this question?
Q. Attackers recently attacked a web server hosted by your organization. Management has tasked administrators with configuring the servers following the principle of least functionality. Which of the following will meet this goal?
A. Disabling unnecessary services
B. Installing and updating antivirus software
C. Identifying the baseline
D. Installing a NIDS
More, do you know why the correct answer is correct and the incorrect answers are incorrect? The answer and explanation are available at the end of this post.
Implementing Secure Systems
Secure systems design concepts help ensure that computing systems are deployed and maintained in a secure state. In this context, a system is any host such as a server, workstation, laptop, network device, or mobile device. In an ideal world, systems start in a secure state. Unfortunately, it’s not an ideal world, and administrators need to be proactive to secure systems before deployment and keep them secure after deployment.
Hardening is the practice of making an operating system (OS) or application more secure from its default installation. It helps eliminate vulnerabilities from default configurations, misconfigurations, and weak configurations.
A core principle associated with secure systems design is least functionality. Systems should be deployed with only the applications, services, and protocols they need to meet their purpose. If a service or protocol is not running on a system, attackers cannot attack it. As a simple example, a system is not vulnerable to any File Transfer Protocol (FTP) attacks if FTP is not running and available on the system.
In addition to disabling unnecessary services to reduce vulnerabilities, it’s important to uninstall unneeded software. Software frequently has bugs and vulnerabilities. Although patching software frequently closes these vulnerabilities, you can eliminate these vulnerabilities by simply eliminating unneeded applications.
Years ago, I was working at a small training company. One of the servers had a default configuration for Windows that resulted in a significant vulnerability. We were using the server as a file server, but because it wasn’t hardened from the default configuration, it was also running Internet Information Services (IIS), the Microsoft web server.
At some point, attackers released the Nimda virus, which exploited a vulnerability with IIS. Microsoft released a patch for IIS, but because IIS was installed by default and we weren’t using it, we also weren’t managing it. Ultimately, the Nimda virus found our server, and the worm component of Nimda quickly infected our network. If the IIS software hadn’t been installed, the server would not have been vulnerable to the attack.
It’s also important to disable unnecessary accounts. For example, the Guest account is disabled by default in current Windows systems and it should remain disabled unless there is a specific need for it.
Some applications also include backdoor accounts. A backdoor is an access point to an application or service that bypasses normal security mechanisms. Developers use backdoors for legitimate purposes to view the internal workings of an application or for ease of administration. However, the use of backdoors is strongly discouraged in the final released version. If a backdoor exists, you can expect attackers to locate and exploit it. Similarly, if a system or application has a default account with a default password, the password should be changed.
Operating Systems
There are three primary types of computer operating systems (OSs): Windows, Apple’s operating systems, and Linux- or Unix-based systems.
Within these types, there are many different versions. For example, the Windows operating system includes versions for desktop workstations (including laptops) and other versions for servers. Additionally, these versions are regularly updated such as Windows 8 and Windows 10, and Windows Server 2012 and Windows Server 2016. Windows operating systems are closed source software, meaning that the underlying code is not freely available to the public. Microsoft developed these OSs and updates them.
Apple also uses closed source OSs—macOS for its Macintosh computers and iOS as a mobile OS for mobile devices such as iPhones and iPads. Because they are closed source, only Apple updates or modifies these OSs.
Linux is derived from Unix and is open source, meaning that it is freely available to anyone. Developers have access to the code and can modify, improve, and, at times, freely redistribute it. Because of this, there is an almost endless assortment of Linux versions. As an example, the Android OS is open source software, and it was derived from the open source Linux OS. Additionally, many mobile device manufacturers modify the Android OS and use it as a mobile OS for their devices. It’s worth noting that the use of Linux in many systems has steadily increased. More, CompTIA has been adding additional Linux-based objectives in their exams, including the Security+ exam.
While you primarily see OSs operating on desktops, laptops, and servers, they are also operating in other locations, including:
• Kiosks. A kiosk is a small structure in an open area used to sell something, provide information, or display advertisements. For example, an organization can create a touch-screen application installed on a computer and place it in a kiosk. This could be in a mall or store (designed to advertise something), in a medical center (designed to share information), or anywhere an organization thinks it might be useful.
• Network. Many network devices such as switches, routers, and firewalls include an operating system used to manage the device. These are often a version of Linux. Some Cisco network devices use the Cisco IOS (originally called the Internetwork Operating System).
• Appliance. A network appliance is a dedicated hardware device that bundles several features within it. As an example, Chapter 3 of the CompTIA Security+: Get Certified Get Ahead: SY0-501 Study Guide discusses a unified threat management (UTM) device that includes multiple layers of protection. Many appliances run on a Linux version.
It’s also possible to use live boot media to create a non-persistent operating system on a computer. As an example, the Defense Information Systems Agency (DISA) uses Bootable Media (BootMe), which is a CD that authorized Department of Defense (DoD) users can use to run an operating system on almost any computer. It provides users with an operating system to perform specific functions, such as accessing DoD resources via remote access. It’s called a non-persistent operating system because it disappears when users turn off the computer.
Q. Attackers recently attacked a web server hosted by your organization. Management has tasked administrators with configuring the servers following the principle of least functionality. Which of the following will meet this goal?
A. Disabling unnecessary services
B. Installing and updating antivirus software
C. Identifying the baseline
D. Installing a NIDS
Answer is A. Disabling unnecessary services is one of the elements of the principle of least functionality. Other elements include deploying the server with only the applications and protocols they need to meet their purpose.
Installing up-to-date antivirus software is a valid preventive control, but it isn’t related to least functionality.
Identifying the baseline should be done after disabling unnecessary services.
A network-based intrusion detection system (NIDS) helps protect the server, but it doesn’t implement least functionality.
See Chapter 5 of the CompTIA Security+: Get Certified Get Ahead: SY0-501 Study Guide for more information on implementing secure systems.