Cisco !#&? be a network ninja


To the top Chapter 2.3.1 Chapter 2.3.2 Chapter 2.3.3 Chapter 2.3.4 Chapter 2.3.5

Introduction to Cybersecurity

One course of Cisco's "Skills for all"

On completing this course, you will be able to:

Module 2 - Attacks, Concepts and Techniques

Welcome to this module, which will explore the different methods that cybercriminals use to launch an attack

Understanding what these are and how they work is the best way to protect ourselves. So, let’s make sure you know what you’re up against.

Chapter 2.3 - Security Vulnerability and Exploits

Before we get into the details, let’s start by outlining some key terms that you need to know.

Security vulnerabilities are any kind of software or hardware defect. A program written to take advantage of a known vulnerability is referred to as an exploit. A cybercriminal can use an exploit against a vulnerability to carry out an attack, the goal of which is to gain access to a system, the data it hosts or a specific resource.

2.3.1 Hardware Vulnerabilities

Hardware vulnerabilities are most often the result of hardware design flaws. For example, the type of memory called RAM basically consists of lots of capacitors (a component which can hold an electrical charge) installed very close to one another. However, it was soon discovered that, due to their close proximity, changes applied to one of these capacitors could influence neighbor capacitors. Based on this design flaw, an exploit called Rowhammer was created. By repeatedly accessing (hammering) a row of memory, the Rowhammer exploit triggers electrical interferences that eventually corrupt the data stored inside the RAM.

Meltdown and Spectre

Google security researchers discovered Meltdown and Spectre, two hardware vulnerabilities that affect almost all central processing units (CPUs) released since 1995 within desktops, laptops, servers, smartphones, smart devices and cloud services.

Attackers exploiting these vulnerabilities can read all memory from a given system (Meltdown), as well as data handled by other applications (Spectre). The Meltdown and Spectre vulnerability exploitations are referred to as side-channel attacks (information is gained from the implementation of a computer system). They have the ability to compromise large amounts of memory data because the attacks can be run multiple times on a system with very little possibility of a crash or other error.

Hardware vulnerabilities are specific to device models and are not generally exploited through random compromising attempts. While hardware exploits are more common in highly targeted attacks, traditional malware protection and good physical security are sufficient protection for the everyday user.

2.3.2 Software Vulnerabilities

Software vulnerabilities are usually introduced by errors in the operating system or application code.

The SYNful Knock vulnerability allowed attackers to gain control of enterprise-grade routers, such as the legacy Cisco ISR routers, from which they could monitor all network communication and infect other network devices.

This vulnerability was introduced into the system when an altered IOS version was installed on the routers. To avoid this, you should always verify the integrity of the downloaded IOS image and limit the physical access of such equipment to authorized personnel only.

2.3.3 Categorizing Software Vulnerabilities

Most software security vulnerabilities fall into several main categories.

Buffer owerflow

Buffers are memory areas allocated to an application. A vulnerability occurs when data is written beyond the limits of a buffer. By changing data beyond the boundaries of a buffer, the application can access memory allocated to other processes. This can lead to a system crash or data compromise, or provide escalation of privileges.

Non-validated input

Programs often require data input, but this incoming data could have malicious content, designed to force the program to behave in an unintended way.

For example, consider a program that receives an image for processing. A malicious user could craft an image file with invalid image dimensions. The maliciously crafted dimensions could force the program to allocate buffers of incorrect and unexpected sizes.

Race conditions

This vulnerability describes a situation where the output of an event depends on ordered or timed outputs. A race condition becomes a source of vulnerability when the required ordered or timed events do not occur in the correct order or at the proper time.

Weakness in security practices

Systems and sensitive data can be protected through techniques such as authentication, authorization and encryption. Developers should stick to using security techniques and libraries that have already been created, tested and verified and should not attempt to create their own security algorithms. These will only likely introduce new vulnerabilities.

Access control problems

Access control is the process of controlling who does what and ranges from managing physical access to equipment to dictating who has access to a resource, such as a file, and what they can do with it, such as read or change the file. Many security vulnerabilities are created by the improper use of access controls.

Nearly all access controls and security practices can be overcome if an attacker has physical access to target equipment. For example, no matter the permission settings on a file, a hacker can bypass the operating system and read the data directly off the disk. Therefore, to protect the machine and the data it contains, physical access must be restricted, and encryption techniques must be used to protect data from being stolen or corrupted.

2.3.4 Software updates

The goal of software updates is to stay current and avoid exploitation of vulnerabilities. Microsoft, Apple and other operating system producers release patches and updates almost every day and applications such as web browsers, mobile apps and web servers are often updated by the companies or organizations responsible for them.

Despite the fact that organizations put a lot of effort into finding and patching software vulnerabilities, new vulnerabilities are discovered regularly. That’s why some organizations use third party security researchers who specialize in finding vulnerabilities in software, or actually invest in their own penetration testing teams dedicated to search, find and patch software vulnerabilities before they can get exploited.

Google’s Project Zero is a great example of this practice. After discovering a number of vulnerabilities in various software used by end users, Google formed a permanent team dedicated to finding software vulnerabilities. You can find out more about Google’s security research here.

2.3.5 What Do You Think?

This has made you think about some of the vulnerabilities that may exist at @Apollo. After some investigation you’ve noted some potential issues.

Can you identify what category each of these vulnerabilities falls into? You have a chance to earn some defender points here and further safeguard @Apollo, so take your time.

On starting at @Apollo, your network password was emailed to you in plain text and you were not prompted to change it

Past employees still have access to @Apollo’s customer database

New users can log into their @Apollo account, even if they have signed up with an incorrectly formatted email address

You have taken a step closer to safeguarding @Apollo from attack. Remember:

  • Emailing sensitive information such as passwords in plain text is extremely risky and is a weakness in security practice. This information should at the very least be encrypted.
  • Past employees should not have access to customer information when leaving a company. This is a serious access control problem.
  • New users need to be validated before anything else can be done with their data. Using an incorrectly formatted email address to log on is a non-validated input error.

Skills for all