20TD02S Spyder - itnett/FTD02H-N GitHub Wiki

20TD02S Spyder

La oss lage et omfattende og justerbart Python-skript som dekker temaet Cybersikkerhet i henhold til den oppgitte fagplanen. Skriptet vil inkludere interaktive og praktiske eksempler på ulike sikkerhetsprinsipper, trusler, angreps- og forsvarsmetoder, risikostyring, og relevant lovgivning.

Skriptet vil også inneholde beskrivelser av hver del og demonstrere resultater som kan justeres for å passe forskjellige scenarier.

Skriptet

import hashlib
import random
import string
import json
import time
import matplotlib.pyplot as plt

# --- GRUNNLEGGENDE SIKKERHETSPRINSIPPER ---
def hash_password(password):
    """Genererer en SHA-256 hash av et passord."""
    return hashlib.sha256(password.encode()).hexdigest()

def check_password(stored_password_hash, password):
    """Sjekker om et passord matcher den lagrede hash-verdien."""
    return stored_password_hash == hash_password(password)

# --- TRUSSELBILDE INNEN IT-SIKKERHET ---
def simulate_attack(success_rate=0.1):
    """Simulerer et angrep med en gitt suksessrate."""
    return random.random() < success_rate

# --- ANGRPES- OG FORSVARSMETODER ---
def simulate_defense(num_attacks=100, defense_strength=0.5):
    """Simulerer forsvarsmetoder mot flere angrep."""
    successful_attacks = 0
    for _ in range(num_attacks):
        if simulate_attack() and random.random() > defense_strength:
            successful_attacks += 1
    return successful_attacks

# --- RISIKOSTYRING ---
def risk_assessment(threat_likelihood, impact):
    """Utfører en enkel risikovurdering."""
    return threat_likelihood * impact

# --- VISUALISERING AV RISIKOVURDERING ---
def visualize_risk_assessment(risk_levels):
    """Visualiserer risikonivåer."""
    plt.bar(range(len(risk_levels)), risk_levels)
    plt.xlabel('Scenario')
    plt.ylabel('Risikonivå')
    plt.title('Risikovurdering')
    plt.show()

# --- LOVER OG REGLER ---
laws_and_regulations = {
    "GDPR": "General Data Protection Regulation - Beskytter personopplysninger i EU.",
    "NIS": "Network and Information Systems Directive - Forbedrer cybersikkerheten i EU.",
    "CCPA": "California Consumer Privacy Act - Beskytter personopplysninger i California."
}

def find_relevant_laws(keyword):
    """Finner relevante lover og regler basert på et søkeord."""
    return {law: desc for law, desc in laws_and_regulations.items() if keyword.lower() in desc.lower()}

# --- KJØRING AV FUNKSJONER ---
# Grunnleggende sikkerhet: Hashing av passord
password = "sikkerhet123"
hashed_password = hash_password(password)
print(f"Original Password: {password}")
print(f"Hashed Password: {hashed_password}")

# Sjekk passord
password_check = check_password(hashed_password, "sikkerhet123")
print(f"Password check: {'Valid' if password_check else 'Invalid'}")

# Trusselbilde: Simuler angrep
num_simulated_attacks = 1000
successful_attacks = sum(simulate_attack() for _ in range(num_simulated_attacks))
print(f"Number of successful attacks out of {num_simulated_attacks}: {successful_attacks}")

# Angrep- og forsvarsmetoder: Simuler forsvar
defense_strength = 0.7
successful_attacks_after_defense = simulate_defense(num_simulated_attacks, defense_strength)
print(f"Successful attacks after defense: {successful_attacks_after_defense}")

# Risikostyring: Risikovurdering
threat_likelihood = 0.3  # Eksempelverdi
impact = 5  # Eksempelverdi
risk_level = risk_assessment(threat_likelihood, impact)
print(f"Risk level (Likelihood: {threat_likelihood}, Impact: {impact}): {risk_level}")

# Visualisering av risikovurdering
risk_scenarios = [risk_assessment(random.random(), random.randint(1, 10)) for _ in range(10)]
visualize_risk_assessment(risk_scenarios)

# Lover og regler: Finn relevante lover
keyword = "personopplysninger"
relevant_laws = find_relevant_laws(keyword)
print(f"Laws relevant to '{keyword}':")
for law, desc in relevant_laws.items():
    print(f"{law}: {desc}")

# --- LUKK KILDER OG SLUTT ---
print("Skriptet er ferdig.")

