package infosecmodules

import (
	"rubric/utils"
)

var BasicsModule = Module{
	Key:         "basics",
	Aliases:     []string{"b", "intro", "основы"},
	Title:       "Основы информационной безопасности",
	Description: "Модели угроз, CIA, стандарты, термины, атаки, классификации",
	Run:         showBasics,
}

func showBasics() {
	utils.Header("InfoSec — Основы")

	utils.Section("Триада CIA")
	utils.Code(`CIA Triad — основа информационной безопасности:

Confidentiality (Конфиденциальность)
  Информация доступна только авторизованным лицам.
  Нарушение: утечка данных, перехват трафика.
  Меры: шифрование, контроль доступа, NDA.

Integrity (Целостность)
  Информация не изменена несанкционированно.
  Нарушение: подмена данных, SQL-инъекция.
  Меры: хэши, подписи, контроль версий, аудит.

Availability (Доступность)
  Система работает когда нужна.
  Нарушение: DDoS, сбой оборудования.
  Меры: резервирование, backups, CDN, мониторинг.

Расширения:
  + Non-repudiation (Неотказуемость) — действие нельзя отрицать
  + Authenticity    — подлинность источника
  + Accountability  — действия можно проследить до субъекта`)

	utils.Section("Ключевые понятия")
	utils.Code(`Угроза (Threat)   — потенциальное событие, способное навредить
Уязвимость (Vulnerability) — слабое место в системе
Риск (Risk)       — вероятность × последствия угрозы
Эксплойт (Exploit) — использование уязвимости
Атака (Attack)    — реализация угрозы
Вектор атаки (Attack Vector) — путь реализации атаки
Поверхность атаки (Attack Surface) — совокупность точек входа

Субъекты:
  Threat Actor    — тот кто осуществляет атаку
  APT (Advanced Persistent Threat) — государственные хакеры
  Script Kiddie   — использует чужие инструменты без понимания
  Insider Threat  — угроза изнутри (сотрудник)
  Hacktivists     — политически мотивированные хакеры`)

	utils.Section("Классификация атак")
	utils.Code(`По цели:
  Пассивные  — наблюдение, перехват (не изменяют систему)
  Активные   — изменение, разрушение, внедрение

По вектору:
  Network    — сетевые атаки (MITM, DDoS, сканирование)
  Web        — уязвимости веб-приложений (XSS, SQLi, CSRF)
  Social Engineering — манипуляция людьми (фишинг, вишинг)
  Physical   — физический доступ, кража устройств
  Supply Chain — атаки на цепочку поставок (SolarWinds)

Распространённые типы:
  Phishing          — поддельные письма/сайты для кражи данных
  Spear Phishing    — целевой фишинг (конкретная жертва)
  Ransomware        — шифрование данных с выкупом
  Man-in-the-Middle — перехват и изменение трафика
  SQL Injection     — внедрение SQL в запросы
  XSS               — внедрение скриптов в веб-страницы
  DDoS              — перегрузка сервиса запросами
  Brute Force       — перебор паролей/ключей
  Zero-day          — уязвимость без патча от вендора
  Privilege Escalation — повышение привилегий`)

	utils.Section("Модели угроз (Threat Modeling)")
	utils.Code(`STRIDE — классификация угроз Microsoft:
  Spoofing          — подделка идентичности
  Tampering         — изменение данных
  Repudiation       — отрицание действий
  Information Disclosure — утечка данных
  Denial of Service — отказ в обслуживании
  Elevation of Privilege — повышение привилегий

PASTA (Process for Attack Simulation and Threat Analysis):
  1. Определить бизнес-цели
  2. Определить технические требования
  3. Декомпозировать приложение
  4. Анализ угроз
  5. Анализ уязвимостей
  6. Моделирование атак
  7. Анализ рисков

DREAD — оценка риска (1-10 по каждому):
  Damage          — ущерб от атаки
  Reproducibility — воспроизводимость
  Exploitability  — сложность эксплуатации
  Affected users  — количество пострадавших
  Discoverability — обнаруживаемость`)

	utils.Section("Стандарты и фреймворки")
	utils.Code(`NIST Cybersecurity Framework:
  Identify → Protect → Detect → Respond → Recover

ISO/IEC 27001 — стандарт ISMS (Information Security Management System)
ISO/IEC 27002 — практики управления ИБ

CIS Controls — 18 критических контролей безопасности:
  1. Инвентаризация активов
  2. Инвентаризация ПО
  3. Защита данных
  ...
  18. Тестирование безопасности

OWASP — Open Web Application Security Project:
  OWASP Top 10 — топ уязвимостей веб-приложений
  ASVS — Application Security Verification Standard
  Testing Guide — руководство по тестированию

PCI DSS — Payment Card Industry Data Security Standard
  Для организаций обрабатывающих платёжные карты

GDPR / 152-ФЗ — защита персональных данных

CVSS — Common Vulnerability Scoring System
  Шкала серьёзности уязвимостей 0.0–10.0
  Low (<4), Medium (4-6.9), High (7-8.9), Critical (9-10)`)

	utils.Section("Defence in Depth — эшелонированная защита")
	utils.Code(`Принцип многоуровневой защиты: компрометация одного уровня
не означает компрометацию всей системы.

Уровни защиты:
  Физическая безопасность   — замки, охрана, CCTV
  Периметр сети             — firewall, IPS/IDS, DMZ
  Внутренняя сеть           — сегментация, VLAN, NAC
  Хост                      — hardening, EDR, патчи
  Приложение                — WAF, SAST, аутентификация
  Данные                    — шифрование, DLP, backups
  Люди                      — обучение, политики, MFA

Принципы:
  Least Privilege   — минимально необходимые права
  Need to Know      — доступ только к нужной информации
  Zero Trust        — не доверяй никому по умолчанию, верифицируй всё
  Fail Secure       — при сбое → закрытое состояние
  Security by Design — безопасность с самого начала проектирования`)

	utils.Footer()
}
