← Zpět na obsah

Kapitola 25: Základní prvky ochrany

Ochrana dat - štít proti hrozbám
Ochrana dat - štít proti hrozbám

1. Úvod: Jak ochránit svůj digitální hrad?

Představ si, že tvůj počítač nebo mobil je jako tvůj hrad. Uvnitř máš své poklady – fotky, hry, dokumenty a osobní údaje. Stejně jako hrad potřebuje pevné zdi a stráže, aby ho nikdo nevykradl, i tvůj počítač potřebuje ochranu. V digitálním světě na nás totiž číhají nebezpečí v podobě virů a dalších škodlivých programů. V této kapitole se naučíme, jak svůj digitální hrad chránit.

2. Co jsou to počítačové viry?

Počítačový virus je jako nemoc pro počítač. Je to malý, škodlivý program, který se umí sám šířit a dělat neplechu.

Definice: Počítačový virus

Počítačový virus je škodlivý software (program), který se bez tvého vědomí šíří v počítači a může mazat soubory, krást informace nebo zpomalovat počítač.

Jak se můžu virem nakazit?

3. Antivir: Strážce tvého hradu

Naštěstí máme statečné strážce, kteří náš počítač chrání. Tím nejdůležitějším je antivirový program.

Definice: Antivirový program (Antivir)

Antivirový program je software, který vyhledává, detekuje a odstraňuje počítačové viry a jiný škodlivý software z tvého počítače.

Jak antivir funguje?

Představ si, že antivir je jako policista, který má seznam hledaných zločinců.

  1. Kontroluje soubory: Prohledává všechny soubory v počítači a porovnává je se svým seznamem známých virů.
  2. Hledá podezřelé chování: Sleduje, jestli se nějaký program nechová divně (např. se snaží smazat soubory).
  3. Upozorní a zasáhne: Když najde virus, upozorní tě a nabídne ti, že ho smaže nebo dá do "karantény" (uzamkne ho, aby nemohl škodit).

Příklady antivirových programů: Avast, AVG, ESET, Windows Defender (ten je součástí Windows).

4. Aktualizace: Opravování děr ve zdech

Představ si, že ve zdech tvého hradu jsou malé dírky, kterými by se mohl protáhnout zloděj. Čas od času musíš tyto dírky opravit. Přesně to dělají aktualizace.

Definice: Aktualizace softwaru

Aktualizace softwaru je balíček oprav a vylepšení pro operační systém nebo pro nějakou aplikaci. Opravuje bezpečnostní díry, přidává nové funkce a zlepšuje stabilitu programu.

Proč jsou aktualizace tak důležité?

Aktualizace jsou naprosto klíčové pro bezpečnost!

Pravidlo číslo jedna: Když ti počítač nebo mobil nabídne aktualizaci, neodkládej ji a nainstaluj ji!

Zálohování dat - více kopií na různých místech
Zálohování dat - více kopií na různých místech

Člověk a digitální svět

V digitálním světě je naše bezpečnost neustále ohrožena. Antivirové programy a aktualizace jsou jako bezpečnostní pásy a airbagy v autě – základní výbava, která nás chrání. Učíme se je používat nejen proto, abychom ochránili svá data, ale abychom se mohli v online světě pohybovat svobodně a bez obav. Zodpovědnost za vlastní digitální bezpečnost je klíčovou součástí digitální gramotnosti.

Otázky k zamyšlení

Úkoly pro praxi

  1. Kontrola antiviru: Zjisti, jaký antivirový program máš na svém počítači. Je aktivní a aktuální? Zkus spustit kontrolu počítače.
  2. Kontrola aktualizací: Podívej se do nastavení svého počítače nebo mobilu, jestli nemáš k dispozici nějaké nové aktualizace. Pokud ano (a rodiče dovolí), nainstaluj je.
  3. Bezpečnostní kvíz: Vytvoř si s kamarády jednoduchý kvíz s 5 otázkami o bezpečném chování na internetu. Například: "Co uděláš, když ti přijde e-mail s výhrou v soutěži, do které ses nepřihlásil/a?".

* Rozšíření pro pokročilé

Typy malwaru

Malware (malicious software = škodlivý software) je obecný název pro programy, které poškozují počítač nebo kradou data. Existuje mnoho druhů, každý funguje jinak:

Virus

Nejstarší typ malwaru. Virus se připojí k legitimnímu souboru (např. k programu nebo dokumentu) a šíří se, když uživatel tento soubor spustí nebo sdílí. Pojmenování podle biologického viru – potřebuje "hostitele" k přežití.

Červ (Worm)