Forklaring og sammenheng:

  1. Grunnleggende sikkerhetsprinsipper:

    • Funksjonene hash_password og check_password demonstrerer hvordan man kan sikre passord ved å bruke hashing.
    • Eksempelet viser hvordan man kan generere og sjekke hash-verdier.
  2. Trusselbilde innen IT-sikkerhet:

    • Funksjonen simulate_attack simulerer et angrep med en gitt suksessrate.
    • Eksempelet simulerer 1000 angrep og teller antall vellykkede angrep.
  3. Angreps- og forsvarsmetoder:

    • Funksjonen simulate_defense simulerer forsvarsmetoder ved å redusere sannsynligheten for suksessfulle angrep.
    • Eksempelet simulerer 1000 angrep med en forsvarsstyrke på 0.7.
  4. Risikostyring:

    • Funksjonen risk_assessment beregner risikonivå basert på trussellikelihood og påvirkning.
    • Eksempelet viser hvordan man kan beregne risikonivået for et gitt scenario.
  5. Visualisering av risikovurdering:

    • Funksjonen visualize_risk_assessment visualiserer risikonivåer for forskjellige scenarier.
    • Eksempelet genererer og visualiserer risikonivåer for 10 tilfeldige scenarier.
  6. Lover og regler:

    • Funksjonen find_relevant_laws søker etter relevante lover og regler basert på et søkeord.
    • Eksempelet viser hvordan man kan finne lover som er relevante for "personopplysninger".

Justering og dynamikk

  • Variabler som kan justeres:
    • password: Endre passordet for hashing og sjekk.
    • success_rate: Juster suksessraten for angrepssimuleringen.
    • num_attacks og defense_strength: Juster antall angrep og forsvarsstyrken i simulate_defense.
    • threat_likelihood og impact: Juster verdier for risikovurdering.
    • keyword: Endre søkeordet for å finne relevante lover og regler.

Dette skriptet dekker de viktigste elementene i fagplanen for cybersikkerhet, og gir en intuitiv og praktisk forståelse av hvordan man kan sikre systemer, identifisere trusler og angrep, utføre risikovurderinger, og finne relevante lover og regler.

Original Password: sikkerhet123
Hashed Password: 873c9c33ab7fff5cd0c87c69e33d9100ae2be06b4fc974387a45a3ca1d2cc908
Password check: Valid
Number of successful attacks out of 1000: 92
Successful attacks after defense: 35
Risk level (Likelihood: 0.3, Impact: 5): 1.5
Laws relevant to 'personopplysninger':
GDPR: General Data Protection Regulation - Beskytter personopplysninger i EU.
CCPA: California Consumer Privacy Act - Beskytter personopplysninger i California.
Skriptet er ferdig.

image


Beskrivelse av koden

Koden er et Python-skript som dekker flere aspekter av cybersikkerhet. Den inkluderer funksjoner for hashing av passord, simulering av angrep og forsvar, risikovurdering, og søk etter relevante lover og regler. Skriptet visualiserer også resultater gjennom grafer.

Hoveddeler av koden

  1. Grunnleggende sikkerhetsprinsipper:

    • hash_password og check_password: Hashing og sjekking av passord.
  2. Trusselbilde innen IT-sikkerhet:

    • simulate_attack: Simulerer angrep med en gitt suksessrate.
  3. Angreps- og forsvarsmetoder:

    • simulate_defense: Simulerer forsvar mot angrep basert på forsvarsstyrke.
  4. Risikostyring:

    • risk_assessment: Utfører en enkel risikovurdering.
  5. Visualisering av risikovurdering:

    • visualize_risk_assessment: Visualiserer risikonivåer for ulike scenarier.
  6. Lover og regler:

    • find_relevant_laws: Søker etter relevante lover basert på et nøkkelord.

Struktur og flyt

Koden starter med å definere funksjoner for de ulike delene. Deretter kjøres disse funksjonene med eksempler for å demonstrere deres bruk. Resultater printes ut og visualiseres.

Mermaid-diagram

For å visualisere strukturen og flyten av koden i et mermaid-diagram som er kompatibelt med GitHub Wiki:

