Bird
Raised Fist0
Cybersecurityknowledge~5 mins

Common network protocols and vulnerabilities in Cybersecurity - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Common network protocols and vulnerabilities
O(n * m)
Understanding Time Complexity

When studying network protocols and their vulnerabilities, it is important to understand how the time to detect or exploit a vulnerability grows as the network size or traffic increases.

We want to know how the effort or operations needed change as more devices or data are involved.

Scenario Under Consideration

Analyze the time complexity of scanning a network for open ports using a simple port scanner.


for ip in network_range:
    for port in common_ports:
        if scan_port(ip, port) == 'open':
            log_open_port(ip, port)
    

This code checks each IP address in a network range against a list of common ports to find which ports are open.

Identify Repeating Operations
  • Primary operation: Checking each port on each IP address.
  • How many times: For every IP in the network range, it checks every port in the list.
How Execution Grows With Input

As the number of IP addresses or ports increases, the total checks grow quickly.

Input Size (IPs x Ports)Approx. Operations
10 IPs x 10 Ports100 checks
100 IPs x 10 Ports1,000 checks
1,000 IPs x 10 Ports10,000 checks

Pattern observation: The total operations grow proportionally to the number of IPs times the number of ports.

Final Time Complexity

Time Complexity: O(n * m)

This means the time needed grows directly with both the number of IP addresses and the number of ports scanned.

Common Mistake

[X] Wrong: "Scanning more ports won't affect the time much if the network is small."

[OK] Correct: Even with a small network, increasing ports scanned multiplies the total checks, so time grows accordingly.

Interview Connect

Understanding how scanning operations grow helps you explain how vulnerabilities can be found or exploited efficiently in real networks.

Self-Check

"What if we only scan a random sample of ports instead of all common ports? How would the time complexity change?"

Practice

(1/5)
1. Which protocol is primarily used to securely browse websites by encrypting data between your browser and the server?
easy
A. HTTPS
B. FTP
C. HTTP
D. DNS

Solution

  1. Step 1: Understand the purpose of HTTPS

    HTTPS stands for HyperText Transfer Protocol Secure and encrypts data to protect privacy.
  2. Step 2: Compare with other protocols

    HTTP is not secure, FTP is for file transfer, and DNS resolves domain names, none encrypt data like HTTPS.
  3. Final Answer:

    HTTPS -> Option A
  4. Quick Check:

    Secure web browsing = HTTPS [OK]
Hint: Secure web browsing uses HTTPS, not HTTP or FTP [OK]
Common Mistakes:
  • Confusing HTTP with HTTPS
  • Thinking FTP encrypts web data
  • Assuming DNS secures browsing
2. Which of the following is the correct port number for the FTP protocol by default?
easy
A. 80
B. 21
C. 443
D. 53

Solution

  1. Step 1: Recall default FTP port

    FTP (File Transfer Protocol) uses port 21 by default for control commands.
  2. Step 2: Identify other ports

    Port 80 is for HTTP, 443 for HTTPS, and 53 for DNS, so they are incorrect for FTP.
  3. Final Answer:

    21 -> Option B
  4. Quick Check:

    FTP default port = 21 [OK]
Hint: FTP control commands use port 21 by default [OK]
Common Mistakes:
  • Choosing port 80 (HTTP) for FTP
  • Confusing HTTPS port 443 with FTP
  • Selecting DNS port 53
3. Consider this simplified code snippet simulating a DNS query response check:
response = {'status': 'NOERROR', 'data': '1.2.3.4'}
if response['status'] == 'NOERROR':
    print('Valid IP:', response['data'])
else:
    print('Error in DNS response')

What will be printed?
medium
A. Valid IP: 1.2.3.4
B. KeyError
C. Valid IP: NOERROR
D. Error in DNS response

Solution

  1. Step 1: Check the condition on response status

    The code checks if response['status'] equals 'NOERROR', which it does.
  2. Step 2: Determine the printed output

    Since condition is true, it prints 'Valid IP:' followed by response['data'], which is '1.2.3.4'.
  3. Final Answer:

    Valid IP: 1.2.3.4 -> Option A
  4. Quick Check:

    response['status'] == 'NOERROR' prints IP [OK]
Hint: Check condition first; if true, print IP from data key [OK]
Common Mistakes:
  • Confusing status with data value
  • Expecting error when none occurs
  • Assuming KeyError without missing keys
4. A network administrator notices that FTP traffic is being intercepted and credentials stolen. Which vulnerability is most likely being exploited?
medium
A. SQL Injection
B. DNS Spoofing
C. Man-in-the-Middle Attack
D. Cross-Site Scripting

Solution

  1. Step 1: Identify the nature of the attack

    Intercepting FTP traffic and stealing credentials indicates someone is spying on communication.
  2. Step 2: Match with known vulnerabilities

    Man-in-the-Middle (MitM) attacks intercept and alter communication between two parties, fitting this scenario.
  3. Final Answer:

    Man-in-the-Middle Attack -> Option C
  4. Quick Check:

    Intercepted FTP = Man-in-the-Middle [OK]
Hint: Intercepted communication usually means Man-in-the-Middle attack [OK]
Common Mistakes:
  • Confusing with DNS Spoofing
  • Thinking SQL Injection affects FTP
  • Mixing with Cross-Site Scripting
5. You want to secure a company's email communication. Which protocol should you use to encrypt emails during transmission to prevent eavesdropping?
hard
A. FTP
B. Telnet
C. HTTP
D. SMTP with STARTTLS

Solution

  1. Step 1: Identify email transmission protocols

    SMTP is the standard protocol for sending emails, but by default it is unencrypted.
  2. Step 2: Choose encryption method for SMTP

    STARTTLS upgrades SMTP to use encryption, protecting emails from eavesdropping during transmission.
  3. Step 3: Exclude other protocols

    FTP is for file transfer, HTTP is for web browsing, and Telnet is insecure remote access; none encrypt email.
  4. Final Answer:

    SMTP with STARTTLS -> Option D
  5. Quick Check:

    Email encryption during send = SMTP + STARTTLS [OK]
Hint: Use SMTP with STARTTLS to encrypt email sending [OK]
Common Mistakes:
  • Choosing FTP or HTTP for email
  • Ignoring encryption in SMTP
  • Selecting Telnet which is insecure