Na rozdíl od viru se červ šíří sám po síti bez jakékoli akce uživatele. Využívá bezpečnostní díry v systémech. Slavný příklad: červ WannaCry v roce 2017 napadl 200 000 počítačů ve 150 zemích během několika hodin.

Ransomware

Jeden z nejnebezpečnějších typů malwaru dnes. Ransomware zašifruje všechny tvé soubory a požaduje výkupné (ransom) za jejich odemčení – obvykle v kryptoměně, aby útočník nebyl vysledovatelný. Jedinou spolehlivou ochranou jsou pravidelné zálohy!

Trojan (Trojský kůň)

Podle legendy o trojském koni – vypadá jako užitečný program, ale uvnitř se skrývá škodlivý kód. Například stáhneš "bezplatnou hru" a s ní se ti nainstaluje program, který krade hesla.

Spyware a Adware

Spyware sleduje tvou aktivitu – co píšeš, jaké stránky navštěvuješ, může zaznamenávat hesla. Adware zobrazuje nežádoucí reklamy a často zpomaluje počítač.

Pokročilé bezpečnostní nástroje

Antivirus je jen první linie obrany. Profesionálové používají další nástroje:

Firewall je "zeď" mezi tvým počítačem a internetem. Kontroluje veškerý příchozí a odchozí provoz a blokuje podezřelé spojení. Windows má vestavěný firewall, ale existují i pokročilejší (např. pfSense).

Sandbox je izolované prostředí pro spuštění podezřelého software. Je to jako kdyby ses otočil na test – pokud soubor obsahuje malware, poškodí jen sandbox, ne tvůj skutečný počítač.

Šifrování disku chrání data, i když ti někdo ukradne počítač. Windows nabízí BitLocker, Mac má FileVault. Bez hesla jsou data nečitelná.

Šifrování - ochrana dat heslem
Šifrování - ochrana dat heslem

* Úkoly pro pokročilé

  1. Windows Defender: Otevři Windows Security. Projdi všechny sekce: Ochrana před viry, Firewall, Ochrana účtu. Zkontroluj stav ochrany. Spusť úplnou kontrolu.
  2. Excel – Bezpečnostní audit: Vytvoř checklist pro bezpečnostní audit počítače. Položky: Antivirus nainstalován, Antivirus aktuální, Firewall aktivní, Systém aktualizován, Silné heslo, Zálohy, 2FA. Ohodnoť svůj počítač.
  3. Word – Incident Response plán: Napiš dokument "Co dělat při napadení ransomware". Zahrň: okamžité kroky, koho kontaktovat, jak obnovit data ze zálohy, jak zabránit opakování.
  4. Zálohy: Nastav automatické zálohování důležitých souborů (do cloudu nebo na externí disk). Napiš návod pro svou rodinu.

** Rozšíření pro maturitní obory

Podrobně: Bezpečnostní principy

Profesionální bezpečnost IT se řídí osvědčenými principy. Pojďme se na ně podívat podrobněji:

Defense in Depth (Obrana do hloubky)

Nikdy nespoléhej jen na jednu vrstvu ochrany! Představ si středověký hrad – má příkop, hradby, bránu, strážce a vnitřní pevnost. Podobně bychom měli chránit data: firewall na perimetru, antivirus na počítačích, šifrování dat, školení uživatelů. Pokud útočník prolomí jednu vrstvu, narazí na další.

Principle of Least Privilege (Princip minimálních oprávnění)

Každý uživatel a program by měl mít pouze ta oprávnění, která skutečně potřebuje. Běžný zaměstnanec nepotřebuje administrátorská práva. Účetní nepotřebuje přístup k personálním datům. Omezením oprávnění omezíš i škody v případě kompromitace účtu.

Zero Trust (Nulová důvěra)

Tradiční model důvěřoval všemu uvnitř firemní sítě. Zero Trust říká: "Nikdy nevěř, vždy ověřuj." I když jsi ve firemní síti, musíš se prokázat při přístupu k citlivým datům. Tento přístup je nezbytný v době, kdy lidé pracují z domova a používají cloudové služby.

CIA Triad – tři pilíře bezpečnosti

Každé bezpečnostní opatření chrání alespoň jednu z těchto tří hodnot:

Typy kybernetických útoků

Phishing je nejčastější útok – podvodník posílá e-mail nebo zprávu, která vypadá jako od důvěryhodného zdroje (banka, Facebook, Netflix) a láká tě ke kliknutí na odkaz. Na falešné stránce pak zadáš heslo, které útočník získá.

DDoS (Distributed Denial of Service) zahltí server miliony požadavků z napadených počítačů (botnet). Server nestíhá odpovídat a web je nedostupný. Útočníci to používají pro vydírání nebo sabotáž.