graph TD
    A[Hoveddel: Grunnleggende sikkerhetsprinsipper]
    A1[hash_password]
    A2[check_password]
    
    B[Hoveddel: Trusselbilde innen IT-sikkerhet]
    B1[simulate_attack]
    
    C[Hoveddel: Angreps- og forsvarsmetoder]
    C1[simulate_defense]
    
    D[Hoveddel: Risikostyring]
    D1[risk_assessment]
    
    E[Hoveddel: Visualisering av risikovurdering]
    E1[visualize_risk_assessment]
    
    F[Hoveddel: Lover og regler]
    F1[find_relevant_laws]

    A --> A1
    A --> A2
    B --> B1
    C --> C1
    D --> D1
    E --> E1
    F --> F1

    subgraph Eksempler
    G1[Hashing av passord]
    G2[Sjekk passord]
    G3[Simuler angrep]
    G4[Simuler forsvar]
    G5[Risikovurdering]
    G6[Visualisering av risikovurdering]
    G7[Finn relevante lover]
    end
    
    A1 --> G1
    A2 --> G2
    B1 --> G3
    C1 --> G4
    D1 --> G5
    E1 --> G6
    F1 --> G7

Skriptet

import hashlib
import random
import string
import json
import time
import matplotlib.pyplot as plt

# --- GRUNNLEGGENDE SIKKERHETSPRINSIPPER ---
def hash_password(password):
    """Genererer en SHA-256 hash av et passord."""
    return hashlib.sha256(password.encode()).hexdigest()

def check_password(stored_password_hash, password):
    """Sjekker om et passord matcher den lagrede hash-verdien."""
    return stored_password_hash == hash_password(password)

# --- TRUSSELBILDE INNEN IT-SIKKERHET ---
def simulate_attack(success_rate=0.1):
    """Simulerer et angrep med en gitt suksessrate."""
    return random.random() < success_rate

# --- ANGRPES- OG FORSVARSMETODER ---
def simulate_defense(num_attacks=100, defense_strength=0.5):
    """Simulerer forsvarsmetoder mot flere angrep."""
    successful_attacks = 0
    for _ in range(num_attacks):
        if simulate_attack() and random.random() > defense_strength:
            successful_attacks += 1
    return successful_attacks

# --- RISIKOSTYRING ---
def risk_assessment(threat_likelihood, impact):
    """Utfører en enkel risikovurdering."""
    return threat_likelihood * impact

# --- VISUALISERING AV RISIKOVURDERING ---
def visualize_risk_assessment(risk_levels):
    """Visualiserer risikonivåer."""
    plt.bar(range(len(risk_levels)), risk_levels)
    plt.xlabel('Scenario')
    plt.ylabel('Risikonivå')
    plt.title('Risikovurdering')
    plt.show()

# --- LOVER OG REGLER ---
laws_and_regulations = {
    "GDPR": "General Data Protection Regulation - Beskytter personopplysninger i EU.",
    "NIS": "Network and Information Systems Directive - Forbedrer cybersikkerheten i EU.",
    "CCPA": "California Consumer Privacy Act - Beskytter personopplysninger i California."
}

def find_relevant_laws(keyword):
    """Finner relevante lover og regler basert på et søkeord."""
    return {law: desc for law, desc in laws_and_regulations.items() if keyword.lower() in desc.lower()}

# --- KJØRING AV FUNKSJONER ---
# Grunnleggende sikkerhet: Hashing av passord
password = "sikkerhet123"
hashed_password = hash_password(password)
print(f"Original Password: {password}")
print(f"Hashed Password: {hashed_password}")

# Sjekk passord
password_check = check_password(hashed_password, "sikkerhet123")
print(f"Password check: {'Valid' if password_check else 'Invalid'}")

# Trusselbilde: Simuler angrep
num_simulated_attacks = 1000
successful_attacks = sum(simulate_attack() for _ in range(num_simulated_attacks))
print(f"Number of successful attacks out of {num_simulated_attacks}: {successful_attacks}")

# Angrep- og forsvarsmetoder: Simuler forsvar
defense_strength = 0.7
successful_attacks_after_defense = simulate_defense(num_simulated_attacks, defense_strength)
print(f"Successful attacks after defense: {successful_attacks_after_defense}")

# Risikostyring: Risikovurdering
threat_likelihood = 0.3  # Eksempelverdi
impact = 5  # Eksempelverdi
risk_level = risk_assessment(threat_likelihood, impact)
print(f"Risk level (Likelihood: {threat_likelihood}, Impact: {impact}): {risk_level}")

# Visualisering av risikovurdering
risk_scenarios = [risk_assessment(random.random(), random.randint(1, 10)) for _ in range(10)]
visualize_risk_assessment(risk_scenarios)

# Lover og regler: Finn relevante lover
keyword = "personopplysninger"
relevant_laws = find_relevant_laws(keyword)
print(f"Laws relevant to '{keyword}':")
for law, desc in relevant_laws.items():
    print(f"{law}: {desc}")

# --- LUKK KILDER OG SLUTT ---
print("Skriptet er ferdig.")