There are many reasons to study cybersecurity. From the increasing calls for privacy on the internet, corporation compliance with various data security laws, criminal and civil investigations, malware and incident response, and careers.
Cybersecurity labor crunch to hit 3.5 million unfilled jobs by 2021
Dangers of cyber attacks on a nation
A more detailed overview can be found, but a quick look at the topics that will be covered in this course are below:
Learning about computer hardware and operating systems, setting up a raspberry pi, and setting up a virtual machine
Being able to navigate around a command-line interface and understanding basic Linux commands
Being able to convert a decimal number to binary or hex and vice versa is also important as you become more skilled and are interested in doing malware analysis
Learning units of computer information and how images and text are represented and encoded for computers
Historical crypto as well as practical applications
Online advertising and tracking techniques, security principles, social media, online ethics, and online behavior
Networking hardware, network protocols, how websites are created, common network attacks, social engineering, network security techniques, and analysis of network traffic
What is involved and what can be gathered during a digital forensics investigation, legal issues, evidence acquisition and preservation, analysis, storage forensics, live forensics, memory analysis, reverse engineering
Blockchain, artificial intelligence, and quantum computing
COMPTIA IT Fundamentals Exam review and next steps in learning cybersecurity
Before we begin our discussion of cybersecurity, it’s important to establish a baseline of knowledge for everyone regarding computer hardware and software. Understanding the various components that go into a computer will allow you to better diagnose issues that might arise as well as understand how malware interacts with system components.
First we have the motherboard, considered the “backbone” of the computer, this is the main board to which the components are connected, facilitating communication between all of these components. Motherboards are not only found in laptops and desktops, but also in phones, tablets, smartwatches, game consoles, and more. Without a motherboard, computers and electronics would be no more than just a collection of parts with no way to communicate and work together.
This video goes over the basics of a motherboard as well as what some of the common slots and connectors do.
Next we have the CPU, or Central Processing Unit. This is the main processor that performs basic arithmetic, logic, controlling, and input/output (I/O) operations that are specified by instructions that make up computer programs.
The below diagram is an abstraction of the different pieces of the CPU and how they interact with one another. As you can see, the Control Unit (CU) is connected to every other piece of the processor as well as I/O. This allows it to properly direct the various pieces of the processor.
Abstract CPU diagram, the red lines indicate bidirectional movement while the black lines are one way movement of information
The arithmetic logic unit (ALU), in this diagram referred to by the combination logic rectangle, handles arithmetic, logic operations, processor registers (which hold operands and store results of the arithmetic), and a control unit that handles fetching instructions from memory and executing those instructions. Some diagrams will combine both the registers and combinational logic block and label a single rectangle as the ALU for the sake of simplicity. The actual architecture, however, is much more complicated.
There are two main CPU architectures that you should know about, RISC and CISC. RISC stands for Reduced Instruction Set Computer and CISC stands for Complex Instruction Set Computer. RISC processors only use simple instructions that can be executed within one clock cycle of the CPU (hence the reduced instruction set), while CISC processors use more complex instructions that take more clock cycles to complete. While a programmer on a RISC processor might need to use 4 instructions to achieve the same result as a programmer on a CISC processor with 1 instruction, both programs will run in roughly the same amount of time.
In addition to RISC and CISC processors, CPUs are either 32 bit or 64 bit. This has to do with how much memory the CPU is able to address, and a more in-depth explanation can be found in this video.
RAM, or Random-Access Memory, is computer memory which allows for data to be read or written in almost the same amount of time no matter where the physical location of the data is inside the memory. This is why it is called random-access. Compared to other storage mediums such as hard disks, CDs, DVDs, etc. the amount of time it takes to read or write data will change significantly depending on the physical location of the data on the medium. This is caused by the mechanical limitations such as rotation speeds or arm movement.
There are a number of different storage devices that operate together in a computer. The closer the storage is to the CPU the smaller, faster, and more expensive it is, and the farther away the slower, larger, and cheaper it is. The closest storage units are the registers and the CPU cache. Storage devices can be broken down into primary and secondary storage.
Primary storage
The registers are the fastest form of data storage, with each register holding a word of data (which usually consists of 32 or 64 bits).
The CPU cache is the intermediary between the extremely fast registers and the considerably slower main memory (RAM) and is still faster than main memory but slower than the register storage. The information that is used most often from main memory is duplicated into the cache that way the information can be accessed and used faster than having to access main memory over and over again. Many processors have a multi-level cache setup, with the primary cache being the fastest and smallest, and each level beneath the primary cache becomes larger but slower. The slowest of these levels is still faster than accessing main memory.
Main memory, commonly referred to as RAM, is connected to the CPU by a memory bus. When the CPU needs to access data on the main memory it sends an address, which is a location in memory, to retrieve the data and send it to the CPU. Since the access times for random locations are not very different, RAM is ideal for this use case. RAM is volatile storage, meaning that there is no information stored at start up, we need some way to boot up the computer that can start reading instructions and executing them, for that we use ROM (Read-only memory). ROM is non-volatile so the information is still stored even when the computer is powered down, and it contains the BIOS (Basic Input/Output System), a small startup program, which reads a larger program from the secondary storage and sends the data to RAM to be executed. This way your computer can start up from a powered down state.
One major difference between primary and secondary storage is that secondary storage is not directly accessible by the CPU. Input/Output channels have to be used in order to access the this storage and the desired data is then transferred to primary storage. Secondary storage is also non-volatile (the data persists even after the computer is powered off). This is an important property to have as you wouldn’t want all of your data to be erased every time you turned off your computer.
There are many different forms of secondary storage, from hard disk drives (HDDs) to solid-state drives (SSDs) as well as CD/DVD drives, USB flash drives, floppy disks, etc. This form of storage is significantly slower than primary storage.
The below image shows the various levels of storage along with representations of size, speed, and cost. There could be more cache levels or there could be fewer cache levels. It depends on the CPU and how many cache levels the manufacturer decided to implement.
In order to actually provide power to a computer you need a power supply unit (PSU) which converts alternating current (AC) power to low-voltage direct current (DC) power. Laptops, phones and other electronics don’t have internal PSUs, but the “power brick” is actually converting the AC power to DC power. The plug for phone chargers does the same thing, and for any other electronics.
A common part that is discussed when building a computer or purchasing a laptop, gaming console, or other electronics is the graphics processing unit (GPU) commonly referred to as the graphics card. This component is specialized to handle performance of video and graphics which require complex mathematics and geometric calculations for graphics rendering. Dedicated GPUs are separate units that have to be connected to the motherboard, and they possess their own RAM for use in rendering images and graphics onto the screen. Integrated GPUs are built into the CPU and utilize the computer’s RAM, which requires sharing RAM with the CPU which means there is less RAM available to the CPU for calculations.
There are of course other parts of the computer, but we won’t go into detail on them, instead they will be listed below with a few examples.
Input/Output peripherals:
Input device - keyboard, mouse, microphone, webcam, etc.
Output device - speakers, printers, monitor, etc.
When connecting your computer, laptop, or other device into some kind of display you may need different cables depending on the ports that are available. This video covers the main ports you may encounter as well as a comparison between them. Video Port Comparison
Besides cables for various video ports, there are USB (Universal Serial Bus) cables that you use to plug in peripherals such as keyboards, mice, microphones, webcams, as well as for charging phones, gaming controllers, bluetooth headphones, and more. This video goes over the different types of USB connectors and the major differences between them.
Expansion cards - these are cards that can be connected to expansion slots in the motherboard:
Examples - Video Card (GPU), Sound Card, Network Card, etc.
Fixed vs. Removable Media
Fixed: HDDs, SSDs, etc.
Removable: Flash drives, SD card, optical disk (CD/DVD), etc.
The reason they are called fixed and removable media is due to how easy it is to remove the different kinds of storage devices. While media like USB flash drives and SD cards are very easily inserted and removed from a computer, media like hard drives or solid state drives need to be connected with SATA cables which are connected to the motherboard. That makes them a lot harder to remove compared to the ease of just ejecting a flash drive or SD card from the computer.
Storage mediums have various different types of file systems that deal with how the data is structured and stored on the devices. This video discusses the major file systems and the differences between them.
As mentioned above, the BIOS is stored in non-volatile memory, meaning it persists when the computer is turned off. The BIOS is an example of firmware for the computer. Specifically it is firmware used during the booting process of the computer.
Firmware is a specific kind of software which provides low-level control of a specific device. Firmware exists for traffic lights, TV remotes, appliances, digital watches, phones, and many more, almost all devices that contain electronics have firmware. Firmware is not immune to being hacked, such as reprogramming a flash drive to spoof other devices, allowing you to take control of the computer, steal data, or spy on the user. We won’t go into any more detail for firmware in this course, but it’s important to know what it is and that it is yet another attack vector for hackers.
A power-on self-test (POST) is another example of a process that is taken care of by firmware (it is run by the BIOS). It runs immediately after a computer is powered on to determine if all the required components to start the computer are present. If there is a problem, there may be multiple beeps, a blank screen, or a pop-up with information about the issue.
UEFI (Unified Extensible Firmware Interface) replaces the BIOS on PCs, adding improvements and new features that the BIOS does not.
This video discusses the BIOS, POST, CMOS(which you don’t have to worry about), and UEFI.
While you were learning about the above hardware components you were probably thinking about desktops and laptops primarily, but servers are another important aspect of computing. They all use similar components, a motherboard, a CPU (or multiple CPUs), RAM, Storage, etc. The main difference is that server components are designed to be resilient to errors and hardware failures, stay online for a much longer, and normally perform a certain task (such as a web server or and email server). As a result of the higher resiliency of the components and what server owners require, the components for a server are typically much more expensive compared to Desktop hardware.
Here is a video that goes into more detail about what a server is.