SQL Injection využívá chybu v programování webových stránek. Útočník vloží do formuláře škodlivý SQL kód a může získat přístup k celé databázi. Proto je důležité správně ošetřovat vstupní data!

Zálohovací strategie 3-2-1

Toto jednoduché pravidlo tě ochrání před většinou katastrof:

Vícevrstvá ochrana - defense in depth
Vícevrstvá ochrana - defense in depth

** Úkoly pro maturitní obory

  1. Bezpečnostní analýza: Proveď bezpečnostní analýzu své domácí sítě. Zkontroluj: heslo routeru, šifrování Wi-Fi, aktualizace firmware, připojená zařízení.
  2. Excel – Risk Assessment: Vytvoř tabulku rizik pro malou firmu. Sloupce: Hrozba, Pravděpodobnost (1-5), Dopad (1-5), Skóre (P×D), Opatření.
  3. Word – Bezpečnostní politika: Napiš bezpečnostní politiku pro fiktivní firmu (4-5 stran). Zahrň: hesla, zálohování, přístupová práva, školení, incident response.
  4. PowerPoint – Kybernetické hrozby: Vytvoř prezentaci "Top 10 kybernetických hrozeb" (12-15 snímků). Pro každou: popis, příklad, jak se bránit.
  5. Canva – Plakát: Vytvoř bezpečnostní plakát pro kancelář "10 pravidel kybernetické bezpečnosti".

*** Rozšíření pro IT obory

Jako IT specialista budeš zodpovědný za bezpečnost systémů. Naučíš se základy šifrování, hashování a bezpečného programování.

Hashování v Pythonu

Hash je jednosměrná funkce – ze vstupu vytvoří "otisk", ale z otisku nelze získat vstup:

import hashlib

# Základní hashování
text = "tajne_heslo"
hash_md5 = hashlib.md5(text.encode()).hexdigest()
hash_sha256 = hashlib.sha256(text.encode()).hexdigest()

print(f"MD5: {hash_md5}")
print(f"SHA-256: {hash_sha256}")

# Hash souboru (kontrola integrity)
def hash_souboru(cesta):
    sha256 = hashlib.sha256()
    with open(cesta, 'rb') as f:
        for blok in iter(lambda: f.read(4096), b''):
            sha256.update(blok)
    return sha256.hexdigest()

# Kontrola hesla
def over_heslo(zadane_heslo, ulozeny_hash):
    hash_zadaneho = hashlib.sha256(zadane_heslo.encode()).hexdigest()
    return hash_zadaneho == ulozeny_hash
        

Bezpečné ukládání hesel (bcrypt)

Pro hesla se používá pomalý hash s "solí":

# pip install bcrypt
import bcrypt

# Vytvoření hashe hesla
heslo = "tajne_heslo".encode()
sul = bcrypt.gensalt()  # Náhodná sůl
hash_hesla = bcrypt.hashpw(heslo, sul)
print(f"Hash: {hash_hesla}")

# Ověření hesla
zadane = "tajne_heslo".encode()
if bcrypt.checkpw(zadane, hash_hesla):
    print("Heslo je správné!")
else:
    print("Špatné heslo!")
        

Šifrování dat

Symetrické šifrování používá jeden klíč pro šifrování i dešifrování:

# pip install cryptography
from cryptography.fernet import Fernet

# Vygeneruj klíč (ulož bezpečně!)
klic = Fernet.generate_key()
print(f"Klíč: {klic}")

# Šifrování
sifra = Fernet(klic)
zprava = "Tajná zpráva".encode()
zasifrovano = sifra.encrypt(zprava)
print(f"Zašifrováno: {zasifrovano}")

# Dešifrování
desifrovano = sifra.decrypt(zasifrovano)
print(f"Dešifrováno: {desifrovano.decode()}")
        

Bezpečné programování

Jako programátor musíš psát kód, který je odolný vůči útokům:

# ŠPATNĚ - SQL Injection zranitelnost!
jmeno = input("Zadej jméno: ")
dotaz = f"SELECT * FROM users WHERE name = '{jmeno}'"
# Útočník může zadat: ' OR '1'='1

# SPRÁVNĚ - parametrizovaný dotaz
import sqlite3
conn = sqlite3.connect('db.sqlite')
cursor = conn.cursor()
cursor.execute("SELECT * FROM users WHERE name = ?", (jmeno,))

# ŠPATNĚ - XSS zranitelnost
uzivatelsky_vstup = "<script>alert('hack')</script>"
html = f"<div>{uzivatelsky_vstup}</div>"

# SPRÁVNĚ - escapování
from html import escape
bezpecny = escape(uzivatelsky_vstup)
html = f"<div>{bezpecny}</div>"
        

