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:
-
Grunnleggende sikkerhetsprinsipper:
- Funksjonene
hash_password
ogcheck_password
demonstrerer hvordan man kan sikre passord ved å bruke hashing. - Eksempelet viser hvordan man kan generere og sjekke hash-verdier.
- Funksjonene
-
Trusselbilde innen IT-sikkerhet:
- Funksjonen
simulate_attack
simulerer et angrep med en gitt suksessrate. - Eksempelet simulerer 1000 angrep og teller antall vellykkede angrep.
- Funksjonen
-
Angreps- og forsvarsmetoder:
- Funksjonen
simulate_defense
simulerer forsvarsmetoder ved å redusere sannsynligheten for suksessfulle angrep. - Eksempelet simulerer 1000 angrep med en forsvarsstyrke på 0.7.
- Funksjonen
-
Risikostyring:
- Funksjonen
risk_assessment
beregner risikonivå basert på trussellikelihood og påvirkning. - Eksempelet viser hvordan man kan beregne risikonivået for et gitt scenario.
- Funksjonen
-
Visualisering av risikovurdering:
- Funksjonen
visualize_risk_assessment
visualiserer risikonivåer for forskjellige scenarier. - Eksempelet genererer og visualiserer risikonivåer for 10 tilfeldige scenarier.
- Funksjonen
-
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".
- Funksjonen
Justering og dynamikk
- Variabler som kan justeres:
password
: Endre passordet for hashing og sjekk.success_rate
: Juster suksessraten for angrepssimuleringen.num_attacks
ogdefense_strength
: Juster antall angrep og forsvarsstyrken isimulate_defense
.threat_likelihood
ogimpact
: 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.
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
-
Grunnleggende sikkerhetsprinsipper:
hash_password
ogcheck_password
: Hashing og sjekking av passord.
-
Trusselbilde innen IT-sikkerhet:
simulate_attack
: Simulerer angrep med en gitt suksessrate.
-
Angreps- og forsvarsmetoder:
simulate_defense
: Simulerer forsvar mot angrep basert på forsvarsstyrke.
-
Risikostyring:
risk_assessment
: Utfører en enkel risikovurdering.
-
Visualisering av risikovurdering:
visualize_risk_assessment
: Visualiserer risikonivåer for ulike scenarier.
-
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.")