Grade 9 Information Technology: Computer Security and Programming Fundamentals Study of Programming Fundamentals
Artificial Threats to Computer Security
Nature of Manmade Threats: The vast majority of computer security threats are artificial, occurring through the devices and networks currently in use. These threats evolve in nature and method alongside changes in technology.
Internet-Based Threats: Due to the development of Internet-based services, most manmade security threats leverage the Internet as a platform, entering systems through network connectivity.
Interchangeable Terminology: The term cyber security is frequently used interchangeably with computer security. Similarly, attacks on computer security are widely referred to as cyber-attacks.
The Prefix 'Cyber': In terms such as cyber-security, cyber-attack, and cyberspace, the prefix "cyber" refers specifically to computers and computer networks.
Classification and Varieties of Cyber-Attacks
Cyber-attacks are classified based on their methodology and intent. The textbook identifies eight primary types:
Denial of Service (DoS)
Malware attack
Man-in-the-Middle
Phishing
Eavesdropping
SQL injection
Password attack
Social engineering
Historical Context: Malware attacks, including Trojan horses, worms, and viruses, have existed since the era of file sharing via portable storage.
Internet-Era Attacks: Attacks such as DoS, phishing, SQL injections, and password attacks became popularized with the dominance of the Internet as a service platform.
Psychological and Technological Combinations: Cyber-attacks often combine psychological manipulation with technological exploits, particularly in man-in-the-middle, eavesdropping, and social engineering scenarios.
Detailed Breakdown of Cyber-Attack Types
Denial of Service (DoS)
Description: DoS attacks damage computer systems by flooding targets with excessive requests, which prevents regular users from connecting to the service.
Impact: Network-based services cannot be provided in a timely manner. For example, a DoS attack on a bank's IT infrastructure could halt ATM and CBE Birr services, causing customer disappointment and reputation damage to the service provider.
Malware Attacks
Malware is a contraction for malicious software. Its varieties include:
Trojan Horse: A code that takes over a system to steal or damage its contents. It downloads onto a computer by being disguised or masked as a legitimate program.
Virus: A malicious code that enters a computer program by replicating itself to change the system's functioning.
Example: The Melisa virus is a common example that spreads without user acknowledgment. Some refer to these as rootkits.
Key logger: These record movements on keyboards to steal passwords and account details.
Worms: Independent programs that infect computer systems via network devices.
Adware (Advertising Software): Software designed to spread malware through pop-up advertisements. It can slow down devices, hijack browsers, and install viruses or spyware.
Botnets: A portmanteau of "robot" and "network." Cybercriminals use Trojan viruses to breach multiple computers, gain control over them, and organize these "infected machines" into a network of bots that can be managed remotely.
Spyware: A secret program that tracks all user movements secretly to use that information against them.
Ransomware: This malware locks files and data on a system, threatening to delete them unless a ransom is paid.
Man-in-the-Middle
Description: Intercepting communication between people to steal data from their conversation.
Common Vector: Open Wi-Fi networks are frequent locations for this type of attack.
Phishing
Description: The practice of sending fraudulent communications that appear to come from a reputable source, usually performed via email.
Goal: To steal sensitive data like credit card numbers and login information, or to install malware on the victim's machine.
Eavesdropping (Sniffing or Snooping)
Description: Occurs when a hacker intercepts, deletes, or modifies data transmitted between two devices.
Mechanism: It relies on unsecured network communications and data in transit. It often happens when a user connects to an unencrypted network to send sensitive business data.
Detection: These attacks are difficult to spot because the presence of a listening device usually does not adversely affect device or network performance.
SQL Injection
Description: An attacker injects unauthorized input into an SQL statement.
Prerequisite: This is possible on websites where hackers can access the database using a user's ID and password.
Password Attacks
Methods include:
Dictionary Attack: Trying different possible passwords from a dictionary.
Brute Force: Trial and error decoding of the password (highly time-consuming).
Key-logger: Tracking keyboard movements.
Shoulder Surfing: Physical observation by looking over a user's shoulder.
Rainbow Table: Using pre-computed hash values to find passwords.
Social Engineering
Description: Creating a social situation to trick a user into giving up information.
Example: Receiving a call from a mobile company claiming "Your device is in danger," leading a user to provide sensitive data without verification.
Specific Challenges for Youth on the Internet
Dangerous Actors: Religious fundamentalists, radical political/tribal extremists, terrorists, and sex traffickers use the Internet as a safe zone to attract youth to extreme views or illegal activities.
Cyber Bullying: Ridiculing or humiliating others on social media or gaming platforms. It includes sharing negative, harmful, false, or mean content, or private information to cause embarrassment.
Cyber Predators: People who exploit younger individuals for sexual or other purposes, often pretending to be someone else to gain trust.
Posting Private Information: Many youth do not understand social boundaries and post personally identifiable information (PII) on social media profiles that should remain private.
Entities Behind Cyber Attacks
Online Criminals: Skilled in identifying appropriable data to sell or hold for ransom.
Hackers: Individuals with varying expertise levels, sometimes acting in an untargeted way to test skills or cause disruption.
Malicious Insiders: Individuals within an organization who use their access to steal information for competitors.
Honest Mistakes: Staff or students who accidentally email sensitive information to the wrong recipient.
School Pupils/Students: Those who enjoy the challenge of testing their cyber skills.
Potential Impacts and Losses Due to Security Threats
Destruction or Loss of Information: Physical destruction of components or data loss due to hard disk failure.
Corruption of Information: Unauthorized alteration of files.
Example: Adding or reducing student marks in a database or posting illegal documents on a school's Telegram or Facebook channel.
Theft of Services: Unauthorized use of network services.
Example: Using a school internet privilege reserved for education for online marketing.
Illegal Usage: Using system functions for malicious purposes, such as dispatching texts/videos that promote inter-conflict or inter-religious conflict via school internet.
Disclosure of Information: Disseminating information to unauthorized parties.
Example: Posting a picture of a private school noticeboard warning letter on social media.
Denial of Use: Covered under DoS; the intentional degradation or blocking of resources.
Elevation of Privilege: Exploiting system weaknesses to gain rights not meant for the user.
Example: A student accessing a teacher's account to register marks. This often happens due to guessable passwords or keystroke logging.
The 90/10 Rule and Best Practices
The 90/10 Rule: Successful security relies on good computer practices (awareness) and technical practices.
Key Principles (CIA Triad):
Confidentiality: Ensuring information is available only to the intended audience.
Integrity: Protecting information from being modified by unauthorized parties.
Availability: Ensuring information is consistently and readily accessible for authorized parties in a timely manner.
Preventive Measures
Install reputable security and anti-virus software.
Activate firewalls (a security guard between the internet and the local area network).
Perform software updates as soon as they are available.
Avoid clicking email attachments from unknown sources.
Password Standards: Use unique combinations of numbers and letters (capital and small), with a recommended length of at least characters. Use different passwords for different accounts.
Perform daily full system scans and schedule periodic system backups.
Never reveal online where you live or attend school.
Fundamentals of Programming: Defining Problems
Problem: In non-technical terms, a difficulty to understand something, a complex task involving doubt, or a matter difficult to settle.
Computational Problem: A problem that can be solved step-by-step with a computer. These require well-defined inputs, constraints, and conditions for the output.
Types of Computational Problems
Decision Problem: Has a Yes or No answer (e.g., "Is integer even?").
Search Problem: Consists of one or more values satisfying a condition (e.g., finding a path on a map or a name in a spreadsheet).
Counting Problem: The answer is a number of solutions to a search problem (e.g., counting female students in a list).
Optimization Problem: Finding the "best" possible solution (e.g., computing the fastest route in network traffic management).
Steps in Problem Solving
George Polya's Four-Step Method
Published in the book How to Solve It, this method applies to all problems:
Understand the Problem: Figure out what is known/unknown and what answer is required.
Make a Plan: Choose strategies like making a list, drawing a picture, or using a formula.
Execute the Plan: Use the chosen strategy; if it fails, return to step 2.
Review and Extend: Check the answer and evaluate the method's effectiveness.
Adaptation for IT/Computer Science
Understand the Problem
Develop an Algorithm: Create a precise sequence of instructions in a human-understandable format.
Write the Program: Transform the algorithm into a sequence of instructions using a programming language that a computer can execute.
Test the Program
Algorithm Representation Tools
Flowcharts
Definition: A graphical representation of an algorithm using boxes, ellipses, and arrows.
Standard Symbols:
Start/End (Terminator): Ellipse shape marking the beginning or end.
Action or Process: Rectangle shape representing a single step or sub-process (e.g., arithmetic operations).
Decision: Diamond shape representing a choice or question with multiple exit paths (e.g., Yes/No).
Input/Output: Parallelogram representing material/info entering or leaving the system.
Connector: Small circle indicating the flow continues elsewhere.
Flow Line: Arrows indicating sequence and direction.
Subroutine (Module): Indicates a predefined process described in more detail elsewhere.
Pseudocode
Definition: A simple and concise sequence of English-like instructions to solve a problem. It is closer to actual program instructions than a flowchart.
Programming Environments
Flowgorithm
A beginner's programming language based on graphical flowcharts.
Operators: Uses
%for modulo-divide (gives the remainder of integer division, e.g., ) and^for exponents (e.g., is written as6^2).Assignment: Making a variable hold a value.
Scratch
A visual, block-based programming language designed for education.
Key Elements:
Sprite: The actors or main characters programmed to perform actions.
Stage: The area where sprites act. The coordinate system for the stage is in the range of and , and in the range of and .
Programming Palette: Contains categories like Motion, Looks, Sound, Events, Control, Sensing, Operators, and Variables.
Script: The area where blocks are snapped together to control the sprite.
Instruction Processing Flow
Sequence: Executing instructions top-down in order.
Selection (Condition): Executing or jumping instructions based on a decision (e.g.,
if...else).Repetition (Looping): Repeatedly executing instructions for a fixed number of times or until a condition is met (e.g.,
while,forever,repeat N,repeat until).
Problem-Solving Approaches
Top-Down Approach
Process: Starts with the most general modules and works toward specific functionality.
Decomposition/Modularization: Breaking a bigger problem into smaller, manageable sub-problems called modules.
Subroutine: A solution developed for a smaller problem that can be called by a main module.
Bottom-Up Approach
Process: The opposite of top-down. Fundamental units and sub-modules are designed first, then integrated into a concrete system.
Synthesis: Bringing together existing modules to build a larger program.
Shared Concepts
Incremental Development: Building a program piece by piece.
Unit Testing: Testing each individual piece/module before moving to the next.
Questions & Discussion (Unit Review Highlights)
True/False Concepts:
Being connected does introduce security vulnerabilities.
Ensuring availability means making services accessible at the time of need.
Confidentiality, Integrity, and Availability are core computer security principles.
Key Identification:
Wait and broadcast are used in Scratch to make stories interactive.
"Desk checking" is the process of checking algorithms with paper and pencil for accuracy.
A software program is a sequence of instructions written in a programming language to perform a task.
Scenario Exercise:
Student Halima noticed unauthorized mobile banking purchases.
Benefit: ICT allowed her convenience of online shopping.
Victimization causes: Potential phishing, shoulder surfing, or unsecured Wi-Fi usage during shopping sessions.