Generování bezpečných náhodných hodnot

import secrets
import string

# Bezpečné náhodné číslo
nahodne = secrets.randbelow(100)

# Bezpečný token
token = secrets.token_hex(32)  # 64 znaků hex

# Generátor hesel
def generuj_heslo(delka=16):
    znaky = string.ascii_letters + string.digits + string.punctuation
    return ''.join(secrets.choice(znaky) for _ in range(delka))

print(generuj_heslo())
        

*** Praktické úkoly pro IT obory

  1. Hash nástroj: Napiš program, který vypočítá MD5 a SHA-256 hash pro zadaný text nebo soubor.
  2. Správce hesel: Vytvoř jednoduchý správce hesel, který ukládá hesla zašifrovaně do souboru (použij Fernet).
  3. Generátor hesel: Napiš generátor hesel s nastavitelnou délkou a typy znaků (velká, malá, čísla, speciální).
  4. Audit kódu: Projdi starší kód a najdi bezpečnostní zranitelnosti (SQL injection, XSS). Navrhni opravy.

*** Rozšíření pro IT obory: Bezpečnost aplikací

Jako IT specialista musíš rozumět bezpečnému programování a správě citlivých dat.

Nikdy nekládej do Gitu!

🚨 KRITICKY DŮLEŽITÉ: Tyto věci NIKDY nesmí být v Git repozitáři:

Správný .gitignore pro bezpečnost

# .gitignore - BEZPEČNOSTNÍ SEKCE

# Proměnné prostředí (obsahují tajemství!)
.env
.env.local
.env.production
*.env

# Konfigurační soubory s hesly
config/secrets.yml
config/database.yml
settings_local.py

# API klíče
api_keys.txt
credentials.json
service_account.json

# SSH a certifikáty
*.pem
*.key
*.p12
id_rsa
id_ed25519

# Python cache a virtuální prostředí
__pycache__/
*.pyc
venv/
.venv/

# IDE
.vscode/
.idea/
*.swp

# Logs (mohou obsahovat citlivé info)
*.log
logs/

# Databázové soubory
*.db
*.sqlite
*.sqlite3

# OS soubory
.DS_Store
Thumbs.db
        

Kam ukládat hesla a tokeny?

Prostředí Řešení Příklad
Lokální vývoj .env soubor (v .gitignore!) python-dotenv
GitHub Actions Repository Secrets Settings → Secrets
Cloud deployment Environment Variables Heroku Config Vars
Enterprise Secret Manager AWS Secrets Manager, HashiCorp Vault

Práce s .env soubory

# .env (NIKDY v Gitu!)
DATABASE_URL=mysql://user:heslo@localhost/db
API_KEY=sk-1234567890abcdef
SECRET_KEY=moje-super-tajne-heslo

# .env.example (TENTO soubor DO Gitu - šablona)
DATABASE_URL=mysql://user:password@localhost/database
API_KEY=your-api-key-here
SECRET_KEY=generate-random-key

# Python - načtení .env
# pip install python-dotenv
from dotenv import load_dotenv
import os

load_dotenv()  # Načte .env soubor

database_url = os.getenv('DATABASE_URL')
api_key = os.getenv('API_KEY')
secret = os.getenv('SECRET_KEY')

# Kontrola, že jsou nastaveny
if not api_key:
    raise ValueError("API_KEY není nastaven! Zkontroluj .env soubor.")
        

GitHub Secrets pro CI/CD

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Deploy
        env:
          API_KEY: ${{ secrets.API_KEY }}
          DATABASE_URL: ${{ secrets.DATABASE_URL }}
        run: |
          echo "API_KEY je nastaven (nezobrazí se)"
          # Deployment skripty zde
        

Co dělat když omylem pushnete tajemství?

  1. Ihned změň/invaliduj všechna odhalená hesla a klíče!
  2. Přidej soubor do .gitignore
  3. Odstraň z historie: git filter-branch nebo BFG Repo-Cleaner
  4. Force push: git push --force
  5. Zkontroluj, že nikdo neukradl klíče (audit logy)

*** Úkoly pro IT obory

  1. .gitignore audit: Zkontroluj .gitignore ve svých projektech. Přidej všechny bezpečnostní položky.
  2. Migrace na .env: Pokud máš v kódu hardcoded hesla, přesuň je do .env. Vytvoř .env.example.
  3. GitHub Secrets: Nastav secret v GitHub repozitáři. Použij ho v GitHub Actions.
  4. Secret scan: Použij nástroj jako GitLeaks nebo TruffleHog pro skenování repozitáře na tajemství.
← Zpět na obsah